ข้ามไปเนื้อหา
XENIEL AUTOMATION · หนองอิรุณ บ้านบึง ชลบุรี098-965-3845   /   LINE: xeniel.24 ↗
XENIEL AUTOMATION
Smart Factory

Modbus TCP คืออะไร? พื้นฐานการสื่อสาร PLC

PLC Engineer | Xeniel Automation  |  เมษายน 2026
Modbus TCP คืออะไร? โปรโตคอลพื้นฐานที่ PLC ทุกยี่ห้อต้องรู้จัก

ภาพประกอบบทความ ไม่ใช่หลักฐานผลการซ่อมหรือโครงการลูกค้า

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

Function Code ที่ใช้บ่อยใน Modbus

FCชื่ออ่าน/เขียนข้อมูลที่เข้าถึง
FC01Read Coilsอ่านCoils (Bit) หลายตัว
FC02Read Discrete Inputsอ่านDigital Input (Read-only)
FC03Read Holding Registersอ่านRegister 16 Bit (R/W)
FC04Read Input Registersอ่านRegister 16 Bit (Read-only)
FC05Write Single CoilเขียนCoil 1 ตัว
FC06Write Single RegisterเขียนRegister 1 ตัว
FC15Write Multiple CoilsเขียนCoil หลายตัว
FC16Write Multiple RegistersเขียนRegister หลายตัว

Modbus TCP vs Modbus RTU ต่างกันอย่างไร?

ปัจจัยModbus TCPModbus RTU
MediaEthernet (RJ45)RS-485 (Serial)
PortTCP Port 502COM Port
Speed100 Mbps+9.6–115.2 Kbps
Max Distance100m (Cat5e), ไม่จำกัดด้วย Switch1,200m
Multiple Master✅ หลาย Client ต่อ Server ได้❌ 1 Master เท่านั้น
Unit IDUnit ID (01–247)Slave Address (01–247)

วิธี Enable Modbus TCP บน PLC แต่ละยี่ห้อ

Mitsubishi FX5U — GX Works3

  1. Navigation → Parameter → FX5UCPU → Module Parameter → Built-in Ethernet Port
  2. เปิดใช้ Modbus TCP Server → ตั้ง Port 502
  3. ตั้ง IP Address ของ FX5U

Siemens S7-1200 — TIA Portal

  1. เพิ่ม MB_SERVER Instruction ใน OB1
  2. ตั้ง Port 502 และ MB_HOLD_REG (DB ที่ใช้เก็บ Register)

Omron NJ/NX — Sysmac Studio

  1. 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 แต่ไม่มีซอฟต์แวร์

สรุป

บทความที่เกี่ยวข้อง

ทำ SCADA ด้วย Python PLC Communication Error SCADA คืออะไร?

ค้นหางานที่ต้องการ

เปิดตัวเลือกบริการทั้งหมด →