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


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

      下面以Modbus RTU TCP为示例,讲解如何抓取Modbus TCP/UDP通信数据包,因为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数据包信息。当然他还有更新多功能,待我们去挖解。

     

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

     

  • 相关阅读:
    深入探究RTOS的任务调度
    通过python 获取当前局域网内存在的IP和MAC
    Jenkins服务器IP更换,Jenkins URL地址更换
    Conda常用命令及Pycharm使用虚拟环境
    PyTroch随笔 - 多GPU分布式训练
    [力扣146. LRU 缓存 ](https://leetcode.cn/problems/lru-cache/description/)
    大数据架构设计(四十五)
    HttpClient远程调用基本使用(详解)
    【人工智能项目实践】Day2基于CNN的ciffar10图像分类任务 FashionMNIST图像分类任务 人脸微笑数据处理
    (Apache) Commons Lang3 Bridge For Scala 0.0.1 发布
  • 原文地址:https://www.cnblogs.com/iot2032/p/16030902.html