今天來分享一下,如何抓取串口設備的Modbus RTU數據包。先到CEIWEI軟件官網下載CommMonitor的最新版v12.0,才支持Modbus RTU/ASCII協議分析功能,同ModbusMonitor RTU over TCP一樣,完全分析了Modbus協議,不必我們再次分析了,監控即所得。下載地址:http://www.ceiwei.com/down/CEIWEI_CommMonitor_20208.zip,下載不了,請另存為。
准備相關軟件,虛擬串口軟件,用於虛擬出互通的兩個串口,可以模擬通信,以便Modbus Slave/Poll軟件調試串口Modbus RTU數據。
一、CommMonitor串口監控的安裝
CommMonitor串口監控支持WinXP,Win7,Win10, Win11,32/64位操作系統,默認安裝即可,如下圖:
按步驟來,值到安裝完成。
二、虛擬串口
安裝VSPort虛擬串口,虛擬兩個互通的串口,COM2<--->COM3,波特率9600;
三、新建Modbus串口連接
- Modbus Slave 從站新建Connection,選擇串口(Serial port) COM1,數據模式(Mode)選擇RTU,如下圖左;
- Modbus Poll 主站新建Connection,選擇串口(Serial port) COM2,數據模式(Mode)選擇RTU,如下圖右;
- 選擇參數設置: Modbus Slave 菜單 Setup-》 Definition: function 03 保持寄存器,Modbus Poll 菜單 Setup-》Read/KWrite Definition同樣設置;
- Modbus Slave,因為是寄存器,可以雙擊1行-0000(就是地址01)單元格,填上值,同時勾選自動增加數值,讓其每秒增加計數,如下圖左;
- Modbus Poll,設置完成后,就可以看到1行-0000(就是地址01)的數據在跳動增加地變化着,顯示Tx、Rx串口數據包日志,如下圖右。
四、CommMonitor 安裝后,運行打開如下圖:
- 點擊[+]新建監控會話,這里CommMonitor12.0和之前的早期版本有比較大的區別,新版本支持會話,可以保存監控會話,下次打開,可以繼續監控;
- 這里我們選擇要監控的串口COM2,因為Modbus Poll主站選擇的是串口COM2,數據主要是主站與從站Request/Response模式,我們只需要監控一個串口就可以了,不需要監控兩個串口;
- 必須選上Modbus視圖,Modbus RTU模式,不然是不會顯示Modbus視圖監視窗口。
五、查看監控日志
以上幾個步驟做完了,串口COM2的監控數據包出來了,Modbus RTU協議已經完全解析,如下圖:
放大[Modbus視圖],把數據詳情顯示出來,默認是分隔條向底部隱藏了,拖上來即可,如下圖:
六、查看串口的原始數據
放大[列表視圖],查看串口的原始數據,把數據詳情顯示出來,默認是分隔條向底部隱藏了,拖上來即可,
從下圖可以看出,串口Modbus RTU,帶有 CRC16/Modbus校驗值:CDC5,如下圖:
七、導出數據日志
CommMonitor 是可以將監控的數據日志導出到文本Txt文件,在需要導出的視圖上我們右鍵菜單,保存成文本文件,如下圖:
打開Txt 記事本,查看日志內容,如下圖:
八、總結:
CommMonitor 串口監控精靈v12.0,可以監控已經打開的串口,就是不管串口是否先打開還是后打開,都可以監控得到數據,對於VSPD的虛擬串口同樣監控得到。
以下為官網新功能
- 增加Terminal View、Modbus View、LineView功能;
- 增加Modbus RTU/ASCII協議分析;
- 增加數據編碼解析,支持編碼類型:Ansi、Unicode/UTF7/UTF8;
- 增加不同視圖重定向文件輸出;
- 增加視圖數據另存為;
- 增加監控會話功能;
- 增加大量數據緩存;
- 增加視圖功能設置;
- 增加視圖數據欄目調整顯示隱藏;
- 增加數據以不同進制(2,8,10,16)數值顯示、輸出;
- 增加Line視圖、Dump視圖字符串輸出長度;
- 增加Line視圖、Dump視圖數據包#顯示、輸出;
- 增加列表視圖、Line視圖、Dump視圖數據包聯動顯示;
引用:http://www.ceiwei.com/mt/news/shownews.php?id=2