【虹科干货】使用Profishark进行EtherCAT主站性能测试

EtherCAT 主站性能测试

一般情况下EtherCAT主站性能测试会关注主站通讯周期,circle time是否稳定,抖动多少,因此可以设置在不同的circle time,比如2ms,1ms,500us,250us,125us等条件下测试抖动,可以采用第三方的抓包工具+wireshark进行报文分析,不同主站周期,需要修改代码以及ENI文件的circle time,此处以1ms主站周期,有些任务周期是5ms(主站周期的5倍)。

EtherCAT报文抓取

抓包方式,主站和从站直接接入第三方的抓包工具,连接方式如下示意图,可以先运行主站,待主从通讯稳定后,再进行数据抓包,这样抓出来的数据包就是pdo数据/过程数据,也可以主站启动前,开始抓包,这样就可以把整个启动过程的数据抓取出来,但是过滤时,op前的报文数据就不是我们需要分析的数据了。

虹科提供最简单的EtherCAT抓包工具, ProfiShark,帮助网络工程师轻松访问网络并以正确的时间戳记捕获每个单个数据包。通过Profishark抓包可以得到高质量的数据,这些数据可在数据包分析器软件(如Wireshark)中用于网络分析,或直接存储到磁盘以供以后分析。(详细信息请查看文末)

在Wireshark上进行EtherCAT报文分析

1、 设置wireshark时间格式如下

2、 使用ecat.ado == 0x130命令,过滤出从站在第几条报文处进入op状态的,这里是33900,意味着33900前的报文不能用于分析circle time,因为pdo数据/周期性数据只在从站进入op后才被发送

3、 分析周期性报文,注意到每个周期性报文包含三个子报文(逻辑寻址)以及一个DC相关的ARMW命令

4、 过滤出周期性报文,使用该指令ecat.sub1.cmd == LRD && ecat.sub1.cnt == 0,过滤出子报文1为LRD且计算器值为0(表示从主站发出,未经过从站)的周期性报文,选择三角进行报文排序,可以是从小到大,或者从大到小。

最小周期是999.496us

最大周期1000.536us

结论:可以看出1ms主站周期下,基于zcu102开发板,测试出来的主站周期的抖动是ns级别,实际在500us和250us,125us条件下,抖动都是在ns级别。