Modbus คือโปรโตคอลการสื่อสารที่เก่าแก่และแพร่หลายที่สุดในโลก Automation คิดค้นปี 1979 มี 2 แบบหลักคือ Modbus RTU (RS-485) และ Modbus TCP (LAN)
Data Model ของ Modbus
- Coil (0x): ข้อมูล 1 Bit อ่าน/เขียนได้ เช่น สถานะ Output
- Discrete Input (1x): 1 Bit อ่านอย่างเดียว เช่น สถานะ Sensor
- Input Register (3x): 16 Bit อ่านอย่างเดียว เช่น ค่าอุณหภูมิ
- Holding Register (4x): 16 Bit อ่าน/เขียนได้ เช่น Setpoint
ตัวอย่างการอ่านค่าด้วย Python (pymodbus)
from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('192.168.1.10', port=502)
client.connect()
result = client.read_holding_registers(0, 10)
print(result.registers)ทำไม Modbus TCP ถึงนิยมใช้ใน SCADA?
เพราะเป็น Open Standard ไม่มีค่า License และ PLC เกือบทุกยี่ห้อรองรับ ทำให้เชื่อมต่อข้ามแบรนด์ได้ง่าย ไม่ว่าจะเป็น Mitsubishi, Siemens หรือ Omron
ปรึกษาวิศวกรผู้เชี่ยวชาญได้ฟรี
ทีม Xeniel Automation เข้าหน้างานด่วนได้ในพื้นที่ชลบุรี ระยอง ฉะเชิงเทรา
ปรึกษาฟรีทาง LINE โทร 098-965-3845Function Code ที่ใช้บ่อยใน Modbus
| FC | ชื่อ | อ่าน/เขียน | ข้อมูลที่เข้าถึง |
|---|---|---|---|
| FC01 | Read Coils | อ่าน | Coils (Bit) หลายตัว |
| FC02 | Read Discrete Inputs | อ่าน | Digital Input (Read-only) |
| FC03 | Read Holding Registers | อ่าน | Register 16 Bit (R/W) |
| FC04 | Read Input Registers | อ่าน | Register 16 Bit (Read-only) |
| FC05 | Write Single Coil | เขียน | Coil 1 ตัว |
| FC06 | Write Single Register | เขียน | Register 1 ตัว |
| FC15 | Write Multiple Coils | เขียน | Coil หลายตัว |
| FC16 | Write Multiple Registers | เขียน | Register หลายตัว |
Modbus TCP vs Modbus RTU ต่างกันอย่างไร?
| ปัจจัย | Modbus TCP | Modbus RTU |
|---|---|---|
| Media | Ethernet (RJ45) | RS-485 (Serial) |
| Port | TCP Port 502 | COM Port |
| Speed | 100 Mbps+ | 9.6–115.2 Kbps |
| Max Distance | 100m (Cat5e), ไม่จำกัดด้วย Switch | 1,200m |
| Multiple Master | ✅ หลาย Client ต่อ Server ได้ | ❌ 1 Master เท่านั้น |
| Unit ID | Unit ID (01–247) | Slave Address (01–247) |
วิธี Enable Modbus TCP บน PLC แต่ละยี่ห้อ
Mitsubishi FX5U — GX Works3
- Navigation → Parameter → FX5UCPU → Module Parameter → Built-in Ethernet Port
- เปิดใช้ Modbus TCP Server → ตั้ง Port 502
- ตั้ง IP Address ของ FX5U
Siemens S7-1200 — TIA Portal
- เพิ่ม MB_SERVER Instruction ใน OB1
- ตั้ง Port 502 และ MB_HOLD_REG (DB ที่ใช้เก็บ Register)
Omron NJ/NX — Sysmac Studio
- Network Configuration → EtherNet/IP Port → Modbus TCP Slave
Troubleshoot Modbus TCP ที่พบบ่อย
- Connection Refused — Port 502 ไม่ได้เปิด หรือ Firewall Block
- Exception Code 01 — Function Code ไม่รองรับ
- Exception Code 02 — Address ที่ขอไม่มีใน PLC
- Exception Code 03 — Count ที่ขออ่านมากเกินไป
- Timeout — PLC ตอบช้า หรือ Network มี Latency สูง
ควรเรียกผู้เชี่ยวชาญเมื่อไหร่?
- Connect แล้วแต่อ่านค่าผิดพลาด ไม่รู้ว่า Register Map ใน PLC เป็นอย่างไร
- ต้องการ SCADA ที่ Connect PLC หลายยี่ห้อผ่าน Modbus
- ต้องการ Enable Modbus บน PLC แต่ไม่มีซอฟต์แวร์
สรุป
Modbus TCP เป็น Protocol ที่ง่ายที่สุด เรียนรู้ได้เร็วที่สุด และ Compatible กับ PLC เกือบทุกยี่ห้อ เป็น Protocol แรกที่แนะนำสำหรับโรงงานที่ต้องการเริ่ม SCADA Xeniel Automation รับ Modbus TCP Setup และ Integration สำหรับโรงงานในชลบุรีและระยอง
Modbus TCP Setup ไม่ได้? ปรึกษา Xeniel ฟรี
Xeniel Automation รับ Modbus TCP Setup, SCADA Integration, OPC UA สำหรับ PLC ทุกยี่ห้อ ออนไซต์ชลบุรีและระยอง
ปรึกษาฟรีทาง LINE โทร 098-965-3845