วิธีสร้างระบบ 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 จะดับและการจับเวลาจบลง
ลำดับคำสั่งตามที่เห็นในคลิป
ตั้งค่าหน้าจอ (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 ให้กดปุ่มอัตโนมัติตามเวลา
มีคำถาม? ติดต่อทีมงาน