4. EtherCAT标准与规范解读
做EtherCAT一致性测试,第一件事不是打开测试工具,而是先弄清楚“依据什么测”。EtherCAT技术由ETG(EtherCAT Technology Group)维护,所有一致性要求都落在ETG标准文档体系中。测试工程师如果只记住测试用例名称,却不知道它来自哪份规范、约束的是哪一层,遇到失败项时就无法判断是设备缺陷、测试配置问题,还是规范版本差异。因此,理解ETG文档体系是开展一致性测试的基本功。
一、ETG文档体系的分层结构
ETG文档并非一份单一标准,而是按“基础协议—应用层协议—设备行规—测试规范”逐层展开的体系。可以把它理解为四层结构:最底层是ETG.1000系列,定义EtherCAT协议本身;其上是ETG.1020等应用层与通信相关规范;再往上是ETG.2000系列设备行规,规定具体设备类别应具备的对象与行为;最上层是ETG.1000.6、ETG.1020相关测试规范以及ETG.2000配套的测试细则,直接指导一致性测试执行。
二、ETG.1000:协议基础与一致性测试的根
ETG.1000系列是EtherCAT协议的核心规范,通常分为多个部分:ETG.1000.1概述、ETG.1000.2物理层与数据链路层、ETG.1000.3数据链路层协议、ETG.1000.4数据链路层规范、ETG.1000.5应用层协议、ETG.1000.6应用层协议测试。一致性测试中大量基础用例都直接引用ETG.1000,例如:
- 状态机(Init、Pre-Op、Safe-Op、Op)的转换条件与超时行为;
- 寄存器读写、EEPROM访问、SM(SyncManager)配置;
- 过程数据交换、FMMU配置、逻辑寻址;
- 分布式时钟(DC)的同步机制与漂移补偿。
这些内容决定了从站是否“能被主站正确识别并进入OP状态”。如果设备在状态机测试中失败,往往不是应用层问题,而是ETG.1000.4或ETG.1000.5的基础实现有缺陷。
三、ETG.1020:应用层协议与邮箱通信
ETG.1020主要规定应用层协议,包括CoE(CANopen over EtherCAT)、FoE(File over EtherCAT)、EoE(Ethernet over EtherCAT)、SoE(Servo over EtherCAT)以及邮箱通信机制。一致性测试中,ETG.1020相关用例关注:
- 邮箱通道的建立、重试与超时;
- CoE对象字典的访问方式(SDO上传/下载、分段传输);
- PDO映射与过程数据一致性;
- FoE固件升级的握手与错误码;
- EoE隧道通信的帧封装与流控。
四、ETG.2000:设备行规与对象字典
ETG.2000系列是设备行规,针对不同设备类别定义对象字典、PDO映射、状态机和设备行为。常见的有ETG.2000(通用I/O)、ETG.2010(伺服驱动器)、ETG.2020(编码器)、ETG.2030(阀岛)等。一致性测试中,行规测试用例会检查:
| 规范 | 关注对象 | 典型测试项 |
|---|---|---|
| ETG.1000.4 | 数据链路层 | 状态机、SM、FMMU、DC |
| ETG.1000.5 | 应用层协议 | CoE、PDO映射、邮箱 |
| ETG.1020 | 应用层通信 | SDO分段、FoE、EoE |
| ETG.2000 | 设备行规 | 对象字典、设备状态、参数 |
五、案例:一次SDO上传失败的复盘
某伺服驱动器在一致性测试中,CoE SDO上传0x6064(位置实际值)时返回中止码0x06010000。测试工程师最初怀疑主站配置错误,但更换主站后问题依旧。查阅ETG.1020和ETG.2010后发现,该对象在行规中要求支持分段传输,而从站协议栈只实现了 expedited 传输。最终定位为从站未完整实现ETG.1020的SDO分段机制。这个案例说明:测试失败时,必须回到规范条款,确认设备实现是否覆盖了规范要求的最小功能集。
六、测试工程师的规范查阅方法
- 先确定设备类别,找到对应的ETG.2000行规文档;
- 再根据测试项定位到ETG.1000或ETG.1020的具体条款;
- 核对规范版本号,避免用旧版测试用例判定新固件;
- 记录测试用例编号与规范条款的对应关系,形成可追溯记录;
- 对失败项,先查规范原文,再查设备实现,最后查测试配置。
示例:测试用例追溯记录
用例编号:TC_CoE_SDO_Seg_001
规范依据:ETG.1020 §5.3.2 SDO分段传输
设备对象:0x6064 位置实际值
预期行为:支持分段上传,返回完整数据
实际结果:中止码 0x06010000
结论:从站未实现分段传输,违反ETG.1020
掌握ETG文档体系,本质上是建立“测试依据—测试用例—设备行为”之间的映射关系。只有把规范读透,才能在一致性测试中准确判断问题归属,避免把规范缺陷误判为测试误差,也避免把测试配置问题误判为设备故障。