MODBUS规约报文详细举例解析
- 格式:doc
- 大小:119.00 KB
- 文档页数:7
Modbus协议概述Modbus作为在工业设备通讯上使用最多,应用最广的国际标准协议,在应SymLink发送:01 03 00 01 00 02 95 CB01代表设备地址103代表读取保持寄存器的值00 01代表采集点对应的寄存器号00 02代表读取2个连续寄存器的值95 CB为01 03 00 01 00 02计算所得的CRC值SymLink接收:01 03 04 00 00 00 00 FA 3301代表设备地址103代表读取保持寄存器的值04代表设备返回的数据个数,字节为单位00 00 00 00为数据返回的连续2个寄存器的值FA 33为01 03 04 00 00 00 00计算所得的CRC值SymLink在判断01、03、04这些反馈信息都合法,并且CRC校验无误的情况下,就可以对00 00 00 00 所在的数据值进行规定数据格式的解析。
目前支持Modbus协议的设备越来越多,包括PLC、智能仪表、通讯模块等等,如果厂家设备支持的通讯协议为标准格式的Modbus协议,那么在选择厂家的时候就直接选择国际标准的Modbus。
准备工作设备连接✍RS485通讯,设备的A端子对应连接SymLink的A端子、设备的B端子对应连接SymLink的B端子,需要注意的是一根线上接多个IED的情况,一个是设备地址要唯一、波特率和其他串口参数要一致,另外接线的时候需要从一台IED的AB端子跳接到下一台IED的AB端子,防止并联分散传输信号。
✍RS232通讯,设备的发送针对应连接SymLink的RX、设备的接收针对应连接SymLink的TX、设备的接地针对应SymLink的GND。
✍以太网通讯,设备的网口对应连接到同一网段的SymLink LAN口,如果含多台以太网设备通讯,需要加交换机。
设备配置参考实际的设备说明书:1)选择协议,如果设备支持多种协议,需要在配置里面选择为ModbusRTU或者ModbusAscii协议。
MODBUS 协议范文(功能码及报文解析)Modbu 是一种串行通信协议,是 Modicon 于 1979 年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Modbu 比其他通信协议使用的更广泛的主要原因有:公开辟表并且无版税要求相对容易的工业网络部署对供应商来说,修改挪移原生的位或者字节没有不少限制Modbu 允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统( SCADA) 中, Modbu 通常用来连接监控计算机和 remoteterminalunit(RTU)。
Modbu 协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
对于通过 TCP/IP (例如以太网)的连接,存在多个 Modbu/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbu 有一个扩展版本 ModbuPlu(Modbu+或者 MB+),无非此协定是Modicon 专有的,和 Modbu 不同。
它需要一个专门的协处理器来处理类似HDLC 的高速令牌旋转。
它使用 1Mbit/的双绞线,并且每一个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
连接 ModbuPlu 到计算机需要特殊的接口,通常是支持 ISA (SA85) ,PCI或者者 PCMCIA 总线的板卡。
Modbu 协议是一个 mater/lave 架构的协议。
有一个节点是 mater 节点,其他使用 Modbu 协议参预通信的节点是 lave 节点。
每一个 lave 设备都有一个惟一的地址。
在串行和 MB+网络中,惟独被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个 Modbu 命令,但是通常也惟独一个主节点设备启动指令)。
MODBUS协议Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
M odbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。
被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和 Modbus不同。
它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。
它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
MODBUS协议Modbus是一种串行通信协议,是于____年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议,并且现在是工业电子设备之间相当常用的连接方式。
Modbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口物理层进行。
对于通过(例如)的连接,存在多个Modbus/TCP变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和Modbus不同。
它需要一个专门的协处理器来处理类似的高速令牌旋转。
它使用1Mbit/s的,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
连接Modbus Plus到计算机需要特别的接口,通常是支持ISA(SA85),PCI或者PCMCIA总线的板卡。
Modbus协议是一个master/slave 架构的协议。
有一个节点是master 节点,其他使用Modbus协议参与通信的节点是slave 节点。
每一个slave 设备都有一个唯一的地址。
在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。
一个ModBus命令包含了打算执行的设备的Modbus地址。
MODBUS规约报文解析报文格式,报文全部为16进制,遥信状态需要转换为二进制:遥信报文1分析:发送数据:01 03 01 00 00 02 C5 F7 //16时14分02秒接收数据:01 03 04 03 03 00 00 0A 77 //16时14分02秒结果分析为:第1、2、9、10遥信合位。
遥信报文2分析:发送数据:01 03 01 00 00 02 C5 F7 //16时15分40秒接收数据: 01 03 04 12A2 00 00 5E A9 //16时15分40秒结果分析为:第2、6、8、10、13遥信合位遥信报文3分析:发送数据:01 03 01 00 00 02 C5 F7 //16时21分47秒接收数据:01 03 04 00 33 00 00 0A 3C //16时21分47秒结果分析为:第1、2、5、6遥信合位遥控点号:开关操作=0300H合操作TX: 01 06 03 00 00 02 08 4F //06表示遥控功能码,02表示分操作;RX: 01 06 03 00 00 02 08 4F //06表示遥控功能码,02表示分操作;遥控点号:开关操作=0300H 分操作TX: 01 06 03 00 00 01 48 4E //06表示遥控功能码,01表示分操作;RX: 01 06 03 00 00 01 48 4E //06表示遥控功能码,01表示分操作;遥测报文,每个遥测值占用2个字节,即1个寄存器,最大值为:0x0000H~0xFFFFH,即:0~65535。
发送数据:01 03 02 00 00 0D 85 B7 //16时27分02秒接收数据:01 03 1A 00 00 00 00 00 001E AE 00 00 1E AD1E AD 00 00 00 00 00 00 00 00 00 00 6A 96 77 67 //16时27分02秒电度报文分析:/********************伴随着总召换的电度主动上送****************************/ 共有4个电度:正向有功积分电度=0301H 10000.000(0x00989680),正向无功积分电度=0302H 0.000 (0x0),反向有功积分电度=0303H 0.000(0x0),反向无功积分电度=0304H 0.000(0x0)。
Modbus通用规约说明说明文档文件名称Modbus通用规约说明文件说明无版本记录Modbus通用规约说明一、MODUBS协议简介Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。
此协议支持传统的串口链路RS-232、RS-422、RS-485和以太网设备。
许多工业设备包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。
Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。
此协议定义了控制器能够认识和使用的报文结构,而不管它们是经过何种网络进行通信的。
标准的Modicon控制器使用RS232C实现串行的Modbus。
Modbus的ASCII、RTU协议规定了报文、数据的结构、询问和应答的方式,数据通讯采用主/从方式,主站发出数据请求报文,从站接收到正确报文后就可以发送数据到主站端以响应请求;主站也可以直接发报文修改从站的数据,实现双向读写。
二、Modbus通用规约介绍Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC 校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。
另外,Modbus采用主从问答方式收发数据,在实际使用中如果某从站站点断开后(如故障或失电),主站可以诊断出来,而当故障修复后,网络又可自动接通。
因此Modbus协议的可靠性较好。
Modbus协议在串行链路中RTU模式使用的最多,通用性很强,所以在这里仅介绍一下Modbus RTU协议亦即Modbus通用规约。
下表是Modbus Rtu支持的功能码:功能码 名称 作用01 读取线圈状态 取得一组逻辑线圈的当前状态(ON/OFF)02 读取输入状态 取得一组开关输入的当前状态(ON/OFF)03 读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值04 读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值05 强置单线圈强置一个逻辑线圈的通断状态 06 预置单寄存器 把具体二进值装入一个保持寄存器07 读取异常状态 取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定08 回送诊断校验把诊断校验报文送从机,以对通信处理进行评鉴 09 编程(只用于484) 使主机模拟编程器作用,修改PC 从机逻辑10 控询(只用于484) 可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送11 读取事件计数可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时 12 读取通信事件记录 可是主机检索每台从机的ModBus 事务处理通信事件记录。
MODBUS协议一般说明1.1.1交换特点MODBUS是一种主/从规约,它允许读或写一个或多个字(16位)操作,但任何情况下都不支持字节的读/写。
信息交换是以主站采取主动实现的,即由主站启动交换。
除广播命令外,所有的一个完整交换由下行和上行两个报文组成:·下行报文:主站发出的一个请求·上行报文:从站发回的一个回答图1.1 一般信息交换图图1.2 广播方式信息交换图自主站发出的请求,一般情况下,只可发送到某一指定的从站(由请求帧第一个字节中规定的从站号码来辨认),如图1.1所示。
在广播方式下(从站号码为0),此请求则发送到全部从站,当然,规约规定广播命令必须是写命令,并且从站也不发送回答,如图1.2所示。
1.1.2报文格式所有交换的RTU类型报文(帧),无论上/下行,具有相同的结构:从站号功能码数据区CRC16校验和1字节1字节n字节2字节每帧报文包含4种类型的信息:1.1.2.1 从站号从站号为1字节,取值范围为0~FFH.例外的,如果此值为0,则作为主站的广播信文标识.因此,物理上使用的从站号只能在01H~FFH之间(即1~255之间)。
1.1.2.2 功能码功能码为1字节,它被用来选择一个命令(读、写或回答校验是否正确等),有效功能码范围为1~255之间,本手册支持的功能码将在第2章中加以详述。
1.1.2.3 数据区数据区为n字节,它包含与功能码相关的一串十六进制数据。
2.1 功能码概述在本手册中,MODBUS使用如下的功能码:功能码(十进制)含义01 读线圈状态02 读输入状态03 读保持型寄存器04 读输入型寄存器05 强制单个线圈06 写单个寄存器15 强制多个线圈16 写多个寄存器20 读变量21 写变量2.2 功能码与数据分类在本手册中,功能码与相应的数据的对应关系如下所示:在MODBUS 规约中,地址的起始编号为0。
如Q0005的规约地址为0004。
2.3 功能码详解2.3.1 01读线圈状态1.描述实现对从站中测点Q 和M (分类前缀为0x )ON/OFF 状态的读请求。
MODBUS协议Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
M odbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。
被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和 Modbus不同。
它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。
它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
MODBUS协议功能码及报文解析-485功能码在工业自动化领域,通信协议就如同信息传递的“高速公路”,而MODBUS 协议便是其中一条重要的“主干道”。
今天,咱们就来深入聊聊 MODBUS 协议中的功能码以及与之相关的 485 功能码,搞清楚它们是如何工作的,以及怎样解析其中的报文。
MODBUS 协议是一种应用广泛的工业通信协议,其功能强大且易于实现。
在这个协议中,功能码起到了关键的作用,它们就像是不同的指令,告诉接收方要执行什么样的操作。
首先,咱们来看看常见的 MODBUS 功能码。
功能码 01 被称为“读线圈状态”,它允许主站读取从站设备中的离散输出线圈的状态,是还是否,开或者关。
功能码 02 则是“读离散输入状态”,用于获取离散输入的当前状态。
接着是功能码 03,也就是“读保持寄存器”。
这一功能码能让主站读取从站设备中的多个保持寄存器的值,这些寄存器通常存储着重要的模拟量数据或者配置信息。
然后是功能码 04,即“读输入寄存器”,它用于读取从站的输入寄存器中的数据。
功能码 05 是“写单个线圈”,主站可以通过它来控制从站设备中单个离散输出线圈的状态。
而功能码 06 则用于“写单个寄存器”,能够向从站的单个保持寄存器写入数据。
功能码 0F 叫做“写多个线圈”,可以一次性地对多个离散输出线圈进行写操作。
功能码 10 则是“写多个寄存器”,能同时向多个保持寄存器写入数据。
说完了常见的 MODBUS 功能码,咱们再把目光聚焦到 485 功能码上。
485 是一种常用的物理接口标准,在 MODBUS 协议的应用中十分常见。
在基于 485 接口的 MODBUS 通信中,报文的格式和内容有着严格的规定。
一个完整的 MODBUS 报文通常包括地址域、功能码域、数据域和校验域。
地址域用于标识通信中的从站设备,就好像是给每个从站都分配了一个“门牌号”。
功能码域则明确了本次通信要执行的具体操作。
数据域的内容则根据功能码的不同而有所变化。
MODBUS协议Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
M odbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。
被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和 Modbus不同。
它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。
它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
MODBUS协议Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Modbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU 格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。
被配置为RTU变种的节点不会和设置为A SCII变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/T CP变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本Modbus Plus(Modbus+或者MB +),不过此协定是Modicon专有的,和Modbus不同。
它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。
它使用1Mbi t/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
MODBUS协议Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Mod bus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和rem ote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。
被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和 Modbus不同。
它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。
它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
M O D B U S协议(功能码及报文的详细解析) -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANMODBUS协议Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Modbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。
被配置为RTU变种的节点不会和设置为ASCII 变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和 Modbus不同。
Modbus协议概述Modbus作为在工业设备通讯上使用最多,应用最广得国际标准协议,在应用SymLink发送:01 03 00 01 00 02 95 CB01代表设备地址103代表读取保持寄存器得值00 01代表采集点对应得寄存器号00 02代表读取2个连续寄存器得值95 CB为01 03 00 01 00 02计算所得得CRC值SymLink接收:01 03 04 00 00 00 00 FA 3301代表设备地址103代表读取保持寄存器得值04代表设备返回得数据个数,字节为单位00 00 00 00为数据返回得连续2个寄存器得值FA 33为01 03 04 00 00 00 00计算所得得CRC值SymLink在判断01、03、04这些反馈信息都合法,并且CRC校验无误得情况下,就可以对00 00 00 00 所在得数据值进行规定数据格式得解析。
目前支持Modbus协议得设备越来越多,包括PLC、智能仪表、通讯模块等等,如果厂家设备支持得通讯协议为标准格式得Modbus协议,那么在选择厂家得时候就直接选择国际标准得Modbus。
准备工作3Symlink工业智能机1任意型号4设备说明书与点表1说明书指导设置设备地址、波特率等通讯参数。
点表用来配置采集点信息。
设备连接✍RS485通讯,设备得A端子对应连接SymLink得A端子、设备得B端子对应连接SymLink得B端子,需要注意得就是一根线上接多个IED得情况,一个就是设备地址要唯一、波特率与其她串口参数要一致,另外接线得时候需要从一台IED得AB端子跳接到下一台IED得AB端子,防止并联分散传输信号。
✍RS232通讯,设备得发送针对应连接SymLink得RX、设备得接收针对应连接SymLink得TX、设备得接地针对应SymLink得GND。
✍以太网通讯,设备得网口对应连接到同一网段得SymLink LAN口,如果含多台以太网设备通讯,需要加交换机。
modbus功能码10报文举例说明(实用版)目录1.Modbus 功能码 10 简介2.Modbus 功能码 10 报文结构3.Modbus 功能码 10 报文举例4.Modbus 功能码 10 报文的解析5.Modbus 功能码 10 的应用场景正文【Modbus 功能码 10 简介】Modbus 是一种串行通信协议,广泛应用于工业自动化领域。
它提供了一种在设备之间进行数据交换的标准方法。
Modbus 协议中有许多功能码,每个功能码都对应一种特定的数据操作。
其中,功能码 10(Read Holding Registers)是一种用于读取保持寄存器数据的功能码。
【Modbus 功能码 10 报文结构】Modbus 功能码 10 的报文结构包括:1.帧头:包括地址码、功能码、数据长度和奇偶校验。
2.保持寄存器地址:表示要读取的寄存器的起始地址。
3.寄存器数量:表示要读取的寄存器数量。
4.数据:表示读取到的寄存器数据。
5.帧尾:包括校验和和结束符。
【Modbus 功能码 10 报文举例】假设我们要读取设备 ID 为 10 的设备上的保持寄存器,起始地址为0,读取 3 个寄存器的数据。
那么,Modbus 功能码 10 的报文如下:帧头:01 0x10 03 0x00保持寄存器地址:00 01寄存器数量:03数据:0x01 0x02 0x03帧尾:0x04 0x00【Modbus 功能码 10 报文的解析】Modbus 功能码 10 的报文解析过程如下:1.根据帧头中的地址码,找到对应的设备。
2.根据保持寄存器地址,确定读取寄存器的起始地址。
3.根据寄存器数量,读取指定数量的寄存器数据。
4.将读取到的数据按照 Modbus 协议的格式返回。
【Modbus 功能码 10 的应用场景】Modbus 功能码 10 广泛应用于工业自动化领域,例如:1.采集设备上的保持寄存器数据,用于监控设备运行状态。
2.修改保持寄存器数据,用于控制设备的运行。
MODBUS协议Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
M odbus比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和remote terminal unit (RTU)。
Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数Modbus设备通信通过串口EIA-485物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。
被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者MB+),不过此协定是Modicon专有的,和 Modbus不同。
它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。
它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
Modbus协议概述Modbus作为在工业设备通讯上使用最多,应用最广的国际标准协议,在应用层的协议定义上我们对其进行简单的介绍:类型描述设备地址对应通讯设备设定的1-255的任意一个数字地址号。
功能码对应读取模拟量一般采用03\04号功能码,对于读取开关量一般采用01\02号功能码。
起始地址数据在通讯设备中的寄存器定义,一般由厂家提供点表。
数据格式数据在寄存器中的格式,较多的为16位无符号,因为一个寄存器就是一个16位的长度。
CRC校验经过CRC校验算法后,添加CRC计算的值在协议传输帧的最后面,主要是防止串口误码导致数据错误。
举一个最简单的例子,我们在SymLink中查看报文的时候可以看到:SymLink发送:01 03 00 01 00 02 95 CB01代表设备地址103代表读取保持寄存器的值00 01代表采集点对应的寄存器号00 02代表读取2个连续寄存器的值95 CB为01 03 00 01 00 02计算所得的CRC值SymLink接收:01 03 04 00 00 00 00 FA 3301代表设备地址103代表读取保持寄存器的值04代表设备返回的数据个数,字节为单位00 00 00 00为数据返回的连续2个寄存器的值FA 33为01 03 04 00 00 00 00计算所得的CRC值SymLink在判断01、03、04这些反馈信息都合法,并且CRC校验无误的情况下,就可以对00 00 00 00 所在的数据值进行规定数据格式的解析。
目前支持Modbus协议的设备越来越多,包括PLC、智能仪表、通讯模块等等,如果厂家设备支持的通讯协议为标准格式的Modbus协议,那么在选择厂家的时候就直接选择国际标准的Modbus。
准备工作序号名称数量备注1厂家设备任意支持标准的Modbus协议2连接电缆实际长度串口通讯为0.5\0.75规格的屏蔽双绞线,长度建议不要超过100米。
以太网通讯为带隔离保护的标准网线,长度建议不要超过50米。
MODBUS 协议Modbus 是一种串行通信协议,是Modicon 于 1979 年,为使用可编程逻辑控制器(PLC)而发表的。
事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Mod bus 比其他通信协议使用的更广泛的主要原因有:公开发表并且无版税要求相对容易的工业网络部署对供应商来说,修改移动原生的位或字节没有很多限制Modbus 允许多个设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus 通常用来连接监控计算机和 rem ote terminal unit (RTU)。
Modbus 协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
大多数 Modbus 设备通信通过串口EIA-485 物理层进行[1]。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。
Modbus RTU 是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII 是一种人类可读的,冗长的表示方式。
这两个变种都使用串行通讯(serial communication)方式。
RTU 格式后续的命令/数据带有循环冗余校验的校验和,而 ASCII 格式采用纵向冗余校验的校验和。
被配置为 RTU 变种的节点不会和设置为 ASCII 变种的节点通信,反之亦然。
对于通过TCP/IP(例如以太网)的连接,存在多个 Modbus/TCP 变种,这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
Modbus 有一个扩展版本 Modbus Plus(Modbus+或者 MB+),不过此协定是Modicon 专有的,和 Modbus 不同。
它需要一个专门的协处理器来处理类似HDLC 的高速令牌旋转。
它使用 1Mbit/s 的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
MODBUS规约报文解析报文格式,报文全部为16进制,遥信状态需要转换为二进制:
发送数据:01 03 01 00 00 02 C5 F7 //16时14分02秒接收数据:01 03 04 03 03 00 00 0A 77 //16时14分02秒结果分析为:第1、2、9、10遥信合位。
发送数据:01 03 01 00 00 02 C5 F7 //16时15分40秒接收数据: 01 03 04 12A2 00 00 5E A9 //16时15分40秒结果分析为:第2、6、8、10、13遥信合位
发送数据:01 03 01 00 00 02 C5 F7 //16时21分47秒
接收数据:01 03 04 00 33 00 00 0A 3C //16时21分47秒结果分析为:第1、2、5、6遥信合位
遥控点号:开关操作=0300H合操作
TX: 01 06 03 00 00 02 08 4F //06表示遥控功能码,02表示分操作;RX: 01 06 03 00 00 02 08 4F //06表示遥控功能码,02表示分操作;
遥控点号:开关操作=0300H 分操作
TX: 01 06 03 00 00 01 48 4E //06表示遥控功能码,01表示分操作;RX: 01 06 03 00 00 01 48 4E //06表示遥控功能码,01表示分操作;
遥测报文,每个遥测值占用2个字节,即1个寄存器,最大值为:0x0000H~0xFFFFH,即:0~65535。
发送数据:01 03 02 00 00 0D 85 B7 //16时27分02秒
接收数据:01 03 1A 00 00 00 00 00 001E AE 00 00 1E AD1E AD 00 00 00 00 00 00 00 00 00 00 6A 96 77 67 //16时27分02秒
电度报文分析:
/********************伴随着总召换的电度主动上送****************************/
共有4个电度:
正向有功积分电度=0301H 10000.000(0x00989680),
正向无功积分电度=0302H 0.000 (0x0),
反向有功积分电度=0303H 0.000(0x0),
反向无功积分电度=0304H 0.000(0x0)。
TX: 01 03 81 0200 08 CD F0 //81 02为总召唤,00 08为数据长度。
RX: 01 03 1000 98 96 80 00 00 00 00 00 00 00 00 00 00 00 00 15 64 //10为报文数据长度。