Modbus学习笔记
一、Modbus通讯方式:主从式串行异步半双工通信
RTU模式的优点:较高的数据密度
RTU 模式每个字节 ( 11 位 ) 的格式:
Bits per Byte: 1 起始位
8 数据位, 首先发送最低有效位
1 位作为奇偶校验
1 停止位
注 : 使用无校验要求 2 个停止位。(实际做的时候这点存在疑问Maybe一个)
二、报文帧
注:Modbus RTU 帧最大为 256 字节
三、时间要求
整个报文帧必须以连续的字符流(间隔时间<=t1.5字符)发送。如果两个字符之间的空闲间隔大于 1.5 个字符时间,则报文帧被认为不完整应该被接收节点丢弃。
注:时间要求t3.5和t1.5
四、Modbus数据模型
MODBUS 以一系列具有不同特征表格上的数据模型为基础。四个基本表格为:
基本表格 |
对象类型 |
访问类型 |
内容 |
离散量输入 |
单个比特 |
只读 |
I/O 系统提供这种类型数据 |
线圈 |
单个比特 |
读写 |
通过应用程序改变这种类型数据 |
输入寄存器 |
16-比特字 |
只读 |
I/O 系统提供这种类型数据 |
保持寄存器 |
16-比特字 |
读写 |
通过应用程序改变这种类型数据 |
五、功能码
功能码 |
名称 |
功能 |
H01 |
读线圈状态 |
取输出开关量状态 |
H02 |
读输入状态 |
取输入开关量状态 |
H03 |
读保持寄存器 |
读一个或多个输出存储器值 |
H04 |
读取存储器 |
读一个或多个输入存储器值 |
H05 |
强制单线圈 |
强制一个输出开关量状态 |
H06 |
写保持存储器 |
把字写入一个输出存储器 |
H08 |
回传诊断校验 |
把诊断报告送从站 |
H0F |
强制多线圈 |
强制一组连续输出开关量状态 |
H10 |
预置多存储器 |