Advanced
18 rungs
7 I/O

Light Curtain พร้อม Muting — บายพาสเฉพาะตอนของส่งผ่าน

Light Curtain with Muting (Bypass for Material Pass-Through)

Light curtain ที่จะ bypass อัตโนมัติเมื่อ muting sensor ทั้ง 2 ตัวเห็นสินค้า — ป้องกันคนได้ แต่ยอมให้ของไหลผ่านอัตโนมัติ

หลักการ

ในเครื่องอัตโนมัติที่มี infeed/outfeed (สายพานเข้า-ออก) ผู้ใช้ต้องการ:

  • ✓ Light curtain หยุดเครื่องถ้าคนยื่นมือเข้า
  • ✗ Light curtain ไม่หยุดถ้าเป็นกล่องสินค้าที่กำลังไหลผ่าน

Muting = บายพาส (mute) safety output ชั่วคราวเมื่อระบบมั่นใจว่าสิ่งที่ ตัด beam คือ "ของ" ไม่ใช่ "คน"

Anatomy ของ Muting

ใช้ muting sensors 2 ตัว (M1, M2) ด้านหน้าและด้านหลัง light curtain:

       ┌─────────────────────┐
       │   Light Curtain     │
       │  (X10 = OK if clear)│
       └─────────────────────┘
            ↑          ↑
        ───[M1]──────[M2]───  ← muting sensors
            ↑          ↑
            │          │
       [box →]    [box →]  (สายพาน)

Logic ของ muting:

  1. กล่องเข้ามา → M1 (X11) ON
  2. กล่องเดินต่อ → M1 ยัง ON, M2 (X12) ON ← ทั้งคู่ ON พร้อมกัน
  3. ระหว่างนี้ → safety output ถูก mute (light curtain ตัด beam ก็ไม่หยุดเครื่อง)
  4. กล่องผ่านพ้น light curtain → M1 OFF, M2 ยัง ON
  5. กล่องผ่านสุด → M2 OFF → muting end

Muting Validation Rules (มาตรฐาน ISO 13849)

ป้องกันการ "หลอก mute" — แค่ M1+M2 ไม่พอ ต้อง:

  1. ลำดับถูก — M1 ON ก่อน M2 (สำหรับทิศ → flow)
  2. เวลาเริ่มต้น ≤ 4s — M1 และ M2 ต้อง ON ภายใน 4 วินาทีของกัน
  3. Total mute time ≤ 60s — ป้องกันคนเอากระดาษบังเซ็นเซอร์เพื่อ mute ค้าง
  4. Reset on light curtain trip — ถ้า light curtain ตรวจคนระหว่าง mute → fault flag, ต้อง physical reset

ตัวอย่างนี้ implement rule 1, 2, 3 (rule 4 ใน rung แยก)

Logic Flow

First scan
  ↓
Safety OK = TRUE (M0 = ON ตอนเริ่ม)
  ↓
Loop:
  Light curtain X10 = ON (clear) AND ไม่อยู่ใน muting → safe
  Light curtain X10 = OFF (blocked) AND muting active → safe (bypass)
  Light curtain X10 = OFF AND ไม่อยู่ใน muting → STOP

Muting state machine:
  Idle → Stage 1 (M1 only)
       → Stage 2 (M1 + M2 both ON)  ← muting active!
       → Stage 3 (M2 only, M1 off)
       → Idle (M2 off)

ลำดับการทำงาน (Detail)

1. กล่องผ่าน M1 (X11)↑
   D200 = 1 (Stage 1 begins)
   T0 (4s window) เริ่มนับ

2. กล่องผ่าน M2 (X12)↑ (ภายใน 4s)
   D200 = 2 (Muting active!)
   M0 (Mute flag) ติด
   T1 (60s max) เริ่มนับ

3. M0 ติด = bypass light curtain (X10 ไม่มีผล)

