การควบคุมตามลำดับ Sequence Control
เรียนรู้ Sequence Control ใน PLC การควบคุมระบบอัตโนมัติตามลำดับด้วย State Machine พร้อมตัวอย่าง Ladder Program ควบคุมกระบอกลม Timer และการเขียนโปรแกรม
อัพเดทล่าสุด: 31/1/2569
ราคาชุดอุปกรณ์
บทนำ
Sequence Control คือการควบคุมการทำงานตามลำดับของระบบอัตโนมัติ โดยใช้แนวคิดของ State Machine ในการจัดการสถานะ (State) ต่างๆ ของเครื่องจักร ทำให้สามารถสร้างระบบที่ทำงานซ้ำๆ ได้อย่างมีประสิทธิภาพ
หลักการของ Sequence Control
การแบ่งขั้นตอนการทำงาน
การออกแบบ Sequence Control เริ่มต้นจาก:
- วิเคราะห์กระบวนการ - แยกย่อยขั้นตอนการทำงานให้เล็กที่สุด
- กำหนดสถานะ (State) - ใช้ตัวแปร S (State) แทน M (Memory) เพื่อความชัดเจน
- กำหนดเงื่อนไขเปลี่ยนสถานะ - ระบุเงื่อนไขที่ทำให้เปลี่ยนจากสถานะหนึ่งไปอีกสถานะ
ตัวอย่างการทำงานของเครื่องตัดชิ้นงาน
- สถานะ 1: ปล่อยชิ้นงานเข้ามา
- สถานะ 2: หยุดปล่อยชิ้นงาน
- สถานะ 3: รอให้มีดตัดและยกขึ้น
- วนกลับสถานะ 1: เริ่มรอบใหม่
โจทย์ตัวอย่าง: ระบบควบคุมกระบอกลม
ข้อกำหนด
- กดปุ่ม Start (M100) เพื่อเริ่มระบบ
- กระบอกลม (M120) จะ ON เป็นเวลา 3.5 วินาที
- จากนั้น OFF เป็นเวลา 2.0 วินาที
- ทำซ้ำจนกว่าจะกดปุ่ม Stop (M110)
- ผู้ใช้สามารถปรับเวลา ON/OFF ได้
การกำหนดค่าเริ่มต้น
ladder
// เมื่อ PLC เปิดครั้งแรก
LD M8150
MOVE K35 D100 // Delay ON = 3.5 วินาที (35 x 0.1s)
MOVE K20 D102 // Delay OFF = 2.0 วินาที (20 x 0.1s)
การเขียน Ladder Program
1. การเริ่มต้นระบบ
ladder
// เริ่มต้นเข้าสถานะ S1
LD M100 // Start Button
LDI M110 // Stop Button (NC)
LDI S2 // ป้องกันการทับซ้อนของ State
SET S1 // เข้าสถานะ 1
2. สถานะ S1 - กระบอกลม ON
ladder
// S1: Cylinder ON
LD S1
TMR T10 D100 // Timer ON ตามค่าที่กำหนด
// เมื่อครบเวลา เปลี่ยนเป็น S2
LD T10
RST S1 K1 // Reset S1
SET S2 // เข้าสถานะ 2
3. สถานะ S2 - กระบอกลม OFF
ladder
// S2: Cylinder OFF
LD S2
TMR T11 D102 // Timer OFF ตามค่าที่กำหนด
// เมื่อครบเวลา กลับไป S1
LD T11
RST S2 K2 // Reset S1 และ S2
SET S1 // กลับเข้าสถานะ 1
4. การควบคุม Output
ladder
// กระบอกลม ON เมื่ออยู่ในสถานะ S1
LD S1
OUT M120
// กระบอกลม OFF เมื่ออยู่ในสถานะ S2
LD S2
LDI // ใช้ NC contact
OUT M120 // M120 จะ OFF
เคล็ดลับการเขียน State Machine
การป้องกันปัญหาทับซ้อน
- ใช้ Interlock: เพิ่ม
LDI S2ในเงื่อนไข Start เพื่อป้องกันการทับซ้อนของ State - Reset หลายตัว: ใช้
RST S1 K2เพื่อ Reset ทั้ง S1 และ S2 พร้อมกัน - Stop Priority: เพิ่ม
LDI M110ในทุกจุดเริ่มต้น
การออกแบบที่ดี
- ใช้ตัวแปร S แทน M สำหรับ State เพื่อความชัดเจน
- Comment ทุก State ระบุหน้าที่ของแต่ละสถานะ
- กำหนดค่าผ่าน Data Register เพื่อให้ปรับแต่งได้ง่าย
- ทดสอบทุกสถานการณ์ รวมถึงการกดปุ่มค้างไว้
การแก้ปัญหาที่พบบ่อย
ปัญหาการทับซ้อนของ State
อาการ: State หลายตัวติดพร้อมกัน
สาเหตุ: ไม่มี Interlock ป้องกันการทับซ้อน
วิธีแก้: เพิ่ม LDI ของ State อื่นๆ ในเงื่อนไข
ปัญหาไม่สามารถหยุดได้
อาการ: กด Stop แล้วระบบยังทำงาน
สาเหตุ: ไม่มี Stop Button ในเงื่อนไขเริ่มต้น
วิธีแก้: เพิ่ม LDI M110 ในทุกจุดที่มีการ SET State
ปัญหา Timer ไม่ Reset
อาการ: เวลาทำงานไม่ถูกต้อง
สาเหตุ: Timer ไม่ได้ Reset เมื่อออกจาก State
วิธีแก้: ใช้ RST Timer เมื่อเปลี่ยน State
การพัฒนาต่อยอด
Pattern นี้สามารถขยายได้โดย:
- เพิ่ม State: เพิ่มสถานะใหม่ตามความต้องการ
- Counter รอบการทำงาน: นับจำนวนรอบที่ทำงาน
- การแสดงผลสถานะ: เชื่อมต่อ HMI แสดงสถานะปัจจุบัน
- Alarm System: เพิ่มการตรวจจับข้อผิดพลาด
สรุป
Sequence Control เป็นเทคนิคสำคัญในการสร้างระบบอัตโนมัติที่ทำงานตามลำดับ โดยใช้แนวคิด State Machine ช่วยให้การเขียนโปรแกรมมีโครงสร้างชัดเจน ง่ายต่อการดูแลรักษา และสามารถขยายความสามารถได้ในอนาคต การใช้ตัวแปร S สำหรับ State และการเขียน Interlock ที่ดีจะช่วยป้องกันปัญหาที่อาจเกิดขึ้นในระหว่างการทำงาน
ควรอ่านก่อน:
มีคำถาม? ติดต่อทีมงาน
