ETG.1510“主诊断接口行规”
诊断功能是衡量现场总线技术成功与否的关键功能之一。为了进一步提升 EtherCAT 网络中的诊断能力,EtherCAT 技术协会(ETG)定义了一个独立于供应商的诊断接口:规范 ETG.1510“主站诊断接口行规”。使 EtherCAT 主站能够对用户以友好且标准的方式向第三方工具提供详细的网络诊断信息和运行状况。
在现代工业中,机器和工厂的可用性是保证效率和竞争力的重要因素之一,EtherCAT 通过可靠的通信基础设施和成熟的技术来实现这一目标。然而,即使拥有 EtherCAT 等可靠的通信技术,工业环境也可能存在挑战:长期移动的零部件或持续的振动可能会造成暂时的链路丢失甚至电缆长期断裂,而 EMC 干扰也可能会让通信链路上的信号失真。所有这些情况下,现场总线的诊断能力都是关键要素,检测错误、确定其位置和可能的原因,从而最大程度地减少机器的停机时间。
在诊断能力方面,EtherCAT 支持的出色功能远超传统的以太网。 必要的信息可以由 EtherCAT 通信芯片(ESC) 直接在硬件或在软件功能中提供。因此,从站侧无需特殊的扩展功能。每个 EtherCAT 数据帧都以 16 位的工作计数器字段结尾,该字段由数据帧本身寻址的所有从站设备累加。工作计数器的预期值和接收值之间若不匹配,则意味着有从站设备没有成功处理数据帧,从而使它们在当前周期内无法使用一致的数据。这会触发控制侧(主站)的错误响应:默认在这种情况下,数据帧中携带的输入数据会被丢弃。主站可以非周期性地纠正其它信息、定位错误以及可能出现通信问题的原因。在硬件层,每个 EtherCAT 从站控制器监视并检测每个端口上的链路丢失和信号损坏,并增加相应的链路丢失计数器或 RX 错误计数器上的计数。软件层的通信错误(如看门狗在周期数据到期或在网络中丢失同步)可以确定 EtherCAT 状态机中的意外状态转换。它们通过 AL 状态代码值显示,当发生意外状态转换时,软件堆栈会返回该值。
因此,所有 EtherCAT 网络中的主站都可以使用必要的诊断信息来监视网络状态并检测和定位错误。但“原始”信息需要提供给诊断工具和最终用户,便于进行解释执行和使用。ETG 通过“主站诊断接口行规”ETG.1510 规范定义了一种解决方案,使外部工具可以独立于特定的主站供应商,以软件实施的方式访问 EtherCAT 网络提供的诊断信息。ETG.1510 加强了 ETG.1500“EtherCAT 主站类”规范。诊断信息被映射到 ETG.5001 定义的 EtherCAT 主站对象字典中,并进行了扩展。特别是,索引范围为 0x8000 的对象描述了主站基于“脱机”配置所预期的网络结构,而对象 0x9nnn 报告了通过联机扫描检测到的当前网络拓扑。诊断信息本身以一致的、累积的计数器形式映射到索引范围 0xAnnn 中,该计数器汇总了从启动到当前的网络状态。因此,可以以独立于 EtherCAT 网络周期时间的频率访问诊断接口,且外部工具无需实时性能。
通过完善的基于 EtherCAT 的 CAN 应用层协议(CoE)可以访问诊断信息。通过 ETG.8400 规范中描述的标准邮箱网关功能,CoE 服务可以从控制器中的主站对象字典进行路由。基于现存且完全标准的协议和功能,诊断接口可以很轻松地作为精简软件扩展实施在任何标准主站实施基础上。这种软件扩展所需的资源数量很小,因此,诊断接口的实施对于所有主站解决方案(包括简单且紧凑的嵌入式系统)来说都是可行的。借助由 ETG.1510 规范引入的 EtherCAT 诊断接口,机器和网络诊断工具的供应商可以使用普通的接口从 EtherCAT 网络采集诊断数据。他们能够以对用户友好、有直观图形的方式将信息报给技术人员和工程师,而无需根据特定的主站制造商进行更改,也无需针对每个不同的主站实施使用供应商专有的访问协议。