超声水表Modbusrtu通信协议V1.1
- 格式:doc
- 大小:127.00 KB
- 文档页数:6
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通讯协议使用手册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通讯协议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 协议简介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已经成为了行业标准,在现实的通讯中具有广泛的应用。
FreeModbus是一种专门针对嵌入式系统应用的一种Modbus协议。
FreeModbus协议对硬件要求很少,具有很好的移植性,所以协议可以移植到超声波水表的嵌入式系统中,实现数据的实时通信。
针对目前市场上超声波水表的抄表方式不够规范统一和扩展复杂等问题,以及FreeModbus协议在嵌入式系统中具有的独特优势,我公司设计和实现了一种在超声波水表中应用的Modbus通信协议,可以实现超声波水表与上位机的实时通信,具有可靠性高、实时性好、易于维护等特点以及很好的规范性和统一性。
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通讯协议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. 发送方与接收方建立连接,发送方通过芯片发送指令、消息等数据,接收方接收到数据并进行处理。
2. 接收方接收到数据后,可以对数据进行分析和处理,如读取水流量、测量水位等。
3. 接收方将数据发送给发送方,发送方收到数据后更新超声波传感器的测量结果。
4. 超声波传感器进行测量后,会将测量结果发送给接收方,接收方接收数据后更新自身的测量结果。
不同的超声波水表制造商和型号可能使用不同的通讯协议,但基本的通讯流程是相同的。
此外,为了确保通讯的可靠性,超声波水表通常还配备有信号干扰检测和数据加密等功能。
光电远传水表水表MODBUS-RTU通讯协议本水表使用了MODBUS-RTU通讯协议,MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。
MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。
首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。
MODBUS协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
MODBUS-RTU格式无起始字符和结尾字符,但需要加等待时间,等待时间不少于3.5个字符发送时间。
(1)传输方式信息传输为异步方式,并以字节为单位,在主机和从机之间传递的通讯信息是10位字格式,包含1个起始位、8个数据位(最小的有效位先发送)、无奇偶校验位、1个停止位。
(2)数据帧格式地址码功能码数据区CRC校验码1字节1字节n字节2字节地址码:地址码在帧的开始部分,由一个字节(8位二进制码)组成,十进制为0~255,在水表中只使用1~247,其它地址保留。
这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。
每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含了该地址的查询。
当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。
功能码:功能码告诉了被寻址到的终端执行何种功能。
下表列出了该系列仪表用到的功能码,以及它们的意义和功能。
数据区:数据区包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。
这些数据的内容可能是数值、参考地址或者设置值。
例如:功能码告诉终端读取一个寄存器,数据区则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同内容而有所不同。
ModBusRTU通讯协议协议名称:ModBus RTU通讯协议1. 引言ModBus RTU通讯协议是一种常用的串行通讯协议,用于在工业自动化领域中实现设备之间的数据通信。
本协议旨在定义ModBus RTU通讯协议的标准格式和规范,以确保各设备之间的互操作性和数据传输的可靠性。
2. 术语和定义在本协议中,以下术语和定义适用:- 主站:指发起通信请求的设备。
- 从站:指响应通信请求的设备。
- 寄存器:指用于存储和传输数据的内存单元。
- 线圈:指用于控制设备状态的开关。
3. 协议结构ModBus RTU通讯协议采用二进制格式进行数据传输,每个通信帧包含以下几个字段:- 地址:指定从站的地址,用于识别通信的目标设备。
- 功能码:指定通信的功能类型,如读取寄存器、写入线圈等。
- 数据:包含具体的通信数据,如读取的寄存器值或写入的线圈状态。
- CRC校验:用于检测通信数据的完整性。
4. 通信过程ModBus RTU通讯协议的通信过程如下:4.1 主站发送请求主站向从站发送请求,请求包含地址、功能码和相关数据。
4.2 从站响应请求从站接收到请求后,根据功能码进行相应的处理,并生成响应数据。
4.3 主站接收响应主站接收从站的响应数据,并进行解析和处理。
5. 功能码ModBus RTU通讯协议定义了一系列功能码,用于实现不同的通信功能。
以下是常用的功能码及其描述:- 读取线圈状态(功能码01):主站向从站请求读取线圈的状态,从站响应包含线圈的当前状态。
- 读取输入状态(功能码02):主站向从站请求读取输入的状态,从站响应包含输入的当前状态。
- 读取保持寄存器(功能码03):主站向从站请求读取保持寄存器的值,从站响应包含寄存器的当前值。
- 读取输入寄存器(功能码04):主站向从站请求读取输入寄存器的值,从站响应包含寄存器的当前值。
- 写入单个线圈(功能码05):主站向从站请求写入单个线圈的状态,从站响应确认写入结果。
MODBUS RTU 通信协议本通信协议采用标准ModBus 协议,采用RTU (十六进制数)传输模式。
ModBus 协议是一种主---从式协议。
任何时刻只有一个设备能够在线路上进行发送。
任何时刻只有一个设备能够在线路上进行发送。
由主站管理信息交换,由主站管理信息交换,由主站管理信息交换,且且只有主站能发起。
只有主站能发起。
主站会依次对从站进行轮流查询。
主站会依次对从站进行轮流查询。
主站会依次对从站进行轮流查询。
只有当从站地址与轮询地址相匹配,只有当从站地址与轮询地址相匹配,只有当从站地址与轮询地址相匹配,从从站才能回复消息。
从站之间不能进行直接通信。
协议桢中不包含任何消息报头及消息结束符,消息的开始和结束依靠间隔时间来识别,当间隔时间长于或等于3.5个字符时,即作为检测到桢结束。
如果网络内没有与查询地址相一致的从站或从站接收时CRC 校验出错,主站将不会接收到返回桢,这时主站根据超时设定判断是否超时,这时主站根据超时设定判断是否超时,如超时,如超时,作出重发或弹出异常错误窗口动作。
误窗口动作。
协议桢定义如下:协议桢定义如下:从站地址从站地址 功能代码功能代码 数据区数据区 CRC16从站地址:地址必须在1---247之间。
之间。
在同个主站网络中每个从站地址必须唯一。
在同个主站网络中每个从站地址必须唯一。
设定仪表二级参数DE DE。
功能代码:包含读、写多个寄存器。
功能代码:包含读、写多个寄存器。
数据:以二进制代码传输。
数据:以二进制代码传输。
CRC16:循环冗余校验,校验从从站地址到数据区最后一个字节,计算多项式码为A001(hex)。
通讯口设置通讯方式异步串行通讯接口,如RS-485RS-485,,RS-232RS-232,,RS-422等波特率12001200~~9600bps 9600bps(可由设定仪表二级参数自由更改,设定仪表二级参数(可由设定仪表二级参数自由更改,设定仪表二级参数BT BT,默认,默认96009600)见表)见表10字节数据格式 HEX. 一位起始位一位起始位 . 八位数据位八位数据位 . 一位停止位一位停止位 . 无校验无校验1********1起始位数据位(从低到高)停止位起始位数据位(从低到高)停止位消息桢格式(读、写功能是从主站角度定义的)读寄存器桢从站地址从站地址功能代码功能代码首寄存器地址首寄存器地址寄存器数NCRC161字节字节 1字节字节 2字节字节2字节字节2字节字节 1---247 03H AddrH, AddrL NH, NL (1---24) CrcL, CrcH读寄存器返回桢从站地址从站地址 功能代码功能代码 字节数字节数 寄存器数据寄存器数据 CRC16 1字节字节 1字节字节 1字节字节 N*2字节字节 2字节字节 1---24703HN*2DataH, DataLCrcL, CrcH写寄存器桢从站地址从站地址 功能代码功能代码 首寄存器地址首寄存器地址 寄存器数N 字节数字节数寄存器数据寄存器数据CRC16 1字节字节 1字节字节 2字节字节 2字节字节 1字节字节 N*2字节字节 2字节字节1---24710HAddrH, AddrLNH, NL 1---24N*2 DataH, DataLCrcL, CrcH写寄存器返回桢从站地址从站地址 功能代码功能代码 首寄存器地址首寄存器地址 寄存器数N CRC16 1字节字节 1字节字节 2字节字节 2字节字节 2字节字节1---24710HAddrH, AddrLNH, NL 1---24CrcL, CrcH错误返回桢从站地址从站地址 功能代码功能代码 错误代码错误代码 CRC16 1字节字节 1字节字节1字节字节 2字节字节 1---247查询功能代码+80H见表2CrcL, CrcH功能代码表:1功能代码功能代码 ModBus 名 功能名功能名 广播广播 一次连续的N 的最大值的最大值 03H Read Holding Registers 读N 个寄存器值个寄存器值 No24 10HWrite Multiple Registers写N 个寄存器值个寄存器值No24错误代码表:2错误代码错误代码 说明说明1 寄存器长度超限寄存器长度超限2 寄存器地址超限寄存器地址超限3 从站密码保护从站密码保护 4读或写不允许读或写不允许单路显示仪表的保持寄存器单路显示仪表的保持寄存器03,16命令对应的保持寄存器地址表,一共有17个参数。
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只表。
ModBusRTU通讯协议协议名称:ModBus RTU通讯协议1. 引言ModBus RTU通讯协议是一种常用的串行通信协议,广泛应用于工业自动化领域。
本协议旨在规定ModBus RTU通讯协议的标准格式,以确保设备之间的可靠通信和数据交换。
2. 协议结构ModBus RTU通讯协议采用基于串行通信的方式,使用二进制编码进行数据传输。
协议结构如下:2.1 帧格式每个ModBus RTU通讯帧由以下几个部分组成:- 起始位:一个起始位用于标识通讯帧的开始。
- 设备地址:一个字节,用于指定通讯的设备地址。
- 功能码:一个字节,用于指定所要执行的功能。
- 数据域:包含数据和指令的部分,长度可变。
- CRC校验:用于校验数据的完整性。
2.2 设备地址设备地址用于标识通讯的设备,取值范围为1-247。
其中1-247为设备地址,0为广播地址。
2.3 功能码功能码用于指定所要执行的功能,常用的功能码如下:- 读取线圈状态(0x01):用于读取线圈的开关状态。
- 读取输入状态(0x02):用于读取输入信号的状态。
- 读取保持寄存器(0x03):用于读取设备的保持寄存器。
- 读取输入寄存器(0x04):用于读取设备的输入寄存器。
- 写单个线圈(0x05):用于控制单个线圈的开关状态。
- 写单个保持寄存器(0x06):用于写入单个保持寄存器的值。
- 写多个线圈(0x0F):用于控制多个线圈的开关状态。
- 写多个保持寄存器(0x10):用于写入多个保持寄存器的值。
3. 数据传输ModBus RTU通讯协议使用串行通信进行数据传输。
通讯帧以连续的方式传输,每个字节由8个位组成,使用LSB(Least Significant Bit)优先的方式传输。
3.1 数据格式数据格式如下:- 起始位:一个起始位,标识通讯帧的开始,取值为0。
- 设备地址:一个字节,用于指定通讯的设备地址。
- 功能码:一个字节,用于指定所要执行的功能。
WL-1A1超声波明渠流量计Modbus通讯协议一、硬件连接1. 使用两线制RS485接线端子在面板背面,共3个。
分别标有“A”、“B”、“GND”印字。
“A”:RS485收发端子;“B”:RS485收发端子;“GND”:信号和电源的公共端(接仪表外壳)。
2. 使用RS232DB9针接插头在仪表壳下面,共九针。
其中“2”、“3”、和“5”用于Modbus。
“2”针:RXD本仪表的接收;“3”针:TXD本仪表的发送;“5”针:信号和电源的公共端(接仪表外壳)。
二、协议配置1.模式:RTU2.仪表被寻址:可配置成0~255 ,其中只有1~247 是合法的Modbus 地址3.波特率:可选,1200、2400、4800、9600、19200、14400、28800、43200、576004.字节编码格式:可选,应选11位偶或11位奇,(1起,8数,1偶或奇,1停)三、WL-1A1内寄存器说明(数据存储位置)寄存器编号:1~9;每寄存器含二个字节,对应16个比特位,高字节在前。
用03、04功能码读取。
①瞬时流量、液位、I1、I2、I3、I4寄存器内的值是以“量程”作分母计算的。
瞬时流量、液位在仪表内有对应的“量程”参数,必须设置;I1、I2、I3、I4的量程由(20mA对应值-4mA对应值)求出,因此4mA对应值和20mA对应值的参数必须设置。
例如:流量量程被设为100m3/h;瞬时流量=30m3/h。
寄存器1内的数值是:(30m3/h)/( 100m3/h)*32767 = 9830 = 0x2666 其中:32767 = 0x7fff②累计流量是仪表显示器上的累计表底数。
求一段时间内的累计流量应该用后一次读数减去前一次读数求出。
例如:后一次读数为0x272a(10026),前一次读数为0x24a(586);其间累计流量是10026-586=9440 m3 (0x24e0)。
求一段时间内的累计流量时要注意模运算问题,由于表底数最大8位十进制,累计超出8位时将自动回零。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种用于串行通信的通讯协议,广泛应用于工业自动化领域。
本协议旨在规范ModBusRTU通讯协议的格式和规则,确保通讯的可靠性和稳定性。
二、协议结构ModBusRTU通讯协议由以下几个部分组成:1. 帧头:包含起始位和地址位,用于标识通讯的起始。
2. 功能码:用于标识通讯的类型和操作。
3. 数据域:包含具体的数据信息。
4. CRC校验:用于校验数据的完整性。
三、通讯规则1. 帧头- 起始位:占据一个字节,固定为0xFF。
- 地址位:占据一个字节,用于标识设备的地址。
2. 功能码- 读取操作:功能码为0x03,用于读取设备的寄存器数据。
- 写入操作:功能码为0x06,用于向设备的寄存器写入数据。
3. 数据域- 读取操作:数据域包含读取的寄存器地址和读取的寄存器数量。
- 写入操作:数据域包含写入的寄存器地址和写入的数据。
4. CRC校验- CRC校验位:占据两个字节,用于校验数据的完整性。
- CRC校验规则:对帧头、功能码和数据域进行CRC校验,将结果附加在数据域之后。
四、通讯流程1. 主站发送请求:- 主站向从站发送帧头、功能码和数据域。
- 主站计算CRC校验位,将结果附加在数据域之后。
- 主站将数据发送给从站。
2. 从站响应请求:- 从站接收主站发送的数据。
- 从站检查CRC校验位,如果校验通过,则执行相应的操作。
- 从站将执行结果或读取的数据发送给主站。
3. 主站处理响应:- 主站接收从站发送的数据。
- 主站解析数据,根据需要进行后续操作。
五、通讯错误处理1. CRC校验错误:- 如果CRC校验错误,从站将不执行任何操作,并返回错误码给主站。
2. 通讯超时:- 如果主站在规定时间内没有接收到从站的响应,主站将重发请求。
3. 其他错误:- 如果发生其他错误,主站和从站可以根据具体情况进行相应的处理。
六、总结ModBusRTU通讯协议是一种用于串行通信的通讯协议,通过规范通讯的格式和规则,确保通讯的可靠性和稳定性。
超声水表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 数据帧不符合要求的。