Modbus TCP协议及上位机软件编写

一、Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。前面已经写过RTU和ASCII的文章,这次写下基于Modbus TCP协议的上位机软件编写。

二、Modbus TCP协议

发送报文格式:ModbusTCP的数据帧可分为两部分:MBAP+PDU

1、MBAP为报文头,长度为7字节,组成如下:

Modbus TCP协议及上位机软件编写

2、帧结构PDU:

PDU由功能码+数据组成。功能码为1字节,数据长度不定,由具体功能决定。

Modbus的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。根据对象的不同,Modbus的功能码有:


Modbus TCP协议及上位机软件编写

例如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

三、上位机编写:

界面如下:

Modbus TCP协议及上位机软件编写

源代码较长就不在这里附了,大家可以关注WX公众号“工控学习”,回复“Modbus”,即可获得百度云链接完整代码。


分享到:


相關文章: