Advanced
15 rungs
7 I/O

E-Stop 2 ช่องสัญญาณ พร้อมตรวจสอบไขว้ — Category 3/4

Dual-Channel E-Stop with Cross-Monitoring

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:

  1. Release E-stop (ดึงหรือบิดให้ปลด)
  2. X20 และ X21 กลับมา ON ทั้งคู่
  3. กด Reset button (X22) — physical, ห้าม auto-reset (ตามมาตรฐาน)
  4. ระบบ 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

E-Stop 2 ช่องสัญญาณ พร้อมตรวจสอบไขว้ — Category 3/4 — Dual-Channel E-Stop with Cross-Monitoring
E-stop ใช้ 2 NC contact ขนานกัน — ทั้งคู่ต้องเปลี่ยนสถานะภายใน 100ms ไม่งั้นถือว่ามีฝ่ายใดฝ่ายหนึ่งเสีย → trigger fault
N0เริ่มต้น: ปิดระบบ + ล้าง Fault
First scan — ระบบปิด, ไม่มี fault
M8150RSTM0
First scan — ล้าง fault
M8150RSTM99
N1ตรวจจับสถานะ Channel
ทั้ง 2 channel ปกติ (X20 AND X21) — เงื่อนไข safe เบื้องต้น
X20X21M10
ทั้ง 2 channel ดับ (กด E-stop) — หยุดปกติ, ไม่ใช่ fault
X20X21M11
ตรวจพบ discrepancy — X20 OFF, X21 ON (channel 1 น่าจะลัดวงจรหรือสายขาด)
X20X21M12
ตรวจพบ discrepancy — X20 ON, X21 OFF (channel 2 น่าจะลัดวงจรหรือสายขาด)
X20X21M13
N2ตรวจ Cross-Monitoring Fault
Timer ตรวจ discrepancy — ทำงานถ้า M12 หรือ M13 ค้างเกิน 100ms (1 × 100ms)
M12M13TONTV0, K1
T0 ทำงาน → SET Fault flag M99 (cross-monitoring fault)
T0SETM99
บังคับปิด enable เมื่อกด E-stop หรือมี fault
M11M99RSTM0
N3Reset ด้วยมือ
ขอบขาขึ้นของปุ่ม Reset (X22) — ล้าง fault ถ้าทั้ง 2 channel ปกติ
X22M10RSTM99
ปุ่ม Reset — เปิดระบบถ้าเงื่อนไขครบทุกข้อ
X22M10M99SETM0
N4Safety Output + ไฟแสดงสถานะ
Safety output (Y0) — Machine enable ผ่าน M0 (latched safe state)
M0M99Y0
ไฟ Fault (Y3) — สีแดง
M99Y3
ไฟ Ready (Y4) — สีเขียวเมื่อ M0 enable
M0Y4
ไฟกระพริบขอ Reset (Y5) — กระพริบเมื่อ channel ปกติแล้วแต่ยังรอ Reset
M10M0M99M8013Y5
Network count: 5, gap: 12
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

I/O Assignment

AddressRoleNote
X20E-stop channel 1 (NC)ปิดวงจรปกติ, เปิดเมื่อกด E-stop
X21E-stop channel 2 (NC)ตรวจคู่กับ X20 — ต้องสถานะเดียวกันเสมอ
X22ปุ่ม Reset (NO)ปุ่ม physical — ต้อง reset ด้วยมือเท่านั้น
Y0Machine enable (safety output)
Y3ไฟ Fault (สีแดง)
Y4ไฟ Ready (สีเขียว)
Y5ไฟกระพริบขอ Reset (สีเหลือง)

Parameters ที่ปรับได้

M0default: 0

System enable — ต้อง SET ผ่านปุ่ม Reset เมื่อเงื่อนไขครบเท่านั้น

M99default: 0

Cross-monitoring fault — ทั้ง 2 channel ไม่ตรงกันเกิน 100ms

M10default: 0

ทั้ง 2 channel ปกติ (X20 AND X21)

M11default: 0

กด E-stop แล้ว (ทั้ง 2 channel ดับ)

M12 / M13default: 0

Flag discrepancy ของ channel (ติดข้างเดียว, อีกข้างดับ)

TV0 / K1default: 100ms

Timeout 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

  1. ดาวน์โหลดไฟล์ dual-channel-estop.csv จากแท็บ CSV ด้านบน
  2. เปิด SamSoar2022 → สร้างโปรเจกต์ใหม่ (หรือเปิดโปรเจกต์ที่มีอยู่)
  3. เมนู File → Import → เลือกไฟล์ .csv ที่เพิ่งดาวน์โหลด
  4. กด F4 เพื่อ Compile — ตรวจสอบว่าไม่มี error
  5. ตรวจการต่อสายตามตาราง I/O ด้านบน แล้ว Download โปรแกรมเข้า PLC