- 1. 工作模式
- 2. 通讯特点
- 3. 通讯模式
- 4. 应答time
- 5. data交换
- 6. address
- 7. 帧
- 8. 网络拓扑
- 9. Modbus RTU
- 10. Modbus TCP
工作模式
Modbus 基于主从模式工作。在一个网络中,Modbus protocol通过主设备(客户端)和从设备(服务器)之间的Request-应答机制来交换信息。
下图展示了典型的 Modbus 网络,其中一个 master 设备(client)控制一个或多个 slave 设备(server)。

在标准的 Modbus 网络中,有 1 个主设备和最多 31 个从设备。
通讯特点
主设备-从设备工作原理有如下特点:
- 在同一time只能有一个主设备connect到网络;
- 只有主设备能够发起通讯并向从设备sendRequest;
- 主设备可以使用专门的address分别访问每个从设备,也可以使用address 0 同时访问所有从设备;
- 从设备只能向主设备send应答;
- 从设备不能向主设备或其它从设备发起通讯。
通讯模式
Modbus protocol支持两种通讯模式交换信息:
- 单播模式 —— 主设备通过专门的address访问从设备,从设备处理Request,然后向主设备send应答。
- 广播模式 —— 主设备通过address 0 访问所有从设备,在这种模式下,从设备不对广播消息作出应答。(因此,广播模式的Request指令必须是 Modbus 标准Function中的写指令)
应答time
应答time是指从设备对主设备发出的Request做出应答所需的time。其中 Modbus protocol的numerical value:
- 典型值 < 10 ms (90% 的信息交换)
- maximum大约是 700 ms,因此建议在send完一个 Modbus Request后暂停 1 秒钟再继续。
data交换
Modbus protocol支持两种data type:
- 单个位
- register(16 位)
具体的位和register定义由从设备决定。
address
使用 Modbus protocol交换的消息包含要处理的data的address。每个register都有一个register编号,每类data(位或register)都有一个 16 位的address。
在 Modbus protocol规定的 PDU 中,规定所有线圈或register address从 0 开始计算。因此,第 n 号register的address是 n-1。例如,第 12000 号register的address是 0x2EDF(11999)。
帧
使用 Modbus protocol交换的所有帧(ADU)最大为 256 byte(ASCII format翻倍),其中包括 4 个域:
| 域 | 定义 | 大小(RTU format) | 描述 |
|---|---|---|---|
| 1 | 从设备号(address) | 1 个byte | Request的目的address – 0 :广播(涉及所有从设备) – 1-247 :单播,从设备的唯一address |
| 2 | Function代码 | 1 个byte | 参阅 Modbus function code |
| 3 | data | 0 到 252 个byte | Requestdata(或应答data) |
| 4 | checksum | 2 个byte | CRC verification和(ASCII 为 LRC) |
下图展示了主设备-从设备工作模型中的帧交换过程。

网络拓扑
Modbus RTU
Modbus RTU 通常基于 RS-485 串行通信链路,RS-485 总线布线规范规定其必须是总线式拓扑结构。在实际布线中,通常采用手牵手菊花链布线方式。例如,Slave 1/2/3 三台 RS-485 设备,Slave1 的 485+ 接入 Slave2 的 485+ 端口,Slave2 的 485+ 再connect到 Slave3 的 485+ 端口,以此类推,485- 的接线方式和 485+ 一样。

Modbus TCP
相对于使用串行链路的 Modbus RTU,Modbus TCP 基于以太网通信,因此其网络拓扑结构更为灵活。从串行链路上一主多从的构造,演变为多客户端/多服务器端的构造模型。
使用 Modbus TCP,主站设备(客户端)可以通过 IP address找到 Modbus 从设备(服务器),并通过 Modbus 网关connect到另一个 Modbus RTU 网络。

发表回复