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秒,所以越多数据不响应,采集周期会越长。