一种报文解析方法和工具
现状
智能设备应用越来越普遍,深入到生活的各个方面,从智慧农业到智能制造,从水利灌溉到电力传输,从工业生产到智能家居。智能设备应用在各个领域,设备之间都是通过数据交换来达到信息共享和互相操作,交换的数据都遵守某个协议标准,在测试时,调试时和排查问题过程中往往会需要分析交换的数据报文。分析报文是个费力和费时的过程,所以出现了很多针对某个协议开发的解析工具,这篇文章引入一个新的思路,在平台通过配置就可以解析报文方法,而不需要针对某个协议去开发特定的工具。目前,平台已经支持了多个IEC104, MODBUS TCP,MODBUS RTU MODBUS ASCII等标准的协议。
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标准协议
报文值含义是指标准中某个值表示的意思,比如104规约中类型标识值,0x01表示单点遥信,0x03表示双点遥信。字段用可读的名词来会更易于交流,也容易记忆。
大部分的协议标准都会分为协议头,协议尾和数据信息,有些数据区块在协议的多个报文中都是具有相同的结构,这里用报文块来描述一段常被复用的区块。
解析规则可以配置每个字节和每个位的解析方式,以及解析后还应进行的偏移,放大和缩小,及复杂的加工逻辑,这里支持常用+,-,*,/ 等四则运算。
在工作中往往有多种角色需要分析报文,有嵌入开发工程师,平台软件开发工程师,测试工程师和工程维护工程师。大家都需要按同一个协议来解析报文,所以在系统中加入了协议分享的功能,可以把协议分享给内部的和外部的工程师,这样避免了大家解析工具不同步造成的歧义。当相应的工作结束后可以停止分享,也有利于加强协议的安全管理。
分析二进制流报文是物联网助手的主要目的,如果协议族有较好的匹配规则,只需选择报文隶属的协议族,就可以解析报文,如果协议族没有较好的匹配规则,比如MODBUS协议,有些报文不能识别是上行报文还是下行报文,这时需要指定某个报文去解析。下面这张图是解析IEC104的一个报文。
拼装报文是分解报文的逆过程,用于辅助工程师手动组装一个报文。这个功能目前还比较弱,我们也没有好的构思。如果你有好的构思,欢迎你给我们建议,你也可以加入我们的开放团队。
IEC101/104和MODBUS标准协议应用的太广泛了,所以已经在系统配置好了这两个协议,同时也用了这两个协议来测试和验证软件的功能。
上面介绍了一种配置解析报文的方法,感谢大家的阅读。点击物联网助手,立即免费使用!