基于EtherCAT实时以太网的伺服驱动器同步方法
【技术领域】
[0001]本发明涉及基于EtherCAT实时以太网的伺服驱动器同步方法。
【背景技术】
[0002]运动控制系统的发展水平决定了一个国家装备制造业的水平。随着现场总线和网络技术的发展,分布式运动控制系统是数控系统的重要发展方向。高水平的分布式运动控制系统需要实现高精度的电流、速度及位置全闭环控制,需要实现高效、高速的信息交互。
[0003]传统伺服驱动器接口需配备额外的运动控制卡,运动控制卡和伺服和驱动器之间以脉冲命令和模拟信号连接。这种方法布线复杂、通信速率低、集中控制方式复杂、可扩展性差,严重制约了中高档伺服技术的发展和应用。
[0004]相较而言,伺服驱动器采用现场总线通过全数字式信息传输可以实现分布式多轴控制。系统复杂性有所降低、扩展性较好、性能有所提升。较为广泛采用的伺服接口总线有PROFIBUS-DP、CANopen, DeviceNET等传统现场总线。。但传统现场总线通信速率较低、通信周期长、通信距离短;现场总线协议标准难以统一、兼容性差,主从站均需采用专用硬件;采用短帧通信,有效数据负载效率低。上述原因决定了传统现场总线接口的伺服驱动器难以满足中高端复杂运动控制系统的硬实时、高同步性、高效高速等要求。
[0005]如何实现通信和伺服的协同处理并保障不同伺服电流环周期的同步执行,是在高速通信基础上实现多轴伺服系统高精度、高同步执行要解决的问题。
[0006]近年来,诞生了实时以太网技术,该技术不仅传播速率快、数据包容量大、传输距离长、拓扑结构灵活而且保障较高的实时和同步性能,因而成为解决上述问题的新方案。基于EtherCAT实时以太网的伺服就是这样一种新方案。
[0007]EtherCAT实时以太网采用主从通信机制。一个完整的EtherCAT控制网络包含主站和从站。EtherCAT实时以太网的数据传输原理如图1所示:主站发送以太网帧给各个从站,接收到以太网帧的从站可以直接处理接收到的数据帧,并从中提取输出数据和插入对应的输入数据,然后将以太网帧传输到下一从站。网络上的最后一个EtherCAT从站发回经过各从站处理的数据帧,直到第一个从站将其发回给主控制器。通过这种方式,EtherCAT充分利用了以太网的全双工特性,通过发送一个数据帧完成所有从站的数据交互。
[0008]EtherCAT从站设备由负责实现网络通信的EtherCAT从站控制器(ESC,EtherCATSlave Controller)和负责伺服控制应用的从站控制微处理器(MCU)组成。ESC硬件上由FPGA(Field-Programmable Gate Array,现场可编程门阵列)或通信专用ASIC芯片实现。FPGA负责通信的数据链路层处理,而MCU则负责实现应用层和伺服驱动控制程序。
[0009]EtherCAT实时以太网通过分布时钟(DC,Distributed Clock)使网络上的ESC使用相同的系统时间来满足各个节点间的高同步性能需求。各从站分布时钟会以第一个从站为参考测量和计算传输延时和本地时钟偏移,并进行补偿。ESC通过分布时钟按照主站配置的同步周期向伺服应用控制MCU发送同步信号,以实现精确的同步控制。通常采用基于EtherCAT的伺服多轴同步实现方案如下ESC在接收到数据帧时,取出输出过程数据并保存到DPRAM的接收数据缓存区中,同时将DPRAM的发送数据缓存的数据插入数据帧发送到下一从站。ESC完成和以太网的数据交互后向MCU发起数据交互ΗΠ (Process DataInterface)中断请求,更新接收数据缓存区中的数据到MCU中的伺服应用变量。各从站ESC在分布时钟定时触发后,向伺服应用MCU发起SYNC同步中断请求。MCU进入SYNC同步中断后执行伺服应用程序,并将执行结果锁存并更新到ESC的送数据缓存等待下一周期发送至主站。
[0010]EtherCAT实时以太网提供了同步于主站的高速实时通信,不需要额外增加同步线缆,通过标准网线即可实现系统集成(如图2所示),并且提供了多轴伺服系统的同步样例方案。但仍存在以下不足:
[0011]I)现有的EtherCAT伺服驱动器方案,伺服控制程序在SYNC同步中断中执行,SYNC同步中断的产生由分布时钟触发,电流环控制周期由伺服定时器时钟产生,两者存在定时偏移。在SYNC同步中断发生时,上一周期的伺服程序执行状态可能为已完成等待或未完成状态。此时强制更新伺服程序数据会造成系统误差。且各轴对SYNC同步中断响应延时存在一定误差,未进行补偿;
[0012]2) MCU响应ESC发起数据交互PDI中断请求,更新ESC接收数据缓存区中的数据到MCU中的伺服应用变量。ESC只对同步中断进行了延时和计数补偿,各从站发起roi中断的时间未同步处理,即MCU中的伺服应用变量更新是非同步的。当分布时钟周期不等同于通信周期时,各从站上的伺服应用变量非同步,其更新和执行可能偏差一个周期。且同步中断具有更高优先级,可以把roi中断打断,导致数据更新不完整出错;
【发明内容】
[0013]本发明所要解决的技术问题在于提供一种基于EtherCAT实时以太网的伺服驱动器同步方法,其能对各从站的同步中断响应延时补偿,实现伺服控制数据同步更新和执行,对各从站的伺服程序定时器和分布时钟计数器的偏差进行补偿,对伺服中断和实时以太网同步中断进行协调,使两个中断的触发互不干扰,保证数据更新不被打断。
[0014]本发明所采用的技术方案是:
[0015]一种基于EtherCAT实时以太网的伺服驱动器同步方法,该伺服驱动器设有基于EtherCAT实时以太网的从站,该基于EtherCAT实时以太网的伺服驱动器同步方法包括:
[0016]从站的链路层控制模块在分布时钟触发时,向从站的应用层控制模块请求同步中断;
[0017]应用层控制模块在每次进入同步中断时读取当前系统时刻Tsys以及伺服定时器的计数值T。,并计算中断响应延时a t1;其中,Δ t i= T sys-Td。sys,所述的中断响应延时At1为链路层控制模块在分布时钟触发的时刻与当前系统时刻之间的偏移量,Tdc sys为从链路层控制模块读取的本次分布时钟触发时刻;
[0018]在第一次进入同步中断时,应用层控制模块计算Tset= T 0ffset+ (Tc- Δ tl),其中,Tset为应用层控制模块在第一次接收到同步中断请求后的下一次伺服中断发起时刻,TMfsJ%应用层控制模块接收到同步中断请求后的下一次伺服中断发起时刻与接收到该同步中断请求的时刻之间的时间偏差值,Tl3ffset= Transt;其中Transt为预先设定的常量,Transt需满足Tsync<Tconst<Tper1d-Tservo;T s胃为同步中断的执行时间;T SCTV。为伺服中断的执行时间,T PCT1C]dS伺服定时器的伺服程序理论定时周期;
[0019]应用层控制模块根据计算出的!;^.周整在第一次进入同步中断时的那一个伺服定时器的伺服程序定时周期;
[0020]应用层控制模块将处于第一次同步中断所在的那一个通信周期内的其余伺服定时器的伺服程序定时周期恢复为伺服程序理论定时周期TpCT1C]d。
[0021]上述的基于EtherCAT实时以太网的伺服驱动器同步方法,其中,应用层控制模块从第二次进入同步中断开始,每次进入同步中断时均计算接收到同步中断请求时的伺服定时器的实际计数值T2与理论计数值T i之间的偏差Δ τ: Δ T = T 2-1\= (T.-At1)-(Tper1d-TOffset) = !>TMfset-TpCT1C]d-A t1;并将本次同步中断所在通信周期内的伺服定时器的伺服程序定时周期设为 Tper1dNewj ^per1dNew T per1d+
ΔΤ/m,其中m为通信周期除以伺服程序理论定时周期的整数倍数。