MBRTU协议说明

协议概述

MBRTU即MODBUS RTU的简称,MODBUS是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。平台的MBRTU协议是建立在TCP协议之上的应用层协议。一般使用DTU实现底层TCP连接,然后平台和设备进行应用层的modbus协议通讯。了解MODBUS协议详细内容请下载Modbus协议中文版【完整版】

连接地址

每一种协议的连接服务器地址和端口号都不一样,请登录平台>设备管理>进入设置连接界面查看。

序列号

在平台创建设备时需要一个序列号,该序列号由塔石提供,设备建立TCP连接之后应第一时间发送序列号,DTU的设置上一般设置为登陆包或注册包(可以查看网关连接案例)。

心跳包

心跳包用户维持链接的长连接,空闲时一般为一分钟发送一次。平台识别的心跳包为Q,当平台收到心跳包Q时,会立即响应A发送给设备,设备可通过心跳包交互来判断与设备的连接情况。

设备定位数据

其他协议可以对传感器发送经纬度数据,MBRTU协议不会对传感器进行经纬度数据的解析。但是,平台提供了独立的定位数据格式(GPS:24.03,113.75),在空闲时发送定位数据。

读写指令说明

登陆平台,选择进入MBRTU协议设备的设置连接页面。

1.从站地址

平台支持一个DTU接入多个设备(通过RS485),所以要求每个设备的从站地址各不相同。

2.功能码

01读写:对开关量(bit位)进行读写,写入默认使用05功能码(不需要单独设置),该功能码一般针对PLC的开关输出点(比如西门子PLC的Q点)。

02只读:对开关量(bit位)进行读,是只读的,不允许写入,一般针对PLC的开关输入点(比如西门子PLC的I点)。

03读写:对整形/浮点型数据进行读写,写入默认使用06功能码(16位整形数据)和10功能码(32位和64位整形和浮点型数据),也就是对单个寄存器写入使用06,多个寄存器使用10。

04只读:对整形/浮点型数据进行读,只读不写。

3.偏置

偏置表示的是数据地址。如果数据地址是16进制表示(0x0000开始),则需要把16进制转为十进制并加1,才是偏置的值。如果地址使用区号+序号表示(比如40001),则偏置只取序号就可以了(也就是1)。

4.数据格式

Bit:二进制位

16位有符号数:占用1个偏置,2个字节,表示正负整数,数据范围-32768~32767。

16位无符号数:占用1个偏置,2个字节,表示正整数,数据范围0~65535。

16位按位读写:占用1个偏置,表示16位二进制,通过数据位(1~16)指定具体的位。

32位有符号数:占用2个偏置,4个字节,表示正负整数,数据范围- 2147483648~ 2147483647。

32位无符号数:占用2个偏置,4个字节,表示正整数,数据范文0~ 4294967295。

32位浮点型数:占用2个偏置,4个字节,可表示正数、负数、正数、小数。

64位浮点型数:占用4个偏置,8个字节,可表示正数、负数、正数、小数。

5.字节顺序

表示字节的高低位顺序。

6.采集周期

表示读取传感器数据的周期时间,由于MODBUS协议是请求应答式协议,每次读数据都会等待接收,等待的过程会产生延时,最长等待20秒,所以越多数据不响应,采集周期会越长。