超声水表Modbusrtu通信协议V1.1

合集下载

MODBUS远传水表简介及通讯协议【范本模板】

MODBUS远传水表简介及通讯协议【范本模板】

MODBUS/RS485远传水表说明书(RTU模式)MODBUS/RS485远传水表简介主要用途与相关抄表管理系统配套可读取远传水表精确用量,实现水流量的远程监控.主要特点:1. 传感技术先进,信号转换精准。

●远传水表采用目前业内处于绝对领先地位的“无源双控开关"传感技术(开关寿命1亿次),有效克服困扰业界多年的“水锤”冲击误发信号问题,确保水表机械数据转换电子信号输出100%精确无误。

2. 分体设计,节约成本,专业制造工艺。

●电子部分与基表部分分体设计,不改变基表成熟结构,装配工艺简单,在基表(水表)达到国家6年强制报废年限时,电子传感部分仍可二次使用,为用户节约成本。

●高品质组件,工艺结构合理,专业化制造,密闭防水,适应各种复杂工作环境。

主要性能参数外部输入电压:12V;电池电压:3。

6V;工作电流:3mA;静态电流:10μA;开关滤波时间:500ms;通讯方式:RS485;通讯协议:MODBUS(RTU模式);波特率:9600bps;校验:无校验;数据位:8位;停止位:1位。

MODBUS计数模块通讯协议(RTU模式)一、通讯设置1。

波特率:96002. 校验:无校验3. 数据位:84。

停止位:1modbus协议异常码是正常功能码的最高位加1,如读操作03H 的异常功能码为83H ,写单个字06H 的异常功能码为86H,写多个字的10H 的异常功能码为90H.注1:累计流量为4个字节的十六进制数,高位在前,低位在后,累计流量采用无符号的32 位数据(2个字)。

如:实际数据为123456,则高位字保存0x0001,低位字保存0xE240。

单位:根据您写入的倍率值计算,本水表不参与计算,只记录实际脉冲值。

比如,您写入的倍率值为“00H”时则代表1个脉冲只为1立方;“01H”代表0.1立方;“02H"代表0.01立方。

那么数据123456分别为123456立方;12345。

