什么是Modbus?
Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。
一个ModBus命令包含了打算执行的设备的Modbus地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令)。所有的Modbus命令包含了检查码,以确定到达的命令没有被破坏。基本的ModBus命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。
以上都是参考百度百科的解释说明,还是没有看明白的同学可以先不用管,至少现在我们需要有一个概念,modbus通信中会有两个设备,一个是主机poll端和从机salve端,接下来看下面的进一步说明。
Modbus TCP/IP协议格式
- 主机poll端发送读写报文样例如下,该报文对应的功能码选择的04。
07 9B 00 00 00 06 01 04 00 00 00 0A
数据 |
含义 |
07 9B |
主机发出的检验信息,从机slave将这个两个字节放在响应报文中 |
00 00 |
表示协议标识符,00 00为modbus的TCP/IP协议 |
< |