当前位置:   article > 正文

EtherCAT抓包及报文分析_ethercat网络报文怎么分析

ethercat网络报文怎么分析

EtherCAT抓包及报文分析

EtherCAT协议

EtherCAT协议是位于Ethernet协议之上的网络层协议,与IP协议平级。EtherCAT协议与其它常见协议的关系如图1所示:

在这里插入图片描述

EtherCAT抓包

一般使用wireshark软件抓取和分析EtherCAT报文,针对不同的情况一般有以下3种抓包方式:

普通PC机或可以运行wireshark软件的工业电脑作为EtherCAT主站(如图2所示),这种情况下抓包非常容易,直接在电脑上运行wireshark软件抓包即可。

在这里插入图片描述

使用PLC或其它无法直接运行wireshark软件的专用控制器作为EtherCAT主站(如下图所示),这种情况下一般有两种抓包方式:一种是使用专用的抓包硬件(如图3所示),这种方法在这里不作过多说明;另一种方法是加入一个交换机和一台普通电脑(如图4所示),在电脑上运行wireshark软件抓包。
在这里插入图片描述
在这里插入图片描述

特别说明:使用交换机抓包时EtherCAT报文要使用广播方式传输,在Codesys中设置方法如下图所示:

在这里插入图片描述

EtherCAT报文过滤

EtherCAT报文过滤方法及相关过滤器参见以下网址:

Wireshark对EtherCAT抓包分析

Wireshark过滤器应用参考

EtherCAT帧头相关过滤器

EtherCAT报文相关过滤器

EtherCAT邮箱报文相关过滤器

常用过滤器及使用说明

过滤器说明
ecat过滤出所有EtherCAT报文
ecat_mailbox过滤出所有邮箱访问报文
ecat_mailbox.coe过滤出所有COE报文
eth.addr==fc:69:47:21:da:87过滤出源MAC地址或目标MAC地址为fc:69:47:21:da:87的报文
eth.src==fc:69:47:21:da:87过滤出源MAC地址为fc:69:47:21:da:87的报文
eth.dst==fc:69:47:21:da:87过滤出目标MAC地址为fc:69:47:21:da:87的报文
ecat.cmd==FPRD过滤出名了为FPRD的报文(见表2)
ecat.adp==0x03e9过滤出从站地址为0x03e9(1001)的报文
ecat.ado==0x130过滤出偏移地址为0x130的报文
ecat_mailbox.coe.sdoidx==0x1a00过滤出索引为0x1a00的SDO报文
ecat_mailbox.coe.sdosub==0过滤出子索引为0的SDO报文

常见的EtherCAT命令

命令说明
BRD广播读
BWR广播写
BRW广播读写
APRD自动增加地址读
APWR自动增加地址写
APRW自动增加地址读写
FPRD配置地址读
FPWR配置地址写
FPRW配置地址读写
LRD逻辑地址读
LWR逻辑地址写
LRW逻辑地址读写

常见的偏移地址

偏移地址说明
0x0010配置地址(Configed address)
0x0012地址别名(Alias address)
0x0120状态控制(见表4)
0x0130状态反馈(见表4)
0x0504指定EEPROM地址
0x508访问EEPROM内容

EtherCAT状态

状态说明
1初始化(Init)
2预操作(PreOP)
4安全操作(SafeOP)
8操作(OP)

EtherCAT报文分析

扫描从站:主站发送偏移地址为0x0130的BRD报文,应当报文中的工作计数即为扫描到的从站数量。

报文过滤器:ecat.cmdBRD && ecat.ado0x130

在这里插入图片描述

请求报文

在这里插入图片描述

应答报文

从站启动过程:主站依次向偏移地址0x0120发送1、2、4、8命令控制从站依次进入初始化、预操作、安全操作、操作状态

报文过滤器:ecat.ado0x120&& (ecat.adp0x03e9 ||ecat.adp==0xffff)

在这里插入图片描述

控制从站进入Init状态

在这里插入图片描述

控制从站进入PreOP状态
在这里插入图片描述

控制从站进入SafeOP状态

在这里插入图片描述

控制从站进入OP状态

报文过滤器:

ecat.ado0x120 || ecat_mailbox.coe) && (ecat.adp0x03e9 ||ecat.adp==0xffff)

在这里插入图片描述

在PreOP状态下通过SDO读取或设置PDO映射参数

用下面报文过滤器过滤1001从站的索引为0x1600、子索引为0的SDO报文

ecat.adp0x03e9 && ecat_mailbox.coe.sdoidx0x1600 && ecat_mailbox.coe.sdosub==0

在这里插入图片描述

SDO报文过滤

PDO报文过滤器:

(ecat.cmdLWR || ecat.cmdLRD || ecat.cmdLRW) && ecat.lad0x1000000

在这里插入图片描述

RPDO数据

在这里插入图片描述

TPDO数据

根据报文内容过滤:

过滤数据部分前6个字节为00:00:37:16:01:00的报文

​ ecat.cmd==LRW && ecat.data[0:6]==00:00:37:16:01:00

在这里插入图片描述

Data过滤

PDO报文延迟抖动分析:

按照下图将过滤出的PDO报文导出到CSV文件

在这里插入图片描述

导出PDO报文到CSV文件

用Excel打开导出的CSV文件,并过滤发送帧

在这里插入图片描述

选中前两列数据并复制到一个新sheet页,并计算每帧与前一帧的时间差(帧间隔)

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/618730
推荐阅读
相关标签
  

闽ICP备14008679号