PLC ที่ Scan Time ช้าหรือไม่สม่ำเสมอทำให้เครื่องจักรทำงานผิดพลาด ปัญหาอย่าง Conveyor Jam, Robot ทำงาน Intermittent, หรือ Output สั่งแต่ตอบสนองช้า มักมีต้นเหตุมาจาก Scan Time ที่เกิน Watchdog Timeout หรือ Logic โปรแกรมที่ใช้ CPU เวลานานเกิน บทความนี้อธิบายว่า PLC Scan Time คืออะไร ทำไมช้า และแก้อย่างไร
PLC Scan Time คืออะไร?
PLC ทำงานแบบ Cyclic Scan คือ อ่าน Input → ประมวลผล Logic → เขียน Output → วนซ้ำ เรียกว่า "Scan Cycle" ระยะเวลาที่ใช้ต่อรอบเรียกว่า Scan Time โดยทั่วไปควรอยู่ที่ 1–50ms สำหรับงานทั่วไป ถ้า Scan Time เกิน Watchdog Timer ที่ตั้งไว้ PLC จะ Stop ทันทีเพื่อป้องกัน
ปัญหาที่พบบ่อยจาก Scan Time ผิดปกติ
- Watchdog Timer Error — PLC หยุดกะทันหัน — Scan Time เกิน Limit ที่ตั้งไว้
- Output Response ช้า — กด Button แต่ผลลัพธ์ตอบสนองช้า 1–3 วินาที
- Conveyor Sync ผิดพลาด — Timing ระหว่าง Zone ไม่แม่นยำ เพราะ Scan ไม่สม่ำเสมอ
- Servo/Robot Communication Error — Motion Controller รอ Handshake แต่ PLC ตอบช้าเกิน Timeout
- Analog Value กระโดด — PLC อ่าน Analog ทุก Scan แต่ถ้า Scan ช้ามาก ค่าอาจ Jump
สาเหตุที่ PLC Scan Time ช้า
1. โปรแกรมมีขนาดใหญ่มาก
Program ที่มีหลายพัน Rung หรือ Block ใช้เวลา Execute นาน โดยเฉพาะถ้ามีการใช้ Floating Point Calculation หรือ String Operation จำนวนมาก
2. Communication Block ใช้ Polling Rate สูงเกิน
ถ้า PLC ต้องทำ Modbus Read ทุก Scan (ทุก 1ms) แต่ Device ปลายทางตอบได้แค่ 50ms Scan Cycle จะรอ Response ทำให้ Scan Time ยาวขึ้น
3. Loop ที่ไม่สิ้นสุดในโปรแกรม
FOR Loop หรือ WHILE Loop ใน Structured Text ที่ Iteration มากเกินไปใน 1 Scan จะใช้ CPU Time นานมาก อาจ Trigger Watchdog ได้
4. Interrupt Routine ทำงานซ้อน
High-Speed Counter Interrupt หรือ Timed Interrupt ที่ Trigger บ่อยเกินไปแย่ง CPU Time จาก Main Scan
5. CPU Module เก่าหรือ Performance ไม่พอ
PLC รุ่นเก่าที่ Program ขนาดใหญ่ขึ้นเรื่อยๆ แต่ CPU Speed ยังเท่าเดิม Scan Time จะยาวขึ้นตาม
วิธีวินิจฉัยและแก้ Scan Time ช้า
- ตรวจ Scan Time จริง
- Mitsubishi GX Works3: Online → PLC Diagnostics → Current Scan Time
- Siemens TIA Portal: Online → Cycle Time ใน CPU Properties
- Omron CX-Programmer: PLC Information → Cycle Time
- ระบุ Block/Rung ที่ใช้เวลานาน — ใช้ Program Profiling ถ้ามี หรือแบ่งโปรแกรมเป็นส่วนและวัด Scan Time ทีละส่วน
- ย้าย Heavy Calculation ออกจาก Main OB/Task — ใส่ใน Background Task หรือ Low-Priority Interrupt แทน
- ปรับ Communication Polling Rate — ถ้า Modbus Poll ทุก 5ms ให้เพิ่มเป็น 50–100ms ซึ่งพอสำหรับงานส่วนใหญ่
- ลด Loop Iteration ใน 1 Scan — แทน FOR Loop 1000 รอบใน Scan เดียว ให้แบ่งทำ 100 รอบต่อ Scan 10 Scan
- เพิ่ม Watchdog Timeout — ถ้า Logic จำเป็นจริงๆ ปรับ Watchdog Timer ให้สอดคล้อง แต่ต้องระวังว่า Watchdog มีไว้เพื่อป้องกัน
- Upgrade CPU Module — ถ้า Scan Time ยาวเพราะ CPU เก่า การ Upgrade เป็น FX5U หรือ S7-1500 ที่มี CPU Speed สูงกว่า 100 เท่า จะแก้ปัญหาถาวร
ค่า Scan Time แนะนำสำหรับงานแต่ละประเภท
| ประเภทงาน | Scan Time เป้าหมาย | Watchdog Timeout แนะนำ |
|---|---|---|
| Conveyor / Sequential Logic | 5–20ms | 200ms |
| PID Temperature Control | 10–100ms | 500ms |
| Motion Control (Servo) | 0.5–4ms | 50ms |
| Safety PLC (SIL) | ตาม SIL Requirement | ตาม Standard IEC 61508 |
| SCADA Data Collection | 100–500ms | 2000ms |
ควรเรียกผู้เชี่ยวชาญเมื่อไหร่?
- Scan Time สูงแต่หาจุดที่ทำให้ช้าไม่ได้ ต้องการ Program Profiling
- ต้องการ Restructure โปรแกรมใหม่เพื่อประสิทธิภาพ
- Watchdog Error เกิดขึ้น และกำลังพิจารณา CPU Upgrade
สรุป
Scan Time ที่เหมาะสมคือหัวใจของ PLC ที่ทำงานได้เชื่อถือได้ ตรวจ Scan Time จริงก่อน ระบุสาเหตุ แล้วค่อยแก้ตามลำดับ ทีม Xeniel Automation รับ Optimize PLC Program และ Upgrade CPU สำหรับโรงงานในชลบุรีและระยอง
PLC Scan Time ช้า? Xeniel Optimize ให้ได้เลย
Xeniel Automation รับ PLC Program Optimization และ CPU Upgrade ทุกยี่ห้อ ออนไซต์นิคมชลบุรีและระยอง ปรึกษาฟรีก่อนตัดสินใจ
ปรึกษาวิศวกรฟรี ทันที!โทร 098-965-3845 | LINE: @xeniel.24
ตาราง: Scan Time ปกติ vs ผิดปกติ แต่ละ PLC ยี่ห้อ
| PLC รุ่น | Scan Time ปกติ | Warning Zone | Critical Zone |
|---|---|---|---|
| Mitsubishi FX5U | 1–5 ms | 5–20 ms | >20 ms (ต้องแก้) |
| Mitsubishi FX3U | 2–8 ms | 8–30 ms | >30 ms |
| Siemens S7-1200 | 1–5 ms | 5–15 ms | >15 ms |
| Siemens S7-300 | 3–15 ms | 15–50 ms | >50 ms |
| Omron CP1E/CJ2M | 1–5 ms | 5–20 ms | >20 ms |
วิธีวัด Scan Time จริงด้วย Software
Mitsubishi — GX Works3
- Online → Monitor → PLC Diagnostics
- ดูที่ Scan Time (Current, Min, Max)
- D8010 = Current Scan Time (ms × 0.1)
- D8011 = Min Scan Time, D8012 = Max Scan Time
Siemens — TIA Portal
- Online → Online & Diagnostics → Cycle Time
- ดู Actual Cycle Time และ Maximum Cycle Time
Omron — CX-Programmer
- PLC → Mode → Monitor Mode
- ดูที่ Cycle Time ใน PLC Info
วิธีแก้ Scan Time ช้า Step-by-Step
- ดู Program Structure ก่อน — เปิดดู Ladder ว่ามี Loop ซ้อน Loop ไหม มี FOR/NEXT หรือ WHILE ที่ไม่มี Exit Condition
- ย้าย Code ที่ไม่ต้องทำทุก Scan ไป Interrupt Routine — งานที่ต้องทำทุก 100ms ย้ายไป Fixed Scan Interrupt แทน
- ลด Communication Poll Rate — ถ้ามี HMI หรือ SCADA ที่ Poll ข้อมูลบ่อยมาก ลด Poll Rate ลง
- ใช้ Structured Program แบ่ง Task — แบ่ง Program เป็น Task ที่มี Priority ต่างกัน
- ปรับ Watchdog Time — ถ้า Scan Time สูงเป็นชั่วคราวเพิ่ม Watchdog Timeout แต่แก้สาเหตุจริงด้วย
ควรเรียกผู้เชี่ยวชาญเมื่อไหร่?
- Scan Time สูงและหาต้นเหตุใน Program ไม่ได้
- PLC Watchdog Trip บ่อยและไม่รู้ว่า Code ส่วนไหนทำให้ช้า
- ต้องการ Code Review และ Optimization ทั้ง Program
สรุป
PLC Scan Time ช้าแก้ได้ถ้ารู้ว่า Code ส่วนไหนกินเวลา วัด Scan Time จริงด้วย Software ก่อน แล้วค่อย Optimize ตามสาเหตุ โรงงานในชลบุรีและระยอง Xeniel Automation รับ Program Optimization ออนไซต์ได้ด่วน
Scan Time ช้า? Xeniel รับ Program Optimization ให้
Xeniel Automation รับ PLC Program Audit และ Optimization ทุกยี่ห้อ ออนไซต์ชลบุรีและระยอง
ปรึกษาฟรีทาง LINE โทร 098-965-3845