วิธีใช้ Modbus Poll กับ PLC FAs - การเชื่อมต่อและอ่านข้อมูล
ต่อโปรแกรม Modbus Poll กับ PLC Samkoon FAs ผ่าน Modbus TCP/IP (IP 192.168.1.200 Port 2000) แล้วอ่านเขียน Output Y ตามตารางตำแหน่งข้อมูล Modbus ของ Samkoon พร้อมสาเหตุที่ขึ้น Illegal Data Address
ต่อ Modbus Poll กับ Samkoon PLC FAs ผ่าน Modbus TCP/IP ที่ IP 192.168.1.200 Port 2000 (ค่า Default) แล้วอ่านตามตารางตำแหน่งข้อมูล Modbus ของ PLC เช่น Output Y เริ่มที่ 10000 (นับจาก 0 ไม่ติ๊ก PLC Addresses (Base 1) ใน Modbus Poll แล้ว Address 10005 = Y5) ถ้าขึ้น Illegal Data Address แปลว่ากำลังอ่าน Address ที่ไม่ตรงกับตาราง
อัพเดทล่าสุด: 26 ตุลาคม 2569
ขั้นตอนที่ 1: ตั้งค่าการเชื่อมต่อ
- เปิดโปรแกรม Modbus Poll
- ไปที่ Connection → Connect จะใช้การสื่อสารผ่าน RS485 (Serial Port) หรือ TCP/IP ก็ได้ ในคลิปเลือก Modbus TCP/IP
- ใส่ค่าของ PLC ที่ Remote Server
| ช่อง | ค่า Default ของ PLC |
|---|---|
| IP Address | 192.168.1.200 |
| Port | 2000 |
ค่า IP และ Port นี้ไป Config เปลี่ยนเองได้
- กด OK แล้วเปิดหน้าต่างอ่านข้อมูลใหม่ขึ้นมา
ขั้นตอนที่ 2: เข้าใจ Illegal Data Address
หน้าต่างแรกจะขึ้น Illegal Data Address เป็นเรื่องปกติ เพราะกำลังอ่าน Address ที่ไม่ถูกต้องอยู่ ต้องอ้างอิง Address จาก ตารางตำแหน่งข้อมูล Modbus ของผู้ผลิต ซึ่งบอกว่าข้อมูลแต่ละชนิดของ PLC อยู่ที่ Address ไหน
Address นับจาก 0 — ตำแหน่งข้อมูลในตารางของ Samkoon นับจาก 0 ใส่ใน Modbus Poll ได้ตรงๆ เมื่อไม่ติ๊กช่อง PLC Addresses (Base 1) ในหน้า Read/Write Definition (แบบในคลิป) ถ้าติ๊กไว้ต้องบวก 1 ทุก Address เช่น Y0 = 10001
ตัวอย่างบางแถวจากตารางในคลิป
| ข้อมูล | ช่วง | ชนิดข้อมูล | ฟังก์ชันอ่าน | ฟังก์ชันเขียน | ตำแหน่งข้อมูล |
|---|---|---|---|---|---|
| X | 0~127 | bit | 0x01/0x02 | 0x05 | 0 |
| Y | 0~127 | bit | 0x01 | 0x05/0x0f | 10000 |
| M | 0~8191 | bit | 0x01 | 0x05/0x0f | 30000 |
| D | 0~8191 | word | 0x03/0x04 | 0x06/0x10 | 40000 |
ขั้นตอนที่ 3: อ่าน Output Y
ในคลิปลองอ่าน Y ซึ่งเริ่มที่ตำแหน่ง 10000
- ไปที่ Setup → Read/Write Definition
- ตั้งค่า
| ช่อง | ค่าในคลิป |
|---|---|
| Slave ID | 1 |
| Function | 01 Read Coils (0x) |
| Address | 10000 |
| Quantity | 20 (กี่ตัวก็ได้ตามต้องการ) |
- กด OK — Coil ลำดับที่ 5 คือ Address 10005 ตรงกับ Y5 ของ PLC
ขั้นตอนที่ 4: ทดสอบอ่านเขียน
- สั่ง Address 10005 เป็น ON จาก Modbus Poll — Y5 ที่ PLC จะ ON ตาม
- สั่ง Y6 เป็น ON จากฝั่ง PLC — ใน Modbus Poll Address 10006 จะมีค่าเป็น 1
บทถัดไป
PLC Samkoon อ่านค่าเซนเซอร์อุณหภูมิความชื้นผ่าน Modbus RS485/RTU
คำถามที่พบบ่อย
- IP และ Port Default ของ PLC FAs สำหรับ Modbus TCP คืออะไร?
- IP 192.168.1.200 และ Port 2000 ทั้งสองค่าเปลี่ยนเองได้ในการตั้งค่าของ PLC
- ทำไมเปิด Modbus Poll แล้วขึ้น Illegal Data Address?
- เพราะกำลังอ่าน Address ที่ไม่ถูกต้อง เป็นเรื่องปกติ ให้ดูตารางตำแหน่งข้อมูล Modbus ของผู้ผลิตแล้วตั้ง Address ให้ตรงกับข้อมูลที่ต้องการ เช่น Y เริ่มที่ 10000 (นับจาก 0) ถ้าติ๊ก PLC Addresses (Base 1) ไว้ Address ทุกตัวจะเลื่อนไป 1
- จะทดสอบว่าอ่าน/เขียนได้จริงอย่างไร?
- ตั้ง Read/Write Definition เป็น 01 Read Coils, Address 10000, Quantity 20 แล้วเปลี่ยนค่า Address 10005 เป็น ON — Y5 ที่ PLC ต้องติด กลับกันสั่ง Y6 ON จาก PLC แล้ว Address 10006 ใน Modbus Poll ต้องแสดง 1
มีคำถาม? ติดต่อทีมงาน
