Modbus 客户端-服务器原理
综述
Modbus RTU 协议通过客户端和服务器之间的请求-应答机制来交换信息。客户端-服务器原理是一个用于通讯协议的模式,其中一个设备(客户端)控制一个或多个其它设备(服务器)。在标准的 Modbus 网络中,有 1 个客户端和多达 31 个服务器。
关于 Modbus 协议的详细说明可参见 www.modbus.org。
客户端-服务器原理的特点
客户端-服务器原理有如下特点:
-
一次只能将一个客户端连接到网络。
-
只有客户端能够发起通讯并向服务器发送请求。
-
客户端可以使用专门的地址分别访问每个服务器,也可以使用地址 0 同时访问所有服务器。
-
服务器只能向客户端发送应答。
-
服务器不能向客户端或其它服务器发起通讯。
客户端-服务器通讯模式
Modbus RTU 协议可以通过两种通信模式交换信息:
-
请求-应答模式
-
广播模式
请求-应答模式
广播模式
应答时间
带有 Modbus 协议的值分别是:
-
典型值< 10 ms (90% 的信息交换)
-
最大值为 700 ms 左右。因此,建议在发送完一条 Modbus 请求之后执行一次 1 秒超时。
数据交换
Modbus 协议使用的 2 种数据类型:
-
位
-
16 位的字,称为寄存器
VigiPacT 寄存器支持这两种数据类型。
每个寄存器都有一个寄存器编号。每类数据(位或寄存器)都有一个 16 位的地址。
使用 Modbus 协议交换的消息包含要处理的数据的地址。
寄存器和地址
第 n 号寄存器的地址是 n-1。本文档后面章节中的寄存器表同时给出了寄存器号(十进制格式)和相应的地址(十六进制格式)。比如,第 100 号寄存器的地址是 0x0063(99)。
帧
使用 Modbus 协议交换的所有帧最大为 256 字节,其中包括 4 个字段:
字段 |
定义 |
大小 |
描述 |
---|---|---|---|
1 |
服务器编号 |
1 个字节 |
请求的目的地址:
|
2 |
功能代码 |
1 个或 2 个字节 |
请参阅 Modbus 功能 |
3 |
数据 |
n 个寄存器 |
请求或应答数据 |
4 |
检查 |
2 字节 |
CRC16(检查传输错误) |