4. กล่องผ่าน M1 (X11)↓
   D200 = 3 (Stage 3 — เหลือแค่ M2)

5. กล่องผ่าน M2 (X12)↓
   D200 = 0 (Idle), M0 ดับ

6. กลับไป safety ปกติ

Fault Conditions

  • T0 fires (4s) — M1 ON แต่ M2 ยังไม่ ON → fault, light curtain ทำงานปกติ
  • T1 fires (60s) — muting ค้างเกิน 60s → fault, ต้อง reset
  • X10 trips ระหว่าง muting — มีคนยื่นมือเข้ามา → fault, emergency stop

⚠ ความปลอดภัย — ตัวอย่างนี้เพื่อการศึกษา ในงานจริงต้องใช้ safety relay หรือ safety PLC (Pilz, Siemens F-PLC) ที่ certified ตาม ISO 13849-1 standard PLC ไม่เพียงพอสำหรับ functional safety ที่ระดับ Cat 3 หรือ PLd

ขยายเพิ่ม

  • Bidirectional muting — รองรับ flow ทั้ง 2 ทาง (เข้าและออก)
  • Multiple muting zones — มี light curtain หลายชุด, mute เฉพาะที่ต้องการ
  • Override key — ผู้ดูแลใส่ key + reset button เพื่อ clear fault
  • Logging — เก็บ mute event ใน D เพื่อ audit trail

โปรแกรม PLC

Light Curtain พร้อม Muting — บายพาสเฉพาะตอนของส่งผ่าน — Light Curtain with Muting (Bypass for Material Pass-Through)
Light curtain ที่จะ bypass อัตโนมัติเมื่อ muting sensor ทั้ง 2 ตัวเห็นสินค้า — ป้องกันคนได้ แต่ยอมให้ของไหลผ่านอัตโนมัติ
N0ตั้งค่าเริ่มต้น Muting
First scan — ตั้ง state ของ muting เริ่มต้นเป็น Idle
M8150MOVK0, D200
N1State Machine ของ Muting
Idle → Stage 1: เซ็นเซอร์ Muting 1 (X11) ขอบขาขึ้นขณะ Idle
X11D200 = K0MOVK1, D200
Timeout Stage 1: รอ 4s ให้ M2 ติดด้วย (T0)
D200 = K1TONTV0, K40
Stage 1 → Stage 2: M2 (X12) ขอบขาขึ้นขณะอยู่ Stage 1 (ภายใน 4s)
X12D200 = K1MOVK2, D200
T0 ทำงาน (M1 ติดข้างเดียวเกิน 4s) → fault, กลับ Idle
T0SETM99
T0 ทำงาน → รีเซ็ต state
T0MOVK0, D200
Stage 2: muting active (D200 = 2) — ตั้ง bypass flag (M0)
D200 = K2M0
Timeout Stage 2: muting นานสุด 60s (T1)
D200 = K2TONTV1, K600
Stage 2 → Stage 3: M1 (X11) ดับ — กล่องกำลังผ่านไป
X11D200 = K2MOVK3, D200
Stage 3 → Idle: M2 (X12) ดับ — กล่องผ่านพ้นเรียบร้อย
X12D200 = K3MOVK0, D200
T1 ทำงาน (mute เกิน 60s) → ตั้ง fault flag
T1SETM99
Stage 3 — เก็บ bypass flag M0 ติดไว้จนกว่า M2 จะดับ
D200 = K3M0
N2Safety Output + Override การ Muting
Safety output: เครื่อง OK (Y0) เมื่อ light curtain ปกติ หรือ muting active
X10M0M99Y0
Light curtain ตัดระหว่าง muting — fault เพิ่ม (override mute)
X10M0SETM99
N3Reset ด้วยมือ
ล้าง Fault ด้วยปุ่ม Reset (X20) ขอบขาขึ้น
X20RSTM99
รีเซ็ต state เมื่อล้าง fault
X20MOVK0, D200
N4ไฟแสดงสถานะ
ไฟ Fault (Y3) — สีแดง
M99Y3
ไฟ Mute (Y4) — สีเหลืองขณะ muting active
M0Y4
Network count: 5, gap: 12
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

