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,將相應的指令發送關聯到按鈕上,實現相關功能的測試