作為工控狗的我,在看到 CEIWEI最近發布了Modbus RTU Over TCP/UDP 過濾監控的新工具后,就積極的跑去他的官網看了一下,原來是Modbus協議TCP/UDP抓包工具,要知道他的CommMonitor串口精靈也有此功能,簡直是我們工控狗的福音,因為免費版本也是可以永久使用,
下面以Modbus RTU TCP為示例,講解如何抓取Modbus TCP/UDP通信資料包,因為CEIWEI ModbusMonitor 是完全決議了的Modbus協議,監控結果即所得的,就不用自己在再TCP/UDP封包的基礎上二次分析了,
- 下載安裝CEIWEI ModbusMonitor過濾監控工具, http://www.ceiwei.com/down/CEIWEI_ModbusMonitor_20223.zip


安裝完成后,運行如下圖,和CommMonitor串口監控精靈一樣,ModbusMonitor的[+]增加了一行文字[新建監控],

- 新建監控會話
1、開啟監控,點擊[新建監控],彈出如下圖對話框:

2、網路監控屬性:
其實他不但可以監控Modbus協議,還可以監控任意TCP/UDP資料包,這里我們只關心Modbus,默認埠即502,因為是主站
模式,所以從站是服務器,那么只選擇[遠程埠]為:502即可,如果你的從站服務器不是502,請選擇正確對應的埠,
3、各個資料視圖:
a、串列視圖是指把資料顯示為表格的形式;
b、Dump視圖,資料包會以200ms時間內合并資料包;
c、Line視圖,資料包是以API的形式加以說明;
d、終端視圖,是以ASCII字串的形式輸出來Memo中,對于不可顯示的字符以?顯示;
e、Modbus視圖,這個是我們最重要的,必須選擇,因勾選了此視圖,才可以分析Modbus資料包,否是不會顯示的;
在勾選了Modbus視圖后,Modbus模式可以選擇了:

1、當選擇Modbus RTU TCP/UDP模式,表示設備通信資料包是加了TCP6個位元組頭的RTU資料,沒有CRC校驗值;
2、當選擇Modbus RTU Over TCP/UDP模式,表示設備通信是直接RTU資料格式發送,是沒有TCP 6個位元組頭的,
并且RTU是有CRC校驗值的,和串口RTU模式一樣;
3、當選擇Modbus ASCII Over TCP/UDP模式,表示設備通信是TCP/UDP模式,直接ASCII資料格式發送的,沒有TCP頭,和串口ASCII模式一樣,

[Modbus主站模式]:因為我們的電腦是主站Modbus Poll端,這里要勾上,如果是從站的話,正好相反,不勾,并且是要選[本地埠]:502;
- 打開Modbus Poll連接設備端,測驗讀取暫存器:
1、新建連接,選擇Modubs TCP/IP,默認資料模式是加了6個位元組頭的TCP RTU,是不可更改,
2、Setup-> Read/Write Definition 設定讀寫引數:這里我們選擇 03 保持暫存器,同樣從站也是同樣設定;
3、連接成功后,如下圖,資料顯示OK.

- 查看監控資料包
1、Modbus 視圖資料包:

如下圖,Modbus資料包成功抓取到了,并且他已經給我們分解了TCP/UDP封包,直觀的展出Modbus資料包資訊:

- 保存當前監控會話
監控到的資料,我們可以保存成會話,如下圖,在下次要使用時,可以打開,如果Modbus設備已打開了,會話是可以直接以之
前監控的條件啟動監控,繼續監控Modbus的通信資料包,

- 匯出資料包到文本檔案
在視圖上我們右鍵選單,如下圖,保存成文本檔案,


- 原始TCP資料包
如下圖:原始資料包是包含了TCP6個位元組頭的,RTU資料段是沒有CRC值結尾;

總結:
注意個問題,要先打監控會話,再打開 被監控軟體Mbpoll.exe 然后RTU TCP連接遠程設備;
因為已經通信了的連接,監控是后開的,是監控不到的,也就是說內核驅動還沒有開啟監控,舊連接是無法被監控得的;
CEIWEI ModbusMonitor監控精靈,是過濾監控Modbus RTU Over TCP/UDP比較方便的國產小軟體,監控結果所見即所得,免除了其他的網路監控軟體那樣,還要二次分析TCP/UDP資料包,再次分解出Modbus資料包資訊,當然他還有更新多功能,待我們去挖解,
參考:http://www.ceiwei.com/?qt=modbusmonitor&btn=12
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/445580.html
標籤:其他
上一篇:【面經】Java崗位常見面試題
