各种XoE
CoE是什么
CoE == CAN application protocol Over EtherCAT,是EtherCAT应用层协议的一种,根据CiA402协议编写,使用对象和对象字典的功能来实现邮箱通讯。
PDO与SDO是常用的数据传输方式,他们在实现高效数据传输、同步方面发挥着重要的作用。
PDO(Process Data Object)== 过程数据对象
PDO是CANopen网络中用于实时数据传输的一种对象类型。用于将实时数据从一个节点发送到其他节点。PDO具有高实时性和低延迟性,适用于需要快速传输数据的应用场景。PDO的数据传输是基于事件触发,一旦有触发事件发生,PDO数据将立即传输。(需要实例展开)
SDO(Service Data Object)== 服务数据对象
SDO是CANopen网络中用于配置和管理节点参数的一种对象类型。通过请求----响应机制实现数据的读取和写入。SDO适用于配置节点参数、读取设备状态、和进行故障诊断等场景。SDO的数据传输是基于请求和响应,需要节点之间进行交互。
PDO与SDO的比较
数据传输方式:PDO是实时数据传输,数据立即发送。SDO是请求--响应机制的数据传输;
数据传输效率:PDO效率高,SDO效率低;
配置灵活性:PDO通过映射方式将对象字典中的数据直接映射到PDO数据;SDO是单点传输,只有在需要读写的时候才进行传输。
SDO的传输框架
SDO的报文形式
使用SDO消息将值0x20F0写入到ID为2,索引为1801H,子索引为3 的对象字典中
使用SDO消息,将对象字典中,索引为1801H,子索引为3的对象的数据读出
EtherCAT设计目标和优势
工业现场往往需要稳定并且实时的通信,传感器和IO信号需要高速响应,电机的数据需要实时传输。在EtherCAT之前,就已经有CAN总线等现场总线。但随着现场的自动化系统越来越庞大,传统总线的瓶颈就越来越明显:带宽不够高,传输数据量少,无法充分利用IT技术的发展等。所以就诞生了一批基于Ethernet的现场总线,EtherCAT就是其中的佼佼者之一。
EtherCAT总线的官方描述是基于Ethernet的现场总线,为什么不直接使用Ethernet呢,因为现场通信的一些特征是和IT领域完全不同的:
1.单个系统拥有大量节点(设备)。
2.这些节点一般需要传输数据量比较少,但实时性要求很高。
如果每个节点都用一个Ethernet数据帧来通信的话,最后的通信效率就会非常的低。按照官方的一个计算示例,最终的带宽利用率可能不到5%,并且,基于Ethernet的通信协议,例如TCP,会带来额外的带宽开销和延迟,大量的带宽都被无效的数据占用。
EtherCAT的解决方法就是,所有的节点使用一个数据帧,主站发出数据帧后,所有的从站会在飞行中处理数据,读取自己需要的,塞入自己需要返回的数据,然后继续把数据帧继续向下传输,直到碰到最后一个节点,利用Ethernet的全双工特性再将数据返回给主站。
利用这种传输方式,数据帧的最大有效数据率(maximum effective data rate)可以超过90%,主站是唯一允许主动发送数据报文的设备,其他节点只能顺序传输报文,这样可以避免Ethernet网络中常见的冲突和延时,保证EtherCAT数据传输的实时特性。
并且,从站使用专用芯片(ESC)在飞行中处理数据报文时,完全使用硬件来处理, 使得整个EtherCAT网络的通信时间保持稳定可预测,和每个从站的不同部署完全无关。
EtherCAT网络中可以传输周期性的数据和非周期性的数据。
周期性数据是通过PDO(Process Data Object)来交换的,一般用于实时的数据交换,例如电机的命令位置和反馈位置,IO信号的交互等。
非周期的数据是可以通过邮箱协议来传输,最常见的就是CoE(Canopen Over EtherCAT),可以SDO(Service Data Object)来传输信息,SDO一般用于非实时的通信,例如电机参数的配置(例如分辨率, 最大电流等),包括从站的PDO配置信息也是通过SDO来传输的。
配置PDO就像为你的数据买高铁票,这样主站和从站在正式工作之前就已经提前知道了将会有哪些数据上这列高铁,每过一个从站ESC芯片将会自动取下来对应位置的数据,塞入需要返回的数据。这样可以最大化的缩减无效的数据,并且加快处理速度。
PDO信息的传输周期就是我们经常说的EtherCAT通信周期。例如正运动的常规固件默认都是1ms的周期(1K的通信频率),正运动部分产品可以设置125us的周期(8K的通信频率)。为什么默认是1ms而不是更短的周期(更高的频率)呢?控制器在这1ms内在做什么呢?从站又在做什么呢?
这个要从CSP的工作模式和电机的控制环路说起,后面章节会再详细介绍。[一般1ms已经足够小了(1K已经足够高了)。并且,电机之间的同步不是靠数据帧的到达时间,而是靠分布式时钟的,可以实现纳秒级的同步。
前面提到,因为EtherCAT数据帧的独特设计,有效数据率非常高,所以在工业自动化领域可以充分利用起来Ethernet的百兆带宽,实际上百兆带宽也可以让非常多的电机实现1ms的通信周期,例如正运动家就有128轴的控制器。
那上次留下的一个问题是,既然EtherCAT百兆总线已经这么好了,为什么还要去设计千兆和万兆总线?
答案是随着技术的发展,已经出现了更庞大更复杂的系统,例如先进的物流系统或者磁悬浮系统需要非常多的轴(几百甚至上千),并且这些轴之间需要精确同步;或者需要采集大量传感器数据的测量设备,都对总线的带宽提出了更高的要求。
更高的带宽可以让现场总线进入更多的应用领域,同样更强的总线也可以支撑设计以前没有的复杂系统。
推荐文章:EtherCAT和Ethernet的不同点有哪些, 通信周期又是什么意思?-正运动技术 (zmotion.com.cn)
工业以太网时代,该如何选择总线运动控制器? (qq.com)
Ethercat总线学习:CAN、CANopen、EtherCAT、PDO与SDO_ethercat sdo-CSDN博客