埃美柯水表MODBUS-RTU通讯协议
MODBUS-RTU通讯协议书范本

®MODBUS通讯协议使用手册1. RTU 方式通讯协议1.1. 硬件采用RS -485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
1.2. 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:9600;19200 38400 1.3. 功能码03H : 读寄存器值主机发送:第1字节 ADR : 从机地址码(=001~254)第2字节 03H : 读寄存器值功能码 第3、4字节 : 要读的寄存器开始地址 要读FCC 下挂仪表,第5、6字节 : 要读的寄存器数量 第7、8字节 : 从字节1到6的CRC16校验和 从机回送:第1字节 ADR : 从机地址码(=001~254)第2字节 03H : 返回读功能码第3字节 :从4到M (包括4及M )的字节总数 第4到M 字节 : 寄存器数据 第M +1、M+2字节 : 从字节1到M 的CRC16校验和 当从机接收错误时,从机回送:第1字节 ADR : 从机地址码(=001~254)第2字节 83H : 读寄存器值出错第3字节 信息码 : 见信息码表 第4、5字节 : 从字节1到3的CRC16校验和 1.4. 功能码06H : 写单个寄存器值主机发送:当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节 ADR:从机地址码(=001~254)第2字节 86H :写寄存器值出错功能码 第3字节 错误数息码 : 见信息码表第4、5字节: 从字节1到3的CRC16校验和1.5. 功能码10H : 连续写多个寄存器值当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节 ADR: 从机地址码(=001~254)第2字节 90H : 写寄存器值出错 第3字节 错误信息码 : 见信息码表第4、5字节: 从字节1到3的CRC16校验和1.8 寄存器定义表:(注:寄存器地址编码为16进制)备注:E为阶码。
M为尾数的小数点部分。
rtu通讯协议

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载rtu通讯协议甲方:___________________乙方:___________________日期:___________________rtu通讯协议篇一:485rtu通讯协议71cb为cRc码)gnd:工作电源-(232通讯时连接电脑的串口5针)unsignedcharcodeauchcRclo[]={篇二:modbusRtu通讯协议要实现modbusRtu通信,一、需要step7-micro/win32V3.2 以上版本的编程软件,而且须安装step7-micro/win32V3.2instructionlibrary(指令库)。
modbusRtu功能是通过指令库中预先编好的程序功能块实现的。
modbusRtu从站指令库只支持cpu上的通信0 口(port0 )基本步骤:1. 检查micro/win 的软件版本,应当是step7-micro/winV3.2 以上版本。
2. 检查micro/win 的指令树中是否存在modbusRtu从站指令库(图1),库中应当包括mbus_init 和mbus_slaVe两个子程序。
如果没有,须安装micro/win32V3.2 的instructionlibrary (指令库)软件包;1.时使用sm0.1调用子程序mbus_init进行初始化,使用sm0.0调用mbus_slaVe ,并指定相应参数。
关于参数的详细说明,可在子程序的局部变虽表中找到;调用modbusRtu通信指令库图中参数意义如下:a. 模式选择:启动/停止modbus, 1=启动;0=停止b. 从站地址:modbus从站地址,取值1~247c. 波特率:可选1200,2400,4800, 9600, 19200, 38400, 57600, 115200d. 奇偶校验:0=无校验;1=奇校验;2=偶校验e. 延时:附加字符间延时,缺省值为0f. 最大i/q 位:参与通信的最大i/o点数,s7-200的i/o映像区为128/128 ,缺省值为128g. 最大ai字数:参与通信的最大ai通道数,可为16或32h. 最大保持寄存器区:参与通信的V存储区字(VW)i. 保持寄存器区起始地址:以1920xx84001.3.功能码03h:读寄存器值主机发送:第1字节adR:从机地址码(=001〜254)第2字节03h :读寄存器值功能码第3、4字节:要读的寄存器开始地址要读Fcc下挂仪表,第5、6字节:要读的寄存器数虽第7、8字节:从字节1到6的cRc16校验和从机回送:第1字节adR:从机地址码(=001〜254)第2字节03h:返回读功能码第3字节:从4到m (包括4及m的字节总数第4到m字节:寄存器数据第m^ 1、m+2字节:从字节1到m的cRc16校验和当从机接收错误时,从机回送:第1字节adR:从机地址码(=001〜254)第2字节83h :读寄存器值出错第3字节信息码:见信息码表第4、5字节:从字节1到3的cRc16校验和1.4.功能码06h:写单个寄存器值主机发送:当从机接收正确时,从机回送:当从机接收错误时,从机回送:1.5.功能码10h:连续写多个寄存器值第1字节adR第2字节86h第3字节错误数息码第4、5字节:从机地址码(=001〜254):写寄存器值出错功能码:见信息码表:从字节1到3的cRc16校验和当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节adR第2字节90h第3字节错误信息码第4、5 字节::::从机地址码(=001〜254)写寄存器值出错见信息码表从字节1到3的cRc16校验和1.8寄存器定义表:(注:寄存器地址编码为16进制)。
超声水表Modbusrtu通信协议V1.1

超声水表MODBUS-RTU通信协议V1.1一.RTU模式1.物理层传输接口:RS-485通信波特率:9600bps2.RTU模式中每个字节的格式为编码系统:8位二进制每个8位域包含两个十六进制字符(0-9、A-F)传输模式:异步主从半双工方式。
每个字节的位:1个起始位8个数据位奇偶不校验1个停止位3.帧校验域:循环冗余校验(CRC),对全部报文内容执行校验。
注:数据包的发送序列总是相同的,地址—功能码—数据—检验码,每个数据包必须作为一个连续的位流传输。
4.1 地址(Address)域地址域在数据包的开始部分,由一个8bit数据组成,这个数据表明了从站的地址,而每一个从站的地址必须是唯一的,有效地址范围为:1~247。
主站发送数据包后,只有与主站查询地址相同的从站才会响应。
4.2 功能(Function)域功能域代码指定被寻址的从站执行何种功能,表1列出了所有的功能码。
数据域是由两个十六进制数集合构成的,范围00...FF。
从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的所为。
这包括了象不连续的寄存器地址,要处理项的数目,域中实际数据字节数。
例如,如果主设备需要从设备读取一组保持寄存器(功能代码03),数据域指定了起始寄存器以及要读的寄存器数量。
如果没有错误发生,从从设备返回的数据域包含请求的数据。
如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。
4.4 错误校验(CRC)域错误检测域包含一16Bits值(用两个8位的字符来实现)。
错误检测域的内容是通过对消息内容进行循环冗长检测方法得出的。
CRC值有发送设备计算出来,然后附加到数据包上传送,接收设备在接收数据时重新计算CRC 值,然后与接收到的校验码(CRC)域中的值进行比较,如果这两个数据不相等,则说明数据在传输过程中发生了错误。
CRC码计算时,首先将一个16bits寄存器预置为全1,然后连续把数据包中的8bits字节与该寄存器的当前值进行运算,仅仅每个字节的8位数据进行计算,起始位和停止位与可能使用的奇偶校验位都不影响CRC。
Modbus通讯协议说明

PLAL(dLAL) 负偏差报警限值
dF
报警回差
oPAd(CtrL) PID 控制方式
P
速率参数
I(M5)
保持参数
dt(t)
滞后时间参数
t(ctL)
控制周期
Sn
输入规格
dIP
小数点位置
dIL
输入下限显示值
dIH
输入上限显示值
SC
输入平移修正值
Ot(op1)
控制输出方式
oL(opL)
控制输出下限值
通讯地址 00H 1AH 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH
位用于曲线的 Stop/Run/Hold 控制
运行状态
Stop
Hold
Run
数据位数
2
1
1
0
3
1
0
0
2、04 指令参数地址
地址
00H
01H
02H
03H
04H
05H
06H
含义 PV 测量值 报警状态 STS
/
设定值 SV
Sn
当前段已
dIP
运行时间
上表中 STS 表示仪表的报警状态。将返回数据的低字节转换为二进制的格式,每位的数字为 0 表示报
警不存在,为 1 表示报警成立。
7
6
5
4
3
2
1
0
0
0
0
0
0
0
LoAL 报警 HIAL 报警
—7—
XMT
1、03 指令参数地址
参数名
含义
AL1
第一报警限值
AL2
图文详解Modbus-RTU协议

图文详解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 数据完整性校验。
RTU通讯协议

RTU通讯协议一、协议介绍RTU通讯协议是一种用于远程终端单元(Remote Terminal Unit,简称RTU)与主站之间进行数据通信的协议。
该协议旨在实现可靠、高效的数据传输,以满足现代工业自动化系统对数据采集、监控和控制的需求。
二、协议设计目标1. 可靠性:确保数据的完整性和准确性,防止丢包和数据损坏。
2. 实时性:保证数据的及时传输和响应,满足实时监控和控制的需求。
3. 可扩展性:支持多种通信介质和设备类型,适应不同应用场景。
4. 安全性:提供数据加密和身份验证等安全机制,防止数据泄露和非法访问。
三、协议通信流程1. 建立连接:a. RTU向主站发送连接请求。
b. 主站收到连接请求后,发送连接确认。
c. RTU收到连接确认后,建立连接。
2. 数据传输:a. RTU向主站发送数据请求。
b. 主站收到数据请求后,发送数据响应。
c. RTU收到数据响应后,传输数据。
3. 断开连接:a. RTU向主站发送断开连接请求。
b. 主站收到断开连接请求后,发送断开连接确认。
c. RTU收到断开连接确认后,断开连接。
四、协议数据格式1. 帧头:标识数据帧的起始,包含固定的起始字符或字节序列。
2. 地址:标识RTU或主站的唯一地址。
3. 功能码:指示数据帧的类型和操作。
4. 数据长度:表示数据部分的长度。
5. 数据:包含实际的数据内容。
6. 校验码:用于验证数据的完整性和正确性。
7. 帧尾:标识数据帧的结束,包含固定的结束字符或字节序列。
五、协议功能码1. 数据读取:a. 读取单个数据:主站发送读取请求,RTU返回对应的数据。
b. 读取多个数据:主站发送读取请求,RTU返回多个数据。
2. 数据写入:a. 写入单个数据:主站发送写入请求和待写入的数据,RTU返回写入结果。
b. 写入多个数据:主站发送写入请求和待写入的多个数据,RTU返回写入结果。
3. 报警和事件:a. 报警查询:主站发送报警查询请求,RTU返回当前的报警信息。
MODBUS通讯协议-RTU

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 rtu通讯协议格式详细说明MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。
目前,在RS232/RS485通讯过程中,更是广泛采用这种规约。
常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。
一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUS RTU规约。
在实际的应用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。
更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。
modbus rtu通讯传送方式通讯传送分为独立的信息头,和发送的编码数据。
以下的通讯传送方式定义也与MODBUS RTU通讯规约相兼容:初始结构= 4字节的时间地址码= 1 字节功能码= 1 字节数据区= N 字节错误校检= 16位CRC码结束结构= 4字节的时间地址码:地址码为通讯传送的第一个字节。
这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。
并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。
功能码:通讯传送的第二个字节。
ModBus通讯规约定义功能号为1到127。
本仪表只利用其中的一部分功能码。
作为主机请求发送,通过功能码告诉从机执行什么动作。
作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。
如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。
RTU通讯协议 (2)

RTU通讯协议协议名称:RTU通讯协议协议编号:RTU/2022/001生效日期:2022年1月1日1. 引言RTU通讯协议是为了确保远程终端单元(Remote Terminal Unit,简称RTU)与其他设备之间的通信顺畅、高效而制定的标准。
本协议旨在定义RTU通讯的数据格式、通信协议、错误处理及安全机制等方面的要求,以确保通信的稳定性和可靠性。
2. 术语和定义在本协议中,以下术语和定义适合于所有相关方:- RTU:指远程终端单元,用于采集、处理和传输数据的设备。
- 主站:指控制和管理RTU的中央设备。
- 通信协议:指RTU与主站之间进行数据传输的规范和约定。
- 数据格式:指RTU传输数据的结构和编码方式。
3. 通信协议要求3.1 数据格式3.1.1 数据帧格式RTU通讯采用二进制数据帧格式进行传输。
数据帧由起始符、数据域、校验码和结束符组成,具体格式如下:起始符 | 数据域 | 校验码 | 结束符(1字节) | (可变长度) | (1字节) | (1字节)3.1.2 数据域数据域包含了传输的实际数据,其格式根据具体业务需求而定。
数据域长度不超过1024字节。
3.1.3 校验码校验码用于验证数据的完整性和准确性。
采用CRC16算法计算校验码,校验码长度为2字节。
3.1.4 结束符结束符标识数据帧的结束,采用ASCII码表示,固定为"\r\n"。
3.2 通信协议3.2.1 建立连接RTU与主站之间通过串口进行通信。
通信波特率为9600bps,数据位为8位,无校验位,住手位为1位。
3.2.2 数据传输数据传输采用请求-应答模式。
主站向RTU发送请求帧,RTU接收到请求帧后进行处理,并将结果封装在应答帧中返回给主站。
3.2.3 错误处理在数据传输过程中,如果发生错误,RTU应向主站发送错误帧,错误帧中包含错误码和错误信息,以便主站进行相应的处理。
4. 安全机制为了保证通信的安全性,RTU通讯协议采用以下安全机制:4.1 认证机制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位二进制数组成(既8 bit)。
2、ModBus是Modicon公司的注册商标。
3、“从机”在本文件中既为PDM。
一、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。
返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。
RTU通讯协议全解

RTU通讯协议采用主从应答式通讯方式,采用RS232通讯接口,支持RS232通讯和MODEM专线和拨号通讯;波特率支持1200、2400、4800、9600,每帧10位(1位起始位、8位数据、1位停止位)。
1、RTU下传报文:* ADDR: 直流电源地址。
* LG: ADDR之后,SUM之前的数据总数。
* SUM: ADDR之后,SUM之前的数据代数和,SUML为低位,SUMH为高位。
2、直流电源上传传报文:2.1 壁挂电源系统遥测量定义:2.2 壁挂电源系统遥信量定义:2.3壁挂电源系统遥调量定义:DATA 定义:每个遥调量由3字节构成,第1字节为信号编号,第2字节为遥调量低字节,第3字节为遥调量高字节,每次送1个遥调量。
直流系统接收遥调命令正确执行后返回ACKI 命令,否则返回NAK 命令。
2.4壁挂电源系统遥控量定义:DATA 定义:每个遥调量由2字节构成,第1字节为信号编号,第2字节为遥控量(00H:信号置0,0FFH:信号置1)。
直流系统接收遥控命令正确执行后返回ACKI 命令,否则返回NAK 命令。
DL451-91(CDT)通讯规约采用RS232通讯接口; 波特率支持1200、2400、4800、9600,字符格式10位(1位起始位、8位数据、1位停止位)。
1.帧定义1.1.帧结构1.2.同步字发送:EBH 90H EBH 90H EBH 90H,共6个字节。
1.3.控制字控制字共有B7 – B12 共6个字节,定义如下:1.3.1.控制字节控制字节定义如下:E:扩展位,E=0 表示使用本协议已定义帧类别码,E=1帧类别码可自定义,本协议中总为0L:帧长定义位,E=0 表示本帧无信息字,E=1 表示本帧有信息字,本协议中总为1S:源站地址有效D:目的站地址有效(上行信息中,S=1,D=1,源站地址为直流设备设置地址,目的站地址为上位机地址,固定为01H。
)(下行信息中,D=1, 目的站地址为直流设备设置地址)1.3.2.帧类别码帧类别码定义如下:1.3.3.信息字数信息字数n表示该帧中所含信息字数量;n=0表示本帧无信息。
Modbus通信协议详情教程

Modbus通信协议详情教程Modbus通信协议是一种用于工业自动化领域的通信协议,它被广泛应用于各种工业控制系统中。
本教程将介绍Modbus通信协议的详细内容,包括其基本原理、通信方式和通信数据格式等方面的知识。
一、Modbus通信协议简介Modbus通信协议是由Modicon(现在是施耐德电气公司的子公司)在1979年开发的,它是一种基于主从架构的协议。
该协议采用简单、通用的方式实现设备之间的数据交换,使得不同厂家的设备之间能够进行有效的通信。
二、Modbus通信架构Modbus通信协议包括两种模式:RTU(Remote Terminal Unit)和ASCII(American Standard Code for Information Interchange)。
RTU模式是常用的模式,它通过串行通信实现数据传输,数据被编码为二进制格式,具有较高的通信速度和可靠性。
ASCII模式则是通过串行通信传输可打印字符编码的文本数据,通信速度较慢,但具有更好的人机界面。
三、Modbus通信方式Modbus通信协议定义了两种通信方式:请求-响应模式和发布-订阅模式。
在请求-响应模式下,主节点向从节点发送请求,从节点接收到请求后进行处理并返回响应。
在发布-订阅模式下,主节点向从节点发送订阅请求,从节点将数据主动发布给主节点。
四、Modbus通信数据格式Modbus通信协议定义了几种常用的数据格式,包括保持寄存器、输入寄存器、线圈和离散输入等。
其中,保持寄存器用于存储设备参数和状态信息,输入寄存器用于读取传感器数据,线圈用于控制设备的开关状态,离散输入用于读取设备的输入状态。
五、Modbus通信应用领域Modbus通信协议广泛应用于各种工业自动化领域,包括工厂自动化、能源管理、楼宇自动化、环境监测等。
通过使用Modbus通信协议,不同厂家的设备可以实现互联互通,提高生产效率和管理水平。
六、Modbus通信安全性由于Modbus通信协议的设计初衷是简单易用,没有考虑通信安全性,因此在实际应用中存在一定的安全风险。
RTU通讯协议

RTU通讯协议协议名称:RTU通讯协议一、引言RTU通讯协议旨在定义一种可靠、高效的远程终端单元(RTU)之间进行通信的标准格式。
该协议的目标是确保数据的可靠传输和处理,以满足各种实时监控、控制和数据采集应用的需求。
二、范围本协议适用于使用RTU设备进行通信的各种场景,包括但不限于工业自动化、能源管理、环境监测等领域。
三、术语在本协议中,以下术语的定义适用于所有相关方:1. RTU:远程终端单元,是一种能够接收、处理和发送数据的设备。
2. 主站:指控制和监控RTU设备的中心节点。
3. 从站:指受主站控制和监控的RTU设备。
4. 数据帧:指在通信中传输的数据单元,包含控制信息和有效数据。
5. 校验和:指用于验证数据完整性的一种校验方法,通常采用循环冗余检验(CRC)算法。
四、通信协议1. 物理层1.1 通信介质:可根据具体应用需求选择合适的通信介质,包括有线(如串口、以太网)和无线(如无线电、GSM)等。
1.2 通信速率:根据实际环境和设备性能确定通信速率。
1.3 连接方式:根据具体应用需求选择合适的连接方式,包括点对点连接和多点连接等。
2. 数据链路层2.1 帧格式:数据帧采用以下格式进行传输:| 起始标志 | 地址 | 控制 | 数据 | 校验和 | 结束标志 |2.2 起始标志:用于标识数据帧的起始位置,通常为固定的特定字节。
2.3 地址:指示从站的地址,用于区分不同的RTU设备。
2.4 控制:包含控制信息,如数据传输方向、帧类型等。
2.5 数据:有效数据信息,根据具体应用需求确定数据格式和长度。
2.6 校验和:用于验证数据完整性,采用CRC算法计算。
2.7 结束标志:用于标识数据帧的结束位置,通常为固定的特定字节。
3. 应用层协议3.1 功能码:定义了一系列操作,包括数据读取、写入、控制等。
3.2 数据格式:根据具体应用需求确定数据格式和长度。
3.3 帧序列:用于标识数据帧的顺序,确保数据的正确处理和传输。
MODBUS协议水表通讯协议

MODBUS水表通讯协议(RTU模式)一、通讯设置.. 1.波特率: 9600..2.校验: 无校验二、3.数据位: 8三、4.停止位:1四、modbus协议4、写操作回复(06H)7、异常码注3 异常码是正常功能码的最高位加1, 如读操作03H的异常功能码为83H, 写单个字06H的异常功能码为86H, 写多个字的10H的异常功能码为90H。
8、寄存器地址注1:累计流量为4个字节的十六进制数, 高位在前, 低位在后,累计流量采用无符号的32 位数据(2个字)如: 实际数据为123456, 则高位字保存0x0001, 低位字保存0xE240。
单位:根据您写入的倍率值计算, 本水表不参与计算, 只记录实际脉冲值。
比如, 您写入的倍率值为分别表示为00H代表1个脉冲只为1立方、01H 代表0.1立方、02H代表0.01立方, 那么数据123456分别为123456立方;12345.6立方;1234.56立方, 由您在上位机程序中进行计算和处理。
注2:表具状态位三、举例说明:假设表地址为01(表地址范围1-247)写表底数123456(16进制: 01E240H)01 10 02 02 00 02 04 00 01 E2 40 73 86 13个字节写表底数返回: 01 10 02 02 00 02 E1 B0 8个字节异常时返回: 01 90 03 0C 01 5个字节(非法数据值)----------------------------------------------------------------------------------------------读表累计: 01 03 02 02 00 02 64 73 8个字节读累计返回: 01 03 04 00 01 E2 40 E2 A3 9个字节异常时返回: 01 83 03 01 31 5个字节----------------------------------------------------------------------------------------------- 读表地址: 00 03 02 00 00 01 84 63 8个字节返回: 01 03 02 00 01 79 84 7个字节注意!读表地址时, 总线上只能连接1只表。
智能水表通讯协议模板

智能水表通讯协议模板智能水表通讯协议模板甲方[公司名称]地址:[地址]法定代表人:[姓名]电话:[电话]统一社会信用代码:[代码]乙方[公司名称]地址:[地址]法定代表人:[姓名]电话:[电话]统一社会信用代码:[代码]鉴于:1.甲方是一家经营智能水表的公司;2.乙方是一家[涉及智能水表业务的公司];3.甲方和乙方本着互惠互利、真实合法的原则,达成协议,以保证双方的权益。
经甲、乙双方友好协商,根据《中华人民共和国合同法》等相关法律法规,达成如下协议:一、协议的目的本协议是为了规范双方在智能水表通讯业务中的权利和义务,明确甲、乙两方的责任与义务,以使双方共同按照合法、诚信、公平、互利的原则合作,保证服务质量。
二、服务内容1.甲方将提供智能水表通讯服务给乙方。
2.乙方将使用甲方提供的智能水表通讯服务,并承担相应的使用费用。
3.乙方有权从甲方收取必要的知识产权费用。
三、甲方的权利和义务1.甲方应按照国家相关法律法规及本协议的约定,向乙方提供智能水表通讯服务。
2.甲方应按时向乙方提供智能水表通讯服务,并确保服务质量。
3.甲方应按照双方约定的服务收费标准向乙方收取服务费用,并开具合法发票。
4.甲方应当对乙方所提供的数据信息保密。
四、乙方的权利和义务1.乙方有权通过甲方提供的智能水表通讯服务获取所需的数据信息。
2.乙方应当按时向甲方缴纳智能水表通讯服务费用,并确保账户资金充足。
3.乙方不得将甲方提供的智能水表通讯服务用于违法、不当用途。
五、违约责任如甲、乙双方中任何一方违反本协议的约定,应当承担相应的违约责任,并赔偿因此给对方造成的损失。
六、法律效力1.本协议的签署、履行和解释均适用中华人民共和国法律法规。
2.本协议自双方签署之日起生效,并具有法律效力。
3.本协议未尽事宜,双方可友好协商解决。
七、争议的解决双方如有因本协议产生的争议,应当友好协商解决。
如协商不成,则应向当地人民法院诉讼解决。
签署人:甲方:______________(公司法定代表人或授权代表签字)乙方:______________(公司法定代表人或授权代表签字)签约日期:______________。
modbus rtu标准协议

modbus rtu标准协议Modbus RTU标准协议。
Modbus RTU是一种串行通信协议,常用于工业自动化领域的设备间通讯。
它是Modicon公司于1979年推出的一种通信协议,后来成为了工业自动化领域的通用标准之一。
Modbus RTU协议采用二进制编码,使用串行通信方式,可以在RS-232、RS-422、RS-485等串行通信接口上进行数据传输。
Modbus RTU协议的数据帧包括地址域、功能码、数据域和CRC校验。
地址域用于指定从站地址,功能码用于定义数据传输的类型,数据域用于存储传输的数据,CRC校验用于检测数据传输的准确性。
在Modbus RTU通讯中,通常包括主站和从站两种设备,主站负责发起通讯请求,从站接收并响应请求。
Modbus RTU协议支持多种数据类型的传输,包括线圈状态、离散输入状态、保持寄存器和输入寄存器。
线圈状态和离散输入状态用于传输开关量数据,保持寄存器和输入寄存器用于传输模拟量数据。
通过这些数据类型,Modbus RTU可以满足各种工业设备之间的数据交换需求。
在实际应用中,Modbus RTU协议广泛应用于PLC、传感器、变频器、人机界面等工业设备之间的通讯。
由于其简单、稳定、可靠的特点,Modbus RTU成为了工业自动化领域的通讯标准之一。
同时,由于其开放性和通用性,许多厂家的设备都支持Modbus RTU协议,使得不同厂家的设备可以方便地进行数据交换和通讯。
在使用Modbus RTU协议进行通讯时,需要注意一些问题。
首先,通讯的物理层要匹配,即要选择适合的串行通信接口进行连接。
其次,要注意地址域的设置,确保主站和从站的地址设置正确。
最后,要合理使用功能码和数据类型,确保数据传输的准确性和稳定性。
总的来说,Modbus RTU协议作为一种通讯协议,在工业自动化领域有着广泛的应用。
它的简单、稳定、可靠的特点,使得它成为了工业设备之间通讯的重要标准,为工业自动化的发展做出了重要贡献。
埃美柯水表MODBUS-RTU通讯协议

主机发送
发送信息
从机返回
返回信息
地址码
01H
地址码
01H
功能码
03H
功能码
03H
高字节
00H
字节数
04H
起始地址
低字节
00H
高字节
00H
寄存器数据
高字节
00H
低字节
12H
寄存器数量
低字节
02H
高字节
D6H
寄存器数据
高字节
C4H
低字节
87H
CRC 校验码
低字节
0BH
高字节
44H
CRC 校验码
低字节
34H
(2)功能码 10H:写寄存器 功能码 10H 允许用户改变多个寄存器的内容,该仪表中地址、通讯速率等可用此功能号
写入。主机一次最多可以写入 16 个(32 字节)数据。
主机发送
地址码
功能码
起始地址
高字节 低字节
寄存器数量
高字节 低字节
字节数
0015H 待写入 数据
高字节
低字节
Байду номын сангаас
CRC 校验码 高字节
生成一个 CRC 的流程为: 1、预置一个 16 位寄存器为 0FFFFH(全 1),称之为 CRC 寄存器。 2、把数据帧中的第一个字节的 8 位与 CRC 寄存器中的低字节进行异或运算,结果存回 CRC 寄存器。
3、将 CRC 寄存器向右移一位,最高位填以 0,最低位移出并检测。 4、如果最低位为 0,重复第三步(下一次移位);如果最低位为 1,将 CRC 寄存器与一 个预设的固定值(0A001H)进行异或运算。 5、重复第三步和第四步直到 8 次移位。这样处理完了一个完整的八位。 6、重复第 2 步到第 5 步来处理下一个八位,直到所有的字节处理结束。 7、最终 CRC 寄存器的值就是 CRC 的值。 此外还有一种利用预设的表格计算 CRC 的方法,它的主要特点是计算速度快,但是表格需 要较大的存储空间,该方法此处不再赘述,请参阅相关资料。
modbus rtu标准协议

modbus rtu标准协议Modbus RTU标准协议1. 引言Modbus RTU是一种常见的串行通信协议,主要用于工业自动化领域的设备间数据传输。
本协议旨在规范Modbus RTU的通信格式和数据处理流程,以确保设备之间能够正确地进行通信。
2. 协议概述Modbus RTU是一种基于二进制码的通信协议,使用RS-485、RS-422或RS-232串行通信接口。
该协议定义了设备之间的数据传输格式、命令和响应规范。
3. 通信帧格式Modbus RTU的通信帧由以下几个部分组成:地址码地址码用于标识设备的唯一地址,范围从1到247。
其中地址码1为广播地址,用于广播命令。
功能码功能码表示命令或响应的类型,包括读操作、写操作、异常处理等。
常见的功能码有:•读取线圈状态(0x01)•读取输入状态(0x02)•读取保持寄存器(0x03)•读取输入寄存器(0x04)•写单个线圈(0x05)•写单个寄存器(0x06)数据域数据域包含了要传输的数据,其长度取决于不同的功能码。
数据域可以包括多个字节,以及相关的校验信息。
校验码校验码用于检验数据的完整性和正确性,常用的校验方式有CRC 校验和LRC校验。
4. 命令和响应规范Modbus RTU定义了一系列命令和相应的响应规范,用于设备之间的数据交换。
下面列举了一些常见的命令和响应:读取线圈状态•功能码:0x01•命令格式:[地址码, 功能码, 起始地址高位, 起始地址低位, 寄存器数量高位, 寄存器数量低位, CRC校验高位, CRC校验低位]•响应格式:[地址码, 功能码, 字节数, 数据1, 数据2, … , 数据n, CRC校验高位, CRC校验低位]写单个寄存器•功能码:0x06•命令格式:[地址码, 功能码, 寄存器地址高位, 寄存器地址低位, 寄存器值高位, 寄存器值低位, CRC校验高位, CRC校验低位]•响应格式:[地址码, 功能码, 寄存器地址高位, 寄存器地址低位, 寄存器值高位, 寄存器值低位, CRC校验高位, CRC校验低位]5. 异常处理Modbus RTU协议规定了一些特殊的功能码,用于处理异常情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能码:功能码告诉了被寻址到的终端执行何种功能。下表列出了该系列仪表用到的功 能码,以及它们的意义和功能。
功能
定义
操作
03H/04H
读数据寄存器
获得一个或多个寄存器的当前二进制值
10H
预置多寄存器
设定二进制值到一系列多寄存器中
数据区:数据区包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数
水表 MODBUS-RTU 通讯协议
本水表使用了 MODBUS-RTU 通讯协议,MODBUS 协议详细定义了校验码、数据序列等,这 些都是特定数据交换的必要内容。MODBUS 协议在一根通讯线上使用主从应答式连接(半双 工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信 号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输 给主机。
2、表的通讯地址和通讯速率出厂时给出,亦可通过本公司提供的软件读出。也可以通 过协议设置。
3、表中所测读数占 4 个字节,单位为 m3。高位在前,低位在后,若读出值为 0012D687H (1234567),则计量值为 1234567×0.01=12345.67m3。
格式,包含 1 个起始位、8 个数据位(最小的有效位先发送)、无奇偶校验位、1 个停止位。
(2) 数据帧格式
地址码 功能码 数据区 CRC 校验码 1 字节 1 字节 n 字节 2 字节 地址码:地址码在帧的开始部分,由一个字节(8 位二进制码)组成,十进制为 0~255,在 水表中只使用 1~247,其它地址保留。这些位标明了用户指定的终端设备的地址,该设备将接收 来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含 了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正 与之进行通信。
据。这些数据的内容可能是数值、参考地址或者设置值。例如:功能码告诉终端读取一个寄
存器,数据区则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型
和从机之间的不同内容而有所不同。
CRC 校验码:错误校验(CRC)域占用两个字节,包含了一个 16 位的二进制值。CRC 值 由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算 CRC 值,然后 与接收到的 CRC 域中的值进行比较,如果这两个值不相等,就发生了错误。
低字节
发送信息 01H 10H 00H 15H 00H 01H 02H
08H
03H
从机返回
地址码
功能码
起始地址
高字节 低字节
寄存器数量
高字节 低字节高字节源自CRC 校验码低字节
返回信息 01H 10H 00H 15H 00H 01H
地址
0000H 0001H 0015H 高字节
0015H 低字节
变量名称 总用水量 通信地址
通信波特率
读写属性
数据格式
R
每个表占用 4 个字节
R/W
001-247
char
01 —— 9600bps(默认)
02 —— 4800bps R/W
03 —— 2400bps
char
04 —— 1200bps
附:1、读写属性:“R”只读,读参量用 03H 号命令;“R/W”可读可写,写参量用 10H 号命 令。禁止向未列出的或不具可写属性的地址写入。
主机发送
发送信息
从机返回
返回信息
地址码
01H
地址码
01H
功能码
03H
功能码
03H
高字节
00H
字节数
04H
起始地址
低字节
00H
高字节
00H
寄存器数据
高字节
00H
低字节
12H
寄存器数量
低字节
02H
高字节
D6H
寄存器数据
高字节
C4H
低字节
87H
CRC 校验码
低字节
0BH
高字节
44H
CRC 校验码
低字节
34H
通信应用格式详解 (1)功能码 03H:读寄存器
此功能允许用户获得设备采集与记录的数据及系统参数。主机一次请求的数据个数没 有限制,但不能超出定义的地址范围。
下面的例子是从 01 号从机读 1 个采集到的基本数据(数据帧中每个地址占用 2 个字节)。采
集的数据为总用水量(占用 4 个字节),其地址为 00H
生成一个 CRC 的流程为: 1、预置一个 16 位寄存器为 0FFFFH(全 1),称之为 CRC 寄存器。 2、把数据帧中的第一个字节的 8 位与 CRC 寄存器中的低字节进行异或运算,结果存回 CRC 寄存器。
3、将 CRC 寄存器向右移一位,最高位填以 0,最低位移出并检测。 4、如果最低位为 0,重复第三步(下一次移位);如果最低位为 1,将 CRC 寄存器与一 个预设的固定值(0A001H)进行异或运算。 5、重复第三步和第四步直到 8 次移位。这样处理完了一个完整的八位。 6、重复第 2 步到第 5 步来处理下一个八位,直到所有的字节处理结束。 7、最终 CRC 寄存器的值就是 CRC 的值。 此外还有一种利用预设的表格计算 CRC 的方法,它的主要特点是计算速度快,但是表格需 要较大的存储空间,该方法此处不再赘述,请参阅相关资料。
MODBUS 协议只允许在主机(PC,PLC 等)和终端设备之间通讯,而不允许独立的终端设 备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达 本机的查询信号。
MODBUS-RTU 格式无起始字符和结尾字符,但需要加等待时间,等待时间不少于 3.5 个 字符发送时间。
(1) 传输方式 信息传输为异步方式,并以字节为单位,在主机和从机之间传递的通讯信息是 10 位字
(2)功能码 10H:写寄存器 功能码 10H 允许用户改变多个寄存器的内容,该仪表中地址、通讯速率等可用此功能号
写入。主机一次最多可以写入 16 个(32 字节)数据。
主机发送
地址码
功能码
起始地址
高字节 低字节
寄存器数量
高字节 低字节
字节数
0015H 待写入 数据
高字节
低字节
CRC 校验码 高字节