一、Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。前面已经写过RTU和ASCII的文章,这次写下基于Modbus TCP协议的上位机软件编写。
二、Modbus TCP协议
发送报文格式:ModbusTCP的数据帧可分为两部分:MBAP+PDU
1、MBAP为报文头,长度为7字节,组成如下:
2、帧结构PDU:
PDU由功能码+数据组成。功能码为1字节,数据长度不定,由具体功能决定。
Modbus的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。根据对象的不同,Modbus的功能码有:
例如0x01:读线圈
在从站中读1~2000个连续线圈状态,ON=1,OFF=0
- 请求:MBAP 功能码 起始地址H 起始地址L 数量H 数量L(共12字节)
- 响应:MBAP 功能码 数据长度 数据(一个地址的数据为1位)
- 如:00 01 00 00 00 06 01 01 00 02 00 08 在从站0x01中,读取开始地址为0x0002的线圈数据,读0x0008位
- 回:00 01 00 00 00 04 01 01 01 01数据长度为0x01个字节,数据为0x01,第一个线圈为ON,其余为OFF
三、上位机编写:
界面如下:
源代码较长就不在这里附了,大家可以关注WX公众号“工控学习”,回复“Modbus”,即可获得百度云链接完整代码。
閱讀更多 工控上位機 的文章