• 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

     

  • 相关阅读:
    【深度学习实验】前馈神经网络(四):自定义逻辑回归模型:前向传播、反向传播算法
    【pandas小技巧】--拆分列
    什么是算子?
    C#/VB.NET 将PPT或PPTX转换为图像
    web前端网页设计期末课程大作业:旅游网页主题网站设计——紫色的旅游开发景点网站静态模板(4页)HTML+CSS+JavaScript
    硬件扫盲系列-接口
    AQS理解
    清华大学开源软件镜像站
    Python笔记 · 私有方法、私有属性 & 单下划线、双下划线
    壳聚糖-聚乙二醇-羟基|羟基-PEG-壳聚糖|Chitosan-PEG-OH
  • 原文地址:https://www.cnblogs.com/iot2032/p/16030902.html