程工的物联网世界

程工的物联网世界

  作为工控狗的我,在看到 CEIWEI最近发布了Modbus RTU Over TCP/UDP 过滤监控的新工具后,就积极的跑去他的官网看了一下,原来是Modbus协议TCP/UDP抓包工具,要知道他的CommMonitor串口精灵也有此功能,简直是我们工控狗的福音,因为免费版本也是可以永久使用。

  下面以Modbus RTU TCP为示例,讲解如何抓取Modbus TCP/UDP通信数据包,因为CEIWEI ModbusMonitor 是完全解析了的Modbus协议,监控结果即所得的,就不用自己在再TCP/UDP封包的基础上二次分析了。

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

  

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

     安装完成后,运行如下图,和CommMonitor串口监控精灵一样,ModbusMonitor的[+]增加了一行文字[新建监控],  

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

  • 新建监控会话

    1、开启监控,点击[新建监控],弹出如下图对话框:

     1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

    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 TCP/UDP 数据包实战-LMLPHP

          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模式一样。

      

      1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

      [Modbus主站模式]:因为我们的电脑是主站Modbus Poll端,这里要勾上,如果是从站的话,正好相反,不勾,并且是要选[本地端口]:502;

  • 打开Modbus Poll连接设备端,测试读取寄存器:

    1、新建连接,选择Modubs TCP/IP,默认数据模式是加了6个字节头的TCP RTU,是不可更改。

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP    

    2、Setup-> Read/Write Definition 设置读写参数:这里我们选择 03 保持寄存器,同样从站也是同样设置; 

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP  

   3、连接成功后,如下图,数据显示OK.

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

  • 查看监控数据包

    1、Modbus 视图数据包:

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

    

 如下图,Modbus数据包成功抓取到了,并且他已经给我们分解了TCP/UDP封包,直观的展出Modbus数据包信息:

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

   

  • 保存当前监控会话

    监控到的数据,我们可以保存成会话,如下图,在下次要使用时,可以打开。如果Modbus设备已打开了,会话是可以直接以之

    前监控的条件启动监控,继续监控Modbus的通信数据包。

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

  • 导出数据包到文本文件

    在视图上我们右键菜单,如下图,保存成文本文件,

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

  • 原始TCP数据包

     如下图:原始数据包是包含了TCP6个字节头的,RTU数据段是没有CRC值结尾;

    1、如何抓取Modbus TCP/UDP 数据包实战-LMLPHP

总结:

   注意个问题,要先打监控会话,再打开 被监控软件Mbpoll.exe 然后RTU TCP连接远程设备;

   因为已经通信了的连接,监控是后开的,是监控不到的,也就是说内核驱动还没有开启监控,旧连接是无法被监控得的;

        CEIWEI ModbusMonitor监控精灵,是过滤监控Modbus RTU Over TCP/UDP比较方便的国产小软件,监控结果所见即所得,免除了其他的网络监控软件那样,还要二次分析TCP/UDP数据包,再次分解出Modbus数据包信息。当然他还有更新多功能,待我们去挖解。

 引用:http://www.ceiwei.com/?qt=modbusmonitor&btn=12

03-20 20:37