ไลน์บรรจุขวด 5 จังหวะ
สายพานขวด + เซ็นเซอร์จัดตำแหน่ง + บรรจุของเหลว + ปิดฝา + ติดสติ๊กเกอร์ — D200 เก็บ stage 1-5, ใช้ photoeye + timer ข้าม stage
หลักการ
ไลน์บรรจุน้ำดื่มทั่วไปประกอบด้วย 5 stage ตามลำดับ:
- Conveyor In — ดึงขวดเปล่าเข้าสถานี
- Stop & Position — เซ็นเซอร์เห็นขวด → หยุดสายพาน + ดัน stop
- Fill — เปิดวาล์วน้ำ 3 วินาที
- Cap — ดัน mechanism ปิดฝา 1.5 วินาที
- Eject — ปลด stop, สายพานเดินหน้าออก
ลำดับการทำงาน
First scan → D200 = 0 (Idle)
↓
กด Start (X0) → M0 ติด, D200 = 1
↓
┌──────────────────────────────────────────┐
│ Stage 1 (D200=1): Conveyor In │
│ Y1 (motor) ติด │
│ ↓ X1 (bottle sensor) ON → D200 = 2 │
├──────────────────────────────────────────┤
│ Stage 2 (D200=2): Stop & Position │
│ Y1 ดับ, Y2 (stop pin) ติด │
│ ↓ Timer T0 (0.3s settle) → D200 = 3 │
├──────────────────────────────────────────┤
│ Stage 3 (D200=3): Fill │
│ Y3 (water valve) ติด, Timer T1 = 3s │
│ ↓ T1 ครบ → Y3 ดับ → D200 = 4 │
├──────────────────────────────────────────┤
│ Stage 4 (D200=4): Cap │
│ Y4 (cap actuator) ติด, Timer T2 = 1.5s│
│ ↓ T2 ครบ → Y4 ดับ → D200 = 5 │
├──────────────────────────────────────────┤
│ Stage 5 (D200=5): Eject │
│ Y2 ดับ (stop pin retract) │
│ Y1 (motor) ติด │
│ ↓ X2 (exit sensor) ON → D200 = 1 │
└──────────────────────────────────────────┘
↓
นับขวด (CV0 += 1) เมื่อจบ Stage 5
เคล็ดลับการออกแบบ
Settle delay (Stage 2)
หลังหยุดสายพานควรรอ ~0.3 วินาทีให้ขวดนิ่ง ก่อนเริ่ม fill — กันน้ำกระเด็น
Fill time
ใช้ time-based filling ง่ายและถูกที่สุด แต่:
- ระดับน้ำในถังเปลี่ยน → ปริมาณเปลี่ยน
- แม่นยำกว่า: ใช้ flow meter + counter (FC0 += pulse)
- หรือ load cell ใต้ขวด + analog input → MOV ค่ามากกว่าจะหยุด
Stop pin (Y2)
ใช้กระบอกลม solenoid ดันแกนเหล็กบล็อกขวด เมื่อ retract ขวดจะไหลตามสายพานไปต่อ
ขยายเพิ่ม
- Bottle counter (CV0) — นับชิ้นต่อชิฟต์, แสดงบน HMI
- Reject station — ถ้า cap ไม่แน่น (sensor X3) → divert ออกขวดไม่ดี
- Recipe selector — D205 = recipe number, MOV จาก HMI เปลี่ยน fill time/cap pressure
โปรแกรม PLC
I/O Assignment
| Address | Role | Note |
|---|---|---|
| X0 | ปุ่ม Start (NO) | |
| X1 | เซ็นเซอร์ตำแหน่งขวด (NO) | Photoeye ที่จุดบรรจุ |
| X2 | เซ็นเซอร์ปลายทาง (NO) | Photoeye หลังจุดปิดฝา |
| X5 | ปุ่ม Stop (NC) | |
| Y1 | คอนแทคเตอร์มอเตอร์สายพาน | |
| Y2 | Solenoid Stop pin | |
| Y3 | Solenoid วาล์วน้ำ | |
| Y4 | Solenoid กลไกปิดฝา |
Parameters ที่ปรับได้
D200default: 0Stage ปัจจุบัน (0=Idle, 1-5=Running) — แสดงบน HMI
D400default: 0จำนวนขวดในกะนี้ — รีเซ็ตผ่านปุ่ม HMI แยก
TV1 / K30default: 3.0sระยะเวลาบรรจุ — ปรับตาม flow rate × ปริมาตรขวด
TV2 / K15default: 1.5sระยะเวลาปิดฝา — เพิ่มเวลาเพื่อปิดให้แน่นขึ้น
อุปกรณ์ที่แนะนำ
คำถามที่พบบ่อย
ทำไมใช้ time-based filling ไม่ใช้ flow meter?
Time-based ง่ายและถูกที่สุด เหมาะกับงานที่ tolerance ±2-3% ยอมรับได้ ถ้าต้องการแม่นยำกว่านี้ใช้ flow meter (pulse output) ต่อกับ X input + counter — แต่ละ pulse = volume คงที่
ถ้าขวดเล็กกว่าปกติ น้ำจะล้น?
ถ้าใช้ time-based — ใช่ จะล้น ทางแก้: (1) ใช้ recipe (D205 = ขนาดขวด, MOV เปลี่ยน TV1) (2) ใช้ load cell (analog) วัดน้ำหนัก, MOV เกิน setpoint → MOV K3 D200 หยุด fill (3) ใช้ level sensor ในขวด
Y2 stop pin ติดต่อเนื่อง 3 stages ไม่เปลี่ยน — ทำไมต้อง OUT 3 ครั้ง?
OUT เป็น non-latching coil — ถ้าไม่มี LD เป็นเงื่อนไขมัน OFF ตอน scan ถัดไป สามารถ refactor เป็น 1 rung โดยใช้ "D200 ระหว่าง 2 ถึง 4" — แต่ SamSoar ไม่มี LDW>= แบบ 'between' ตรงๆ ใช้ OR ของ LDW= K2/K3/K4 หรือใช้ SET/RST ก็ได้ — ตัวอย่างนี้เลือก OUT ซ้ำเพื่ออ่านง่าย
เอกสารที่เกี่ยวข้อง
วิธีนำเข้าไฟล์ใน SamSoar2022
- ดาวน์โหลดไฟล์
bottle-filling-line.csvจากแท็บ CSV ด้านบน - เปิด SamSoar2022 → สร้างโปรเจกต์ใหม่ (หรือเปิดโปรเจกต์ที่มีอยู่)
- เมนู File → Import → เลือกไฟล์
.csvที่เพิ่งดาวน์โหลด - กด F4 เพื่อ Compile — ตรวจสอบว่าไม่มี error
- ตรวจการต่อสายตามตาราง I/O ด้านบน แล้ว Download โปรแกรมเข้า PLC
