MODBUS-rtu远传水表是一种支持MODBUS通讯协议的具备远程传输、采集、管理、计量、监控等功能的智能型水表,是有线远传水表之中的一种,为供水单位和用水单位带来了稳定、有效的通讯方式,同时让双方感受到了计量与管理方面的便捷。
一般我们使用的MODBUS-rtu远传水表采用的是MODBUS-rtu通讯协议,这种协议对于水表的校验码、数据序列号等内容作了详细的定义,这些都是数据交换工作中必须具备的内容。一般我们使用的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,其它地址保留。这些位标明了用户的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是的,仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。
功能码:功能码告诉了被寻址到的终端执行何种功能。下表列出了该系列仪表用到的功能码,以及它们的意义和功能。
功能 | 定义 | 操作 |
03H/04H | 读数据寄存器 | 获得一个或多个寄存器的当前二进制值 |
10H | 预置多寄存器 | 设定二进制值到一系列多寄存器中 |
数据区:数据区包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。例如:功能码告诉终端读取一个寄存器,数据区则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同内容而有所不同。
CRC校验码:错误校验(CRC)域占用两个字节,包含了一个16位的二进制值。CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了错误。
生成一个CRC的流程为:
1、预置一个16位寄存器为0FFFFH(全1),称之为CRC寄存器。
2、把数据帧中的个字节的8位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。
3、将CRC寄存器向右移一位,位填以0,位移出并检测。
4、如果位为0,重复第三步(下一次移位);如果位为1,将CRC寄存器与一个预设的固定值(0A 001H)进行异或运算。
5、重复第三步和第四步直到8次移位。这样处理完了一个完整的八位。
6、重复第2步到第5步来处理下一个八位,直到所有的字节处理结束。
7、最终CRC寄存器的值就是CRC的值。
此外还有一种利用预设的表格计算CRC的方法,它的主要特点是计算速度快,但是表格需要较大的存储空间,该方法此处不再赘述,请参阅相关资料。
通信应用格式详解
(1)功能码03H:读寄存器
此功能允许用户获得设备采集与记录的数据及系统参数。主机一次请求的数据个数没有限制,但不能超出定义的地址范围。
下面的例子是从01号从机读1个采集到的基本数据(数据帧中每个地址占用2个字节)。采集的数据为总用水量(占用4个字节),其地址为00H
主机发送 | 发送信息 | | 从机返回 | 返回信息 |
地址码 | 01H | 地址码 | 01H |
功能码 | 03H | 功能码 | 03H |
起始地址 | 高字节 | 00H | 字节数 | 04H |
低字节 | 00H | 寄存器数据 | 高字节 | 00H |
寄存器数量 | 高字节 | 00H | 低字节 | 12H |
低字节 | 02H | 寄存器数据 | 高字节 | D6H |
CRC 校验码 | 高字节 | C4H | 低字节 | 87H |
低字节 | 0BH | CRC 校验码 | 高字节 | 44H |
| 低字节 | 34H |
附:1、读写属性:“R"只读,读参量用03H号命令;“R/W"可读可写,写参量用10H号命令。禁止向未列出的或不具可写属性的地址写入。
2、表的通讯地址和通讯速率出厂时给出,亦可通过本公司提供的软件读出。也可以通过协议设置。
3、表中所测读数占4个字节,单位为m3。高位在前,低位在后,若读出值为0012D687H(1234567),则计量值为1234567×0.01=12345.67m3。