6立方;1234.56立方,由您在上位机程序中进行计算和处理.水表出厂常规设置:DN15—40(0。

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为尾数的小数点部分。

ModBusRTU通讯协议

ModBusRTU通讯协议

ModBusRTU通讯协议协议名称:ModBusRTU通讯协议1. 引言ModBusRTU通讯协议是一种常用于工业自动化领域的通信协议,用于在不同设备之间进行数据交换和通信。

本协议旨在确保设备之间的稳定通信,并规定了数据帧的格式、通信规范和错误处理机制,以实现可靠的数据传输。

2. 协议范围本协议适用于使用ModBusRTU通信协议的设备之间的数据交换和通信。

3. 术语和定义3.1. 主站:指发送请求的设备。

3.2. 从站:指接收请求并响应的设备。

3.3. 数据帧:指在ModBusRTU通信协议中传输的数据单元。

4. 数据帧格式4.1. 传输模式ModBusRTU通信协议使用串行通信模式,每个数据帧由一系列连续的位组成。

4.2. 起始位每个数据帧以一个起始位(逻辑“0”)开始。

4.3. 设备地址设备地址用于标识从站设备,占用8位,取值范围为1-247。

功能码用于指示请求的类型,占用8位,取值范围为1-255。

4.5. 数据数据字段用于传输具体的数据信息,占用8位或16位,具体长度由功能码决定。

4.6. 校验位校验位用于验证数据的完整性和准确性,采用CRC校验算法。

4.7. 结束位每个数据帧以一个结束位(逻辑“1”)结束。

5. 通信规范5.1. 请求帧主站发送请求帧给从站,请求帧包括设备地址、功能码、数据和校验位。

5.2. 响应帧从站接收到请求帧后,根据功能码进行相应的处理,并返回响应帧给主站,响应帧包括设备地址、功能码、数据和校验位。

5.3. 帧间间隔每个数据帧之间应有适当的时间间隔,以确保设备能够正确接收和处理数据。

5.4. 重试机制如果主站未收到从站的响应帧或者接收到的响应帧出现错误,主站可以根据需要进行重试。

6.1. 异常响应如果从站无法正确处理主站的请求,从站应发送一个异常响应帧给主站,异常响应帧包括设备地址、功能码和错误码。

6.2. 错误码错误码用于指示出现的错误类型,常见的错误码包括非法功能码、非法数据地址、非法数据值等。

Modbus-RTU通信协议

Modbus-RTU通信协议

维博Modbus-RTU 通信协议一、Modbus 协议简介ModBus 协议定义了一个控制器能认识使用的消息结构协议定义了一个控制器能认识使用的消息结构,,而不管它们是通过何种网络进行通信的,它制定了消息域的格局和内容的公共格式,描述了一个控制器请求访问其它设备的过程,回应来自其它设备的请求,以及如何侦测并记录错误信息。

错误信息。

通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以完成信息和数据的交换与传送,使各种不同的公司和厂家的可编程顺序控制器(PLC )、RTU 、SCADA 系统、DCS 或与兼容ModBus 协议的第三方设备之间可以连成工业网络,构建各种复杂的监控系统,并利于系统的维护和扩展,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的一种通用工业标准协议。

工业标准协议。

WB 系列智能传感器采用ModBus-RTU 通讯规约,支持组态王、Intouch 、FIX 、synall 等流行软件,能与AB 、西门子、施耐德、GE 等多个国际著名品牌的设备及系统之间实现数据通信,特别适用于电力系统综合自动化,智能电力电子设备,智能楼宇,工业自动化等领域,是构建、扩建DCS 系统或制造智能电力电子设备的理想功能部件。

二、维博Modbus-RTU 协议WB 系列智能传感器实现Modbus 通信协议时,遵循Modbust 通信过程,采用了MODBUS-RTU 协议的命令子集,使用读寄存器命令(协议的命令子集,使用读寄存器命令(030303)。

)。

)。

①数据传输方式: 异步10位——位——11位起始位,位起始位,88位数据位,位数据位,22位停止位,无校验位。

位停止位,无校验位。

②数据传输速率: 19200BPS 19200BPS,,9600BPS 9600BPS,,4800BPS 4800BPS,,2400BPS 2400BPS。

