当前位置 : 主页 > 编程语言 > 其它开发 >

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

来源:互联网 收集:自由互联 发布时间:2022-05-22
作为工控狗的我,在看到 CEIWEI最近发布了Modbus RTU Over TCP/UDP 过滤监控的新工具后,就积极的跑去他的官网看了一下,原来是Modbus协议TCP/UDP抓包工具,要知道他的CommMonitor串口精灵也有

  作为工控狗的我,在看到 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

 

上一篇:单元测试(一):我的第一个单元测试
下一篇:没有了
网友评论