E-Stop 2 ช่องสัญญาณ พร้อมตรวจสอบไขว้ — Category 3/4
E-stop ใช้ 2 NC contact ขนานกัน — ทั้งคู่ต้องเปลี่ยนสถานะภายใน 100ms ไม่งั้นถือว่ามีฝ่ายใดฝ่ายหนึ่งเสีย → trigger fault
หลักการ
Dual-channel หรือ 2-channel E-stop เป็นมาตรฐาน safety category 3/4 ตาม ISO 13849-1 ใช้ 2 NC contact แยกกันใน E-stop button:
E-stop Button (1 ตัว, 2 contact)
│
├─[NC Channel 1]──→ X20
└─[NC Channel 2]──→ X21
ภายใต้ปกติ: X20 ON และ X21 ON (NC = ปิดวงจร) ตอนกด: X20 OFF และ X21 OFF ทั้งคู่ภายใน 100 ms
ทำไมต้อง 2 channel?
Single-channel (1 contact):
- Wire ขาดที่ contact → vector ON ค้าง → กด E-stop ไม่ทำงาน → คนเจ็บ
Dual-channel + cross-monitoring:
- Wire 1 ขาด → X20 OFF (ตลอดเวลา) แต่ X21 ยัง ON
- ระบบตรวจ "X20 ≠ X21 นานกว่า 100ms" → fault flag → หยุดเครื่อง
- คนเห็น fault indicator → ตรวจหาปัญหา → ซ่อม
- Single fault ตรวจได้เสมอ = หลักของ Cat 3 (ISO 13849-1)
ขั้นตอน Reset
หลังกด E-stop / fault:
- Release E-stop (ดึงหรือบิดให้ปลด)
- X20 และ X21 กลับมา ON ทั้งคู่
- กด Reset button (X22) — physical, ห้าม auto-reset (ตามมาตรฐาน)
- ระบบ verify ทุก channel + ไม่มี discrepancy → re-enable
ทำไม Reset ต้อง physical (ไม่ใช่ auto)?
ถ้า E-stop ถูกกดเพราะ "คนล้มเข้าเครื่อง" — auto-reset อาจทำให้เครื่องวิ่งซ้ำ ทันทีหลัง E-stop ดับ — คนยังไม่ได้ออกจาก danger zone
Reset แบบ manual บังคับให้:
- ผู้ดูแลเดินไปกดที่ panel (เห็นรอบเครื่อง)
- ตรวจให้แน่ใจว่าปลอดภัย
- กดด้วยความตั้งใจ — ไม่ใช่อุบัติเหตุ
ตามมาตรฐาน ISO 13850 ห้าม auto-reset E-stop เด็ดขาด
ความปลอดภัย
⚠ คำเตือน — ตัวอย่างนี้ใช้ standard PLC ซึ่ง ไม่ใช่ certified safety device สำหรับ application ที่ต้องการ Cat 3, Cat 4, PLd, PLe ต้องใช้ Safety Relay (Pilz PNOZ, Allen-Bradley GuardMaster) หรือ Safety PLC (Siemens F-CPU)
ตัวอย่างนี้เพื่อการเรียนรู้ logic dual-channel เท่านั้น
ขยายเพิ่ม
- Multiple E-stops — ต่อ X20-X21 (button 1), X23-X24 (button 2) ใน series
- Reset bypass for setup mode — key-switch + light tower
- OSSD output — ส่ง 2 outputs (Y0, Y1) ที่ pulse สลับกัน เพื่อตรวจสาย
- External Device Monitoring (EDM) — feedback จาก contactor เช็คว่า contactor ปล่อยจริง
ลำดับการทำงาน
- อินพุตFirst scan (M8150)PLC เพิ่งเปิดเครื่อง — เข้าสู่ขั้นตอนตั้งค่าเริ่มต้น
- รีเซ็ตM0 = OFF, M99 = OFFSystem Enable ปิดไว้ (ต้อง reset ด้วยมือเท่านั้น) และล้าง Fault flagเริ่มเฝ้าสถานะ 2 channel ทุก scan
- เงื่อนไขX20 = X21 ?ทั้งคู่ ON หรือทั้งคู่ OFF = สถานะตรงกัน → Fault flag M99 ปกติถ้า X20 ≠ X21 นานกว่า 100ms →
- ประมวลผลX20 ≠ X21 > 100ms → SET M99, M0 OFFตรวจพบ discrepancy (สายขาด/contact เสียข้างเดียว) → ตั้ง fault แล้วบังคับหยุดเครื่องถ้า X20 = X21 ตรงกันตลอด จะข้ามขั้นนี้ ไม่มี faultรอผู้ดูแลกดปุ่ม Reset ด้วยมือ
- รีเซ็ตReset (X22)↑ + X20·X21 ON + no fault → SET M0, RST M99ขอบขาขึ้นของปุ่ม Reset เมื่อทั้ง 2 channel กลับมา ON และไม่มี fault → เปิดระบบ + ล้าง fault
โปรแกรม PLC
I/O Assignment
| Address | Role | Note |
|---|---|---|
| X20 | E-stop channel 1 (NC) | ปิดวงจรปกติ, เปิดเมื่อกด E-stop |
| X21 | E-stop channel 2 (NC) | ตรวจคู่กับ X20 — ต้องสถานะเดียวกันเสมอ |
| X22 | ปุ่ม Reset (NO) | ปุ่ม physical — ต้อง reset ด้วยมือเท่านั้น |
| Y0 | Machine enable (safety output) | |
| Y3 | ไฟ Fault (สีแดง) | |
| Y4 | ไฟ Ready (สีเขียว) | |
| Y5 | ไฟกระพริบขอ Reset (สีเหลือง) |
Parameters ที่ปรับได้
M0default: 0System enable — ต้อง SET ผ่านปุ่ม Reset เมื่อเงื่อนไขครบเท่านั้น
M99default: 0Cross-monitoring fault — ทั้ง 2 channel ไม่ตรงกันเกิน 100ms
M10default: 0ทั้ง 2 channel ปกติ (X20 AND X21)
M11default: 0กด E-stop แล้ว (ทั้ง 2 channel ดับ)
M12 / M13default: 0Flag discrepancy ของ channel (ติดข้างเดียว, อีกข้างดับ)
TV0 / K1default: 100msTimeout cross-monitoring — ตามมาตรฐาน ISO 13849: ปกติ 100ms-500ms
อุปกรณ์ที่แนะนำ
คำถามที่พบบ่อย
ใช้ตัวอย่างนี้แทน Safety Relay ได้ไหม?
**ไม่ได้** — Standard PLC ไม่ certified ตาม ISO 13849-1 จึงใช้แทน Safety Relay (Pilz, ABB Jokab, Schneider Preventa) ในงานจริงไม่ได้ ตัวอย่างนี้เพื่อ: (1) เข้าใจ logic dual-channel (2) ทำ ladder ของ secondary monitoring layer (เพิ่มเติม Safety Relay) (3) Logging fault history เพื่อ maintenance
Reset ต่างกับ Start ยังไง?
**Reset** = ปลด fault state, ไม่ได้สั่งให้เครื่องวิ่ง (M0 ถูกตั้งให้ system enabled) **Start** (อีก rung) = สั่งให้กระบวนการ start (เช่น มอเตอร์เริ่มหมุน) — ต้องมี M0 ON เป็นเงื่อนไข ต่อให้กด Reset แล้ว เครื่องก็ยังหยุดอยู่จนกว่าจะกด Start อีก — ป้องกัน auto-restart
100ms timeout เลือกมาจากไหน?
ตามมาตรฐาน ISO 13849-1 Annex C: 'discrepancy time should be reasonably short, typical values 100-500 ms' 100ms = บีบให้ contact response ดีพอ และ noise ผ่านไป (debounce) สั้นเกินไปจะมี false fault เยอะ; ยาวเกินไปจะตรวจ failure ช้าเกิน
Y5 (Reset request) ทำไม ANDI M0 ANDI M99?
ต้องการ flash เฉพาะเมื่อ: (1) Channels OK (M10) (2) ระบบยัง disable (M0=0) (3) ไม่มี fault (M99=0) แสดงสถานะ 'พร้อม reset แล้ว — กด Reset ได้' ถ้า M0 ON อยู่แล้วก็ไม่ต้อง flash ถ้า M99 ON ก็แสดง Y3 (Fault) แทน
วิธีนำเข้าไฟล์ใน SamSoar2022
- ดาวน์โหลดไฟล์
dual-channel-estop.csvจากแท็บ CSV ด้านบน - เปิด SamSoar2022 → สร้างโปรเจกต์ใหม่ (หรือเปิดโปรเจกต์ที่มีอยู่)
- เมนู File → Import → เลือกไฟล์
.csvที่เพิ่งดาวน์โหลด - กด F4 เพื่อ Compile — ตรวจสอบว่าไม่มี error
- ตรวจการต่อสายตามตาราง I/O ด้านบน แล้ว Download โปรแกรมเข้า PLC