I/O Assignment

AddressRoleNote
X10Light curtain OSSD output (NO)ON = ปกติ (ปลอดภัย), OFF = ถูกบล็อก
X11Muting sensor M1 (ฝั่งต้นทาง)
X12Muting sensor M2 (ฝั่งปลายทาง)
X20ปุ่ม Reset (NO)ล้าง fault ด้วยมือ (หลังตรวจสอบหน้างานแล้วเท่านั้น)
Y0Machine enable (safety output)ส่งไป contactor หลัก / safety relay reset input
Y3ไฟ Fault (สีแดง)
Y4ไฟ Mute active (สีเหลือง)ตามมาตรฐาน ISO ต้องมีไฟแสดง mute ให้เห็นชัด

Parameters ที่ปรับได้

D200default: 0

Muting state: 0=Idle, 1=มีแค่ M1, 2=ทั้งคู่ (active mute), 3=มีแค่ M2

M0default: 0

Bypass flag — TRUE ขณะ muting active

M99default: 0

Fault flag — ติดเมื่อ timeout, light curtain ตัดระหว่าง mute, ฯลฯ

TV0 / K40default: 4s

เวลาสูงสุดที่ M1+M2 ต้องติดด้วยกัน (ตาม ISO 13849)

TV1 / K600default: 60s

ระยะเวลา mute สูงสุด — ปรับให้พอดีกับขนาดกล่อง / ความเร็วสายพาน

อุปกรณ์ที่แนะนำ

คำถามที่พบบ่อย

ตัวอย่างนี้ใช้ในโรงงานจริงได้ไหม?

**ไม่ควร** — Standard PLC (รวม Samkoon) ไม่ certified ตาม ISO 13849-1 ระดับ Cat 3 หรือ PLd ที่จำเป็นสำหรับ light curtain muting งานจริงต้องใช้ Safety Relay (Pilz PSEN, Sick UE10) หรือ Safety PLC (Siemens F-CPU, Schneider Modicon Safety) ตัวอย่างนี้เพื่อ **เรียนรู้ logic** เท่านั้น

ทำไมต้องมี muting sensor 2 ตัว?

ป้องกัน 'spoofing' — ถ้าใช้ตัวเดียว ผู้ใช้สามารถวางสิ่งของบล็อกเซ็นเซอร์ค้างไว้เพื่อ mute ตลอดเวลา 2 ตัวต้อง ON ภายใน 4 วินาทีของกัน + ลำดับถูก = ระบบมั่นใจว่าเป็นสินค้าผ่าน ไม่ใช่คน

ทำไม Y0 ใช้ ANDI M99 ไม่ใช่ AND M99?

M99 = fault flag (active high — ON เมื่อ fault) ANDI = NC contact = OFF เมื่อ M99 ON Y0 (machine enable) ต้อง OFF เมื่อ fault → ANDI ถูกต้อง พูดง่ายๆ: 'เปิดเครื่องเมื่อ (light curtain clear OR muting) AND ไม่มี fault'

ทิศทางตรงข้าม (M2 ON ก่อน M1) จะเกิดอะไร?

ตัวอย่างนี้ไม่จัดการ — Stage 1 ไม่เริ่มเพราะ Idle → Stage 1 trigger ที่ X11↑ เท่านั้น สำหรับ bidirectional muting ต้อง mirror logic: เพิ่ม X12↑ ตอน Idle → Stage 1' (reverse), ตามด้วย X11↑ → Stage 2 ปกติ ใช้ rung เพิ่มเติมที่ symmetric กัน

วิธีนำเข้าไฟล์ใน SamSoar2022

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