文档介绍:Modbus 在OSI 模型中所使用的层
Modbus协议与现场总线
2021/1/13
1
Modbus 协议的物理层
总线式主从结构
主设备:PC机,PLC
从设备:PLC,智能仪表
一个主站可有1—253个从站,
从站之间不能相互通讯。
(a)一对一:主设备可以和从设备通讯,从设备响应。
(b)一对N(广播):主设备对N个从设备,从设备无响应。
0地址表示广播地址。
支持RS-485、RS-232C。
Modbus协议与现场总线
2021/1/13
2
CRLF
0D0A
COLON
3A
Modbus协议的帧格式
Modbus有两种格式: ASCII格式; RTU格式
(用ASCII 表示数据)
(1).字节格式
(2).数据表示方法
地址:21 表示ASCII码 32H,31H
(:)
Modbus协议与现场总线
2021/1/13
3
(2)说明:
:从设备地址0-253,地址0为广播地址。
:代码范围1-255,命令从设备执行哪些功能(如读测量值,读开关量状态)
:(两部分内容)
主设备到从设备:变量起始地址、变量个数。
从设备到主设备 : 字节数n、数据n。
:CRC-16, 生成多项式 Y=X^16+X^15+X^2+1。
2. RTU格式(用二进制数表示数据)
(1) RTU帧格式
Modbus协议与现场总线
2021/1/13
4
ModBus功能码
1. Modbus功能码
Modbus协议与现场总线
2021/1/13
5
:读取在一个或多个保持寄存器中取得当前的二进制值
该功能码主要用于读取设备参数
例:主机命令:读6BH开始的3个寄存器内容
从机响应:回传6个字节数据
说明 (1)应用层: 寄存器中存储的内容用户定义。
(2)寄存器地址与寄存器:寄存器号减1为寄存器地址
Modbus协议与现场总线
2021/1/13
6
:读取一个或多个输入寄存器值
主要用于读取设备测量数据
从寄存器8开始读一个寄存器值
Modbus协议与现场总线
2021/1/13
7
4. 功能6:写单个寄存器
例:从寄存器地址1开始,写一个寄存器值03
寄存器地址:0001H
寄存器: 0002H
Modbus协议与现场总线
2021/1/13
8
5. 功能码16:写多个寄存器
主机从01H地址开始写2个寄存器
从机响应主机
Modbus协议与现场总线
2021/1/13
9
题: 有某地址为1的从设备,其变量定义如下:
例1:主设备用3号命令寻址地址为1的从设备,读取寄存器地址为0000H 的量程.
主设备命令帧
从设备响应帧
变量定义
主机请求
从机响应
量程(参数)
寄存器地址
0000H
测量值
0002H
字节数
2byte
2 byte
主
从
地址
功能码
变量地址高
变量数高
CRC校验
01H
03H
00H
00H
变量数低
地址
功能码
01H
03H
字节数
02H
数据1
03H
CRC校验
**
流量 = 3E8H =1000
变量地址低
00H
01H
**
数据2
E8H
Modbus协议与现场总线
2021/1/13
10