สั่ง VFD ผ่าน Modbus — Soft-start + ปรับความเร็วได้
ส่ง Run/Stop bit + ค่าความถี่เป้าหมายให้ VFD ผ่าน Modbus RTU — soft-start ใช้ accel time ของ VFD เอง
หลักการ
แทนที่จะใช้คอนแทคเตอร์สลับเฟส (DOL/Star-Delta) วิธีที่นุ่มนวลและฉลาดกว่าคือ ใช้ VFD (Variable Frequency Drive) ซึ่งเริ่มจากความถี่ 0 Hz แล้วค่อยๆ เพิ่มขึ้นไปตามค่าที่ตั้งไว้ (Soft Start) — ลดกระแสกระชาก, ลด stress ทางกลของระบบ, และปรับความเร็วได้
สถาปัตยกรรม
PLC ─── Modbus RTU (RS485) ───→ VFD ───→ Motor
↑
│
HMI (ปุ่ม Start/Stop, ช่องกรอกความถี่)
PLC เขียนค่า:
- D200 = Run/Stop bit (1 = Run, 0 = Stop) → ส่งไปที่ Control Word ของ VFD
- D201 = Frequency setpoint (×0.01 Hz, เช่น 5000 = 50.00 Hz) → ส่งไปที่ Frequency Reference
PLC อ่านค่า:
- D300 = VFD status (running, fault, ready)
- D301 = Actual frequency
- D302 = Motor current
Soft-start ทำใน PLC หรือ VFD?
ใน VFD ดีกว่า — ทุก VFD มี parameter Acceleration Time (เช่น 5–30 วินาที) ที่คุมความชันของ ramp ใน hardware ตั้งไว้ที่ VFD แล้วใช้ได้เลย ถ้าทำใน PLC ต้อง MOV ค่าเปลี่ยน D201 ทีละ step + Timer = ยุ่งยากและช้ากว่า
ตั้งค่าที่ VFD:
- F0.10 (Accel Time 1) = 10s — ramp up จาก 0 ไป 50 Hz ใน 10 วินาที
- F0.11 (Decel Time 1) = 10s — ramp down ใน 10 วินาที
ลำดับการทำงาน
First scan (M8150)
↓
D201 = 3000 (ความเร็ว default 30 Hz) — ป้องกันค่า 0
↓
HMI กรอก setpoint ใน D201 (เช่น 5000 = 50 Hz)
↓
กด Start (X0) → M0 ติด (self-hold)
↓
D200 = 1 (Run command)
↓
MBUS ส่ง D200, D201 ไป VFD ตามรอบของ Modbus Table
↓
VFD เห็น D200 = 1 → เริ่ม ramp up ตาม Accel Time
↓
Motor หมุนถึง 50 Hz หลัง ~10s
กด Stop (X1) → M0 ดับ → D200 = 0 → VFD ramp down
ทำไมต้องตั้งค่า default ใน first-scan?
ถ้า D201 เป็น 0 ตอนเริ่ม PLC แล้วผู้ใช้กด Start เลย → VFD จะ run ที่ 0 Hz (motor stall) — ไม่ดีต่อระบบ
LD M8150 / MOV K3000 D201 ตั้งค่าตอน first scan ให้เป็น 30.00 Hz
อย่างน้อยจะมีความเร็วเริ่มต้นที่ปลอดภัย
Modbus Table Setup (SamSoar2022)
ก่อน import โปรแกรมนี้ ต้องสร้าง Modbus Table ใน SamSoar2022 ก่อน:
| Index | Slave | FC | Slave Reg | PLC Reg | Length | Mode |
|---|---|---|---|---|---|---|
| 0 | 1 | 06 (Write) | 0x2000 (Control) | D200 | 1 | Loop |
| 1 | 1 | 06 (Write) | 0x2001 (Freq) | D201 | 1 | Loop |
| 2 | 1 | 03 (Read) | 0x3000 (Status) | D300 | 3 | Loop |
(0x2000/0x2001 และ 0x3000 เป็น Hex address ของ VFD ทั่วไป — ดูคู่มือ VFD ของคุณ)
ตั้งชื่อตารางเป็น "VFD" แล้ว trigger mode = Loop (PLC จะส่งทุก ~50ms อัตโนมัติ)
โปรแกรม PLC
I/O Assignment
| Address | Role | Note |
|---|---|---|
| X0 | ปุ่ม Start (NO) | |
| X1 | ปุ่ม Stop (NC) | |
| X2 | VFD Fault input (NC) | ต่อจาก VFD relay output ที่ตั้งให้ ON เมื่อปกติ |
| Y3 | ไฟ Run (สีเขียว) |
Parameters ที่ปรับได้
D200default: 0คำสั่ง Run/Stop — เขียน 1 = Run, 0 = Stop ส่งไป VFD ทุกรอบ Modbus
D201default: 3000 (30.00 Hz)ค่า Frequency setpoint × 0.01 Hz เช่น 5000 = 50.00 Hz, 6000 = 60.00 Hz — HMI เขียนค่านี้ได้
D100 / D101default: Modbus error / indexใช้ตรวจสอบสถานะการสื่อสาร Modbus (D100 = error code, D101 = current poll index)
อุปกรณ์ที่แนะนำ
คำถามที่พบบ่อย
ทำไมไม่ใช้ Soft Starter อย่างเดียว แทนที่จะใช้ VFD?
Soft Starter ลดกระแสกระชากตอนสตาร์ทอย่างเดียว ไม่ปรับความเร็วระหว่างทำงาน VFD ทำได้ทั้งคู่ — soft start + ปรับความเร็ว + ประหยัดไฟ (ปั๊ม/พัดลมที่หรี่ความเร็วได้ประหยัดกำลังตามกฎ cube law) ปัจจุบัน VFD ราคาถูกลงมาก จึงนิยมใช้แทน Soft Starter ในงานใหม่
ค่า D201 มาจากไหน HMI เขียนได้ไหม?
HMI เขียน D201 ได้โดยตรง (เช่น Numeric Display element ที่ HMI ลิงก์ไป D201) ผู้ใช้กรอกตัวเลขเช่น 5000 ก็จะกลายเป็น 50.00 Hz ใส่ Min=0, Max=6000 ที่ HMI เพื่อจำกัดไม่ให้กรอกเกินช่วง
ถ้า Modbus communication ขาด VFD จะทำอะไร?
VFD ส่วนใหญ่มี Communication Timeout setting (เช่น F8.30) ตั้งให้ VFD หยุดเองเมื่อไม่ได้รับคำสั่งภายใน 1–2 วินาที — fail-safe สำคัญเพราะถ้า PLC แฮงค์ VFD ที่กำลัง run อาจวิ่งต่อเรื่อยๆ
Address 0x2000, 0x2001, 0x3000 ใช่ของ VFD ทุกยี่ห้อไหม?
ไม่ใช่ — แต่ละยี่ห้อมี Modbus map ของตัวเอง ดูคู่มือ VFD ของคุณ ตัวอย่าง: ABB ACS580 ใช้ 0x07D6, INVT GD200A ใช้ 0x2000, Schneider ATV320 ใช้ 0x2135 ตัวอย่างนี้ใช้ค่าที่ใกล้เคียงกับ VFD จีนทั่วไป
เอกสารที่เกี่ยวข้อง
วิธีนำเข้าไฟล์ใน SamSoar2022
- ดาวน์โหลดไฟล์
vfd-soft-start.csvจากแท็บ CSV ด้านบน - เปิด SamSoar2022 → สร้างโปรเจกต์ใหม่ (หรือเปิดโปรเจกต์ที่มีอยู่)
- เมนู File → Import → เลือกไฟล์
.csvที่เพิ่งดาวน์โหลด - กด F4 เพื่อ Compile — ตรวจสอบว่าไม่มี error
- ตรวจการต่อสายตามตาราง I/O ด้านบน แล้ว Download โปรแกรมเข้า PLC

