Advanced
13 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)

ขั้นตอน 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

ทำไม 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 ปล่อยจริง

ลำดับการทำงาน

  1. อินพุต
    First scan (M8150)
    PLC เพิ่งเปิดเครื่อง — เข้าสู่ขั้นตอนตั้งค่าเริ่มต้น
  2. รีเซ็ต
    M0 = OFF, M99 = OFF
    System Enable ปิดไว้ (ต้อง reset ด้วยมือเท่านั้น) และล้าง Fault flag
    เริ่มเฝ้าสถานะ 2 channel ทุก scan
  3. เงื่อนไข
    X20 = X21 ?
    ทั้งคู่ ON หรือทั้งคู่ OFF = สถานะตรงกัน → Fault flag M99 ปกติ
    ถ้า X20 ≠ X21 นานกว่า 100ms →
  4. ประมวลผล
    X20 ≠ X21 > 100ms → SET M99, M0 OFF
    ตรวจพบ discrepancy (สายขาด/contact เสียข้างเดียว) → ตั้ง fault แล้วบังคับหยุดเครื่อง
    ถ้า X20 = X21 ตรงกันตลอด จะข้ามขั้นนี้ ไม่มี fault
    รอผู้ดูแลกดปุ่ม Reset ด้วยมือ
  5. รีเซ็ต
    Reset (X22)↑ + X20·X21 ON + no fault → SET M0, RST M99
    ขอบขาขึ้นของปุ่ม Reset เมื่อทั้ง 2 channel กลับมา ON และไม่มี fault → เปิดระบบ + ล้าง fault

โปรแกรม 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 — RST เคลียร์ระบบ (M0) และ fault (M99) พร้อมกัน แตกขนานจากคอนแทค M8150 ตัวเดียว
M8150RSTM0RSTM99
N1ตรวจจับสถานะ Channel
ทั้ง 2 channel ปกติ (X20 AND X21) — เงื่อนไข safe เบื้องต้น
X20X21M10
X20 OFF แตกขนาน 2 กรณี — กับ X21 OFF → กด E-stop ปกติ (M11), กับ X21 ON → discrepancy channel 1 (M12)
X20X21M11X21M12
ตรวจพบ 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