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)
Cross-monitoring Logic
ปกติ:
X20 = ON, X21 = ON → safe to run
กดถูกต้อง:
X20 = OFF, X21 = OFF (ภายใน 100ms) → emergency stop, ไม่มี fault
1 channel เสีย:
X20 = OFF, X21 = ON (หรือกลับกัน) นานกว่า 100ms → FAULT
ขั้นตอน Reset
หลังกด E-stop / fault:
- Release E-stop (ดึงหรือบิดให้ปลด)
- X20 และ X21 กลับมา ON ทั้งคู่
- กด Reset button (X22) — physical, ห้าม auto-reset (ตามมาตรฐาน)
- ระบบ verify ทุก channel + ไม่มี discrepancy → re-enable
Logic Flow
First scan
↓
M0 (System Enable) = OFF (must be reset manually)
M99 (Fault) = OFF
↓
ถ้า X20 = X21 (ทั้ง ON หรือทั้ง OFF):
Fault flag M99 ปกติ
ถ้า X20 ≠ X21 นานกว่า 100ms:
SET M99 (fault detected)
M0 OFF (Stop)
↓
ถ้ากด Reset (X22)↑:
ถ้า X20 และ X21 ทั้งคู่ ON และไม่มี fault:
SET M0 (Enable)
RST M99 (clear fault)
ทำไม 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 ปล่อยจริง
โปรแกรม 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
