Modbus MQTT

Modbus MQTT เป็นรูปแบบการสื่อสารระหว่าง Master และ Slave โดยอาศัยโปรโตคอล MQTT เป็นแกนหลักในการสื่อสาร ทำให้สามารถควบคุมอุปกรณ์ผ่านอินเตอร์เน็ตได้

MQTT

Message Queuing Telemetry Transport (MQTT) เป็นโปรโตคอลสำหรับใช้ในสื่อสารข้อมูลระหว่าง Machine to Machine (M2M) ออกแบบมาเพื่อใช้สื่อสารในระบบเครือข่ายที่มีทรัพยากรค่อนข้างจำกัด ใช้งานแบนด์วิธต่ำ โดยด้านผู้ส่งข้อมูลจะเรียกว่า Publish และด้านผู้รับข้อมูลเรียกว่า Subscribe ซึ่งทั้ง 2 ต้องมี MQTT Broker เป็นตัวกลางในการสื่อสาร

Modbus MQTT Message

Field nameDetails
Transaction IDหมายเลขของข้อความที่ถูกกำหนดโดย Master
Master IDหมายเลขประจำตัว Master ซึ่งห้ามซ้ำกับ Master ตัวอื่น
Lengthความยาวของข้อความซึ่งไม่นับรวม Header
Modbus RTUโปรโตคอล Modbus RTU ซึ่งไม่มี CRC

Request

Field name Details
PublisherMaster
SubscriberSlave
Topicmodbus_poll/request/<device-id>
PayloadModbus MQTT message with message of Modbus master

Response

Field nameDetails
PublisherSlave
SubscriberMaster
Topicmodbus_poll/response/<device-id>
Payload Modbus MQTT message with message of Modbus slave

<device-id> = Client ID ของ Slave เพื่อใช้เชื่อมต่อกับ MQTT broker ซึ่งรหัสนี้ต้องห้ามซ้ำกับ Client ตัวอื่น

ตัวอย่างฟังก์ชัน Read Holding Registers

Request (13 bytes)

No.Field namePayload (hex)
0Transaction ID Hi00
1Transaction ID Lo01
2Master ID Hi1A
3Master ID Lo 8F
4Length Hi00
5Length Lo06
6Slave Address01
7Function03
8Starting Address Hi 00
9Starting Address Lo 00
10Quantity of Registers Hi 00
12Quantity of Registers Lo02

Response (15 bytes)

No.Field namePayload (hex)
0Transaction ID Hi00
1Transaction ID Lo01
2Master ID Hi1A
3Master ID Lo 8F
4Length Hi00
5Length Lo09
6Slave Address01
7Function03
8Byte Count 06
9Data Hi00
10Data Lo06
11Data Hi00
12Data Lo05
13Data Hi00
14Data Lo04

ตัวอย่างการประยุกต์ใช้งาน

การสื่อสารกับอุปกรณ์ผ่านอินเตอร์เน็ต

ภาพรวมการทำงาน
BlockDetails
Modbus TCP MasterMaster ซึ่งใช้โปรโตคอล Modbus TCP ในการสื่อสาร ในที่นี้จะใช้เป็นโปรแกรม Modbus Poll
Modbus Onlineโปรแกรมซึ่งถูกติดตั้งในคอมพิวเตอร์เพื่อแปลงการสื่อสารระหว่าง Modbus TCP และ Modbus MQTT
MQTT to RTU converterบอร์ด Wi-Fi เพื่อทำหน้าที่เชื่อมต่ออินเตอร์เน็ตและแปลงการสื่อสารระหว่าง Modbus MQTT และ Modbus RTU
Modbus RTU SlaveSlave ซึ่งใช้โปรโตคอล Modbus RTU ในการสื่อสาร ในที่นี้จะใช้เป็นโปรแกรม Modbus Slave
Share this:

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *