在线解析二进制报文

现状

智能设备应用越来越普遍,深入到生活的各个方面,从智慧农业到智能制造,从水利灌溉到电力传输,从工业生产到智能家居。智能设备应用在各个领域,设备之间都是通过数据交换来达到信息共享和互相操作,交换的数据都遵守某个协议标准,在测试时,调试时和排查问题过程中往往会需要分析交换的数据报文。分析报文是个费力和费时的过程,所以出现了很多针对某个协议开发的解析工具,这篇文章引入一个新的思路,在平台通过配置就可以解析报文方法,而不需要针对某个协议去开发特定的工具。目前,平台已经支持了多个IEC104, MODBUS TCP,MODBUS RTU MODBUS ASCII等标准的协议。

免费的IOT-Assistant

IOT-Assistant是一个旨在减轻物联网从业人工作的软件,简称物联网助手。目前,它主要用于分析智能设备二进制流式报文协议,比如IEC104中带品质遥测报文68 13 06 00 02 00 09 82 14 00 01 00 01 07 00 A1 10 00 89 15 00。它不支持JSON和SOAP这种可读性高的报文,它也不能和设备进行通信,所以它不支持设备调试,但能分析输入的报文,也支持用户拼装报文,能在不少场合减轻工作量。

五个功能点

  • 配置报文术语,报文块和解析规则
  • 支持协议分享的团队协作功能
  • 分析二进制流报文
  • 拼装二进制报文
  • 内置支持IEC101/104和MODBUS标准协议

1 配置报文值含义,报文块和解析规则

报文值含义是指标准中某个值表示的意思,比如104规约中类型标识值,0x01表示单点遥信,0x03表示双点遥信。字段用可读的名词来会更易于交流,也容易记忆。
大部分的协议标准都会分为协议头,协议尾和数据信息,有些数据区块在协议的多个报文中都是具有相同的结构,这里用报文块来描述一段常被复用的区块。
解析规则可以配置每个字节和每个位的解析方式,以及解析后还应进行的偏移,放大和缩小,及复杂的加工逻辑,这里支持常用+,-,*,/ 等四则运算。
在这里插入图片描述

2 支持协议分享的团队协作功能

在工作中往往有多种角色需要分析报文,有嵌入开发工程师,平台软件开发工程师,测试工程师和工程维护工程师。大家都需要按同一个协议来解析报文,所以在系统中加入了协议分享的功能,可以把协议分享给内部的和外部的工程师,这样避免了大家解析工具不同步造成的歧义。当相应的工作结束后可以停止分享,也有利于加强协议的安全管理。

3 分析二进制流报文

分析二进制流报文是物联网助手的主要目的,如果协议族有较好的匹配规则,只需选择报文隶属的协议族,就可以解析报文,如果协议族没有较好的匹配规则,比如MODBUS协议,有些报文不能识别是上行报文还是下行报文,这时需要指定某个报文去解析。下面这张图是解析IEC104的一个报文。
在这里插入图片描述

4 拼装二进制报文

拼装报文是分解报文的逆过程,用于辅助工程师手动组装一个报文。这个功能目前还比较弱,我们也没有好的构思。如果你有好的构思,欢迎你给我们建议,你也可以加入我们的开放团队。
在这里插入图片描述

5 内置支持IEC101/104和MODBUS标准协议

IEC101/104和MODBUS标准协议应用的太广泛了,所以已经在系统配置好了这两个协议,同时也用了这两个协议来测试和验证软件的功能。

上面介绍了这么多,感谢看官的阅读。这里我们奉上物联网助手给你!通过上面的介绍,如果对你会有帮助,欢迎使用。祝大家工作愉快!

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Python可以通过多种方式解析二进制报文协议。下面我将介绍使用Python解析二进制报文协议的一般步骤。 首先,我们需要了解二进制报文协议的结构和字段定义。二进制报文通常由多个字段组成,每个字段可能有不同的数据类型和大小。我们需要根据协议规范,按照字段的顺序和大小将二进制报文解析为可读的数据。 其次,我们可以使用Python内置的struct模块来处理二进制数据。struct模块提供了一组函数,用于将二进制数据解析为Python数据类型,并支持不同的字节顺序和数据对齐方式。 还有另一种流行的方法是使用第三方库,如construct或bitstring。这些库提供了更便捷的方式来定义报文结构,并且支持更丰富的数据类型和字段处理选项。 在解析报文时,我们需要按照字段的顺序逐个解析。可以使用字符串切片、struct.unpack或第三方库提供的相应函数来解析字段的二进制数据。解析后的数据可以保存在Python的变量中,以便后续处理或展示。 最后,我们需要根据解析后的数据,根据协议规范进一步处理。这可能包括数据转换、校验和错误处理等。根据具体需求,我们可以使用Python提供的数据处理和计算库来进行进一步的处理。 总结起来,使用Python解析二进制报文协议的一般步骤包括:了解协议结构和字段定义、选择合适的解析方式,按字段顺序逐个解析二进制数据,处理解析后的数据,并根据协议规范进行进一步的处理。以上是一个简单的解析二进制报文协议的示例,具体的解析过程可能因协议的复杂性而有所差异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值