PLCเริ่มต้น · Beginner9 นาที

Timer ใน PLC

เรียนรู้ Timer ใน Samkoon PLC ตั้งแต่ข้อจำกัดของการนับเวลาด้วย M8160 + Counter ไปจนถึงคำสั่ง TON ความละเอียด 100 ms และ 10 ms พร้อมตัวอย่างให้ Output ติดค้างตามเวลาที่ตั้ง

Timer ใน Samkoon PLC ใช้คำสั่ง TON ใส่ Timer Value (เช่น TV0) กับ Set Value (K…) เมื่อนับครบ Contact T ของตัวนั้นจะติด T0–T199 ละเอียด 100 ms (4.5 วินาที = K45) ส่วน T200–T249 ละเอียด 10 ms (4.22 วินาที = K422) สะดวกกว่าการนับ Pulse 1 วินาทีจาก M8160 ด้วย Counter

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

ชุดอุปกรณ์สำหรับบทความนี้

ราคาชุดอุปกรณ์

฿3,690

สร้าง Timer เองด้วย M8160 + Counter

จากตอนที่แล้ว เรารู้จัก Special Address ที่ติดเป็นจังหวะ เช่น M8160 ที่ติดทุก 1 วินาที ถ้าเอามาใช้คู่กับ Counter ก็สร้างตัวนับเวลาเองได้ ในคลิปลองให้ M80 เป็นตัวเริ่มนับ และนับ M8160 ด้วย CV10 ถึง K5 (= 5 วินาที)

สร้าง Timer ด้วย M8160 + Counter
N0
M80 ON → นับ pulse ทุก 1 วินาที (M8160) นับถึง 5 = 5 วินาที
M80M8160CTUCV10, K5
นับครบ (C10 ON) → เปิด M81
C10M81
M82 → Reset Counter C10 เพื่อเริ่มนับใหม่
M82RSTC10, K1
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

เมื่อ Simulate และสั่ง M80 = ON ค่า CV10 จะนับขึ้นทีละวินาที พอครบ 5 ครั้ง C10 ติด แต่ CV10 ยังนับต่อไปเรื่อยๆ จนกว่าจะสั่ง M82 ไป Reset

ข้อเสียของวิธีนี้

  • ต้องเขียนโค้ดหลายบรรทัด
  • ตั้งเวลาเป็นทศนิยมไม่ได้ (ละเอียดได้แค่ 1 วินาที)

PLC จึงมีคำสั่ง Timer มาให้ใช้แทน

คำสั่ง TON (Timer On)

ใน SamSoar2022 คำสั่ง Timer อยู่ใน Instruction → Timer มี TON, TOF และ TONR ตัวที่ใช้บ่อยที่สุดคือ TON เขียน TON แล้วใส่พารามิเตอร์ 2 ตัว

  1. Timer Value (TV) — Address ที่เก็บค่าเวลาที่ Timer กำลังนับ คล้ายกับ Counter Value ของ Counter เช่น TV0 (คู่กับ Contact T0)
  2. Set Value — เวลาที่ต้องการ เขียนเป็นค่า K หน่วยขึ้นกับช่วงหมายเลข Timer

ความละเอียดของ Timer

ตารางที่แสดงในคลิป

Resolutionเวลาสูงสุดหมายเลข Timer
100 ms6553.5 sT0–T199
10 ms655.35 sT200–T249
1 ms65.535 sT250–T255
  • Timer 100 ms: 4.5 วินาที = 4500 ms → K45
  • Timer 10 ms: 4.22 วินาที → K422 (1 หน่วยของ K = 10 ms)

ตัวอย่าง: กดแล้วให้ Output ติดค้าง 4.5 วินาที

โจทย์คือเมื่อ M83 ติด ให้ Y0 ติดค้าง 4.5 วินาทีแล้วดับ ในคลิปเขียน TON ที่ M83 แล้วลากเส้นขนานลงมา SET Y0 จากนั้นใช้ Contact T0 (Timer ครบเวลา) ไป RST Y0

Y0 ติดค้าง 4.5 วินาทีด้วย TON
N0
M83 ON → เริ่ม TON ที่ TV0 ตั้ง 4.5 วินาที (K45 × 100 ms) และ SET Y0 ทันที
M83TONTV0, K45SETY0, K1
Timer ครบ (T0 ON) → RST Y0
T0RSTY0, K1
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ระวัง Output ซ้ำ — ก่อนเขียน Y0 ให้เช็กว่าในโปรแกรมมีบรรทัดอื่นสั่ง Y0 อยู่แล้วหรือไม่ กด Ctrl+F แล้วพิมพ์ Y0 จะเห็นทุกตำแหน่งที่ใช้ Y0 Double Click เพื่อกระโดดไปดูได้ ในคลิปลบบรรทัดเก่าที่สั่ง Y0 จากตอนก่อนๆ ทิ้ง (คลิกขวา → Remove) ให้เหลือแค่ชุดเดียวที่คุม Y0

