<< 点击显示目录 >> 主页 EtherCAT使用助手 > EtherCAT概念说明 > EtherCAT通讯模式 |
在实际自动化控制系统中,应用程序之间通常有两种数据交换形式:时间关键和时间非关键。 时间关键表示 特定的动作必须在确定的时间窗口内完成。如果不能再要求的时间窗口内完成通讯, 则有可能引起控制失效。时间关键的数据通常周期性的发送,称为周期性过程数据通信。非时间关 键数据可以非周期性发送,在 EtherCAT 中采用非周期性邮箱(Mailbox)数据通信。
主站可以使用逻辑读、写或读写命令同时多个从站。在周期性数据通信模式下,主站和从站有 多种同步运行模式。
1) 从站设备同步模式
•自由运行
在自由运行模式下,本地控制周期由一个本地定时器中断产生。周期时间可以由主站设定,这 是从站的可选功能。自由运行模式的本地周期如图所示。其中 为本地微处理器从 EtherCAT 从 站 控 制 器 复 制 数 据 并 计 算 输 出 数 据 的 时 间 ; 为 输 出 硬 件 延 时 ; 为输入锁存偏移时间。这些参数反映了从站的时间响应性能。
自由运行模式的本地周期
•同步于数据或输出事件
本地周期在发生数据输入或输出事件的时候触发,如图所示。主站可以将过程数据帧 的发送周期写给从站,从站可以检查是否支持这个周期时间或对周期时间进行本地优化。从站可以 选择支持这个功能。通常同步与数据输出事件,如果从站只有输入数据,则数据同步与输入事件。
同步于数据输入/输出事件的本地周期
•同步于分布式时钟同步事件
本地周期由 SYNC 事件触发,如图所示。主站必须在 SYNC 事件之前完成数据帧的发 送,为此要求主站时钟也要同步与参考时钟。
同步于 SYNC 事件的本地周期
为了进一步优化从站同步性能,主站应该在数据收发事件发生时从接收到的过程数据帧复制输 出信息。然后等待 SYNC 信号到达后继续本地操作,如图所示。数据帧必须比 SYNC 信号 提前 T1 时间到达,从站在 SYNC 事件之前已经完成数据交换和控制计算,接收 SYNC 信号后可以 马上执行输出操作,从而进一步提高同步性能。
优化的同步于 SYNC 事件的本地周期
2) 主站设备同步模式
主站有以下两种同步模式:
•周期性模式
在周期性模式下,主站周期性的发送过程数据帧。主站周期通常由一个本地定时器控制。从站 可以运行在自由运行模式或同步与接收数据事件模式。对于运行在同步模式的从站,主站应该检查 相应的过程数据帧的周期时间,保证大于从站支持的最小周期时间。
主站可以以不同的周期时间发送多种周期性的过程数据帧,以便获得最优化的带宽。例如,使 用比较短的周期发送运动控制数据,比较长的周期用来发送 I/O 数据。
•DC 模式
在 DC 模式下,主站运行于周期性模式类似,只是主站本地周期应该和参考时钟同步。主站本 地定时器应该根据发布参考时钟的 ARMW 报文进行调整。在运行过程中,用于动态补偿时钟漂移 的 ARMW 报文返回主站后,主站时钟可以根据读回的参考时钟时间进行调整,使之大致同步与参 考时钟时间。
DC 模式下,所有支持 DC 的从站都应该同步与 DC 系统时间。主站也应该使其他通讯周期同 步于 DC 参考时钟时间。图表示本地周期与 DC 参考时钟同步的工作原理。
主站 DC 模式
主站本地运行由一个本地定时器启动。本地定时器应该比 DC 参考时钟定时存在一个提前量, 提前量为以下时间之和。
▪控制程序执行时间;
▪数据帧传输时间;
▪数据帧传输延时 D;
▪附加偏移 U(与各从站延时时间的抖动和控制程序执行时间的抖动值有关,用于主站周期的调整)。
EtherCAT 协议中非周期性数据通信称为邮箱数据通信,它可以双向进行—主站到从站和从站 到主站。它支持全双工、两个方向独立通信和多用户协议。从站到从站的通信由主站作为路由器来 管理。邮箱通信数据头中包括一个地址域,使主站可以重寄邮箱数据。邮箱数据通信是由实现参数 交换的标准方式,如果需要配置周期性过程数据通信或需要其他非周期性服务时需要使用邮箱数据 通信。
邮箱数据报文结构如图所示。通常邮箱通信值对应一个从站,所以报文中使用设备寻 址模式。其数据头中各数据元素的解释如表所列。
邮箱数据单元结构
邮箱数据头
•主站到从站通信--写邮箱命令
主站发送写数据区命令将邮箱数据发送从站。主站需要检查从站邮箱命令应答报文中工作计数 器 WKC。如果工作计数器为 1,表示写命令成功。反之,如果工作计数器没有增加,通常因为从 站没有读完上一个命令,或在限定的时间内没有响应,主站必须重发写邮箱数据命令。
•从站到主站通信—读邮箱命令
从站有数据要发送给主站,必须先将数据写入输入邮箱缓存区,然后由主站来读取。主站发现 从站 ESC 输入邮箱数据区有效数据等待发送时,会尽快发送适当的读命令来读取从站数据。主站 有两种方式来测定从站是否已经将邮箱数据填入输入数据区。一种是使用 FMMU 周期性的读取某 一个标志位。使用逻辑寻址可以读取多个从站的标志位,但其缺点是每个从站都需要一个 FMMU 单元。另一个方法是将简单的轮训 ESC 输入到邮箱的输入区。读命令的工作计数器增加 1 表示从 站已经将新数据填入到了输入数据区。