海康vision master解析报文 串口/485设备均可 --协议解析

最近在使用海康vision master时候,需要与485以及串口设备通讯,海康VM需要接收并解析报文,看起来很简单的东西,却让我踩坑俩小时才解决。原因是不知道海康VM里面的协议解析怎么用来解析报文。最终解决过程如下:(如果有帮到你,请点赞谢谢👍👍👍)

一、设备及版本如下

海康VM版本:4.3

设备:485电子秤

USB转485

二、过程

1、建立接收流程

2、通信管理,配置串口通讯

使用设备管理器查看COM口,设置对应的COM口,并打开串口。

3、设置全局变量,存请求重量的报文及转换后的重量

4、配置通讯口

(1)发送数据

点击刚刚创建的发送数据,选择串口设备。因为是发送报文,是字符串,所以需要打开16进制发送。如果最后发现发出去的报文没有反应,可关闭16进制发送进行测试

同时记得设置结束符!!!我接触到大多的485设备报文结束符都是CRLF,对应的结束符是\r\n。也导致了我花费10几分钟才找到问题所在。

最后设置发送的报文,点发送数据1旁边的链接,点击刚刚设置的全局变量的报文。

(2)接收数据

5、测试通讯

设备管理→发送数据→输入报文→十六进制发送→发送

可以看到接收数据那边485电子秤发来的报文。

阅读电子秤的说明书,上面写明了第7到第14位是重量,其余是标志位,也就是说我们等等的协议解析只需要解析第7位到第14位的数据即可。此时可以看到第7到第14位都是0,是因为现在电子秤本身的重量就是0。看到报文了就说明通讯成功,接下来就是解析报文了。

6、报文解析

在电子秤上放上一包口罩,运行程序,可以看到发来的16进制报文如下,41F4CCCD就是重量报文了。out0是系统将整个报文进行解析得到的乱码,可以忽略out0。

在事件后面加入协议解析

7、协议解析

重点来了!!!需要选择字节解析,解析内容选择上一步接收数据的16进制组装结果,因为我们的重量有小数点,因此需要创建float数。因为我们的报文是从第7位开始的,计算机是从0位开始的,2位为一组。从人类的视角下第7位的报文实际上相当于从第3位开始,第14位的报文相当于第6位!!!这里是我踩得坑,之前我一直设置的都是7~14位,导致解析的结果要么是乱码,要么根据就解析不到。最后折腾了接近俩小时发现是起止位置设置错了。

8、解析结果

可以看到解析结果为30.7,就是电子秤上的读数了。如果有需要的话,可以将out0设置位全局变量,方便后续操作。

如果有帮到你,请点赞谢谢👍👍👍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值