หน้าแรกคู่มือPLCพื้นฐาน PLC และ SamSoar2022การควบคุมตามลำดับ Sequence Control
PLC
เริ่มต้น
15 นาที

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

เรียนรู้ Sequence Control ใน PLC การควบคุมระบบอัตโนมัติตามลำดับด้วย State Machine พร้อมตัวอย่าง Ladder Program ควบคุมกระบอกลม Timer และการเขียนโปรแกรม

อัพเดทล่าสุด: 31/1/2569

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

฿3,690

บทนำ

Sequence Control คือการควบคุมการทำงานตามลำดับของระบบอัตโนมัติ โดยใช้แนวคิดของ State Machine ในการจัดการสถานะ (State) ต่างๆ ของเครื่องจักร ทำให้สามารถสร้างระบบที่ทำงานซ้ำๆ ได้อย่างมีประสิทธิภาพ

หลักการของ Sequence Control

การแบ่งขั้นตอนการทำงาน

การออกแบบ Sequence Control เริ่มต้นจาก:

  1. วิเคราะห์กระบวนการ - แยกย่อยขั้นตอนการทำงานให้เล็กที่สุด
  2. กำหนดสถานะ (State) - ใช้ตัวแปร S (State) แทน M (Memory) เพื่อความชัดเจน
  3. กำหนดเงื่อนไขเปลี่ยนสถานะ - ระบุเงื่อนไขที่ทำให้เปลี่ยนจากสถานะหนึ่งไปอีกสถานะ

ตัวอย่างการทำงานของเครื่องตัดชิ้นงาน

  • สถานะ 1: ปล่อยชิ้นงานเข้ามา
  • สถานะ 2: หยุดปล่อยชิ้นงาน
  • สถานะ 3: รอให้มีดตัดและยกขึ้น
  • วนกลับสถานะ 1: เริ่มรอบใหม่

โจทย์ตัวอย่าง: ระบบควบคุมกระบอกลม

ข้อกำหนด

  • กดปุ่ม Start (M100) เพื่อเริ่มระบบ
  • กระบอกลม (M120) จะ ON เป็นเวลา 3.5 วินาที
  • จากนั้น OFF เป็นเวลา 2.0 วินาที
  • ทำซ้ำจนกว่าจะกดปุ่ม Stop (M110)
  • ผู้ใช้สามารถปรับเวลา ON/OFF ได้

การกำหนดค่าเริ่มต้น

ตั้งค่าเริ่มต้น — Delay ON/OFF
M8150 = First Scan flag, ติดครั้งเดียวเมื่อ PLC เปิด
N0
D100 = 35 → Delay ON 3.5 วินาที
M8150MOVK35, D100
D102 = 20 → Delay OFF 2.0 วินาที
M8150MOVK20, D102
Network count: 1, gap: 12
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

การเขียน Ladder Program

1. การเริ่มต้นระบบ

Start — เข้าสถานะ S1
M100 Start + M110 Stop (NC) + S2 (NC) → SET S1
N0
Start ON + Stop OFF + ยังไม่อยู่ใน S2 → SET S1
M100M110S2SETS1
Network count: 1, gap: 12
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

2. สถานะ S1 - กระบอกลม ON

S1 — Cylinder ON ตาม Timer
N0
S1 ON → เริ่ม Timer TV10 ด้วยค่าจาก D100
S1TONTV10, D100
T10 ครบ → Reset S1 + SET S2
T10RSTS1, K1
T10SETS2
Network count: 1, gap: 12
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

3. สถานะ S2 - กระบอกลม OFF

S2 — Cylinder OFF ตาม Timer
N0
S2 ON → เริ่ม Timer TV11 ด้วยค่าจาก D102
S2TONTV11, D102
T11 ครบ → Reset S1+S2 (K2 = 2 ตัว)
T11RSTS1, K2
กลับเข้า S1
T11SETS1
Network count: 1, gap: 12
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

4. การควบคุม Output

Output — M120 ตามสถานะ S1/S2
ใน 2-state machine: ใช้ LD S1 หรือ LDI S2 ให้ผลเหมือนกัน
N0
S1 ON → M120 ON (กระบอกลมยื่นออก)
S1M120
Network count: 1, gap: 12
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

เคล็ดลับการเขียน State Machine

การป้องกันปัญหาทับซ้อน

  1. ใช้ Interlock: เพิ่ม LDI S2 ในเงื่อนไข Start เพื่อป้องกันการทับซ้อนของ State
  2. Reset หลายตัว: ใช้ RST S1 K2 เพื่อ Reset ทั้ง S1 และ S2 พร้อมกัน
  3. 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 นี้สามารถขยายได้โดย:

  1. เพิ่ม State: เพิ่มสถานะใหม่ตามความต้องการ
  2. Counter รอบการทำงาน: นับจำนวนรอบที่ทำงาน
  3. การแสดงผลสถานะ: เชื่อมต่อ HMI แสดงสถานะปัจจุบัน
  4. Alarm System: เพิ่มการตรวจจับข้อผิดพลาด

สรุป

Sequence Control เป็นเทคนิคสำคัญในการสร้างระบบอัตโนมัติที่ทำงานตามลำดับ โดยใช้แนวคิด State Machine ช่วยให้การเขียนโปรแกรมมีโครงสร้างชัดเจน ง่ายต่อการดูแลรักษา และสามารถขยายความสามารถได้ในอนาคต การใช้ตัวแปร S สำหรับ State และการเขียน Interlock ที่ดีจะช่วยป้องกันปัญหาที่อาจเกิดขึ้นในระหว่างการทำงาน