基于powerlink实时以太网的伺服驱动器同步方法
【技术领域】
[0001]本发明涉及基于P0WERLINK实时以太网的伺服驱动器同步方法。
【背景技术】
[0002]运动控制系统的发展水平决定了一个国家装备制造业的水平。随着现场总线和网络技术的发展,分布式运动控制系统是数控系统的重要发展方向。高水平的分布式运动控制系统需要实现高精度的电流、速度及位置全闭环控制,需要实现高效、高速的信息交互。
[0003]传统伺服驱动器接口需配备额外的运动控制卡,运动控制卡和伺服和驱动器之间以脉冲命令和模拟信号连接。这种方法布线复杂、通信速率低、集中控制方式复杂、可扩展性差,严重制约了中高档伺服技术的发展和应用。
[0004]相较而言,伺服驱动器采用现场总线通过全数字式信息传输可以实现分布式多轴控制。系统复杂性有所降低、扩展性较好、性能有所提升。较为广泛采用的伺服接口总线有PROFIBUS-DP、CANopen, DeviceNET等传统现场总线。。但传统现场总线通信速率较低、通信周期长、通信距离短;现场总线协议标准难以统一、兼容性差,主从站均需采用专用硬件;采用短帧通信,有效数据负载效率低。上述原因决定了传统现场总线接口的伺服驱动器难以满足中高端复杂运动控制系统的硬实时、高同步性、高效高速等要求。
[0005]如何实现通信和伺服的协同处理并保障不同伺服电流环周期的同步执行,是在高速通信基础上实现多轴伺服系统高精度、高同步执行要解决的问题。
[0006]近年来,诞生了实时以太网技术,该技术不仅传播速率快、数据包容量大、传输距离长、拓扑结构灵活而且保障较高的实时和同步性能,因而成为解决上述问题的新方案。基于Ethernet POffERLINK(以下简称EPL、或P0WERLINK)实时以太网的伺服就是这样一种新方案。
[0007]P0WERLINK实时以太网采用主从通信机制。一个完整的P0WERLINK控制网络包含主站(控制节点)和从站(受控节点)。如图1所示,一个通信周期分为同步通信阶段和异步通信阶段。在同步通信阶段,P0WERLINK主站广播S0C(Start of Cycle)同步帧,然后依次轮询各从站,该轮询帧(图1中的Preq CNx通信帧)中包含当前轮询节点的输出过程数据。从站接收本节点的输出过程数据并通过应答帧(图1中的Pres CNx通信帧)回传输入过程数据。主站完成轮询后,发送SOA帧,进入异步通信阶段,开始非周期性通信。
[0008]POffERLINK总线型伺服驱动器集成了 P0WERLINK通信从站和伺服驱动控制功能。对于伺服驱动器这样比较复杂的从站应用,EPSG(Ethernet POffERLINK Standardizat1nGroup, Ethernet POWERLINK 标准化组织)推荐 FPGA (Field-Programmable Gate Array,现场可编程门阵列)+MCU(Micro Control Unit)或 S0PC(System on a Programmable Chip,可编程片上系统)的硬件解决方案。MCU通过串行或并口总线以及中断信号与FPGA通信。FPGA负责通信的数据链路层处理,而MCU则负责实现应用层和伺服驱动控制程序。FPGA在接收到本节点的轮询数据帧时,取出输出过程数据并保存到DPRAM的RPDO (接收过程数据对象)缓存中,同时从DPRAM的TPDO (发送过程数据对象)缓存中取出要返回的数据。MCU在下一周期的SOC中断程序中与FPGA交换接收和发送数据。POWERLINK实时以太网提供了同步于主站的高速实时通信,并且不需要额外增加同步线缆,通过标准网线即可实现系统集成(如图2所示)。在此基础上实现多轴伺服系统的同步,尚需要解决以下问题:
[0009]如图1所示,首个从站下一循环周期的同步通信数据帧(Preq CNl)紧跟着SOC同步帧,若这两个包的间隔短(IEEE802.3中规定10Mbps下为960ns)于从站MCU完成SOC中断响应和通信数据交换所需的CPU执行时间,则从站存在“丢包”现象,即在MCU完成本同步周期数据交换前FPGA就已接收到下一周期的数据帧并向DPRAM更新了过程数据。
[0010]如上所述EPSG现有的POWERLINK从站解决方案,MCU在下一通信周期开始处的SOC中断中和FPGA交换同步通信数据,导致丢包存在。因此解决丢包是针对同步阶段的,也是POWERLINK现有解决方案的一个可以改进的地方。
[0011]SOC同步帧是网段内各节点同步的基准。在POWERLINK网络中,节点转发、PHY芯片延迟等原因导致SOC同步帧存在一定的网络延时。因此,各从节点间FPGA发起同步SYNC中断请求(由SOC包触发)存在着误差。另外,MCU对同步SYNC中断的响应的抖动和异步时钟导致的节点间误差不可避免。上述原因导致各从节点MCU在不同的时刻更新数据,对多节点的同步造成一定的影响。
[0012]伺服中断直接控制功率模块,对独立性和周期精度要求较高,因此具有较高的优先级。但是,伺服中断可能打断通信同步中断,破坏数据传输的完整性、正确性,也无法保障多轴伺服系统同步执行数据。
【发明内容】
[0013]本发明所要解决的技术问题在于提供一种基于实时以太网的伺服驱动器同步方法,其能实现同步帧传输延时补偿和中断响应抖动补偿,实现伺服控制数据同步更新和执行,对伺服中断和实时以太网同步中断进行协调,使两个中断的触发互不干扰。
[0014]本发明所要解决的又一技术问题在于提供一种能够避免丢包的基于实时以太网的伺服驱动器同步方法。
[0015]本发明所采用的技术方案是:
[0016]一种基于POWERLINK实时以太网的伺服驱动器同步方法,所述的伺服驱动器设有基于POWERLINK实时以太网的从站,该基于POWERLINK实时以太网的伺服驱动器同步方法包括:
[0017]从站的链路层控制模块接收到主站广播的SOC同步帧时,向从站的应用层控制模块请求同步中断;
[0018]应用层控制模块在每次进入同步中断时读取伺服定时器的计数值T。,并从链路层控制模块读取中断响应延时△ t1;其中,所述的中断响应延时A t:为链路层控制模块接收到SOC同步帧的时刻与应用层控制模块读取时刻之间的偏移量;
[0019]在第一次进入同步中断时,应用层控制模块计算Tset= Tnwfs^a-At1),其中,Tset为应用层控制模块在第一次接收到同步中断请求后的下一次伺服中断发起时刻,T n0ffset为应用层控制模块接收到同步中断请求后的下一次伺服中断发起时刻与接收到该同步中断请求的时刻之间的时间偏差值,Tnwfset= T _st+ndCnt XTdelay;其中Transt为预先设定的常量,Transt需满足 T sync<Tconst<Tper1d-Tservo-ndCnt X Tdelay;T ―为同步中断的执行时间;T SCTV。为伺服中断的执行时间,TPCT1C]d为伺服定时器的伺服程序理论定时周期,1^_为两个从站之间的传输延时,ndCnt为POWERLINK实时以太网的网络拓扑结构中从当前从站到末从站的串行从站数;
[0020]应用层控制模块根据计算出的Tset调整在第一次进入同步中断时的那一个伺服定时器的伺服程序定时周期;
[0021]应用层控制模块将处于第一次同步中断所在的那一个通信周期内的其余伺服定时器的伺服程序定时周期恢复为伺服程序理论定时周期TpCT1C]d。
[0022]上述的基于POWERLINK实时以太网的伺服驱动器同步方法,其中,应用层控制模块从第二次进入同步中断开始,每次进入同步中断时均计算接收到同步中断请求时的伺服定时器的实际计数值T2与理论计数值T1之间的偏差ΔΤ: ΔΤ = T2-T1 =(Tc A (Tperi0d Tn0ffset )=T;+TnMfset-TpCT1C]d-At1;并将本次同步中断所在通信周期内的伺服定时器的伺服程序定时周期设为
Tper1dNewj ^per1dNew T per1d+
AT/m,其中m为通信周期除以伺服程序理论定时周期的整数倍数。
[0023]本发明具有以下优点:
[0024]1、本发明通过在POWERLINK实时以太网通信建立后第一次接收到SOC同步帧时,调整伺服定时器的当前伺服程序定时周期,在保证伺服中断优先级最高的情况下,避免了数据更新与伺服应用程序之间的冲突;本发明通过补偿POWERLINK实时以太网SOC同步帧的传输延时,并将网络上的各伺服驱动器的定时时钟同步于补偿后的SOC同步帧。使得各伺服驱动器同步于网络时钟更新和执行控制数据,将多轴同步延伸至电流环:
[0025]2、本发明在每一通信周期内的多个伺服中断周期内均匀地补充异步时钟误差,提高了 POWERLINK实时以太网数据传输的同步性能,对于高速、高精度分布式运动控制系统具有重要意义;
[0026]3、为避免可能出现的“丢包”问题,并且给