modbusrtu协议功能码.docx
- 文档编号:12026654
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:7
- 大小:18.99KB
modbusrtu协议功能码.docx
《modbusrtu协议功能码.docx》由会员分享,可在线阅读,更多相关《modbusrtu协议功能码.docx(7页珍藏版)》请在冰豆网上搜索。
modbusrtu协议功能码
竭诚为您提供优质文档/双击可除
modbus,rtu协议,功能码
篇一:
modbus协议(功能码及报文解析)
modbus协议
modbus是一种串行通信协议,是modicon于1979年,为使用可编程逻辑控制器(plc)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
modbus比其他通信协议使用的更广泛的主要原因有:
公开发表并且无版税要求
相对容易的工业网络部署
对供应商来说,修改移动原生的位或字节没有很多限制
modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(scada)中,modbus通常用来连接监控计算机和remoteterminalunit(Rtu)。
modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数modbus设备通信通过串口eia-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
modbusRtu是一种紧凑的,采用二进制表示数据的方式,modbusascii是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serialcommunication)方式。
Rtu格式后续的命令/数据带有循环冗余校验的校验和,而ascii格式采用纵向冗余校验的校验和。
被配置为Rtu变种的节点不会和设置为ascii变种的节点通信,反之亦然。
对于通过tcp/ip(例如以太网)的连接,存在多个modbus/tcp变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
modbus有一个扩展版本modbusplus(modbus+或者mb+),不过此协定是modicon专有的,和modbus不同。
它需要一个专门的协处理器来处理类似hdlc的高速令牌旋转。
它使用1mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
连接modbusplus到计算机需要特别的接口,通常是支持isa(sa85),pci或者pcmcia总线的板卡。
modbus协议是一个master/slave架构的协议。
有一个节点是master节点,其他使用modbus协议参与通信的节点是slave节点。
每一个slave设备都有一个唯一的地址。
在串行和mb+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个modbus命令,但是通常也只有一个主节点设备启动指令)。
一个modbus命令包含了打算执行的设备的modbus地址。
所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会执行,不过不回应指令)。
所有的modbus命令包含了检查码,以确定到达的命令没有被破坏。
基本的modbus命令能指令一个Rtu改变
篇二:
modbus_Rtu协议详解
modbus_Rtu通讯规约
modbus_Rtu通讯规约(本协议采用主从问答方式)
pdm系列仪表/变送器:
pdm系列仪表/变送器采用全新的设计,革命性地改变了传统电表的概念;具有多功能、高精度、数字式、可编程、结构紧凑、多画面显示的特点,它可以满足电力工业未来对电表的需求。
modbus通讯协议:
modbus通讯规约允许pdm系列仪表/变送器与施耐德、西门子、ab、ge等多个国际著名品牌的可编程顺序控制器(plc)、Rtu、scada系统、dcs或与第三方具有modbus兼容的监控系统之间进行信息交换和数据传送。
pdm系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:
组态王、intouch、Fix、synall等)就可以构成一套电力监控系统。
广泛的系统集成:
pdm系列仪表/变送器提供了标准的Rs-485/422通讯接口及modbus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。
通讯数据的类型及格式:
信息传输为异步方式,并以字节为单位。
在主站和从站之间传递的通讯信息是11位的字格式:
字格式(串行数据)11位二进制
起始位1位
数据位8位
奇偶校验位1位:
有奇偶校验位/无:
无奇偶校验位
停止位1位:
有奇偶校验位/2位:
无奇偶校验位
●通讯数据(信息帧)格式
数据格式:
地址码功能码数据区错误校检
数据长度:
1字节1字节n字节16位cRc码(冗余循环码)★注:
1、1个字节由8位二进制数组成(既8bit)。
2、modbus是modicon公司的注册商标。
3、“从机”在本文件中既为pdm。
一、通讯信息传输过程:
当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果cRc校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。
返回的信息中包括地址码、功能码、执行后的数据以及cRc校验码。
如果cRc校验出错就不返回任何信息。
1.1地址码:
地址码是每次通讯信息帧的第一字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。
当从机回送信息时,回送数据均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。
相应的地址码表明该信息来自于何处。
1.2功能码:
是每次通讯信息帧传送的第二个字节。
modbus通讯规约可定义的功能码为1到127。
pdm系列仪表/变送器仅用到其中的一部分功能码。
作为主机请求发送,通过功能码告诉从机应执行什么动作。
作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。
表8.1modbus部分功能码
功能码定义操作(二进制)
02读开关量输入读取一路或多路开关量状态输入数据
01读开关量输出读取一路或多路开关量输出状态数据
03读寄存器数据读取一个或多个寄存器的数据
05写开关量输出控制一路继电器“合/分”输出
06写单路寄存器把一组二进制数据写入单个寄存器
10写多路寄存器把多组二进制数据写入多个寄存器
1.3数据区:
数据区包括需要由从机返送何种信息或执行什么动作。
这些信息可以是数据(如:
开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。
例如,主机通过功能码03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。
对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。
pdm系列仪表/变送器采用modbus通讯规约,主机(plc、Rtu、pc机、dcs等)利用通讯命令(功能码03),可以任意读取其数据寄存器(其数据信息表详见附录)。
pdm系列仪表/变送器的数据寄存器存储的电量多达几百个(如:
电流、电压、功率、0~31次谐波分量等),并且都是16位(2字节)的二进制数据,并且高位在前;一次最多可读取寄存器数(既各种电量的数量)是50个。
pdm响应的命令格式是从机地址、功能码、数据区及cRc码。
数据区的数据都是两个字节,并且高位在前(电能量除外)。
注:
1、pdm-820ac/acm/acR、pdm-800ac/acm具有“03”、“06”、“10”功能码;
2、如果pdm采用modbusascii通讯协议,其通讯数据格式为;7个数据位,1个停止位,偶校验。
二、modbus功能码简介
2.1功能码“02”:
读1路或多路开关量状态输入
例如:
主机要读取地址为01,开关量di1—di4的输入状态。
从机(pdm)数据寄存器的地址和数据为:
起始位地址di寄存器数据(16进制)备注00000bdi1/di2/di4状态为“1”,di3状态为“0”
主机发送的报文格式:
主机发送字节数发送的信息备注
从机地址101发送至地址为01的从机
功能码102读开关量输入状态
起始bit位20000起始bit位地址为0000
读数据长度20004读取4路开关量输入状态位
cRc码279c9由主机计算得到cRc码
从机(pdm)响应返回的报文格式:
从机响应字节数返回的信息备注
从机地址101来自从机01
功能码102读开关量输入状态
数据长度1011个字节(8个bit位)
di状态数据10bdi寄存器内容
cRc码2e04F由从机计算得到cRc码
2.2功能码“01”:
读1路或多路开关量输出状态
例如:
主机要读取地址为01,开关量do1,do2的输出状态。
从机(pdm)数据寄存器的地址和数据为:
起始位地址do寄存器数据(16进制)备注
000002do2输出状态为“1”,do1输出状态为“0”主机发送的报文格式:
主机发送字节数发送的信息备注
从机地址101发送至地址为01的从机
功能码101读开关量输出状态
起始bit位20000起始bit位地址为0000
读数据长度20002读取2路继电器输出状态位
cRc码2bdcb由主机计算得到cRc码
从机(pdm)响应返回的报文格式:
从机响应字节数返回的信息备注
从机地址101来自从机01
功能码101读开关量输出状态
数据长度1011个字节(8个bit位)
do状态数据102do寄存器内容
cRc码2d049由从机计算得到cRc码
2.3功能码“03”:
读多路寄存器输入
例如:
主机要读取地址为01,起始地址为0116的3个从机寄存器数据。
从机(pdm)数据寄存器的地址和数据为:
寄存器地址寄存器数据(16进制)对应pdm电量
01161784ua
01171780ub
0118178auc
主机发送的报文格式:
主机发送字节数发送的信息备注
从机地址101发送至地址为01的从机
功能码103读取寄存器
起始地址20xx6起始地址为0116
数据长度30003读取3个寄存器(共6个字节)
cRc码2e5F3由主机计算得到cRc码
从机(pdm)响应返回的报文格式:
从机响应字节数返回的信息备注
从机地址101来自从机01
功能码103读取寄存器
读取字1063个寄存器共6个字节
寄存器数据121784地址为0116内存的内容
寄存器数据221780地址为0117内存的内容
寄存器数据32178a地址为0118内存的内容
cRc码25847由从机计算得到cRc码
2.4功能码“05”:
写1路开关量输出(“遥控”)
例1:
开关量输出点do1,其当前状态为“分”,主机要控制该路继电器“合”。
控制命令为:
“FF00”为控制继电器“合”;
“0000”为控制继电器“分”;
主机发送的报文格式:
主机发送字节数发送的信息备注
从机地址101发送至地址为01的从机
功能码105写开关量输出状态
输出bit位20000对应输出继电器bit位(do1)
控制命令2FF00控制该路继电器输出为“合”状态位
cRc码28c3a由主机计算得到cRc码
从机(pdm)响应返回的报文格式:
与主机发送的报文格式及数据内容完全相同。
例2:
开关量输出点do2,其当前状态为“合”,主机要控制该路继电器“分”。
主机发送的报文格式
主机发送字节数发送的信息备注
从机地址101发送至地址为01的从机
功能码105写开关量输出状态
篇三:
modbusRtu通用规约说明、模板及规约配置
modbusRtu通用规约说明、模板及规约配置
说明文档
一、modbusRtu通用规约说明
1.1
modbus协议简介
modbus协议最初由modicon公司开发出来,在1979年末该公司成为施耐德自动化(schneiderautomation)部门的一部分,现在modbus已经是工业领域全球最流行的协议。
此协议支持传统的串口链路Rs-232、Rs-422、Rs-485和以太网设备。
许多工业设备包括plc,dcs,智能仪表等都在使用modbus协议作为他们之间的通讯标准。
modbus协议包括ascii、Rtu、tcp等,并没有规定物理层。
此协议定义了控制器能够认识和使用的报文结构,而不管它们是经过何种网络进行通信的。
标准的modicon控制器使用Rs232c实现串行的modbus。
modbus的ascii、Rtu协议规定了报文、数据的结构、询问和应答的方式,数据通讯采用主/从方式,主站发出数据请求报文,从站接收到正确报文后就可以发送数据到主站端以响应请求;主站也可以直接发报文修改从站的数据,实现双向读写。
1.2
modbus通用规约介绍
modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ascii模式采用lRc校验,Rtu模式采用16位cRc校验,但tcp模式没有额外规定校验,因为tcp协议是一个面向连接的可靠协议。
另外,modbus采用主从问答方式收发数据,在实际使用中如果某从站站点断开后(如故障或失电),主站可以诊断出来,而当故障修复后,网络又可自动接通。
因此modbus协议的可靠性较好。
modbus协议在串行链路中Rtu模式使用的最多,通用性很强,所以在这里仅介(modbus,rtu协议,功能码)绍一下modbusRtu协议即modbus通用规约。
下表是modbusRtu支持的功能码:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- modbusrtu 协议 功能