非标HEX(16进制)报文如何接入Modbus物联网平台? #
非标 数值类型 传感器接入 #
下面以一款 某厂家 七合一空气质量 私有协议举例
报文如下:
查询报文:1A 11 22 33 44 86 86 86 0F (XX XX XX XX XX替换成是七合一传感器实际地址)
返回报文:1A 11 22 33 44 00 01 01 00 02 01 00 03 01 00 04 01 00 05 01 00 06 01 00 07 01 0F
返回解释:五位地址后,每3个字节为一组,通过位置判断是具体哪个环境参数
下面我们根据厂家提供的协议进行配置:
设备管理→协议管理→添加协议
根据下文的说明,我们可以得出帧头 :1A 11 22 33 44,帧长度: 27,校验起始:6,校验结束:26,校验帧尾:自定义,自定义:0F,轮询指令:1A 11 22 33 44 86 86 86 0F
其实,效验帧尾设置为不校验也是可以,报文0F结尾,属于固定值,对解析影响不大。
如何设置帧头 ( 自定义协议解析帧头设置) #
帧头是起始字节到非变量的整段报文,每个解析帧头必须不同, 在帧头中输入起始字节到非变量的报文,可起到精确设备进行解析的作用,如在帧头中输入1A 11 22 33 44 ,通过索引1A 11 22 33 44设备地址后,就可以准确地对该地址设备解析。
如何设置帧长度 #
帧长度即将接收的帧总长度,包括帧头、数据位和帧尾
例如:1A 11 22 33 44 00 01 01 00 02 01 00 03 01 00 04 01 00 05 01 00 06 01 00 07 01 0F
所有字节加起来总和,这里是27
如何设置校验起始 #
帧尾校验从哪一位开始
如何设置校验结束 #
帧尾校验从哪一位结束
如何设置效验帧尾 #
勾选校验帧尾,即添加帧尾校验,可选择对应的效验方式,勾选不校验,即不对报文进行校验。点击校验帧尾输入框,弹出 CRC16 累加和 自定义 不校验 下拉框,在帧尾中选择指令函数CRC16,可对指令帧尾进行 MODBUS 校验。
轮询指令 #
设备的状态查询的完整报文。
添加设备 #
设备管理→设备配置→添加设备
添加设备时,选择刚刚添加的协议“七合一传感器协议”
添加数据 #
如何设置寄存器/偏移量 格式 数据格式 数据顺序 #
寄存器/偏移量:它的意思是选取该数值的第几位 (从 0 开始数) ,比如1A 11 22 33 44 00 01 01 00 02 01 00 03 01 00 04 01 00 05 01 00 06 01 00 07 01 0F 的甲醛偏移量为 5 ,甲醛的数据只有2字节,那么格式选择“16位 无符号数”,数据格式 AB CD 。
根据这个说明得到:
甲醛:寄存器/偏移量 5
TVOC:寄存器/偏移量 8
PM2.5:寄存器/偏移量 11
温度:寄存器/偏移量 14
湿度:寄存器/偏移量 17
PM10:寄存器/偏移量 20
二氧化碳:寄存器/偏移量 23
根据上图把算出的寄存器/偏移量按上图全部添加即可!
非标 开关类型 继电器接入 #
下面以一款 某厂家 8路继电器 私有协议举例
报文如下:
查询报文:11 22 33 44 55 86 86 86 0F (XX XX XX XX XX替换成是七合一传感器实际地址)
返回报文:11 22 33 44 55 00 00 00 00 00 00 00 00 0F (00为关,01为开)
下面我们根据厂家提供的协议进行配置:
设备管理→协议管理→添加协议
根据下文的说明,我们可以得出帧头 :11 22 33 44 55,帧长度: 14,校验起始:6,校验结束:13,校验帧尾:自定义,自定义:0F,轮询指令:11 22 33 44 55 86 86 86 0F
其实,效验帧尾设置为不校验也是可以,报文0F结尾,属于固定值,对解析影响不大。
如何设置帧头 ( 自定义协议解析帧头设置) #
帧头是起始字节到非变量的整段报文,每个解析帧头必须不同, 在帧头中输入起始字节到非变量的报文,可起到精确设备进行解析的作用,如在帧头中输入11 22 33 44 55 ,通过索引11 22 33 44 55设备地址后,就可以准确地对该地址设备解析。
如何设置帧长度 #
帧长度即将接收的帧总长度,包括帧头、数据位和帧尾
例如:11 22 33 44 55 00 00 00 00 00 00 00 00 0F
所有字节加起来总和,这里是14
如何设置校验起始 #
帧尾校验从哪一位开始
如何设置校验结束 #
帧尾校验从哪一位结束
如何设置效验帧尾 #
勾选校验帧尾,即添加帧尾校验,可选择对应的效验方式,勾选不校验,即不对报文进行校验。点击校验帧尾输入框,弹出 CRC16 累加和 自定义 不校验 下拉框,在帧尾中选择指令函数CRC16,可对指令帧尾进行 MODBUS 校验。
轮询指令 #
设备的状态查询的完整报文。
添加设备 #
设备管理→设备配置→添加设备
添加设备时,选择刚刚添加的协议“8路继电器协议”
添加数据 #
如何设置寄存器/偏移量 格式 数据格式 打开命令 关闭命令 #
寄存器/偏移量:它的意思是选取该数值的第几位 (从 0 开始数) ,比如11 22 33 44 55 00 00 00 00 00 00 00 00 0F 的 第一路继电器 偏移量为 5 ,继电器的数据只有1字节,那么格式选择“8位 无符号数”,打开命令:11 22 33 44 55 00 00 01 0F,关闭命令:11 22 33 44 55 00 00 00 0F 。(打开和关闭命令填写完整的控制报文)
根据这个说明得到:
第一路继电器:寄存器/偏移量 5
第二路继电器:寄存器/偏移量 6
第三路继电器:寄存器/偏移量 7
第四路继电器:寄存器/偏移量 8
第五路继电器:寄存器/偏移量 9
第六路继电器:寄存器/偏移量 10
第七路继电器:寄存器/偏移量 11
第八路继电器:寄存器/偏移量 12
根据上图把算出的寄存器/偏移量按上图全部添加即可!
如何使用 开关转换配置 #
大部分继电器是00代表关闭,01代表打开,部分厂家可能会有例外,比如使用FF代表打开,00代表关闭,这时候就要用到我们的 开关转换配置 0=00*1=FF 进行转换了
非标ASCII报文如何接入Modbus物联网平台? #
非标 数值类型 传感器接入 #
待完善。。。
非标 开关类型 继电器接入 #
待完善。。。