(缺省波特率为。

(缺省波特率为9600BPS 9600BPS,不可修,不可修改,用户希望使用其他波特率时,请在定货时声明。

Modbus通信协议在超声波水表中的应用

Modbus通信协议在超声波水表中的应用

淮安嘉可自动化仪表有限公司
Modbus通信协议在超声波水表中的应用
对于流量的测量,超声波水表具有独特的优势。

但是超声波水表的抄表方式种类繁多,通信协议可以通过自己制定。

这种方式制定的通信协议漏洞百出,不够规范和统一以及扩展也相当复杂使得超声波水表的通信效率太低,而且还具有潜在的安全问题。

Modbus是应用于工业控制器上的标准通信协议,数据的传输采用串行通讯。

Modbus已经成为了行业标准,在现实的通讯中具有广泛的应用。

FreeModbus是一种专门针对嵌入式系统应用的一种Modbus协议。

FreeModbus协议对硬件要求很少,具有很好的移植性,所以协议可以移植到超声波水表的嵌入式系统中,实现数据的实时通信。

针对目前市场上超声波水表的抄表方式不够规范统一和扩展复杂等问题,以及FreeModbus协议在嵌入式系统中具有的独特优势,我公司设计和实现了一种在超声波水表中应用的Modbus通信协议,可以实现超声波水表与上位机的实时通信,具有可靠性高、实时性好、易于维护等特点以及很好的规范性和统一性。

ModBusRTU通讯协议

ModBusRTU通讯协议

ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种用于串行通信的协议,主要用于工业自动化领域中的设备间通信。

本协议旨在规范ModBusRTU通讯协议的格式、数据结构和通信流程,以确保设备间的稳定、可靠的通信。

二、协议概述ModBusRTU通讯协议基于串行通信,使用二进制编码,采用主从结构进行通信。

主设备负责发起通信请求,从设备负责响应请求并返回数据。

通信数据以字节为单位进行传输,具有较高的传输效率和可靠性。

三、通信格式1. 物理层ModBusRTU通讯协议使用RS-485标准进行物理层通信,支持多主设备和多从设备的连接。

通信速率可根据实际需求设置,常见的速率包括9600bps、19200bps、38400bps等。

2. 帧格式ModBusRTU通讯协议的帧由起始符、地址字段、功能码、数据字段、校验码和结束符组成。

具体格式如下:- 起始符:占据一个字节,固定为0x3A。

- 地址字段:占据一个字节,表示从设备的地址。

- 功能码:占据一个字节,表示通信请求的功能类型。

- 数据字段:占据n个字节,根据功能码的不同而不同。

- 校验码:占据两个字节,用于校验帧的完整性。

- 结束符:占据一个字节,固定为0x0D。

四、功能码ModBusRTU通讯协议定义了一系列功能码,用于区分不同的通信请求。

以下列举了部分常用的功能码及其功能描述:1. 读取线圈状态(功能码:0x01):用于读取从设备的线圈状态,返回线圈的开关状态。

2. 读取输入状态(功能码:0x02):用于读取从设备的输入状态,返回输入信号的状态。

3. 读取保持寄存器(功能码:0x03):用于读取从设备的保持寄存器的值。

4. 读取输入寄存器(功能码:0x04):用于读取从设备的输入寄存器的值。

5. 写单个线圈(功能码:0x05):用于控制从设备的单个线圈的开关状态。

6. 写单个寄存器(功能码:0x06):用于向从设备的单个寄存器写入数据。

超声波流量计串口及通讯协议

超声波流量计串口及通讯协议

串口及通讯协议1.1概述新一代UFT系列产品本身带有隔离的RS485接口,可以同时支持多种常用的通讯协议,包括MODBUS协议、M-BUS、FUJI扩展协议、并兼容国内其它厂家协议。

MODBUS协议是常规的工控常用协议。

MODBUS的两种格式RTU和ASCII都能支持。

M-BUS是国际上常用热表计量协议,使用该协议在M63菜单中选择“MODBUS ASCII”选项。

天泽FUJI扩展协议是在日本FIJI超声波流量计协议的基础上扩展实现的,能够兼容FUJI超声波流量计协议,以及第7版超声波流量计协议。

兼容协议可以兼容水表协议以及国内其他厂家协议,为了方便用户把UFT系列产品接入用户按照国际其它厂家通讯协议而开发的数据采集系统中,目前可以支持12种兼容通讯协议。

使用兼容通讯协议,用户需要在M63中,选择:MODBUS ASCII选项后再选择协议中的任意一种即可。

UFT系列产品还能够起到简易RTU设备的作用,可使用电流环及OCT输出控制步进式或模拟式电磁阀的开度,OCT输出可控制其它设备的上下电,其1路模拟输入可用来输入压力、温度等信号。

位于M63窗口外的设置选项设置为“MODBUS-RTU ONLY”时,用来支持MODBUS-RTU协议,当此选项设置为“MODBUS ASCII、Meter-BUS、天泽FUJI扩展协议及汇中流量计水表兼容协议。

不同的汇中流量计水表兼容协议的选择则也使用M63进行选择,在选择了“MODBUS-RTU”、“MODBUS-ASCII”之后进行选择。

M62菜单用于设置串口参数,能够支持的波特率有19200、14400、9600、4800、2400、1200、600、300共8种,停止位1比特或2比特、校验位也可以选择。

使用各种组态软件自带的标准MODBUS驱动,程序可以方便的把UFT连接到数据采集中。

通过使用MODBUS-PROFTBUS转换器,也可以方便的把UFT连接到PROFIBUS总线中。

ModBusRTU通讯协议

ModBusRTU通讯协议

ModBusRTU通讯协议Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider 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端也可以直接发消息修改Slave端的数据,实现双向读写。

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网络协议发送出去即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

超声水表MODBUS-RTU通信协议V1.1
一.RTU模式
1.物理层
传输接口:RS-485
通信波特率:9600bps
2.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。

生成CRC时,每个8bits字节与寄存器中的内容进行异或运算,结果向低位移位,高位则补0,最低位(LSB)移出并检测,如果是1,该寄存器就与一个预设的固定值进行一次异或运算,如果是0,则不进行任何处理。

上述处理重复进行,直到执行完8位移位操作为止,当最后移位移完后,下一个8bits字节与该寄存器进行异或,同样进行另一个8bits字节进行移位异或操作,当数据包中所有字节都处理了,生成的最终值就是CRC值。

CRC码生成流程:
1、将一个16bits寄存器(称之为CRC寄存器)置为FFFFH(全1);
2、把数据包中的第一个字节与CRC寄存器低字节相异或结果存回到CRC寄存器;
3、将CRC寄存器向右移一位,最高位(MSB)补以“0”,最低位(LSB)移出并检测;
4、如果移出位为“0”:重复地3步(下一次移位)
如果移出位为“1”:将CRC寄存器与一个预设的固定值(A001H)进行异或运算;
5、重复第3、4步直到8次移位结束,这样就处理完成8bits字节;
6、重复第2步至第5步处理下一个8bits字节,直到所有字节全部处理结束;
7、最终的CRC寄存器中的值就是CRC值。

二.寄存器地址及定义
三.功能代码
1.03读保持寄存器
说明:读从机保持寄存器的数据。

从站响应帧:
示例(假设地址为01)
读水表瞬时流量、总量与状态寄存器数据
主站请求帧:01 03 00 02 00 0B A5 CD
地址功能码起始地址数量CRC
从站响应帧:
01 03 16 ;地址、功能码、字节计数
00 00 00 00 ;体积(瞬时)流量:0.0 m3/h
3F F3 C0 CA 2A 5B 1D 5D ;正向总量:1.2345 m3
3F F3 C1 C5 B8 52 65 5D ;反向总量:1.2348 m3
00 02 ;仪表状态字:0002 (状态:空管)
01 CF ;CRC
读所有寄存器数据
主站请求帧:01 03 00 00 00 12 C5 C7
地址功能码起始地址数量CRC
从站响应帧:
01 03 24 ;地址、功能码、字节计数
13 08 80 12 ;仪表编号:13088012
00 00 00 00 ;体积(瞬时)流量:0.0 m3/h
3F F3 C0 CA 2A 5B 1D 5D ;正向总量:1.2345678 m3
3F F3 C1 C5 B8 52 65 5D ;反向总量:1.2348077 m3
00 02 ;仪表状态字:0002 (状态:空管)
07 DD ;日期:2013年
0A 12 ;日期:10月18日
04 00 ;时间:4时0分
0A 00 ;时间:10秒
05 A0 ;GPRS通信间隔时间:1440小时
42 19 ;CRC
2.预置单个寄存器值(功能码06H)
查询
响应
3.预置多个寄存器值(功能码10H)
四.备注
本通信协议只提供03、06、10功能码。

当主机发送的数据帧出错时,从机不应答。

出错的原因包含以下几种:
1 地址不对;
2 CRC校验出错;
3 数据长度出错;
4 操作的数据地址超出;
5 数据帧不符合要求的。

相关文档
最新文档