MODBUS_RTU 通讯协议(LCD热量表)
- 格式:pdf
- 大小:91.08 KB
- 文档页数:2
MODBUS_RTU 通讯协议1、数据传输格式:1位起始位、8位数据位、1位停止位、无奇偶校验位。
2、仪表数据格式:2字节寄存器值=寄存器数高8位二进制数+寄存器低8位二进制数3、仪表通讯帧格式:读寄存器命令格式:1 2 3 4 5 6 7~8DE 3 起始寄存器高位起始寄存器低位寄存器数高位寄存器数低位CRC 应答:1 2 3 4~5 6~7 …M*2+2~M*2+3 M*2+4~M*2+5 DE 3 字节计数M*2 寄存器数据1 寄存器数据2…寄存器数据M CRC 写寄存器命令格式:1 2 3 4 5 6 7~8DE 6 起始寄存器高位起始寄存器低位数据高位数据低位CRC DE: 设备地址 (1~200)单字节CRC: 校验字节 采用CRC-16循环冗余错误校验举例说明:(以LED手动操作器为例)MODBUS_RTU 通讯协议(十进制格式)以实际通讯数据内容为准发送:1, 3, 0, 0, 0, 16, 68, 6,回收:01 ,03 32, 01 ,00, 10, 00, 00, 00, 250, 128, 01, 00, 250, 128, 01, 00, 00, 00, 01, 00, 00, 00, 01, 00, 04, 00, 00, 00, 00, 255, 00, 255, 01, 158, 188, 124仪表动态数据格式编号参数名称数据格式地址备注1 保留单字节定点数 00002 E2PROM参数修改标志单字节定点数 00013 仪表类型单字节定点数 0002自动01 — 手动—4 手自动状态单字节定点数 0003005 第一通道三字节浮点数 00046 第二通道三字节浮点数 00067 手动输出值三字节浮点数 00088 第一报警(AL1)单字节定点数 000A9 第二报警(AL2)单字节定点数 000B10 第三报警(AL3)单字节定点数 000C11 第四报警(AL4)单字节定点数 000D注:在写手动输出值时,必须先更改手自动状态(可用上位机进行更改)。
MODBUS_RTU 通讯协议1、数据传输格式:1位起始位、8位数据位、1位停止位、无奇偶校验位。
2、仪表数据格式:2字节寄存器值=寄存器数高8位二进制数+寄存器低8位二进制数3、仪表通讯帧格式:读寄存器命令格式:1 2 3 4 5 6 7~8 DE 3 起始寄存器高位起始寄存器低位寄存器数高位寄存器数低位CRC 应答:1 2 3 4~5 6~7 …M*2+2~M*2+3 M*2+4~M*2+5 DE 3 字节计数M*2 寄存器数据1 寄存器数据2…寄存器数据M CRC DE: 设备地址 (1~200)单字节CRC: 校验字节 采用CRC-16循环冗余错误校验举例说明:(以LED双路控制仪为例)MODBUS_RTU 通讯协议(十进制格式)以实际通讯数据内容为准发送:1, 3, 0, 0, 0, 16, 68, 6,回收:1, 3, 32, 1, 0, 8, 0, 128, 12, 0, 0, 128, 12, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 255, 0, 255, 1, 85, 0, 0, 15, 0, 0, 15, 220, 139,仪表动态数据格式编号参数名称地址备注1 保留 00002 内部修改标志 00013 仪表类型 00024 第一通道实时值 00035 第二通道实时值 0005第一报警(AL1) 00076第二报警(AL2) 00087第三报警(AL3) 00098第四报警(AL4) 000A9该表的负数使用的是补码方式解析举例:-117的解析表示如下+117可表示为 0000 0000 0111 0101按位求反后为 1111 1111 1000 1010末位加1后为 1111 1111 1000 1011用十六进制数表示为 F F 8 B=FF8BH即 [-117]补。
Modbus通讯协议Modbus协议Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Sc hneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。
此协议支持传统的RS-232、RS-422、RS-485和以太网设备。
许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。
Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。
此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。
标准的Modicon控制器使用RS232C实现串行的Modbus。
Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Sl ave端的数据,实现双向读写。
Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。
另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave 站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。
因此,Modbus协议的可靠性较好。
下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种基于串行通信的通讯协议,用于在工业自动化领域中实现设备之间的数据交互。
本协议旨在规范ModBusRTU通讯协议的格式、数据传输方式、命令与响应规则等,以确保通讯的稳定性和可靠性。
二、协议结构ModBusRTU通讯协议采用了一种简单的主从结构,其中包括一个主站和多个从站。
主站负责发送命令并接收从站的响应,而从站则负责接收命令并向主站发送响应。
三、数据格式1. 帧格式ModBusRTU通讯协议的数据帧由以下几个部分组成:- 起始位:一个起始位,用于标识数据帧的开始。
- 地址位:一个地址位,用于标识从站的地址。
- 功能码:一个功能码,用于标识命令的类型。
- 数据位:一个或多个数据位,用于传输命令或响应的数据。
- 校验位:一个校验位,用于验证数据的完整性。
- 结束位:一个结束位,用于标识数据帧的结束。
2. 数据类型ModBusRTU通讯协议支持多种数据类型,包括位(Coil)、输入位(Input Coil)、寄存器(Holding Register)和输入寄存器(Input Register)。
每种数据类型都有对应的读取和写入命令。
四、命令与响应规则1. 读取命令主站可以发送读取命令来获取从站的数据。
读取命令的格式如下:- 从站地址:一个字节,用于指定要读取数据的从站地址。
- 功能码:一个字节,用于指定读取命令的功能码。
- 起始地址:两个字节,用于指定要读取数据的起始地址。
- 数据长度:两个字节,用于指定要读取的数据长度。
- 校验码:两个字节,用于验证命令的有效性。
2. 写入命令主站可以发送写入命令来向从站写入数据。
写入命令的格式如下:- 从站地址:一个字节,用于指定要写入数据的从站地址。
- 功能码:一个字节,用于指定写入命令的功能码。
- 起始地址:两个字节,用于指定要写入数据的起始地址。
- 数据长度:两个字节,用于指定要写入的数据长度。
图文详解Modbus-RTU协议前世今生照例简单说下这个协议的历时,Modicon公司于1979年制定了Modbus协议标准,并用在其PLC产品上。
后来Modicon公司被施耐德收购。
已成为一种事实标准协议,同时也被IEC-61158工业通信总线规范收录于type 15子集。
所谓一流的企业做标准,二流的企业做品牌,三流的企业做产品。
这些标准国人都基本是使用者,而非缔造者,所以使用一下,产品上印个标志,做做相关的测试认证都要给老外交钱。
这里只是顺带牢骚几句,与本文想说的无关。
打住!Modbus的应用除了常见的过程控制系统,在其他很多领域都有其身影,比如一些楼宇控制,消防控制等等都有大量的产品采用Modbus协议,因为这个协议实现简单,工作可靠,还是标准化的协议!Modbus分很多实现版本,总的来说是一种应用层协议。
从OSI七层模型来看,位于第七层应用层。
它定义了在不同类型的总线或网络上连接的设备之间提供”客户端/服务器“通信。
对于使用串口的版本,也定义了layer 1 和 layer 2,实现在主站和一个或多个从站之间交换MODBUS 报文。
具体有哪些版本呢?其实主要分两种:Modbus RTU(Remote Terminal Unit 远程终端单元):这种方式常采用RS-485做为物理层,一般利用芯片的串口实现数据报文的收发,报文数据采用二进制数据进行通信。
Modbus ASCII :报文使用 ASCII 字符。
ASCII 格式使用纵向冗余校验和。
Modbus ASCII 报文由冒号 (":")开始和换行符 (CR/LF)结尾构成。
当然其他还根据所使用的物理层不一样,有这么些做法:Modbus TCP/IP 或 Modbus TCP :这是一种 Modbus 变体版本,使用 TCP/IP 网络进行通信,通过 502 端口进行连接。
报文不需要校验和计算,因为以太网底层已经实现了CRC32 数据完整性校验。
MODBUS通讯协议-RTU(DOC)简介Modbus通讯协议是一种通用语言,广泛应用于电子控制器上。
通过该协议,不同厂商生产的控制设备可以连接成工业网络,进行集中监控,已成为通用工业标准。
该协议定义了控制器能够认识使用的消息结构,并描述了控制器请求访问其他设备的过程,回应其他设备的请求的方式,以及如何侦测错误并记录。
在Modbus网络上通信时,每个控制器需要知道设备地址、识别按地址发来的消息,并决定产生何种行动。
该协议只允许在主计算机和终端设备之间进行数据交换,不允许独立设备之间的数据交换。
传输方式在Modbus总线上进行通讯时,使用RTU模式,信息中的每8位字节分成两个4位16进制的字符,并且每个信息必须连续传输。
传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则。
代码系统采用8位二进制和十六进制数0.9,A。
F,消息中的每个8位域都是由两个十六进制字符组成。
每个字节的位包括1个起始位、8个数据位(最小的有效位先发送)、1个奇偶校验位(无校验则无)和1个停止位(有校验时为2个Bit,无校验时为1个Bit)。
错误检测域采用CRC(循环冗长检测)。
协议简介Modbus通讯协议是一种通用语言,广泛应用于电子控制器上。
通过该协议,不同厂商生产的控制设备可以连接成工业网络,进行集中监控,已成为通用工业标准。
该协议定义了控制器能够认识使用的消息结构,并描述了控制器请求访问其他设备的过程,回应其他设备的请求的方式,以及如何侦测错误并记录。
传输方式在Modbus总线上进行通讯时,使用RTU模式,信息中的每8位字节分成两个4位16进制的字符,并且每个信息必须连续传输。
传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则。
代码系统采用8位二进制和十六进制数0.9,A。
F,消息中的每个8位域都是由两个十六进制字符组成。
每个字节的位包括1个起始位、8个数据位(最小的有效位先发送)、1个奇偶校验位(无校验则无)和1个停止位(有校验时为2个Bit,无校验时为1个Bit)。
modbusrtu协议1. 简介modbusrtu协议是一种串行通信协议,广泛应用于工业自动化领域。
它定义了一种主从设备之间进行通信的规则和数据帧格式,能够实现可靠的数据交换。
本文将介绍modbusrtu协议的基本原理、数据帧结构、功能码以及在实际应用中的常见用途。
2. 基本原理modbusrtu协议采用了简单的主从架构,其中一个设备作为主站,控制多个从站进行数据交换。
主站负责发起请求并解析从站的响应数据。
通信采用全双工的方式进行,主站和从站通过共享的数据线交换信息。
3. 数据帧结构modbusrtu协议的数据帧由起始符、从站地址、功能码、数据、校验码和结束符组成。
具体结构如下:起始符 | 地址 | 功能码 | 数据 | 校验码 | 结束符•起始符:用于同步通信的起始标识符,通常为一个字节。
•地址:标识从站的地址,通常为一个字节。
地址0为广播地址,用于向多个从站发送指令。
•功能码:指定从站执行的操作,可以是读取数据、写入数据或其他特定功能。
•数据:用于传输的数据,长度可变。
•校验码:用于检测数据传输过程中的错误,通常采用循环冗余校验(CRC)算法计算得出。
•结束符:标志数据帧的结束,通常为一个或多个字节。
4. 功能码modbusrtu协议定义了一套常用的功能码,用于指示从站执行不同的操作。
常见的功能码及其功能如下:•读取线圈状态(01H):用于读取从站的开关量输出状态。
•读取输入状态(02H):用于读取从站的开关量输入状态。
•读取保持寄存器(03H):用于读取从站的模拟量输入状态。
•读取输入寄存器(04H):用于读取从站的模拟量输出状态。
•强制单线圈(05H):用于强制从站的开关量输出状态。
•预置多个寄存器(06H):用于设置从站的模拟量输出状态。
•执行多个操作(0FH):用于执行多个操作,如同时读取多个寄存器或写入多个寄存器的值。
5. 实际应用modbusrtu协议在实际应用中广泛用于工业自动化和远程监控系统。
MODBUS-RTU协议MODBUS-RTU协议通信模式该仪表使用MODBUS RTU格式,用于主从查询模式进行数据通信。
在RTU模式下,数据格式为n,8,1(1个起始位、8个数据位、无校验、1个停止位)。
波特率可选五种,分别为1200、2400、4800、9600和.T1、T2、T3、T4为每帧之间的时间间隔,两帧之间的传输必须大于间隔时间。
地址协议中规定仪表的地址为“01-99”,其中“00”地址用于广播,但本协议不支持广播,其余地址保留。
命令该仪表使用了MODBUS协议中的三条指令:命令03(HEX)用于读单个或多个寄存器,命令06(HEX)用于写单个寄存器,命令10(HEX)用于写多个寄存器,其中命令10包含了命令6.数据格式协议中的数据包括16进制数、整数、BCD码和浮点数。
单精度浮点数SINGLE格式为IEEE754,数据由低到高。
32位浮点数共计32位,折合4字节,由最高到最低位分别是第31、30、29、……、位。
31位是符号位(S),1表示该数为负,反之;30-23位一共8位是阶码;22-0位一共23位是尾数。
BCD码格式有两种:格式1为4字节BCD编码,数据低→高,如数据xxxxxxxx表示为4字节。
格式2为内部应用的6字节BCD编码,表示固定小数点的数据,数据低→高,如.678表示为6字节,小数点默认为第9位数的后面。
无符号整数Uint为0-.命令3格式命令3是读寄存器命令。
MODBUS请求包括仪表地址、功能码、起始地址和读取数量,以及CRC低位和CRC高位。
MODBUS响应包括仪表地址、功能码、字节计数、输入状态,以及CRC低位和CRC高位。
错误响应包括仪表地址、功能码、错误代码,以及CRC低位和CRC高位。
示例请求:仪表地址码:01功能码:03起始地址高(字节):00起始地址低(字节):01读取数量高(字节):00读取数量低(字节):02数据(hex):01 03文章中没有明显的格式错误或有问题的段落。
Modbus Rtu 通信协议1、读取保持寄存器(单个和多个,以字为最小单位)发送命令帧:设备地址功能码地址H地址L数据量H数据量LCRC HCRC LAddr03 HHoldStartDataNumCRC高位CRC低位帧长度:8个字节设备地址:1~247功能码:3H数据地址:0~65535 具体范围与相关设备有关数量:1~65535 具体范围与相关设备有关校验码:CRC16校验返回命令帧:设备地址功能码数据量数据1数据NCRC HCRC LAddr13 H返回数据的字节数NData (1~N)CRC高位CRC低位帧长度:5+N 个字节设备地址:1~247功能码:3H数据量:实际的读取数据数量数据:返回数据的意义a=HoldStartn= DataNum-1VW a (VB a)VWa(VB a+1)…VW a+n(VB a+n)VWa+n(VB a+n+1)Data(1)Data(2)…Data(N-1)Data(N)校验码:CRC16校验命令有误:1) 没有任何返回2) 返回异议帧设备地址功能码错误信息CRC HCRC LAddr183 H一个字节的错误信息CRC高位CRC低位2、设置保持寄存器(多个,以字为最小单位)发送命令帧:设备地址功能码地址H地址L数据量H数据量L数据字节数具体数据CRC H CRC L Addr010 H HoldStart DataNum bytN1~bytNCRC高位CRC低位帧长度:9+bytN 个字节设备地址:1~247功能码:10H数据地址:0~65535 具体范围与相关设备有关数量:1~122 具体范围与相关设备有关字节数:设置的字节个数bytN= DataNum×2 #p#分页标题#e#数据:具体的字节数据校验码:CRC16校验返回命令帧:设备地址功能码地址H 地址L 数据量H 数据量L CRC H CRC L Addr1 10 H HoldStart DataNum CRC高位CRC低位帧长度:8 个字节设备地址:1~247功能码:10H数据地址:0~65535 具体范围与相关设备有关数量:1~122 具体范围与相关设备有关校验码:CRC16校验命令有误:1)没有任何返回2)返回异议帧地址功能码错误信息CRC HCRC LAddr190 H一个字节的错误信息CRC高位CRC低位。
MODBUS-RTU通讯协议®MODBUS通讯协议使用手册1.8 寄存器定义表:(注:寄存器地址编码为16进制)寄存器地址内容说明只读寄存器地址内容说明只读00000001 表型字(2字节) √√0003 仪表地址√00040010 通道1瞬时值(4字节浮点数高2字节)√0011 通道1瞬时值(4字节浮点数低2字节)√0012 通道2瞬时值(4字节浮点数高2字节) √0013 通道2瞬时值(4字节浮点数低2字节)√0014 通道3瞬时值(4字节浮点数高2字节) √0015 通道3瞬时值(4字节浮点数低2字节)√0016 通道4瞬时值(4字节浮点数高2字节)√0017 通道4瞬时值(4字节浮点数低2字节)√0018 通道5瞬时值(4字节浮点数高2字节)√0019 通道5瞬时值(4字节浮点数低2字节)√001A 通道6瞬时值(4字节浮点数高2字节)√001B 通道6瞬时值(4字节浮点数低2字节)√001C 通道7瞬时值(4字节浮点数高2字节)√001D 通道7瞬时值(4字节浮点数低2字节)√001E 通道8瞬时值(4字节浮点数高2字节)√001F 通道8瞬时值(4字节浮点数低2字节)√0020 通道9瞬时值 (4字节浮点数高2字节)√0021 通道9瞬时值(4字节浮点数低2字节)√0022 通道10瞬时值(4字节浮点数高2字节)√0023 通道10瞬时值(4字节浮点数低2字节)√0024 通道11瞬时值(4字节浮点数高2字节)√0025 通道11瞬时值(4字节浮点数低2字节)√0026 通道12瞬时值(4字节浮点数高2字节)√0027 通道12瞬时值(4字节浮点数低2字节)√0028 通道13瞬时值(4字节浮点数高2字节)√0029 通道13瞬时值(4字节浮点数低2字节)√002A 通道14瞬时值(4字节浮点数高2字节)√002B 通道14瞬时值(4字节浮点数低2字节)√002C 通道15瞬时值(4字节浮点数高2字节)√002D 通道15瞬时值(4字节浮点数低2字节)√002E 通道16瞬时值(4字节浮点数高2字节)√002F 通道16瞬时值(4字节浮点数低2字节)√0030 通道17瞬时值(4字节浮点数高2字节)√0031 通道17瞬时值(4字节浮点数低2字节)√0032 通道18瞬时值(4字节浮点数高2字节)√0033 通道18瞬时值(4字节浮点数低2字节)√0034 通道19瞬时值(4字节浮点数高2字节)√0035 通道19瞬时值(4字节浮点数低2字节)√0036 通道20瞬时值(4字节浮点数高2字节)√0037 通道20瞬时值(4字节浮点数低2字节)√0038 通道21瞬时值(4字节浮点数高2字节)√0039 通道21瞬时值(4字节浮点数低2字节)√003A 通道22瞬时值(4字节浮点数高2字节)√003B 通道22瞬时值(4字节浮点数低2字节)√003C 通道23瞬时值(4字节浮点数高2字节)√003D 通道23瞬时值(4字节浮点数低2字节)√003E 通道24瞬时值(4字节浮点数高2字节)√003F 通道24瞬时值(4字节浮点数低2字节)√0040 通道25瞬时值(4字节浮点数高2字节)√0041 通道25瞬时值(4字节浮点数低2字节)√0042 通道26瞬时值(4字节浮点数高2字节)√0043 通道26瞬时值(4字节浮点数低2字节)√0044 通道27瞬时值(4字节浮点数高2字节)√0045 通道27瞬时值(4字节浮点数低2字节)√0046 通道28瞬时值(4字节浮点数高2字节)√0047 通道28瞬时值(4字节浮点数低2字节)√0048 通道29瞬时值(4字节浮点数高2字节)√0049 通道29瞬时值(4字节浮点数低2字节)√004A 通道30瞬时值(4字节浮点数高2字节)√004B 通道30瞬时值(4字节浮点数低2字节)√004C 通道31瞬时值(4字节浮点数高2字节)√004D 通道31瞬时值(4字节浮点数低2字节)√004E 通道32瞬时值(4字节浮点数高2字节)√004F 通道32瞬时值(4字节浮点数低2字节)√0050 模拟输出1(2字节)0051 模拟输出2(2字节)0052 模拟输出3(2字节)0053 模拟输出4(2字节)0054 模拟输出5(2字节)0055 模拟输出6(2字节)0056 模拟输出7(2字节)0057 模拟输出8(2字节)0058 模拟输出9(2字节)0059 模拟输出10(2字节)005A 模拟输出11(2字节)005B 模拟输出12(2字节)005C 模拟输出13(2字节)005D 模拟输出14(2字节)005E 模拟输出15(2字节)005F 模拟输出16(2字节)0060 模拟输出17(2字节)0061 模拟输出18(2字节)0062 模拟输出19(2字节)0063 模拟输出20(2字节)0064 模拟输出21(2字节)0065 模拟输出22(2字节)0066 模拟输出23(2字节)0067 模拟输出24(2字节)0068 模拟输出25(2字节)0069 模拟输出26(2字节)006A 模拟输出27(2字节)006B 模拟输出28(2字节)006C 模拟输出29(2字节)006D 模拟输出30(2字节)006E 模拟输出31(2字节)006F 模拟输出32(2字节)0070 00710072 00730074 00750076 00770078 0079007A 007B007C 007D007E 007F0080 00810082 00830084 00850086 00870088 0089008A 008B008C 008D008E 008F0090 00910092 00930094 00950096 00970098 0099009A 009B009C 009D009E 009F00A0 00A100A2 00A300A4 00A500A6 00A700A8 00A900AA 00AB00AC 00AD00AE 00AF00B0 00B100B2 00B300B4 00B500B6 00B700B8 00B900BA 00BB00BC 00BD00BE 00BF00C0 00C100C2 00C300C4 00C500C6 00C700C8 00C900CA 00CB00CC 00CD00CE 00CF00D0 00D100D2 00D300D4 00D500D6 00D700D8 00D900DA 00DB00DC 00DD00DE 00DF00E0 00E100E2 00E300E4 00E5 00E6 00E7 00E8 00E9 00EA 00EB 00EC 00ED 00EE 00EF 00F0 00F1 00F2 00F3 00F4 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD 00FE 00FF 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109 010A 010B 010C 010D 010E010F0110 PID1 P 值(2字节) 0111 PID1 I 值(2字节) 0112 PID1 D 值(2字节)0113 0114 0115 0116 0116 0118 0119 011A 011B 011C 011D 011E011F0120 PID2 P 值(2字节) 0121 PID2 I 值(2字节) 0122 PID2 D 值(2字节)0123 0124 0125 0126 0126 0128 0129 012A 012B 012C 012D 012E 012F 0130 0131 0132 0133 0134 0135 0136 0136 0138 0139 013A 013B 013C 013D 013E 013F 0140 0141 0142 0143 0144 0145 0146 0146 0148 0149 014A 014B 014C 014D 014E014F0150 累积流量高位值(4字节浮点数高2字节)√ 0151 累积流量高位值(4字节浮点数低2字节)√ 0152 累积流量低位值(4字节浮点数高2字节) √0153累积流量低位值(4字节浮点数低2字节)√ 015401550156 01580158012A012C015E0160016201640166备注:字节地址+3 +2 +1 +0浮点数内容S E E E E E EE E M M M M M MMM M M M M M MMM M M M M M M ME为阶码。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种常用的串行通信协议,用于在工业自动化领域中实现设备之间的数据交换。
本协议旨在定义ModBusRTU通讯协议的标准格式和规范,以确保设备之间的通信能够高效、可靠地进行。
二、协议概述1. 协议目的本协议旨在定义ModBusRTU通讯协议的数据帧格式、通信规则和异常处理等内容,以便设备之间能够准确地进行数据交换。
2. 协议范围本协议适用于使用ModBusRTU通讯协议的各类设备,包括但不限于传感器、执行器、控制器等。
3. 术语和缩写为了方便理解和使用本协议,以下列出了一些常用术语和缩写的定义:- ModBusRTU:ModBus串行通讯协议的一种变种,使用二进制编码进行数据传输。
- 数据帧:ModBusRTU通讯协议中的最小数据单元,包含了设备之间传输的数据和控制信息。
- 主站:ModBusRTU通讯协议中发起通信的设备,负责发送请求并接收响应。
- 从站:ModBusRTU通讯协议中被动响应通信的设备,负责接收请求并发送响应。
三、协议格式1. 物理层ModBusRTU通讯协议使用串行通信方式,采用RS-485标准进行电气连接。
通信速率可根据实际需求进行设置,常见的速率有9600、19200、38400等。
2. 数据帧格式ModBusRTU通讯协议中的数据帧由起始位、从站地址、功能码、数据域、CRC校验和和终止位组成。
具体格式如下:| 起始位 | 从站地址 | 功能码 | 数据域 | CRC校验和 | 终止位 ||--------|----------|--------|--------|-----------|--------|- 起始位:一个起始位,用于标识数据帧的开始。
- 从站地址:一个字节,用于指定从站的地址,范围为1-247。
- 功能码:一个字节,用于标识请求的类型,包括读取数据、写入数据等。
MODBUS 通讯协议使用手册从机地址码(=001〜254) 读寄存器值岀错 见信息码表从字节1到3的CRC16校验和1.4.功能码06H:写单个寄存器值:1.RTU 方式通讯协议1.1. 硬件采用RS- 485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
1.2. 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:9600;19200 384001.3. 功能码03H:读寄存器值 主机发送: 第1字节ADR 第2字节03H 第3、4字节第5、6字节 第7、8字节从机地址码(=001〜254) 读寄存器值功能码 要读的寄存器开始地址 要读FCC 下挂仪表,要读的寄存器数量从字节1到6的CRC16校验和从机回送:第1字节ADR 第2字节 03H第3字节第4到M 字节 从机地址码(=001〜254) 返回读功能码从4到M (包括4及M 的字节总数 寄存器数据第 M+ 1、 当从机接收错误时,从机回送: M+2字节 : 从字节1至U M 的CRC16校验和 第1字节ADR 第2字节 83H第3字节信息码 第4、 5字节当从机接收正确时,从机回送:当从机接收错误时,从机回送:从机地址码(=001〜254)写寄存器值岀错功能码 见信息码表从字节1到3的CRC16校验和当从机接收错误时,从机回送:从机地址码(=001〜254) 写寄存器值岀错 见信息码表从字节1到3的CRC16校验和第1字节ADR 第2字节 86H 第3字节错误数息码 第4、 5字节第1字节ADR 第2字节 90H 第3字节错误信息码 第4、 5字节0164 0166备注:E为阶码。
M 为尾数的小数点部分。
例如:浮点数 124.75 = 42F98000H,在内存中的存放格式为: 2.寄存器定义表中,读写属性有打 的寄存器为只读寄存器。
没有打"的为读写寄存器。
1.9 信息码表:1.10仪表表型字 00 XMZ5000 01 XMT/XMB5000 02 XMDI50003 XMS500004 XML6000 05 XMD5XX16 (16)06 XMA5000 07 XMH5000 08XML5000 (3)9 XMJ500010 XMD5XX08 (8) 11 XMPHT/XMPHB50012 XMD5XX32(32)13 XME5000 (3) 14 XMDO500015 XMLH5000 (4+1)16XMD5XX24 (24)17 XMAF5000 (2)18 XMC5000(24)30 XMG5000 31 XMGI5000 32 XMG7000 (2)33 XMG8000 (3) 34 XMHG500035 XMGA5000/6000 ⑷36 XMGAF5/6/7000 (4) 37 XMRA5000/6000 (5)38XMRAF5000/6000 (5)39 XMPA7000 (5)40 XMPAF7000 (5) 41 XMRA7000 (6)42 XMRAF7000 (6)43 XMPHGA5000/6000 44 XXS45 XMRH5000 46 DFD/DFQ/DFDA/DFDQ5000/DFQA700050 XMPA8000 (7)51 XMPAF8000 (7) 52 XMRA8000 (8)53 XMRAF8000 (8)545560XMLY5000 61XMLY60001.11仪表分度号00 0〜10mA 线性 014〜20mA 线性 02 0〜5V 线性03 1〜5V 线性 04 0〜100线性 050〜10mA 开方06 4〜20mA 开方 07 0〜5V 开方 08 1〜5V 开方09 0〜100开方 10 Pt100 11 Pt100.012 Pt1013 Cu100 14 Cu5015 30〜350Q 16 G53 17 BA118 BA2 19 F1 20 F221 B 22 R 23 S24 N 25 K 26 E27 J28 T 29NiCr-AuFe0.0730钨铼3-钨铼2631EA232 EU233: 0 〜60mV注:16 通讯板跳线端子说明:拨码开关拨向ON 表示零(1)值8 7 6 5 4 3 2 1 (端子 1)端子2的4 3 2 1 位为FCC 仪表地址选择,当4 3 2 1 位=0 0 0 0 ,表示不挂FCC 仪表;例如4 32仁0 0 1 0 表示FCC 仪表地址为2(注: 对于xml 型号的仪表 通道1表示XML 的瞬时值;通道 2表示XML 的温度值;通道3表示XML 的压 力值;xml 的瞬时值,温度值,压力值,支持批读; XML 的累积流量的寄存器地址从 0150h 到 0153h ; XMD,XM (多路采集器支持批读。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种用于串行通信的通信协议,常用于工业自动化领域。
本协议旨在规定ModBusRTU通讯协议的标准格式,以确保设备之间的通信能够准确、高效地进行。
二、协议结构ModBusRTU通讯协议采用了简单的主从结构,其中包括主站(Master)和从站(Slave)。
主站负责发起通信请求,而从站则负责响应主站的请求。
三、协议帧格式ModBusRTU通讯协议的帧格式如下:1. 起始位(Start Bit):占据一个字节的最低位,用于标识一个帧的开始。
2. 地址位(Address):占据一个字节,用于标识从站的地址。
3. 功能码(Function Code):占据一个字节,用于标识主站请求的功能。
4. 数据域(Data Field):占据可变长度的字节,用于传输数据。
5. 校验位(Checksum):占据两个字节,用于校验帧的完整性。
6. 停止位(Stop Bit):占据一个字节,用于标识一个帧的结束。
四、功能码ModBusRTU通讯协议定义了一系列功能码,用于标识主站请求的功能。
以下为常用的功能码:1. 读取线圈状态(Read Coil Status):用于读取从站的线圈状态。
2. 读取输入状态(Read Input Status):用于读取从站的输入状态。
3. 读取保持寄存器(Read Holding Registers):用于读取从站的保持寄存器。
4. 读取输入寄存器(Read Input Registers):用于读取从站的输入寄存器。
5. 强制单线圈(Force Single Coil):用于强制从站的单线圈状态。
6. 预置多个寄存器(Preset Multiple Registers):用于预置从站的多个寄存器。
五、通信流程ModBusRTU通讯协议的通信流程如下:1. 主站向从站发送请求帧,包括从站地址、功能码和数据域。
Modbus通讯协议(RTU传输模式)本说明仅做内部参考,详细请参阅英文版本。
第一章Modbus协议简介Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。
首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,在相反的方向上终端设备发出的应答信号传输给主机。
协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
1.1传输方式传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则,以RTU模式在Modbus总线上进行通讯时,信息中的每8位字节分成2个4位16进制的字符,每个信息必须连续传输下面定义了与Modebus 协议–RTU方式相兼容的传输方式。
代码系统∙8位二进制,十六进制数0...9,A...F∙消息中的每个8位域都是一个两个十六进制字符组成每个字节的位∙1个起始位∙8个数据位,最小的有效位先发送∙1个奇偶校验位,无校验则无∙1个停止位(有校验时),2个Bit(无校验时)错误检测域∙CRC(循环冗长检测)1.2协议当信息帧到达终端设备时,它通过一个简单的“口”进入寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。
信捷触摸屏Modbus RTU功能码一、Modbus 协议简介Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
在其它网络上,包含了Modbus协议的消息被转换为在此网络上可使用的帧或包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
二、在Modbus网络上传输标准的Modbus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。
控制器能直接或经由Modem组网。
控制器通信使用主—从技术,即某一设备(主设备)能初始化传输(查询),其它设备(从设备)根据主设备查询提供的数据做出相应反应。
典型的主设备:主机和可编程仪表。
典型的从设备:可编程控制器,本章以信捷PLC作为从设备进行Modbus-RTU功能码测试。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。
如果单独通信,从设备返回一个消息作为回应;如果是以广播方式查询的,则不作任何回应。
Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域。
从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和错误检测域。
如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将建立错误消息并把它作为回应发送出去。
MODBUS-RTU通讯协议简介2008-01-15 23:15:09| 分类:技术人生| 标签:|字号大中小订阅什么是MODBUS?MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司的实际使用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。
目前,在RS232/RS485通讯过程中,更是广泛采用这种规约。
常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。
一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUS RTU规约。
在实际的使用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。
更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。
MODBUS-RTU通讯协议简介在本章主要讲述如何利用软件通过通讯口来操控该系列仪表。
本章内容的掌握需要您具有MODBUS协议的知识储备并且通读了本册其它章节所有内容,对本产品功能和使用概念有较全面了解。
本章内容包括:MODBUS协议简述,通讯使用格式详解,本机的使用细节及参量地址表。
1.1MODBUS协议简述ACRXXXE系列仪表使用的是MODBUS-RTU通讯协议,MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。
MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。
首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。
MODBUS协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
MODBUS_RTU 通讯协议
1、数据传输格式:1位起始位、8位数据位、1位停止位、无奇偶校验位。
2、仪表数据格式:2字节寄存器值=寄存器数高8位二进制数+寄存器低8位二进制数
3、仪表通讯帧格式:
读寄存器命令格式:
1 2 3 4 5 6 7~8 DE 3 起始寄存器高位起始寄存器低位寄存器数高位寄存器数低位CRC 应答:
1 2 3 4~5 6~7 …M*2+2~M*2+3 M*2+4~M*2+5 DE 3 字节计数M*2 寄存器数据1 寄存器数据2…寄存器数据M CRC DE: 设备地址 (1~200)单字节
CRC: 校验字节 采用CRC-16循环冗余错误校验
举例对比说明:(以LCD热量表为例)
1、SWP通讯协议(十六进制格式)以实际通讯数据内容为准
发送:@ 01 RD 17 \0D
回收:@01RD00840000000000000000000000000000000000000000F9FF9BCDFFFFFF 7F00440000300400001E13A18AC10764\0D
仪表动态数据格式(SWP协议)
编号参数名称数据格式类型备注
1 E2PROM参数修改标志单字节定点数只读
2 仪表类型单字节定点数只读
3 第一路采样四字节浮点数只读
4 第二路采样四字节浮点数只读
5 第三路采样四字节浮点数只读
6 瞬时值四字节浮点数只读
7 瞬热值四字节浮点数只读
因通讯是以秒为单位,故:
仪表实际值(单位:小时)=通讯采集值×3600
8 累计流量八字节浮点数只读
9 累计热量八字节浮点数只读通讯将八字节分为前四字节和后四字节,故:仪表实际值=前四字节×100+后四字节
10 停电次数单字节定点数只读
11 停电时间四字节浮点数只读
12 报警状态单字节定点数只读
2、MODBUS_RTU 通讯协议(十进制格式)
发送:1, 3, 0, 0, 0, 16, 68, 6,
回收:1, 3, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 198, 111,
仪表动态数据格式(MODBUS_RTU协议)
编号参数名称数据格式类型备注
1 保留单字节定点数 0000
1 E2PROM参数修改标志单字节定点数 0001
2 仪表类型单字节定点数 0002
3 第一路采样四字节浮点数 0003
4 第二路采样四字节浮点数 0005
5 第三路采样四字节浮点数 0007
6 瞬时值四字节浮点数 0009
7 瞬热值四字节浮点数 000B
因通讯是以秒为单位,故:
仪表实际值(单位:小时)=通讯采集值×3600
8 累计流量八字节浮点数 000D
9 累计热量八字节浮点数 0011通讯将八字节分为前四字节和后四字节,故:仪表实际值=前四字节×100+后四字节
10 停电次数单字节定点数 0015
11 停电时间四字节浮点数 0016
12 报警状态单字节定点数 001A。