ทดสอบ

ดาวน์โหลดโปรแกรมลง PLC ผ่านสาย USB-C (หรือใช้ Simulation ก็ได้) แล้วกด Monitor สั่ง M83 = ON จะเห็น Y0 ติด 4.5 วินาทีแล้วดับ และจะไม่ติดอีกจนกว่า M83 จะถูกสั่ง OFF แล้ว ON ใหม่

ตัวอย่าง: Timer 10 ms และรวม Logic ของ Y0 ไว้ที่เดียว

ถ้าต้องการ 4.22 วินาที ใช้หลักเดิมแต่เปลี่ยนเป็น Timer ช่วง 10 ms ในคลิป Copy ชุดเดิม (Ctrl+C / Ctrl+V) แล้วเปลี่ยน Contact เป็น M84 Timer Value เป็น TV200 และ Set Value เป็น K422

เพราะ Y0 จะถูกสั่งจาก 2 ที่ ในคลิปจึงไม่ SET/RST Y0 ตรงๆ แต่ใช้ M ตัวช่วยแทน (M90 สำหรับ Timer แรก M91 สำหรับ Timer ที่สอง) แล้วเขียน Y0 เพียงบรรทัดเดียวจาก M90 ขนานกับ M91

Timer 100 ms + 10 ms คุม Y0 จากบรรทัดเดียว
N0
Timer 100 ms — M83 ON → TV0 นับ 4.5 วินาที และ SET M90
M83TONTV0, K45SETM90, K1
T0 ครบ → RST M90
T0RSTM90, K1
Timer 10 ms — M84 ON → TV200 นับ 4.22 วินาที และ SET M91
M84TONTV200, K422SETM91, K1
T200 ครบ → RST M91
T200RSTM91, K1
รวม Logic ของ Y0 ไว้ที่เดียว — M90 หรือ M91 ติด → Y0 ติด
M90M91Y0
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

หลัง Copy อย่าลืมเปลี่ยน Contact ที่ Reset ของชุดที่สองจาก T0 เป็น T200 ด้วย ในคลิปย้ำให้เช็กโค้ดจุดนี้ให้ดี ส่วนกล่อง TON ใน SamSoar2022 จะขึ้นความละเอียดให้เห็นเองตามหมายเลข Timer (TON(100ms) สำหรับ TV0 และ TON(10ms) สำหรับ TV200)

เมื่อดาวน์โหลดและ Monitor แล้วสั่ง M84 = ON ค่า TV200 จะวิ่งเร็วมาก Y0 ติดจนครบ 4.22 วินาทีจึงดับ ส่วน M83 ก็ยังใช้ได้เหมือนเดิมที่ 4.5 วินาที

สรุป

  • TON = Timer Value (TVn) + Set Value (K…) เมื่อครบเวลา Contact Tn ติด
  • T0–T199 ละเอียด 100 ms, T200–T249 ละเอียด 10 ms, T250–T255 ละเอียด 1 ms
  • ถ้า Output เดียวถูกสั่งจากหลายเงื่อนไข ให้ใช้ M ตัวช่วยแล้วรวม Logic ของ Output นั้นไว้บรรทัดเดียว

ตอนต่อไปจะเอาความรู้ทั้งหมดมารวมกันเป็น Sequence Control หรือการทำงานตามขั้นตอน

ตอนถัดไป

8. การควบคุมตามลำดับ Sequence Control

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

คำถามที่พบบ่อย

TON ต้องใส่พารามิเตอร์อะไร?
ใส่ 2 ค่า คือ Timer Value (TV) ซึ่งเป็น Address ที่เก็บค่าเวลาที่นับอยู่ เช่น TV0 คู่กับ Contact T0 และ Set Value คือเวลาที่ต้องการ เช่น K45 เมื่อนับครบ Contact T0 จะติด
ค่า K ต้องคำนวณอย่างไร?
Timer 100 ms (T0–T199) ใช้เวลาเป็นวินาที × 10 เช่น 4.5 วินาที = K45 ส่วน Timer 10 ms (T200–T249) ใช้เวลาเป็นวินาที × 100 เช่น 4.22 วินาที = K422
Timer แต่ละช่วงนับได้นานสุดเท่าไร?
ตามตารางในคลิป T0–T199 ละเอียด 100 ms นับได้สูงสุด 6553.5 วินาที T200–T249 ละเอียด 10 ms สูงสุด 655.35 วินาที และ T250–T255 ละเอียด 1 ms สูงสุด 65.535 วินาที
สร้าง Timer ด้วย Counter ได้ไหม?
ได้ โดยนับ M8160 (ติดทุก 1 วินาที) ด้วย CTU เช่น CTU CV10 K5 = 5 วินาที แต่ต้องเขียนโค้ดหลายบรรทัดและใช้เวลาที่เป็นทศนิยมไม่ได้ จึงควรใช้ TON แทน