1.背景
对工业设备的通讯协议进行分析可以帮助我们更好地理解其工作原理和相关技术,并且有助于以下几个方面:
1. 优化工业设备的通讯效率:了解通讯协议的细节可以帮助我们找到通讯效率低下的原因并进行优化,提高设备的通讯效率和运行效率。
2. 诊断通讯问题:通讯协议分析可以帮助我们定位和解决通讯问题,比如通讯故障、通讯协议不兼容等。
3. 实现设备之间的通讯:在工业自动化中,不同设备之间需要通讯来实现数据传输和控制,了解通讯协议是实现设备之间通讯的基础。
4. 提高设备的安全性:通讯协议的安全性是保障工业设备安全的重要因素之一。通过对通讯协议进行分析,可以识别通讯中的安全漏洞,防止设备遭到攻击或数据泄漏等安全问题。
2.通讯控制协议分析
本文介绍通讯协议的定义,获取和解析过程。
1. 原始数据捕获-抓包工具
1.串口
CEIWEI CommMonitor 串口监控精灵v12.7-CEIWEI Software|CommMonitor串口监控|Serial port Filter|Serial port monitor|USB Monitor|USB Filter
2.网口
Wireshark · Download
2. 实时数据读取指令识别
通过串口或网络抓包,确定软件通过什么指令触发下位机回复实时的状态数据,通常是轮询+定时查询的方式出现这类的数据包。
实时数据解析范例:
数据解析格式:小端(低字节在前。01 02代表 0x0201)
响应内容数据部份:数据包的第三字节开始前两个字节为固定的01 02 | ||||
地址(从0开始) | 长度 | 类型 | 描述 | 说明 |
0~1 | 2 | 整数 | 温度2(实际值) | ℃ |
2~3 | 2 | 整数 | 温度1(设定值) | ℃ |
4~5 | 2 | 整数 | 风机1(实际值) | min |
6~7 | 2 | 整数 | 风机1(设定值) | min |
3. 过程控制指令识别
打开抓包软件,操作软件的启动、停止、跳步、下载工艺等操作,记录并分析数据流,得出控制指令的协议。
运行、暂停、停止,跳步命令范例:
原始数据:
36 00 00 00 00 0B 00 00 05 F6 B4
36 00 00 00 00 0B 00 00 06 37 74
35 00 00 00 00 0C 00 00 07 01 B2 79 跳步01
36 00 00 00 00 0B 00 00 11 B7 79
命令格式:
5Byte | 2Byte | 1Byte | 1Byte | 1Byte | 2Byte |
机台地址 | 数据总长 | 固定00 | 命令码 | 仅跳步有,其他无此字节 | CRC-16/MODBUS校验码 |
命令码:
命令码 | 命令定义 |
0x01 | 查询实时状态 |
0x02 | 运行 |
0x03 | 停止 |
0x05 | 跳步 |
0x07 | 上锁 |
0x08 | 解锁 |
0x09 | 查询运行信息 |
0x11 | 暂停 |
0x0B | 下发文件 |
命令回复:
与00命令回复一致,使用相同的解析方式
4.编码测试验证协议
通过快速编码的语言,例如python,将相应的指令发送关联到按钮上,实现相关功能的测试