1、如何抓取Modbus TCP/UDP 數據包實戰

         CEIWEI最近發布了Modbus RTU Over TCP/UDP 過濾監控的新工具,下面以Modbus RTU TCP為示例,講解如何抓取Modbus通訊數據包,因為CEIWEI ModbusMonitor 是完全解析了的Modbus協議,監控結果即所得的,就不用自己在再TCP/UDP封包的基礎上二次分析了。

    

 

  

    

 

 

     安裝完成後,運行如下圖,和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數據包資訊。當然他還有更新多功能,待我們去挖解。