艾拓利尔超声波流量计MODBUS通讯协议
超声水表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通信协议在超声波水表中的应用
淮安嘉可自动化仪表有限公司
Modbus通信协议在超声波水表中的应用
对于流量的测量,超声波水表具有独特的优势。
但是超声波水表的抄表方式种类繁多,通信协议可以通过自己制定。
这种方式制定的通信协议漏洞百出,不够规范和统一以及扩展也相当复杂使得超声波水表的通信效率太低,而且还具有潜在的安全问题。
Modbus是应用于工业控制器上的标准通信协议,数据的传输采用串行通讯。
Modbus已经成为了行业标准,在现实的通讯中具有广泛的应用。
FreeModbus是一种专门针对嵌入式系统应用的一种Modbus协议。
FreeModbus协议对硬件要求很少,具有很好的移植性,所以协议可以移植到超声波水表的嵌入式系统中,实现数据的实时通信。
针对目前市场上超声波水表的抄表方式不够规范统一和扩展复杂等问题,以及FreeModbus协议在嵌入式系统中具有的独特优势,我公司设计和实现了一种在超声波水表中应用的Modbus通信协议,可以实现超声波水表与上位机的实时通信,具有可靠性高、实时性好、易于维护等特点以及很好的规范性和统一性。
(完整word版)MODBUS通讯协议以及应用
ModBus通讯协议分为RTU协议和ASCII协议,我公司的多种仪表都采用ModBus RTU通讯协议,如:YD2000智能电力监测仪、巡检表、数显表、光柱数显表等。
下面就ModBus RTU协议简要介绍如下:一、通讯协议(一)、通讯传送方式:通讯传送分为独立的信息头,和发送的编码数据。
以下的通讯传送方式定义也与MODBUS RTU 通讯规约相兼容:初始结构 = ≥4字节的时间地址码 = 1 字节功能码 = 1 字节数据区 = N 字节错误校检 = 16位CRC码结束结构= ≥4字节的时间地址码:地址码为通讯传送的第一个字节。
这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。
并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。
功能码:通讯传送的第二个字节。
ModBus通讯规约定义功能号为1到127。
本仪表只利用其中的一部分功能码。
作为主机请求发送,通过功能码告诉从机执行什么动作。
作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。
如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。
数据区:数据区是根据不同的功能码而不同。
数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。
CRC码:二字节的错误检测码。
(二)、通讯规约:当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。
返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。
如果出错就不发送任何信息。
1.信息帧结构地址码:地址码是信息帧的第一字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。
超声波流量计通讯协议
本月累积流量
LONG
本月累积流量小数部分 REAL4
今年累积流量
LONG
今年累积流量小数部分 REAL4
单位 欧姆 单位 微秒 单位 纳秒 单位 微秒 单位 微秒 单位 毫安 高字节表示信号调整步骤。低字节 表示信号质量,数值范围 0-9,数值 大表示信号好。 数值范围 0-2047 数值范围 0-2047 0 表示中文,1 表示英文 正常范围 100+-3%
量的大小累积单位及倍乘因子有关系,它们之间的确切关系是,设累积整数 N(对正累积而言是寄存器 0009,
0010 中数值,32 比特带符号长整数),累积的小数部分为 Nf(对正累积而言是寄存器 0011,0012 中内容,4 字
节浮点数)。而累积流量倍乘因子为 n(寄存器 1439)
则正累积流量=(N+Nf)×10n~3(单在累积流量单位 1439 寄存器中确定)。
0231-0232
2
下游传播延迟
REAL4 单位微秒
0233-0234
2
估算总传播时间
REAL4 单位微秒
0257-0288
32
显示器缓冲区
BCD
可读出
0289
1
显示器缓冲区存储指针 INTEGER
0311
2
今天已工作时间
LONG
无符号,单位秒
0313
2
本月已工作时间
LONG
无符号,单位秒
0315
2
今天最大瞬时流量
INTEGER 单位 m3/h
0317
2
当月最大瞬时流量
INTEGER 单位 m3/h
1437
1
当前瞬时流量计量单位 INTEGER 取值 0—7 见注 5
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(循环冗长检测)121.2 协议当信息帧到达终端设备时,它通过一个简单的“口”进入寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。
超声波流量计串口及通讯协议
串口及通讯协议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总线中。
超声波明渠流量计MODBUS通讯协议
超声波明渠流量计MODBUS通讯协议V1.4版MODBUS—RTU方式通讯协议1、硬件采用RS—485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
2、数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:1200 2400 4800 9600(默认为9600)3、功能码03H:读寄存器值第1字节ADR:从机地址码(=001~254)第2字节03H:读寄存器值功能码第3、4字节:要读的寄存器开始地址第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)第1字节83H:读寄存器值出错第3字节信息码:见信息码表第4、5字节:从字节1到3的CRC16校验4、功能码06H :写单个寄存器值第1字节 ADR :从机地址码(=001~254) 第1字节 86H : 写寄存器值出错功能码 第3字节 信息码:见信息码表第4、5字节:从字节1到3的CRC16校验5、功能码10H :连续写多个寄存器值第1字节 ADR :从机地址码(=001~254) 第1字节 90H : 写寄存器值出错功能码 第3字节 信息码:见信息码表第4、5字节:从字节1到3的CRC16校验6、寄存器定义表:(注:寄存器地址编码为16进制)备注:E为阶码M 为尾数的小数点部分②测量模式:0 — 测量距离; 1 — 测量物位安全物位:=0,保持; =55,最小值;=AA ,最大值;=A5,设定值 报警1、2、3、4模式:0 — 关闭;1— 地位报警; 2 — 高位报警 单位选择:= 0,mm ;=1,cm ;=2,m算法选择:0—特殊环境一;1—特殊环境二;2—特殊环境三;3—特殊环境四;4—特殊环境五;5—特殊环境六;6—特殊环境七探头类型:0—选择1;1—选择2;2—选择3;3—选择4;4—选择5;5—选择6;6—选择7;7—选择8;8—选择9;响应速度:0—慢速;1—中速;2—快速; 水量清零: 0—否;1—是;流量单位:=0,t/h(吨/小时); =1,l/s(升/秒); =2,t/s(吨/秒); 界面切换:0—否;1—是;电流输出:=0,流量输出;=1液位输出直角三角堰:=0 ,不选用;=1,选用直角三角堰矩形堰:=0 不选用;=1, 0.25米;=2,0.50米;=3,0.75米;=4,1.00米;=5,自定义 梯形堰:=0不选用,=1选用 巴歇尔槽:=0不选用,=1选用 出厂复位: 0—否;1—是; 系统复位: 0—否;1—是;波特率: 0—2400;1—4800;2—9600;3—19200 工作方式:0—自动报告模式;1—查询模式 ③寄存器分区域执行读写操作 第一区域 0010 — 001D 只读 第二区域 0022 — 0033 读写 第三区域 0034 — 004B 读写同一区域内,可单次读(或写)某一参数,也可以批读(或写)本区域内所有参数,不允许跨区域进行读写操作。
MODBUS通讯协议-推荐下载
富的串口、网络资源、通用 GPIO 接口等,同时具有强大的处理能力。结合 ModBus 通讯协议软件,就可非常方便 地构成符合 ModBus 通讯规范的主控(Master)及设备(Slave)的应用平台。针对 ModBus 通讯的主从方式这一特 点,英创公司的 ModBus 通讯协议软件包分为两个可独立使用的部分,即“ModBus 主控协议软件”(简称 modbus_Master)以及“ModBus 设备方协议软件”(简称 modbus_Slave)。目前英创 ModBus 通讯协议软件运行于 WinCE 环境下,均以 C 函数加静态 LIB 库的形式提供给客户。其主要特征如下:
modbus_Master 和 modbus_Slave)中的 API 函数可以同时支持基于串口和 TCP 的 Modbus 协议,应用程序只需要 在调用初始化函数时,用不同参数区分即可,有关参数的说明请参见相应的头文件:modbus_Master.h 和 modbus_Slave.h
1、modbus_Master 的应用 作为 Modbus 客户端模式的应用,主要是准备请求并向服务器设备发送请求,并等待服务器的响应。在做此 类应用开发时,用户可参考 Modbus 标准文献以及被控设备的通讯接口数据手册,直接调用英创提供的 modbus_Master 软件包提供了相应的操作 API 函数,来完成对服务器设备的访问和控制。在进行此类应用开发时, 用户只需要包含 modbus_master.h/ modbus_master.lib 即可。
Modbus 通讯协议详解
功能码设置
信息帧功能代码包括字符(ASCII)或 8 位(RTU)。有效码范围 1-225(十进制),其中有些代码适用全部型号的 Modicon 控 制器,而有些代码仅适用于某些型号的控制器。还有一些代码留作将来使用,有关功能代替码的设置将在第 2 章说明。
对 MAP 或 Modbus+协议可对信息帧的起始和结束点标记进行处理,也可管理发送至目的地的信息,此时,信息传输 中 Modbus 数据帧内的目的地址已无关紧要,因为 Modbus+地址已由发送者或它的网络适配器把它转换成网络节点地址和 路由。
ASCII 帧
在 ASCII 模式中,以(:)号(ASCII3AH)表示信息开始,以回撤一换行键(CRLF) (ASCII OD 和 OAH)表示信息结束。 对其它的区,允许发送的字符为 16 进制字符 0-9,A-F。网络中设备连续检测并接收一个冒号(:)时,每台设备对地址区 解码,找出要寻址的设备。
编码系统:8 位二进制,十六进制 0-9,A-F 数据位: 1 起始位 8 位数据,低位先送 奇/偶校验时 1 位;无奇偶校验时 0 位 停止位 1 位(带校验);停止位 2 位(无校验)
带校验时 1 位停止位;无校验时 2 位停止位 错误校验区:循环冗余校验(CRC)
Modbus 信息帧
何论是 ASCII 模式还是 RTU 模式,Modbus 信息以帧的方式传输,每帧有确定的起始点和结束点,使接收设备在信息 的起点开始读地址,并确定要寻址的设备 (广播时对全部设备),以及信息传输的结束时间。可检测部分信息,错误可作为 一种结果设定。
西门子S7-200--MODBUS通信协议和支持MODBUS-RTU协议的电磁流量计、超声波流量计的通信实例
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电磁流量计、超声波流量计的通信实例S7_200系列PLC有一个通信口的也有两个通信口的,这两个口都支持MODBUS通信协议,不过要添加MODBUS库文件(SP6版本的step7 micro/win 软件自带有MODBUS库文件)。
下面根据具体的项目来说明MODBUS的使用:在项目中要采集进水流量的瞬时流量、日累计、月累计、年累计量,流量计本身有4~20mA信号输出和脉冲信号输出,这些输出信号都是瞬时量,只能转换为瞬时流量,而累积量就要通过编写程序来累加,而且信号的传输衰减和计算过程产生的误差就会造成和实际的流量相差很多,现在很多的流量计(包括其他的测量设备)都设计有通讯口,尤其是支持MODBUS协议,所以首选通信方式采集数据,这样可以直接读取我们想要的数据,只需做稍微的数据转换就可以的,同时也减小了工作量提高准确性(实际是按照流量收取费用的)。
实际的硬件连接:10套s7-200组成PPI网络(其中一个200站做主站),有一个从站要采集两个不同厂家的流量计的相关信息。
PPI网络层已经用去了一个端口0,还剩下一个端口1,那么就用这个端口并设置为自由口协议,在程序中调用MODBUS程序块并填写好必要的信息就可以了(其实调用MODBUS程序块时,程序块内就已经设置好端口为自由口协议了)。
图1.MODBUS库文件图2.控制指令图3.控制指令这里MBUS_CTRL_P1指令要一直调用,有一点要指明:图2中的程序是读取其中一台流量计的,图3是读取另一台流量计的,这两个流量计是不一样的。
这里最重要的是MBUS_MSG_P1指令中地址“Addr”的填写,其实这里要填写Modbus从站的寄存器地址(该地址内有我们需要的信息),那么这个地址要怎么填写呢,填写多少呢?这就要查看从站设备(这里是流量计)的“通信手册”了,因为每个厂家的设备都不一样,所以相同信息的寄存器地址也不一样。
超声波流量计算机DF868 MODBUS协议详细说明
1.Clear Totalizers:Write 1 to Reg 1 to clear Channel 1 totalizers.Write 1 to Reg 2 to clear Channel 2 totalizers.2.Values in these registers are floating point numbers and require no scaling. The number of decimal digits isset in meter programming.3.Require scaling by value in register 13.4.Require scaling by value in register 20.5.A VG Error Code:0=Both Ch1 and Ch2 are in error.1=Ch1 only is in error2=Ch2 only is in error3=Both channels are error free6.MODBUS baud rate:5 = 2400,6 = 4800,7 = 96007.MODBUS parity:0 = none, 1 = odd, 2 = even8.MODBUS stop bits:1 = 1 stop bit,2 = 2 stop bits9.Error Code:Highest single number, or combination of error numbers, listed without an “E”. Error codes should be explained in the user’s manual or guide.If the unit is reading over range, an error condition will occur and output (for a 0-20mA range)or (for a 4-20mA range).10.Descriptions:For the , register numbers 26, 27 and 59, 60 have the description .For the , register numbers 26, 27 and 59, 60 have the description .11Clear Totalizers 2 (16 bit signed int)2, 3**Velocity2 4 (32 bit Long Integer)4, 5*V olumetric-- 4 (IEEE 32 bit Float)6, 7**+Totals Register 10 4 (32 bit Long Integer)8, 9**–Totals Register 10 4 (32 bit Long Integer)10#T Digits0 2 (16 bit signed int) 11, 12**Totalizer Time2 4 (32 bit Long Integer) 132Error Value0 2 (16 bit signed int) 14, 15**SSUP1 4 (32 bit Long Integer) 16, 17**SSDN1 4 (32 bit Long Integer)18, 19**SNDSP0 4 (32 bit Long Integer) 56, 57*Power-- 4 (IEEE 32 bit Float)58, 59**+Energy Register 62 4 (32 bit Long Integer) 60, 61**–Energy Register 62 4 (32 bit Long Integer) 62# Energy Digits0 2 (16 bit signed int) 63, 64**TempS2 4 (32 bit Long Integer) 65, 66**TempR2 4 (32 bit Long Integer) 67, 68**TS-TR2 4 (32 bit Long Integer) 69, 70**DELTH2 4 (32 bit Long Integer) 86, 87*5Slot 1 Input A 4 (IEEE 32 bit Float)88, 89*5Slot 1 Input B 4 (IEEE 32 bit Float)90, 91*Slot 2 Input A 4 (IEEE 32 bit Float)92, 93*Slot 2 Input B 4 (IEEE 32 bit Float)94, 95*Slot 3 Input A 4 (IEEE 32 bit Float)96, 97*Slot 3 Input B 4 (IEEE 32 bit Float)98, 99*Slot 4 Input A 4 (IEEE 32 bit Float) 100, 101*Slot 4 Input B 4 (IEEE 32 bit Float) 102, 103*Slot 5 Input A 4 (IEEE 32 bit Float) 104, 105*Slot 5 Input B 4 (IEEE 32 bit Float) 106, 107*Slot 6 Input A 4 (IEEE 32 bit Float) 108, 109*Slot 6 Input B 4 (IEEE 32 bit Float) 5086MODBUS baud rate0 2 (16 bit signed int)5097MODBUS parity0 2 (16 bit signed int)5108MODBUS stop bits0 2 (16 bit signed int)511MODBUS meter address0 2 (16 bit signed int)512RESERVED----*The complete floating point value is constructed by combining readings from the first register with a second register. An eight Hex digits number will represent the IEEE-754 hexadecimal floating point value. 32-bit Hexadecimal Representation To Decimal Floating-Point conversion can be performed if needed.Example: Reg 4 reading is 44d7, Reg 5 reading is 4000, V olumetric is 44d74000, which corresponds to 1722.**The complete Long integer value is constructed by combining readings from the first register with the second register. Eight Hex digits will represent the Long integer value.Example: Reg 2 is 0019, Reg 3 is ED30, Hexadecimal Velocity is 0019ED30, which corresponds to 1699120 decimal. Taking into account that Velocity has 2 decimal places (from the map), it corresponds to a value of 16991.20.11Clear Totalizers 2 (16 bit signed int) 2, 3**CH 1 Velocity2 4 (32 bit Long Integer) 4, 5*CH 1 V olumetric-- 4 (IEEE 32 bit Float) 6, 7**CH 1 +Totals Register 10 4 (32 bit Long Integer) 8, 9**CH 1 -Totals Register 10 4 (32 bit Long Integer) 10CH 1 #T Digits0 2 (16 bit signed int) 11, 12**CH 1 Totalizer Time2 4 (32 bit Long Integer) 132CH 1 Error Value0 2 (16 bit signed int) 14, 15**CH 1 SSUP1 4 (32 bit Long Integer) 16, 17**CH 1 SSDN1 4 (32 bit Long Integer) 18, 19**CH 1 SNDSP0 4 (32 bit Long Integer) 20, 21**CH 2 Velocity2 4 (32 bit Long Integer) 22, 23*CH 2 V olumetric-- 4 (IEEE 32 bit Float) 24, 25**CH 2 + Totals Register 28 4 (32 bit Long Integer) 26, 27**CH 2 - Totals Register 28 4 (32 bit Long Integer) 28CH 2 # T Digits 0 2 (16 bit signed int) 29, 30**CH 2 Totalizer Time2 4 (32 bit Long Integer) 312CH 2 Error Value0 2 (16 bit signed int) 32, 33**CH 2 SSUP1 4 (32 bit Long Integer) 34, 35**CH 2 SSDN1 4 (32 bit Long Integer) 36, 37**CH 2 SNDSP0 4 (32 bit Long Integer) 38, 39**3A VG Velocity2 4 (32 bit Long Integer) 40, 41*3A VG V olumetric-- 4 (IEEE 32 bit Float) 42, 43**3A VG + Totals Register 46 4 (32 bit Long Integer) 44, 45**3A VG - Totals Register 46 4 (32 bit Long Integer) 46AVG #T Digits0 2 (16 bit signed int) 47, 48**3A VG Totalizer Time2 4 (32 bit Long Integer) 494A VG Error Value0 2 (16 bit signed int) 50, 51**3A VG SSUP1 4 (32 bit Long Integer) 52, 53**3A VG SSDN1 4 (32 bit Long Integer) 54, 55**3A VG SNDSP0 4 (32 bit Long Integer) 56, 57*CH 1 Power-- 4 (IEEE 32 bit Float) 58, 59**CH 1 +Energy Register 62 4 (32 bit Long Integer) 60, 61**CH 1 -Energy Register 62 4 (32 bit Long Integer) 62CH 1 # Energy Digits0 2 (16 bit signed int) 63, 64**CH 1 TempS2 4 (32 bit Long Integer) 65, 66**CH 1 TempR2 4 (32 bit Long Integer) 67, 68**CH 1 TS-TR2 4 (32 bit Long Integer) 69, 70**CH 1 DELTH2 4 (32 bit Long Integer)71, 72*CH 2 Power-- 4 (IEEE 32 bit Float) 73, 74**CH 2 +Energy Register 77 4 (32 bit Long Integer) 75, 76**CH 2 -Energy Register 77 4 (32 bit Long Integer) 77CH 2 # Energy Digits0 2 (16 bit signed int) 78, 79**CH 2 TempS2 4 (32 bit Long Integer) 80, 81**CH 2 TempR2 4 (32 bit Long Integer) 82, 83**CH 2 TS-TR2 4 (32 bit Long Integer) 84, 85**CH 2 DELTH2 4 (32 bit Long Integer) 86, 87*5Slot 1 Input A 4 (IEEE 32 bit Float)88, 89*5Slot 1 Input B 4 (IEEE 32 bit Float)90, 91*Slot 2 Input A 4 (IEEE 32 bit Float)92, 93*Slot 2 Input B 4 (IEEE 32 bit Float)94, 95*Slot 3 Input A 4 (IEEE 32 bit Float)96, 97*Slot 3 Input B 4 (IEEE 32 bit Float)98, 99*Slot 4 Input A 4 (IEEE 32 bit Float) 100, 101*Slot 4 Input B 4 (IEEE 32 bit Float) 102, 103*Slot 5 Input A 4 (IEEE 32 bit Float) 104, 105*Slot 5 Input B 4 (IEEE 32 bit Float) 106, 107*Slot 6 Input A 4 (IEEE 32 bit Float) 108, 109*Slot 6 Input B 4 (IEEE 32 bit Float) 5086MODBUS baud rate0 2 (16 bit signed int)5097MODBUS parity0 2 (16 bit signed int)5108MODBUS stop bits0 2 (16 bit signed int)511MODBUS meter addr0 2 (16 bit signed int)512RESERVED----*The complete floating point value is constructed by combining readings from the first register with a second register. An eight Hex digits number will represent the IEEE-754 hexadecimal floating point value. 32-bit Hexadecimal Representation To Decimal Floating-Point conversion can be performed if needed.Example: Reg 4 reading is 44d7, Reg 5 reading is 4000, V olumetric is 44d74000, which corresponds to 1722.**The complete Long integer value is constructed by combining readings from the first register with the second register. Eight Hex digits will represent the Long integer value.Example: Reg 2 is 0019, Reg 3 is ED30, Hexadecimal Velocity is 0019ED30, which is converted to 1699120 decimal. Taking into account that Velocity has 2 decimal places (from the map), it corresponds to a value of 16991.20.。
超声波液位仪ModBus标准协议
功能码
数据长度字节数
状态数据
校验低字节
校验高字节
01H
01H
01H
05H
91H
8BH
2
此功能允许用户获得设备采集与记录的数据及系统参数。
寄存器地址0002H放液位值,0004H放空高值,0006H放温度(每个数据4字节,占2个寄存器,为IEEE754浮点数
格式)。
举例:
例1:
向1号液位计要液位值数据,查询数据帧为
地址
功能码
字节数
液位值
液位值
液位值
液位值
校验低字节
校验高字节
01H
03H
04H
40H
64H
49H
BAH
18H
0FH
1号液位计液位值数据4字节
注:其中0x406449BA即为液位3.567m的浮点数,排列顺序需要调整请咨询我公司。
例2:
向2号液位计要液位值及空高数据
地址
功能码
数据起始地址寄存器高字节
数据起始地址寄存器低字节
地址
功能码
字节数
液位值
液位值
液位值
液位值
空高值
空高值
空高值
空高值
校验
低字节
校验
高字节
02H
03H
08H
40H
64H
49H
BAH
3FH
B7H
6CH
8BH
BDH
B2H
2号液位计液位值和空高数据共8字节
IEEE754浮点数格式:它用符号位表示数的符号,用阶码和尾数表示数的大小,具有24位精度,尾数的高位始终为“1”,因而不保存,位的分布为:1位符号位,8位指数位,23位尾数。
WL-1A1超声波明渠流量计Modbus通讯协议
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位时将自动回零。
modbus通讯协议
Modbus通讯协议之阳早格格创做图片:图片:图片: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搜集协议收支进去即可.所以正在那里尔仅介绍一下Modbus的ASCII战RTU协议. 下表是ASCII协媾战RTU协议举止的比较:通过比较不妨瞅到,ASCII协媾战RTU协议相比拥有启初战中断标记表记标帜,果此正在举止步调处理时能越收便当,而且由于传输的皆是可睹的ASCII字符,所以举止调试时便越收的曲瞅,其余它的LRC校验也比较简单.然而是果为它传输的皆是可睹的ASCII字符,RTU传输的数据每一个字节ASCII皆要用二个字节去传输,比圆RTU传输一个十六进造数0xF9,ASCII 便需要传输’F’’9’的ASCII码0x39战0x46二个字节,那样它的传输的效用便比较矮.所以普遍去道,如果所需要传输的数据量较小不妨思量使用ASCII协议,如果所需传输的数据量比较大,最佳能使用RTU协议.底下对付二种协议的校验举止一下介绍.1、LRC校验LRC域是一个包罗一个8位二进造值的字节.LRC值由传输设备去估计并搁到消息帧中,接支设备正在接支消息的历程中估计LRC,并将它战接支到消息中LRC域中的值比较,如果二值不等,证明有过失.LRC校验比较简朴,它正在ASCII协议中使用,检测了消息域中除启初的冒号及中断的回车换止号中的真质.它只是是把每一个需要传输的数据按字节叠加后与反加1即可.底下是它的VC代码: BYTE GetCheckCode(const char *pSendBuf, int nEnd)//赢得校验码 { BYTE byLrc = 0; char pBuf[4]; intnData = 0; for(i=1; i<end; i+=2) //i初初为1,躲启“启初标记表记标帜”冒号 { //每二个需要收支的ASCII码转移为一个十六进造数 pBuf [0] = pSendBuf ; pBuf [1] = pSendBuf [i+1]; pBuf [2] = '\0';sscanf(pBuf,"%x",& nData); byLrc += nData; } byLrc = ~ byLrc; byLrc ++; return byLrc; } 2、CRC校验 CRC域是二个字节,包罗一16位的二进造值.它由传输设备估计后加进到消息中.接支设备沉新估计支到消息的CRC,并与接支到的CRC域中的值比较,如果二值分歧,则有误.CRC是先调进一值是齐“1”的16位寄存器,而后调用一历程将消息中连绝的8位字节各目前寄存器中的值举止处理.仅每个字符中的8Bit数据对付CRC灵验,起初位战停止位以及奇奇校验位均无效.CRC爆收历程中,每个8位字符皆单独战寄存器真质相大概(OR),截止背最矮灵验位目标移动,最下灵验位以0弥补.LSB被提与出去检测,如果LSB为1,寄存器单独战预置的值大概一下,如果LSB为0,则不举止.所有历程要沉复8次.正在终尾一位(第8位)完毕后,下一个8位字节又单独战寄存器的目前值相大概.最后寄存器中的值,是消息中所有的字节皆真止之后的CRC值.CRC增加到消息中时,矮字节先加进,而后下字节.底下是它的VC代码: WORDGetCheckCode(const char * pSendBuf, int nEnd)//赢得校验码 { WORD wCrc = WORD(0xFFFF);for(int i=0; i<nEnd; i++){wCrc ^=WORD(BYTE(pSendBuf));for(int j=0; j<8; j++)2、{if(wCrc & 1){3、wCrc >>= 1; wCrc ^= 0xA001; }else{wCrc >>= 1; }}}return wCrc;}对付于一条RTU协议的下令不妨简朴的通过以下的步调转移为ASCII协议的下令:1、把下令的CRC校验去掉,而且估计出LRC校验与代.2、把死成的下令串的每一个字节转移成对付应的二个字节的ASCII码,比圆0x03转移成0x30,0x33(0的ASCII码战3的ASCII码).3、正在下令的启头加上起初标记表记标帜“:”,它的ASCII码为0x3A.4、正在下令的尾部加上中断标记表记标帜CR,LF(0xD,0xA),此处的CR,LF表示回车战换止的ASCII 码.所以以下咱们仅介绍RTU协议即可,对付应的ASCII协议不妨使用以上的步调去死成.下表是Modbus支援的功能码:正在那些功能码中较少使用的是1、2、3、4、5、6号功能码,使用它们即可真止对付下位机的数字量战模拟量的读写支配. 1、读可读写数字量寄存器(线圈状态):估计机收支下令:[设备天面] [下令号01] [起初寄存器天面下8位] [矮8位] [读与的寄存器数下8位] [矮8位] [CRC校验的矮8位] [CRC校验的下8位] 例:[11][01][00][13][00][25][CRC矮][CRC下] 意思如下:<1>设备天面:正在一个485总线上不妨挂接多个设备,此处的设备天面表示念战哪一个设备通讯.例子中为念战17号(十进造的17是十六进造的11)通讯. <2>下令号01:读与数字量的下令号牢固为01.<3>起初天面下8位、矮8位:表示念读与的启关量的起初天面(起初天面为0).比圆例子中的起初天面为19.<4>寄存器数下8位、矮8位:表示从起初天面启初读几个启关量.例子中为37个启关量.<5>CRC校验:是从启头背去校验到此之前.正在此协议的终尾再做介绍.此处需要注意,CRC校验正在下令中的下矮字节的程序战其余的差同. 设备赞同:[设备天面] [下令号01] [返回的字节个数][数据1][数据2]...[数据n][CRC校验的矮8位] [CRC校验的下8位] 例:[11][01][05][CD][6B][B2][0E][1B][CRC矮][CRC下] 意思如下:<1>设备天面战下令号战上头的相共.<2>返回的字节个数:表示数据的字节个数,也便是数据1,2...n中的n的值.<3>数据1...n:由于每一个数据是一个8位的数,所以每一个数据表示8个启关量的值,每一位为0表示对付应的启关断启,为1表示关合.比圆例子中,表示20号(索引号为19)启关关合,21号断启,22关合,23关合,24断启,25断启,26关合,27关合...如果询问的启关量不是8的整倍数,那么终尾一个字节的下位部分奇尔思,置为0.<4>CRC校验共上. 2、读只可读数字量寄存器(输进状态):战读与线圈状态类似,不过第二个字节的下令号不再是1而是2. 3、写数字量(线圈状态):估计机收支下令:[设备天面] [下令号05] [需下置的寄存器天面下8位] [矮8位] [下置的数据下8位] [矮8位] [CRC校验的矮8位] [CRC校验的下8位] 例:[11][05][00][AC][FF][00][CRC矮][CRC下] 意思如下:<1>设备天面战上头的相共.<2>下令号:写数字量的下令号牢固为05.<3>需下置的寄存器天面下8位,矮8位:标明白需要下置的启关的天面.<4>下置的数据下8位,矮8位:标明需要下置的启关量的状态.例子中为把该启关关合.注意,此处只不妨是[FF][00]表示关合[00][00]表示断启,其余数值非法.<5>注意此下令一条只可下置一个启关量的状态. 设备赞同:如果乐成把估计机收支的下令本样返回,可则不赞同. 4、读可读写模拟量寄存器(脆持寄存器):估计机收支下令:[设备天面] [下令号03] [起初寄存器天面下8位] [矮8位] [读与的寄存器数下8位] [矮8位] [CRC校验的矮8位] [CRC 校验的下8位] 例:[11][03][00][6B][00][03][CRC矮][CRC下] 意思如下:<1>设备天面战上头的相共.<2>下令号:读模拟量的下令号牢固为03.<3>起初天面下8位、矮8位:表示念读与的模拟量的起初天面(起初天面为0).比圆例子中的起初天面为107.<4>寄存器数下8位、矮8位:表示从起初天面启初读几个模拟量.例子中为3个模拟量.注意,正在返回的疑息中一个模拟量需要返回二个字节. 设备赞同:[设备天面] [下令号03] [返回的字节个数][数据1][数据2]...[数据n][CRC校验的矮8位] [CRC校验的下8位] 例:[11][03][06][02][2B][00][00][00][64][CRC矮][CRC下] 意思如下:<1>设备天面战下令号战上头的相共.<2>返回的字节个数:表示数据的字节个数,也便是数据1,2...n中的n的值.例子中返回了3个模拟量的数据,果为一个模拟量需要2个字节所以共6个字节.<3>数据1...n:其中[数据1][数据2]分别是第1个模拟量的下8位战矮8位,[数据3][数据4]是第2个模拟量的下8位战矮8位,以此类推.例子中返回的值分别是555,0,100.<4>CRC校验共上. 5、读只可读模拟量寄存器(输进寄存器):战读与死存寄存器类似,不过第二个字节的下令号不再是2而是4. 6、写单个模拟量寄存器(脆持寄存器):估计机收支下令:[设备天面] [下令号06] [需下置的寄存器天面下8位] [矮8位] [下置的数据下8位] [矮8位] [CRC校验的矮8位] [CRC校验的下8位] 例:[11][06][00][01][00][03][CRC矮][CRC下] 意思如下:<1>设备天面战上头的相共.<2>下令号:写模拟量的下令号牢固为06.<3>需下置的寄存器天面下8位,矮8位:标明白需要下置的模拟量寄存器的天面.<4>下置的数据下8位,矮8位:标明需要下置的模拟量数据.比圆例子中便把1号寄存器的值设为3.<5>注意此下令一条mym级别: 总版主粗华: 41收帖: 3956威视: 9957 面款项: 9431 Gold孝敬值: 601 面伙伴圈: ifix技能群正在线时间:539(小时)备案时间:2005-02-02终尾登录:2008-01-25 Modbus通讯协议MODBUS通讯协议简介工业统造已从单机统造走背集结监控、集集统造,此刻已加进搜集时代,工业统造器连网也为搜集管造提供了便当.Modbus便是工业统造器的搜集协议中的一种.一、概括Modbus 协议是应用于电子统造器上的一种通用谈话.通过此协议,统造器相互之间、统造器经由搜集(比圆以太网)战其余设备之间不妨通疑.它已经成为一通用功业尺度.有了它,分歧厂商死产的统造设备不妨连成工业搜集,举止集结监控.此协议定义了一个统造器能认识使用的消息结构,而不管它们是通过何种搜集举止通疑的.它形貌了一统造器哀供考察其余设备的历程,如果回应去自其余设备的哀供,以及何如侦测过失并记录.它造定了消息域格局战真质的大众要收.当正在一Modbus搜集上通疑时,此协议决断了每个统造器须要知讲它们的设备天面,辨别按天面收去的消息,决断要爆收何种止径.如果需要回应,统造器将死成反馈疑息并用Modbus协议收出.正在其余搜集上,包罗了Modbus协议的消息变换为正在此搜集上使用的帧大概包结构.那种变换也扩展了根据简曲的搜集办理节天面、路由路径及过失检测的要收.1、正在Modbus搜集上转输尺度的Modbus心是使用一RS-232C兼容串止接心,它定义了对接心的针足、电缆、旗号位、传输波特率、奇奇校验.统造器能间接大概经由Modem组网.统造器通疑使用主—只可下置一个模拟量的状态. 设备赞同:如果乐成把估计机收支的下令本样返回,可则不赞同.从技能,即仅一设备(主设备)能初初化传输(查询).其余设备(从设备)根据主设备查询提供的数据做出相映反应.典型的主设备:主机战可编程仪容.典型的从设备:可编程统造器.主设备可单独战从设备通疑,也能以广播办法战所有从设备通疑.如果单独通疑,从设备返回一消息动做回应,如果是以广播办法查询的,则不做所有回应.Modbus协议建坐了主设备查询的要收:设备(大概广播)天面、功能代码、所有要收支的数据、一过失检测域.从设备回应消息也由Modbus协议形成,包罗确认要止径的域、所有要返回的数据、战一过失检测域.如果正在消息接支历程中爆收一过失,大概从设备不克不迭真止其下令,从设备将建坐一过失消息并把它动做回应收支进去.2、正在其余典型搜集上转输正在其余搜集上,统造器使用对付等技能通疑,故所有统造皆能初初战其余统造器的通疑.那样正在单独的通疑历程中,统造器既可动做主设备也可动做从设备.提供的多个里里通讲可允许共时爆收的传输进程.正在消息位,Modbus协议仍提供了主—从准则,纵然搜集通疑要收是“对付等”.如果一统造器收支一消息,它不过动做主设备,并憧憬从从设备得到回应.共样,当统造器接支到一消息,它将建坐一从设备回应要收并返回给收支的统造器.Modbus是Modicon 公司为其PLC与主机之间的通讯而收明的串止通讯协议.其物理层采与RS232、485等同步串止尺度.由于其启搁性而被洪量的PLC及RTU厂家采与.Modbus通讯办法采与主从办法的查询-相映体造,惟有主站收出查询时,从站才搞给出赞同,从站不克不迭主动收支数据.主站不妨背某一个从站收出查询,也不妨背所有从站广播疑息.从站只赞同单独收给它的查询,而不赞同广播消息.Modbus的串止心的通讯参数(如波特率、奇奇校验)可由用户采用.二、MODBUS协议传递办法MODBUS通讯协议有二种传递办法:RTU办法战ASCII办法,二种办法如下所示:名目 RTU办法 ASCII办法字节少度 8 BITS 7 BITS奇奇校验 1 BIT OR 0 BIT 1 BIT OR 0 BIT字节中止 1 BIT OR 2 BITS 1 BIT OR 2 BITS启初标记表记标帜不要 :(冒号)中断标记表记标帜不要 CR,LF数据隔断 < 24 BIT < 1S堕落考验办法 CRC-16 LRC统造器能树坐为二种传输模式(ASCII大概RTU)中的所有一种正在尺度的Modbus搜集通疑.用户采用念要的模式,包罗串心通疑参数(波特率、校验办法等),正在摆设每个统造器的时间,正在一个Modbus搜集上的所有设备皆必须采用相共的传输模式战串心参数.三、Modbus消息帧二种传输模式中(ASCII大概RTU),传输设备以将Modbus消息转为有起面战终面的帧,那便允许接支的设备正在消息起初处启初处事,读天面调配疑息,推断哪一个设备被选中(广播办法则传给所有设备),判知何时疑息已完毕.部分的消息也能侦测到而且过失能树坐为返回截止.1、ASCII帧使用ASCII模式,消息以冒号(:)字符(ASCII码 3AH)启初,以回车换止符中断(ASCII 码 0DH,0AH).其余域不妨使用的传输字符是十六进造的0...9,A...F.搜集上的设备不竭侦测“:”字符,当有一个冒号接支到时,每个设备皆解码下个域(天面域)去推断是可收给自己的.消息中字符间收支的时间隔断最少不克不迭超出1秒,可则接支的设备将认为传输过失.2、RTU帧使用RTU模式,消息收支起码要以3.5个字符时间的停顿隔断启初.正在搜集波特率下百般的字符时间,那是最简单真止的(如下图的T1-T2-T3-T4所示).传输的第一个域是设备天面.不妨使用的传输字符是十六进造的0...9,A...F.搜集设备不竭侦测搜集总线,包罗停顿隔断时间内.当第一个域(天面域)接支到,每个设备皆举止解码以推断是可收往自己的.正在终尾一个传输字符之后,一个起码3.5个字符时间的停顿标定了消息的中断.一个新的消息可正在此停顿后启初.所有消息帧必须动做一连绝的流转输.如果正在帧完毕之前有超出1.5个字符时间的停顿时间,接支设备将刷新不完备的消息并假定下一字节是一个新消息的天面域.共样天,如果一个新消息正在小于3.5个字符时间内接着前个消息启初,接支的设备将认为它是前一消息的延绝.那将引导一个过失,果为正在终尾的CRC域的值不可能是粗确的.3、天面域消息帧的天面域包罗二个字符(ASCII)大概8Bit(RTU).大概的从设备天面是0...247 (十进造).单个设备的天面范畴是1...247.主设备通过将要联结的从设备的天面搁进消息中的天面域去选通从设备.当从设备收支回应消息时,它把自己的天面搁进回应的天面域中,以便主设备知讲是哪一个设备做出回应.天面0是用做广播天面,以使所有的从设备皆能认识.当Modbus协议用于更下程度的搜集,广播大概不允许大概以其余办法代替.4、怎么样处理功能域消息帧中的功能代码域包罗了二个字符(ASCII)大概8Bits(RTU).大概的代码范畴是十进造的1...255.天然,有些代码是适用于所有统造器,有此是应用于某种统造器,另有些死存以备后用.当消息从主设备收往从设备时,功能代码域将告之从设备需要真止哪些止为.比圆去读与输进的启关状态,读一组寄存器的数据真质,读从设备的诊疗状态,允许调进、记录、校验正在从设备中的步调等.当从设备回当令,它使用功能代码域去指示是平常回应(无误)仍旧有某种过失爆收(称做同议回应).对付平常回应,从设备仅回应相映的功能代码.对付同议回应,从设备返回一等共于平常代码的代码,然而最要害的位子为逻辑1.比圆:一从主设备收往从设备的消息央供读一组脆持寄存器,将爆收如下功能代码:0 0 0 0 0 0 1 1 (十六进造03H)对付平常回应,从设备仅回应共样的功能代码.对付同议回应,它返回: 1 0 0 0 0 0 1 1 (十六进造83H)除功能代码果同议过失做了建改中,从设备将一特殊的代码搁到回应消息的数据域中,那能报告主设备爆收了什么过失. 主设备应用步调得到同议的回应后,典型的处理历程是沉收消息,大概者诊疗收给从设备的消息并报告给支配员. 5、数据域数据域是由二个十六进造数集中形成的,范畴00...FF.根据搜集传输模式,那不妨是由一对付ASCII字符组成大概由一RTU字符组成. 从主设备收给从设备消息的数据域包罗附加的疑息:从设备必须用于举止真止由功能代码所定义的所为.那包罗了象不连绝的寄存器天面,要处理项的数目,域中本质数据字节数. 比圆,如果主设备需要从设备读与一组脆持寄存器(功能代码03),数据域指定了起初寄存器以及要读的寄存器数量.如果主设备写一组从设备的寄存器(功能代码10十六进造),数据域则指明白要写的起初寄存器以及要写的寄存器数量,数据域的数据字节数,要写进寄存器的数据. 如果不过失爆收,从从设备返回的数据域包罗哀供的数据.如果有过失爆收,此域包罗一同议代码,主设备应用步调不妨用去推断采与下一步止径. 正在某种消息中数据域不妨是不存留的(0少度).比圆,主设备央供从设备回应通疑事变记录(功能代码0B十六进造),从设备不需所有附加的疑息. 6、过失检测域尺度的Modbus搜集有二种过失检测要收.过失检测域的真质视所选的检测要收而定. ASCII 当采用ASCII 模式做字符帧,过失检测域包罗二个ASCII字符.那是使用LRC (纵背冗少检测)要收对付消息真质估计得出的,不包罗启初的冒号符及回车换止符.LRC字符附加正在回车换止符前里. RTU 当采用RTU模式做字符帧,过失检测域包罗一16Bits值(用二个8位的字符去真止).过失检测域的真质是通过对付消息真质举止循环冗少检测要收得出的.CRC域附加正在消息的终尾,增加时先是矮字节而后是下字节.故CRC的下位字节是收支消息的终尾一个字节.7、字符的连绝传输当消息正在尺度的Modbus系列搜集传输时,每个字符大概字节以如下办法收支(从左到左):最矮灵验位...最下灵验位四、过失检测要收尺度的Modbus串止搜集采与二种过失检测要收.奇奇校验对付每个字符皆可用,帧检测(LRC大概CRC)应用于所有消息.它们皆是正在消息收支前由主设备爆收的,从设备正在接支历程中检测每个字符战所有消息帧. 用户要给主设备摆设一预先定义的超常常间隔断,那个时间隔断要足够少,以使所有从设备皆能动做平常反应.如果从设备测到一传输过失,消息将不会接支,也不会背主设备做出回应.那样超时事变将触收主设备去处理过失.收往不存留的从设备的天面也会爆收超时. 1、奇奇校验用户不妨摆设统造器是奇大概奇校验,大概无校验.那将决断了每个字符中的奇奇校验位是怎么样树坐的. 如果指定了奇大概奇校验,“1”的位数将算到每个字符的位数中(ASCII模式7个数据位,RTU中8个数据位).比圆RTU字符帧中包罗以下8个数据位: 1 1 0 0 0 1 0 1 所有“1”的数目是4个.如果便用了奇校验,帧的奇奇校验位将是0,便得所有“1”的个数仍是4个.如果便用了奇校验,帧的奇奇校验位将是1,便得所有“1”的个数是5个. 如果不指定奇奇校验位,传输时便不校验位,也不举止校验检测.代替一附加的停止位弥补至要传输的字符帧中.2、LRC检测使用ASCII模式,消息包罗了一鉴于LRC要收的过失检测域.LRC域检测了消息域中除启初的冒号及中断的回车换止号中的真质. LRC域是一个包罗一个8位二进造值的字节.LRC值由传输设备去估计并搁到消息帧中,接支设备正在接支消息的历程中估计LRC,并将它战接支到消息中LRC域中的值比较,如果二值不等,证明有过失. LRC要收是将消息中的8Bit的字节连绝乏加,拾弃了进位. LRC简朴函数如下: static unsigned char LRC(auchMsg,usDataLen) unsigned char *auchMsg ; /* 要举止估计的消息 */ unsigned short usDataLen ; /* LRC 要处理的字节的数量*/ { unsigned char uchLRC = 0 ; /* LRC 字节初初化 */ while (usDataLen--) /* 传递消息 */ uchLRC += *auchMsg++ ; /* 乏加*/ return ((unsigned char)(-((char_uchLRC))) ; } 3、CRC检测使用RTU模式,消息包罗了一鉴于CRC要收的过失检测域.CRC域检测了所有消息的真质. CRC域是二个字节,包罗一16位的二进造值.它由传输设备估计后加进到消息中.接支设备沉新估计支到消息的CRC,并与接支到的CRC域中的值比较,如果二值分歧,则有误. CRC是先调进一值是齐“1”的16位寄存器,而后调用一历程将消息中连绝的8位字节各目前寄存器中的值举止处理.仅每个字符中的8Bit数据对付CRC灵验,起初位战停止位以及奇奇校验位均无效. CRC爆收历程中,每个8位字符皆单独战寄存器真质相大概(OR),截止背最矮灵验位目标移动,最下灵验位以0弥补.LSB被提与出去检测,如果LSB为1,寄存器单独战预置的值大概一下,如果LSB为0,则不举止.所有历程要沉复8次.正在终尾一位(第8位)完毕后,下一个8位字节又单独战寄存器的目前值相大概.最后寄存器中的值,是消息中所有的字节皆真止之后的CRC值. CRC增加到消息中时,矮字节先加进,而后下字节.ModBus搜集是一个工业通疑系统,由戴智能终端的可编步调统造器战估计机通过公用线路大概局部博用线路对接而成.其系统结构既包罗硬件、亦包罗硬件.它可应用于百般数据支集战历程监控.ModBus搜集惟有一个主机,所有通疑皆由他收出.搜集可支援247个之多的近程从属统造器,然而本质所支援的从机数要由所用通疑设备决断.采与那个系统,各PC不妨战核心主机接换疑息而不做用各PC 真止自己的统造任务.(1)ModBus的传输办法正在ModBus 系统中有2种传输模式可采用.那2种传输模式与从机PC通疑的本收是共等的.采用时应视所用ModBus主机而定,每个ModBus系统只可使用一种模式,不允许2种模式混用.一种模式是ASCII(好国疑息接换码),另一种模式是RTU(近程终端设备).ASCII可挨印字符便于障碍检测,而且对付于用下档谈话(如Fortan)编程的主估计机及主PC很相宜.RTU则适用于呆板谈话编程的估计机战PC主机. 用RTU模式传输的数据是8位二进造字符.如欲变换为ASCII模式,则每个RTU字符最先应分为下位战矮位二部分,那二部分各含4位,而后变换成十六进造等量值.用以形成报文的ASCII字符皆是十六进造字符.ASCII模式使用的字符虽是RTU模式的二倍,然而ASCII数据的译玛战处理更为简单一些,别的,用RTU模式时报笔墨符必须以连绝数据流的形式传递,用ASCII模式,字符之间可爆收少达1s的隔断,以符合速度较快的呆板. (2)ModBus的数据校验办法 CRC-16(循环冗余过失校验) CRC-16过失校验步调如下:报文(此处只波及数据位,不指起初位、停止位战任选的奇奇校验位)被瞅做是一个连绝的二进造,其最下灵验位(MSB)尾选收支.报文先与X↑16相乘(左移16位),。
西门子S7-200--MODBUS通信协议和支持MODBUS-RTU协议的电磁流量计、超声波流量计的通信实例
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电磁流量计、超声波流量计的通信实例S7_200系列PLC有一个通信口的也有两个通信口的,这两个口都支持MODBUS通信协议,不过要添加MODBUS库文件(SP6版本的step7 micro/win 软件自带有MODBUS库文件)。
下面根据具体的项目来说明MODBUS的使用:在项目中要采集进水流量的瞬时流量、日累计、月累计、年累计量,流量计本身有4~20mA信号输出和脉冲信号输出,这些输出信号都是瞬时量,只能转换为瞬时流量,而累积量就要通过编写程序来累加,而且信号的传输衰减和计算过程产生的误差就会造成和实际的流量相差很多,现在很多的流量计(包括其他的测量设备)都设计有通讯口,尤其是支持MODBUS协议,所以首选通信方式采集数据,这样可以直接读取我们想要的数据,只需做稍微的数据转换就可以的,同时也减小了工作量提高准确性(实际是按照流量收取费用的)。
实际的硬件连接:10套s7-200组成PPI网络(其中一个200站做主站),有一个从站要采集两个不同厂家的流量计的相关信息。
PPI网络层已经用去了一个端口0,还剩下一个端口1,那么就用这个端口并设置为自由口协议,在程序中调用MODBUS程序块并填写好必要的信息就可以了(其实调用MODBUS程序块时,程序块内就已经设置好端口为自由口协议了)。
图1.MODBUS库文件图2.控制指令图3.控制指令这里MBUS_CTRL_P1指令要一直调用,有一点要指明:图2中的程序是读取其中一台流量计的,图3是读取另一台流量计的,这两个流量计是不一样的。
这里最重要的是MBUS_MSG_P1指令中地址“Addr”的填写,其实这里要填写Modbus从站的寄存器地址(该地址内有我们需要的信息),那么这个地址要怎么填写呢,填写多少呢?这就要查看从站设备(这里是流量计)的“通信手册”了,因为每个厂家的设备都不一样,所以相同信息的寄存器地址也不一样。
AIBUS及MODBUS通讯协议说明
AIBUS及MODBUS通讯协议说明(V8.0)AIBUS是厦门宇电自动化科技有限公司为AI系列显示控制仪表开发的通讯协议,能用简单的指令实现全面的功能,其特点是写参数的同时亦可完成读功能,因此写参数时不破坏读的循环周期时间,加上指令长度较少,因此具有比MODBUS更快的速率(尤其是有写入指令时,MODBUS的写入指令不能同时完成读下位机数据的功能,xzfse会破坏读指令的周期,延长了读的循环周期),AIBUS协议具有组建大规模过程控制系统能力。
AIBUS采用了16位的求和校正码,下位机运算快速且通讯可靠,支持9600和19200等不同波特率,在19200波特率下,上位机访问一台AI-7/8系列高性能仪表的平均时间仅20mS,访问AI-5系列仪表的平均时间为40mS。
仪表允许在一个RS485通讯接口上连接多达80台仪表(为保证通讯可靠,仪表数量大于60台时需要加一个RS485中继器)。
AI系列仪表可以用PC、触摸屏及PLC作为上位机,其软件资源丰富,发展速度极快。
基与PC的上位机软件广泛采用WINDOWS作为操作环境,不仅操作直观方便,而且功能强大。
最新的工业平板触摸屏式PC的应用,更为工业自动化带来新的界面。
这使得采用仪表+上位机结构的测控系统价格cvz口电平符合RS232C或RS485标准中的规定。
数据格式为1个起始位,8位数据,无校验位,1个或2个停止位。
通讯传输数据的波特率可调为4800~19200 bit/S,通常用9600 bit/S,单一通讯口所连接仪表数量大于40台或需要更快刷新率时,推荐用19200bit/S,当通讯距离很长或通讯不可靠常中断时,可选4800bit/S。
AI仪表采用多机通讯协议,采用RS485通讯接口,则可将1~80台的仪表同时连接在一个通讯接口上。
RS485通讯接口通讯距离长达1KM以上x(部分实际应用已达3-4KM),只需两根线就能使多台AI 仪表与计算机进行通讯,优于RS232通讯接口。
超声波流量计串口及通讯协议
串口及通讯协议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总线中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
官方网址 艾托利尔超声波流量计MODBUS通讯协议
艾托利尔超声波流量计MODBUS通讯协议是怎样的呢?成都永浩机电工程技术有限公司做了以下说明,供大家参考:
官方网址
官方网址 如果您想要了解更多关于艾托利尔超声波流量计MODBUS通讯协议方面的信息?成都永浩机电工程技术有限公司就是一个不错的选择!
成都永浩机电工程技术有限公司引进德国先进的技术,开发了艾拓利尔品牌系列流量、液位、压力产品,长期与德国许多大型仪表企业技术合作,产品不断更新换代。
研发的AP200系列压力变送器采用了先进的模块一体化设计,独立菜单操作,液晶背光显示。
产品变送器防护等级达到IP65~IP68,适应于潮湿、浸泡等恶劣环境下的使用。
成都永浩机电工程技术有限公司成立于2006年,是专注于自动化技术的领导厂商。
面对日益严峻的环境问题以及工业自动化落后的现状,永浩长期致力于自控仪表及自控系统的研发、集成,秉乘“开创智能、环保新时代”的经营使命,整合国际先进自动化技术,持续开发创新节能产品及解决方案,不断努力提升自控技术在各行业的应用和转化,以减轻环境问题对经济发展的冲击以及劳动力成本攀升对工业制造的制约。
近年来,永浩已逐步从自控仪表的提供商成功转型为整体解决方案的服务商,深耕“传感层产品”、“控制层产品”及“行业解决方案”三大业务范畴。
成都永浩机电工程技术有限公司是台达产品经销商,专注于自动化过程控制,现场仪表设计、销售服务的现代化高新技术企业,公司引进德国先进的技术,开发艾拓利尔品牌系列流量、液位、压力产品,长期与德国许多大型仪表企业技术合作,产品不断更新换代,自投入市场以来,广泛应用于石油、化工、电力、冶金、环保、制药、水处理等行业,得到了广大用户的一致好评。
公司主要产品包括:
官方网址 流量仪表类:电磁流量计、涡街流量计、涡轮流量计、差压式流量计、超声波流量计、金属管浮子流量计、椭圆齿轮流量计、质量流量计及热式流量开关。
物位仪表类:压阻式液位变送器、电容式液位变送器、超声波液位计、雷达物位计等。
压力类仪表:压力变送器、差压变送器等。
工控类产品:西门子、台达、施耐德、罗克韦尔系列PLC,人机界面,伺服电机,变频器,工控机,成套系统集成。