MODBUS协议功能码与报文解析.docx
- 文档编号:16756143
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:18
- 大小:22.97KB
MODBUS协议功能码与报文解析.docx
《MODBUS协议功能码与报文解析.docx》由会员分享,可在线阅读,更多相关《MODBUS协议功能码与报文解析.docx(18页珍藏版)》请在冰点文库上搜索。
MODBUS协议功能码与报文解析
-
--指导案例-WORD格式--范文范例
MODBUS协议年,于1979Modbus是一种串行通信协议,是Modicon)而发表的。
事实上,它已为使用可编程逻辑控制器(PLC,并且现在是工业电子设备之标准经成为工业领域通信协议比其他通信协议使用的更广Modbus间相当常用的连接方式。
泛的主要原因有:
公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制
举允许多个设备连接在同一个网络上进行通信,Modbus个例子,一个由测量温度和湿度的装置,并且将结果发送给Modbus)中,计算机。
在数据采集与监视控制系统(SCADA。
通常用来连接监控计算机和remoteterminalunit(RTU)以太网以及其他支持互协议目前存在用于串口、Modbus联网协议的网络的版本。
物理层进行设备通信通过串口EIA-485Modbus大多数[1]。
对于串行连接,存在两个变种,它们在数值数据表示不采用ModbusRTU是一种紧凑的,同和协议细节上略有不同。
是一种人类可读的,二进制表示数据的方式,ModbusASCIIserialcom冗长的表示方式。
这两个变种都使用串行通讯(循环冗格式后续的命令/数据带有munication)方式。
RTU格式采用纵向冗余校验的校验和。
ASCII余校验的校验和,而变种的节点通ASCIIRTU变种的节点不会和设置为被配置为信,反之亦然。
Mod以太网)的连接,存在多个对于通过TCP/IP(例如变种,这种方式不需要校验和的计算。
bus/TCP对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
MBModbusPlus(Modbus+有一个扩展版本或者Modbus
不同。
它需Modbus,不过此协定是+)Modicon专有的,和的高速令牌旋转。
要一个专门的协处理器来处理类似HDLC学习指导专业资料.
-
指导案例--范文范例---WORD格式
并且每个节点都有转换隔离装置,,1Mbit/s的双绞线它使用是一种采用转换/边缘触发而不是电压/水平触发的装置。
I到计算机需要特别的接口,通常是支持连接ModbusPlus总线的板卡。
或者PCMCIASA(SA85),PCI有一个架构的协议。
协议是一个master/slaveModbus协议参与通信的节节点,其他使用Modbus节点是master
设备都有一个唯一的地节点。
每一个slave点是slave
网络中,只有被指定为主节点的节点可以址。
在串行和MB+M启动一个命令(在以太网上,任何一个设备都能发送一个命令,但是通常也只有一个主节点设备启动指令)。
odbus地Modbus一个ModBus命令包含了打算执行的设备的址。
所有设备都会收到命令,但只有指定位置的设备会执行的指令是广播指令,0例外,指定地址及回应指令(地址0所有收到指令的设备都会执行,不过不回应指令)。
所有的命令包含了检查码,以确定到达的命令没有被破坏。
Modbus改变它的寄存器的某个命令能指令一个RTU基本的ModBus端口,以及指挥设备回送一个或I/O值,控制或者读取一个者多个其寄存器中的数据。
ModbusModbus和网关支持协议,因为有许多modems协议很简单而且容易复制。
它们当中一些为这个协议特别设的不同实GPRS计的。
有使用有线、无线通信甚至短消息和现。
不过设计者需要克服一些包括高延迟和时序的问题。
MODBUS通信过程如下图学习指导专业资料.
-WORD格式--范文范例--指导案例-
MODBUSRTU报文格式CRC设备功能结束符起始位数据校验代码地址
个nT1-T2-T3-T4
16BitT1-T2-T3-T48Bit8Bit8Bit
报文格MODBUSASCII
LR功能设结束数起始校地
个个个字个字字字
报MODBUSTC功能设备协议报文数交互标
个个字字字字节学习指导专业资料.
-WORD格式--范文范例--指导案例-
符符0一般为高字节也就是一般为设备地0在前址
的内容是完全相同的,不与ASCII实际上MODBUSRTU方式用“:
”标识帧起始,用“CRLF”标识同的的ASCII帧中一个字节的内容换成了,把RTU帧结束。
校验采用LRC只有一个方式下设备地址01ASCII字符。
比如在RTU2个30进制的01”(16ASCII字节,在方式下转换成字符串“)。
31
相MODBUSRTUMODBUSTCP中的设备标识,功能码等与报文的前边加了一个头,去MODBUSRTU同,可以认为是在校验这个尾。
掉了CRC种基本数据类型:
可读写位数据,4MODBUS协议定义了位数据。
这些数据1616位数据,可读写只读位数据,只读输入寄存器,输入状态,保持寄存器。
分别被称为线圈状态,开始的协议中定义的这些数据都是一个从地址1MODBU数组,访问时需要指明从哪个地址开始访问,访问多少个MODBU的功能码据。
下表ModBu功能功作名读取线圈状01ON/OFF)
取得一组开关输入的当前状读取输入状02ON/OFF)在一个或多个保持寄存器中取读取保持寄03
当前的二进制在一个或多个输入寄存器中取读取输入寄04
当前的二进制器学习指导专业资料.
-WORD格式--范文范例--指导案例-
强置一个逻辑线圈的通断状态05强置单线圈把具体二进值装入一个保持寄存06预置单寄存器器这8个内部线圈的通断状态,取得个线圈的地址由控制器决定,用8以说户逻辑可以将这些线圈定义,07读取异常状态
短报文适宜于迅速读明从机状态,取状态以对通信把诊断校验报文送从机,回送诊断校验08处理进行评鉴PC使主机模拟编程器作用,修改编程(只用于09
从机逻辑)484可使主机与一台正在执行长程序探询该从机是否已任务从机通信,控询(只用于10
仅在含有功能码完成其操作任务,484)9的报文发送后,本功能码才发送并随即判定可使主机发出单询问尤其是该命令或操作是否成功11读取事件计他应答产生通信错误ModBu可是主机检索每台从机如果某事务处理通信事件记录读取通信事12
记录会给出有关事务处理完成记
P184/384编程可使主机模拟编程器功能修13
从机逻48458可使主机与正在执行任务的从定期控询该从机是否已完通信探询184/38414
其程序操作,仅在含有功148458
报文发送后,本功能码才得发强置一串连续逻辑线圈的通强置多线15
学习指导专业资料.
-WORD格式--范文范例--指导案例-
把具体的二进制值装入一串连续预置多寄存器16的保持寄存器可使主机判断编址从机的类型及17报告从机标识该从机运行指示灯的状态PCMICRO可使主机模拟编程功能,修改(884和18
状态逻辑84)是从机复位发生非可修改错误后,19重置通信链路于已知状态,可重置顺序字节显示扩展存储器文件中的数据信读取通用参数20
息584L)(或把通用参数写入扩展存储文件,写入通用参数21
修改之)(584L保留作扩展功~22能备用64
保留以备用户~65留作用户功能的扩展编码72功能所7非法功119
12保留作内部作127
12用于异常应保255
各个功能码对应的数据类数据类功01
02
位整0311位整04
读学习指导专业资料.
-WORD格式--范文范例--指导案例-
位写05
位整型写整0616位写15
写位整型整16
16
协议相当复杂,但是常用的命令也就简单的几MODBUS16号命令。
06,15,02,03,04,05,01个,,
各个命令的功能和报文如下:
00001~读取线圈状态MODBUS地址01命令
MODBUS请求
功能码
1BYTE
0X01
起始地址
2BYTE
0X0000TO0XFFFF
读取数量
2BYTE
1TO2000(0X7D0)
响应MODBUS
功能码
1BYTE
0X01
字节计数
1BYTE
N
线圈状态
nBYTE
n=NorN+1
N=N+1则如果余数不为0N=读取数量/8
响应错误
功能码
1BYTE
0X01+0X80
错误代码
1BYTE
0x1or0x2or0x3or0x4
举例
请求
响应
域名称
hex数据()
域名称
)数据(hex
功能码
01
功能码
01
起始地址高)字节(
00
字节计数
03
起始地址低)字节(
13
20)~27(h状态
CD
学习指导专业资料.
-WORD格式--范文范例--指导案例-
读取数量高字节)(
00
28h)~35(状态
6B
读取数量低字节)(
13
36h)~38(状态
05
10001~读取输入状态MODBUS地址命令02
MODBUS请求
功能码
1BYTE
0X02
起始地址
2BYTE
0X0000TO0XFFFF
读取数量
2BYTE
1TO2000(0X7D0)
MODBUS响应
功能码
1BYTE
0X02
字节计数
1BYTE
N
输入状态如果余数不为
nBYTEN=N+1则0
n=NorN+1
/8N=读取数量响应错误
功能码
1BYTE
0X02+0X80
错误代码
1BYTE
0x1or0x2or0x3or0x4
举例
请求
响应
域名称
数据(hex)
域名称
hex)数据(
功能码
02
功能码
02
起始地址高)字节(
00
字节计数
03
起始地址低)(字节
C4
197204(h)~状态
AC
读取数量高字节)(
00
205212(h)~状态
DB
读取数量低)字节(
16
213~218(h)状态
35
学习指导专业资料.
-WORD格式--范文范例--指导案例-
40001地址~03读保持寄存器MODBUS
MODBUS请求
功能码
1BYTE
0X03
起始地址
2BYTE
0X0000TO0XFFFF
读取数量
2BYTE
1TO125(0X7D)
MODBUS响应
功能码
1BYTE
0X03
字节计数
1BYTE
N*2
输入状态
N*2BYTE
响应错误
功能码
1BYTE
0X03+0X80
错误代码
1BYTE
0x1or0x2or0x3or0x4
举例
请求
响应
域名称
)数据(hex
域名称
hex)数据(
功能码
03
功能码
03
起始地址高)字节(
00
字节计数
06
起始地址低字节()
6B
寄存器高)(108
02
读取数量高(字节)
00
寄存器低108)(
2B
读取数量低(字节)
03
寄存器高109)(
00
寄存器低109)(
00
学习指导专业资料.
-WORD格式--范文范例--指导案例-
寄存器高110)(
00
寄存器低(110)
64
30001~04输入寄存器MODBUS地址
MODBUS请求
功能码
1BYTE
0X04
起始地址
2BYTE
0X0000TO0XFFFF
读取数量
2BYTE
1TO125(0X7D)
响应MODBUS
功能码
1BYTE
0X04
字节计数
1BYTE
N*2
输入状态
N*2BYTE
响应错误
功能码
1BYTE
0X04+0X80
错误代码
1BYTE
0x1or0x2or0x3or0x4
举例
请求
响应
域名称
hex数据()
域名称
hex)数据(
功能码
04
功能码
04
起始地址高)字节(
00
字节计数
02
起始地址低(字节)
08
输入寄存器9)高(
00
读取数量高)(字节
00
输入寄存器9)低(
0A
读取数量低)
(字节
01
学习指导专业资料.
-WORD格式--范文范例--指导案例-
设置单个继电器状态05
MODBUS请求
功能码
1BYTE
0X05
设置地址
2BYTE
0X0000TO0XFFFF
设置内容
2BYTE
0x0000OR0XFF00释放继电0x0000
器吸合继电0xff00
器
MODBUS响应
功能码
1BYTE
0X05
设置地址
2BYTE
0X0000TO0XFFFF
设置内容
2BYTE
0x0000OR0XFF00
响应错误
功能码
1BYTE
0X05+0X80
错误代码
1BYTE
0x1or0x2or0x3or0x4
)
号继电器吸合6举例(
请求
响应
域名称
数据(hex)
域名称
hex)数据(
功能码
05
功能码
05
设置地址高字节)(
00
设置地址高)字节(
00
设置地址低字节()
05
设置地址低)(字节
05
设置内容高字节)(
FF
设置内容高)字节(
FF
设置内容低字节()
00
设置内容低)
字节(
FF
学习指导专业资料.
-WORD格式--范文范例--指导案例-
设置单个保持寄存器06
MODBUS请求
功能码
1BYTE
0X06
设置地址
2BYTE
0X0000TO0XFFFF
设置内容
2BYTE
0x0000to0XFF00
MODBUS响应
功能码
1BYTE
0X06
设置地址
2BYTE
0X0000TO0XFFFF
设置内容
2BYTE
0x0000to0XFF00
响应错误
功能码
1BYTE
0X06+0X80
错误代码
1BYTE
0x1or0x2or0x3or0x4
举例25
号保持寄存器内容为设置9
请求
响应
域名称
数据(hex)
域名称
hex)数据(
功能码
06
功能码
06
设置地址高字节)(
00
设置地址高)字节(
00
设置地址低字节()
08
设置地址低)(字节
08
设置内容高字节)(
00
设置内容高)字节(
00
设置内容低字节()
19
设置内容低)
字节(
19
学习指导专业资料.
-WORD格式--范文范例--指导案例-
15设置多个继电器状态MODBUS请求
功能码
1BYTE
0X0F
设置起始地址
2BYTE
0XFFFFTO0X0000
设置长度
2BYTE
0X0000TO0X7B0
字节计数
1BYTE
N
设置内容
NBYTE
MODBUS响应
功能码
1BYTE
0X0F
设置起始地址
2BYTE
0X0000TO0XFFFF
设置长度
2BYTE
0X0000TO0X7B0
错误响应
功能码
1BYTE
0X0F+0X80
错误代码
1BYTE
0x1or0x2or0x3or0x4
举例设置继电器
请求
响应
域名称
)数据(hex
域名称
)数据(hex
功能码
0F
功能码
0F
设置地址高(字节)
00
设置地址高)(字节
00
设置地址低)(字节
13
设置地址低)字节(
13
设置数量高)(字节
00
设置数量高)
(字节
00
学习指导专业资料.
-WORD格式--范文范例--指导案例-
设置数量低(字节)
0A
设置数量低)
(字节
0A
字节计数
02
设置内容高)(字节
CD
设置内容低)
字节(
01
设置多个保持寄存器16
MODBUS请求
功能码
1BYTE
0X10
设置起始地址
2BYTE
0X0000TO0XFFFF
设置长度
2BYTE
0X0000TO0X7B0
字节计数
1BYTE
N*2
设置内容
N*2BYTE
响应MODBUS
功能码
1BYTE
0X10
设置起始地址
2BYTE
0X0000TO0XFFFF
设置长度
2BYTE
0X0000TO0X7B0
错误响应
功能码
1BYTE
0X10+0X80
错误代码
1BYTE
0x1or0x2or0x3or0x4
举例设置多个保持寄存器
学习指导专业资料.
-WORD格式--范文范例--指导案例-
请求
响应
域名称
数据(hex)
域名称
hex)数据(
功能码
10
功能码
0F
设置地址高字节)(
00
设置地址高)字节(
00
设置地址低字节)(
01
设置地址低)字节(
01
设置数量高)(字节
00
设置数量高)字节(
00
设置数量低)(字节
02
设置数量低)(字节
02
字节计数
04
第一地址,1000110002,………,第二00001地址,第一路为
设置内容高)(字节
00
设置内容低)(字节
0A
设置内容高)字节(
01
设置内容低)
字节(
02
协议的报文以及命令,那么在智能设MODBUS?
,第二路为1000100001
协议在智能设备中的应用MODBUS上面讲述了备中如何使用这个协议呢如果智能设备有开关量输入输出,模拟量输入输出,有计数器等。
很明显开关量输入可以映射到路开关量输入为开关量输出映射到00002,…….路为
学习指导专业资料.
-
指导案例范文范例---WORD格式--
第二30001,模拟量输入映射到30001地址,第一路为,……30002路为地址,第一路为40001模拟量输出和计数器输入映射到40002,第二路为,……40001
当然也可以把所有的数据都放在保持寄存器中,这样对主设备访问时要简单,访问效率能提高,但是处MODBUS于理起来略显繁琐。
学习指导专业资料.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MODBUS 协议 功能 报文 解析