Modbus 客户端-服务器原理
概述
Modbus 协议通过客户端与服务器之间的请求-应答机制来交换信息。客户端-服务器原理是一个用于通讯协议的模式,其中一个设备(客户端)控制一个或多个其它设备(服务器)。在标准的 Modbus 网络中,有 1 个客户端和最多 31 个服务器。
关于 Modbus 协议的详细说明可参见 www.modbus.org。
客户端-服务器原理的特点
客户端-服务器原理有如下特点:
-
一次只能将 1 个客户端连接到网络。
-
只有客户端能够发起通讯并向服务器发送请求。
-
客户端可以使用专门的地址分别访问每个服务器,也可以使用地址 0 同时访问所有服务器。
-
服务器只能向客户端发送应答。
-
服务器不能向客户端或其它服务器发起通讯。
客户端-服务器通讯模式
Modbus 协议可以通过 2 种通讯模式交换数据:
-
单播模式
-
广播模式
单播模式
广播模式
应答时间
其中 Modbus 协议的值:
-
典型值< 10 ms (90% 的信息交换)
-
为了正常传输消息,Tr 最大值大约是 700 ms,因此建议在发送完一个 Modbus 请求后暂停 1 秒钟再继续。
数据交换
Modbus 协议使用的 2 种数据类型:
-
单个位
-
寄存器(16 位)
每个寄存器都有一个寄存器编号。每类数据(位或寄存器)都有一个 16 位的地址。
使用 Modbus 协议交换的消息包含要处理的数据的地址。
寄存器和地址
第 n 号寄存器的地址是 n-1。本文档后面章节中的寄存器表同时给出了寄存器号(十进制格式)和相应的地址(十六进制格式)。比如,第 12000 号寄存器的地址是 0x2EDF(11999)。
帧
使用 Modbus RTU 协议交换的所有帧最大为 256 字节,其中包括 4 个字段:
字段 |
定义 |
大小 |
描述 |
---|---|---|---|
1 |
服务器编号 |
1 个字节 |
请求的目的地址
|
2 |
功能代码 |
仅 1 个字节 |
请参阅 Modbus 功能 |
3 |
数据 |
n 个寄存器 |
请求或应答数据 |
4 |
检查 |
2 字节 |
CRC16(检查传输错误) |
默认设置
Modbus 通讯的缺省设置如下。
项目 |
设置 |
---|---|
波特率 |
19200 bps |
数据 |
8 位 |
奇偶校验 |
偶 |
停止 |
2 位 |
地址 |
1 |