หน้าแรกคู่มือHMIจัดการข้อมูลวิธีสร้างระบบ Countdown Timer บน HMI และ PLC แบบครบถ้วน

บทที่ 5 จาก 11 ใน จัดการข้อมูล

HMIปานกลาง · Intermediate3 นาที

วิธีสร้างระบบ Countdown Timer บน HMI และ PLC แบบครบถ้วน

ให้ผู้ใช้ป้อนเวลาเป็นนาทีบน HMI แล้ว PLC แปลงเป็นค่า Timer (คูณ K600) จับเวลาด้วย TON และใช้ SUB หาเวลาที่เหลือ แสดงเป็นวินาทีนับถอยหลังพร้อม Bar Graph บนหน้าจอ Samkoon

รับเวลาเป็นนาทีที่ D300 คูณ K600 เก็บที่ D302 แล้วให้ TON จับเวลาจนถึง D302 จากนั้นใช้ SUB เอา D302 ลบ TV0 เก็บที่ D304 ได้ค่าที่นับถอยหลัง นำ D304 ไปแสดงบนหน้าจอโดยตั้งทศนิยม 1 ตำแหน่งให้อ่านเป็นวินาที

อัพเดทล่าสุด: 26 ตุลาคม 2569

โจทย์: ป้อนเวลาเป็นนาที แต่อยากเห็นวินาทีนับถอยหลัง

คลิปนี้ตอบคำถามลูกค้าที่อยากให้หน้าจอแสดงเวลานับถอยหลังเป็นวินาที (60, 59, …) แนวคิดคือ

  • ผู้ใช้ป้อนเวลาบนหน้าจอ จะรับเป็นนาทีหรือวินาทีก็ได้ ในคลิปรับเป็น นาที
  • กดเริ่มจับเวลา หน้าจอแสดงเวลาที่เหลือเป็นวินาทีนับถอยหลัง พร้อม Progress Bar
  • เมื่อหมดเวลา Output จะดับ

โปรแกรมฝั่ง PLC (SamSoar2022)

1. แปลงนาทีเป็นค่า Timer

D300 รับค่าเป็นนาทีจากหน้าจอ ใช้คำสั่ง MUL เอา D300 คูณ K600 แล้วเก็บผลที่ D302

เหตุผลคือ Timer ใน PLC (TON 100ms) มีความละเอียด 0.1 วินาที ป้อน K10 = 1 วินาที ดังนั้น 1 นาที = K600 และ 2 นาที = K1200

2. จับเวลาและคำนวณเวลาที่เหลือ

  • สร้าง Coil M0 (Start Countdown Timer) เป็นตัวเริ่มจับเวลา
  • เมื่อ M0 ทำงาน คำสั่ง TON เริ่มจับเวลา ค่าปัจจุบัน TV0 จะวิ่งขึ้นเรื่อยๆ จนถึงค่า D302
  • ค่าที่วิ่งขึ้นยังไม่ใช่ค่าถอยหลัง จึงใช้คำสั่ง SUB เอา D302 ลบ TV0 เก็บที่ D304 ได้ค่าที่วิ่งสวนทางกันคือนับลง
  • ในคลิปให้ M0 สั่ง SET Output M1 ไปพร้อมกัน

3. จบการจับเวลา

  • เมื่อ Timer ครบเวลา (T0 ทำงาน) ให้ Reset M0
  • ใช้ขอบขาลงของ M0 ไป Reset Output M1 อีกที Output จะดับและการจับเวลาจบลง

ลำดับคำสั่งตามที่เห็นในคลิป

Countdown Timer (ตามคลิป)
D300 = นาทีจากหน้าจอ, D302 = ค่า Timer (วินาที × 10), D304 = ค่าแสดงผลนับถอยหลัง
N0
แปลงนาทีเป็นค่า Timer: D302 = D300 × 600
M8151MULD300, K600, D302
M0 เริ่มจับเวลา → TON นับถึง D302, D304 = D302 - TV0, SET Output M1
M0TONTV0, D302SUBD302, TV0, D304SETM1, K1
ขอบขาลงของ M0 → Reset Output M1
M0↓RSTM1, K1
Timer ครบเวลา → Reset M0
T0RSTM0, K1
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ตั้งค่าหน้าจอ (SKTool)

ตัวแสดงเวลานับถอยหลัง

ใช้ตัวแสดงตัวเลขอ่าน D304 โดยตรง

Monitor Address:    D304
Fractional Digits:  1

D304 มีหน่วยเป็น 0.1 วินาที เมื่อใส่ทศนิยม 1 ตำแหน่ง ตัวเลขบนหน้าจอจะอ่านเป็นวินาทีพอดี

Progress Bar

ใช้ Bar Graph Monitor อ่านค่า TV0 (ค่าที่วิ่งขึ้น) แล้วติ๊ก Variable range

Monitor Address:  TV0
Min:              LW0
Max:              D302

Min ต้องการค่า 0 จึงใส่ Address LW ตัวไหนก็ได้ที่ไม่ได้ใช้งาน เพราะค่า Default ของมันเป็น 0 ส่วน Max คือ D302 ซึ่งเป็นเวลาทั้งหมด

ผลลัพธ์

เมื่อป้อนเวลาแล้วกดเริ่ม Timer จะทำงานตามเวลาที่ตั้งไว้ ตัวเลขบนหน้าจอนับถอยหลังเป็นวินาที Progress Bar เต็มขึ้นเรื่อยๆ และเมื่อครบเวลา Output จะดับ

บทถัดไป

ตั้งค่า HMI ให้กดปุ่มอัตโนมัติตามเวลา

1 นาทีเริ่มต้น · Beginner