1.调试工具
VSPD虚拟串口、Modbus主机仿真器、Modbus从设备仿真器
Modbus Poll、Modbus Slave 配置串口参数后,connect成功即可收发
2.Modbus协议
缩略语
ADU 应用数据单元
HDLC 高级数据链路控制
HMI 人机界面
IETF 因特网工程工作组
I/O 输入/输出设备
IP 互连网协议
MAC 介质访问控制
MB MODBUS 协议
MBAP MODBUS 协议
PDU 协议数据单元
PLC 可编程逻辑控制器
TCP 传输控制协议
Modbus报文(帧)
地址域:从机地址
功能码:决定执行哪种操作,一个字节,有效码字范围是1-255
数据:
差错校验:CRC、LRC
Modbus数据类型:
功能码:
3.Modbus协议在Serial Port上的实现
3.1数据链路层
- Modbus 串行链路协议是一个主-从协议。 在同一时刻,只有一个主节点连接于总线,一个或多个子节点 (最大编号为 247 ) 连接于同一个串行总线。Modbus 通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。主节点在同一时刻只会发起一个 Modbus 事务处理。
- 主节点以两种模式对子节点发出 Modbus 请求:
- 单播模式、广播模式
- 两种串行传输模式
- RTU传输模式
- ASCII传输模式
3.1.1RTU传输模式:
- RTU报文帧
- RTU帧最大为256字节
- 报文帧由3.5个字符时间的空闲间隔区分,即t3.5
- 在 RTU 模式, 当没有活动的传输的时间间隔达 3.5 个字符长时,通信链路被认为在 “空闲”态。
- 当链路空闲时, 在链路上检测到的任何传输的字符被识别为帧起始。 链路变为 "活动" 状态。然后, 当链路上没有字符传输的时间间个达到 t3.5 后,被识别为帧结束。
3.1.2ASCII传输模式
由发送设备将 Modbus 报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收新帧,并且知道何时报文结束。
- ASCII报文帧
- Modbus ASCII 帧的最大尺寸为 513 个字符
- 在 ASCII 模式, 报文用特殊的字符区分帧起始和帧结束。一个报文必须以一个‘冒号’ ( : )(ASCII 十六进制 3A )起始,以 ‘回车-换行’ (CR LF) 对 (ASCII 十六进制 0D 和 0A) 结束
- 对于所有的域,允许传送的字符为十六进制 0–9, A–F (ASCII 编码)。 设备连续的监视总线上的 ‘冒号’ 字符。 当收到这个字符后,每个设备解码后续的字符一直到帧结束。