我们在做PC-Based工业控制器(一般运控速度快,实时性要求高的场景),搭配EtherCAT总线通信(EtherCAT 远程IO及EtherCAT总线伺服)等运控方案中,经常需要配置CiA402轴,而且有些伺服还需要配置特定的PDO才能满足要求。
实际上,PDO、SDO等这些通信的对象来源于CANopen协议。本身CANopen协议可以基于以太网来做物理层,而EtherCAT就本质而言也是一种工业以太网。
CANopen:简单且低成本
CANopen 是一种基于 CAN(控制器局域网)物理通信标准的通信协议。在 OSI 通信模型中,CAN 定义了物理层和数据链路层,而 CANopen 则涵盖了更高层次——网络层、传输层、会话层、表示层和应用层。可以详细参考:
CANopen 协议定义了自动化设备的配置和访问方式,以及它们之间消息的交换方式。CANopen 是基于对象的,这意味着网络中的每个节点(驱动器、控制器、编码器、I/O 设备以及其他设备)都拥有一个对象字典,其中包含通信对象。这些通信对象包括:由服务数据对象(SDOs)处理的非周期性配置数据;由过程数据对象(PDOs)处理的周期性实时数据;网络管理数据;以及特殊功能。
对象字典、服务数据对象和过程数据对象的使用是 CANopen 协议的关键组成部分,其中 SDO 是读写对象字典的机制。
由于硬件成本低、设备和应用配置丰富、实现简单,CANopen 被广泛使用。它还极其可靠,并提供实时通信,使其适用于工业应用。
EtherCAT:快速且确定性
EtherCAT 是一种工业以太网网络。它基于标准的以太网硬件,但使用“即时处理”的方法来传输和路由消息。除了是一种实时网络协议外,EtherCAT 还具有确定性,即它保证消息将在指定的、可预测的时间内传输(或事件将发生),既不会更慢,也不会更快。
EtherCAT 允许节点(设备)之间距离长达 100 米,并可提供高达 100 Mbps 的数据传输速率,循环时间小于 100 微秒,并且由于分布式同步时钟,抖动极低。
EtherCAT 协议将一个包含所有必要数据的帧发送到网络中的每个节点或设备。这种“即时处理”的方法实现了极快的通信和低抖动。如下图所示:
关于EtherCAT总线我们的详细介绍如下:
高效、实时、灵活:EtherCAT总线技术深度解析(完结篇)
CANopen over EtherCAT:在工业以太网上实现 CANopen 设备
CANopen over EtherCAT(CoE)允许在 EtherCAT 网络上实现 CANopen 通信协议,提供了一种用户友好、成本效益高的解决方案,能够在更长的网络距离上实现确定性的数据传输和更快的传输速度。
CANopen over EtherCAT 的实现很大程度上是因为 EtherCAT 实现了相同的通信系统,包括对象字典、SDOs(SDO 协议直接从 CANopen 实现,没有任何改动)和 PDOs。在 EtherCAT 网络中,PDO 帧的传输是确定性的,并且不受 CANopen 所限制的 8 字节限制。CANopen over EtherCAT 还支持 CANopen 设备配置文件,这些配置文件定义了设备的参数和行为,以及特定设备类别的状态机。
EtherCAT在以太网上提供了基于CANopen的技术。EtherCAT不会取代基于CAN的CANopen,而是在CAN的局限性(如吞吐量、网络长度或节点数量)显现时提供一种替代方案。EtherCAT与CANopen如此接近,以至于现有的协议栈甚至可以被重用。
总的来说,选择CANopen还是EtherCAT取决于具体的应用需求。如果应用对实时性要求较低,预算有限,且系统规模较小,CANopen是一个理想选择;而如果需要高带宽、低延迟,并且要连接大量设备,EtherCAT则是更好的选择。而COE协议,能够让两者很好的结合,从而不用重复去定义通信协议的具体内容。
参考链接: