施鲁强, 马钧华
(浙江大学 电气工程学院, 浙江 杭州 310027)
多轴伺服控制技术广泛应用于机器人、印刷机和数控机床等领域,其中的关键问题在于多轴之间的实时协调同步。以印刷机为例,为了精准地实现色组套印,要求各个轴有极高的同步性。随着技术的发展与市场需求的提升,同步控制方案从机械长轴、传统现场总线、工业以太网再到实时工业以太网不断改进优化[1-2]。
EtherCAT实时工业以太网由德国自动化控制公司倍福(Beckhoff)于2003年提出,因其高性能、低成本、易实现、拓补结构灵活和完全兼容以太网等优势,在世界范围内得到了广泛的应用[3]。EtherCAT修改了以太网协议,采用特殊的传输技术,彻底避免了报文冲突,实现了高速高效的通信;其分布时钟(distributed clock,DC)机制可以实现各个EtherCAT从站时钟的精确同步,误差可达到0.1 μs级别[4]。因此,将EtherCAT总线技术应用于多轴伺服系统来实现高精度同步控制具有重要的研究意义和实用价值。
课题组设计并搭建了基于EtherCAT实时工业以太网的伺服控制系统软硬件平台,提出了一种实现同步控制的方案,并在一个2轴系统中进行了实验验证。
EtherCAT应用了称为“on the fly”的报文传输技术,如图1所示。EtherCAT采用主从式结构,通信由主站发起,在每个通信周期只需发送一个最大可为1 486 B的数据帧。当数据帧依次经过各个从站设备时,EtherCAT从站控制器(EtherCAT slave controller,ESC)读取与之对应的子报文中的数据,同时将返回数据插入到相应的子报文。最后1个从站返回已经处理完成的报文,将由第1个从站作为响应报文发送给主站[3]5。
图1 EtherCAT通信原理Figure 1 Communication principle of EtherCAT
通过这种通信机制,EtherCAT实现了如下几点优势:①彻底避免了报文冲突,解决了以太网的非确定性问题;②所有从站共享一个以太网帧,从而共享一个带宽开销,极大地提高了带宽利用率,有效数据可达90%以上,充分利用了100 Mb/s-TX的全双工特性,体现了高效性;③各从站在报文经过时对相应数据的提取与插入过程是通过ESC在硬件层面上实现的,因此与处理器性能无关,整个过程只有100~500 ns的时间延迟,体现了高速性[5]。
EtherCAT从站有3种周期性数据通信的同步运行模式:自由运行(FreeRun)模式、同步管理器(Sync Manager,SM)模式和分布时钟(DC)模式。其中FreeRun模式采用查询方式处理周期性过程数据,不具有同步性;SM模式与DC模式则采用中断方式,分别基于IRQ(interrupt request)与SYNC信号。如图2所示,当从站接收到数据帧时会触发同步管理器事件(SM event),产生IRQ中断信号。由于不可避免的传输延时,越往后的从站接收到数据帧的时间就越晚,SM模式下的同步效果就越差。
图2 SM和DC模式时序示意图Figure 2 Sequence diagram of SM and DC mode
DC模式应用了基于IEEE 1588协议的分布时钟机制。该机制通过记录报文在一个通信周期内到达各个从站时的从站本地时钟时刻,从而计算并对传输延时进行静态补偿和对从站时钟初始偏移进行周期性补偿,实现了各从站时钟的精确同步[6]。由此,各从站可以在设定的延时周期后精准地同步触发SYNC信号。
多轴系统的整体结构如图3所示。主站使用倍福公司的PC端软件TwinCAT,发送控制指令与速度、位置等运动控制参数,同时接收从站的返回数据。从站实现EtherCAT通信和伺服驱动控制2个功能。主站与多个从站之间用网线串联。伺服电机选用带有光电编码器的永磁同步电动机。
图3 多轴系统结构示意图Figure 3 Schematic diagram of multi-axis system structure
EtherCAT从站控制器采用Microchip公司的LAN9252芯片,实现物理层和数据链路层,对数据帧进行收发与处理。从站控制微处理器采用TI公司的TMS320F28379D高性能DSP,实现应用层。从站的硬件结构如图4所示。
图4 从站硬件结构Figure 4 Slave hardware structure
LAN9252作为ESC专用芯片,集成了2个以太网PHY;具有4 KiB双端口存储器(DPRAM)、3个现场总线存储器管理单元(fieldbus memory management unit,FMMU)、4个同步管理器(SyncManager,SM);支持分布式时钟(DC)功能;提供多种通信接口模式:支持16位数字I/O接口、SPI/SQI串行接口以及8/16位主机总线接口(host bus interface,HBI)[7]。
设计时选用了传输速率更高的HBI并行接口模式,与主控芯片TMS320F28379D的外部存储器接口(external memory interface,EMIF)对接。接口模式选择为16位变址寻址模式,使用4根地址线、16根数据线、3根控制线(片选信号CS、读控制信号RD和写控制信号WR)即可实现数据传输,能够充分发挥EtherCAT高速、高实时性的特点。将中断信号IRQ与时钟同步信号SYNC0/1作为DSP的外部中断信号以实现通信和同步功能。LAN9252芯片通过I2C接口与EEPROM连接,来存储从站配置信息,可通过主站使用XML格式文件进行烧录。
图5所示为从站实物的正反面,其中Ⅰ为TMS320F28379D的LaunchPad,其EMIF接口位于背面,故将ESC电路板(Ⅱ)设计成“凸”字形进行连接。
图5 从站实物图Figure 5 Picture of slave station
TMS320F28379D芯片是一款高性能双核微处理器,拥有2个独立的32位C28x浮点CPU,每个内核都具有200 MHz的信号处理性能,广泛应用于电机伺服控制领域[8]。系统设计时利用了28379D的双核功能,将2个CPU分别用于实现EtherCAT通信功能和伺服电机控制功能,提高了硬件资源利用率和代码运行效率。从站程序的整体结构如图6所示。
图6 从站程序整体结构Figure 6 Overall structure of slave program
CPU1中实现了EtherCAT从站协议栈,其主流程如图7所示。HW_Init()函数主要初始化了GPIO端口、中断以及数据接口(EMIF)等硬件资源。MainInit()函数初始化通用从站协议,包括对邮箱和对象字典的初始化。完成初始化后程序进入MainLoop主循环,处理一些低优先级的函数,如状态机转换、非周期性邮箱通信等。若从站运行于FreeRun模式,则采用查询的方式在主循环中处理过程数据,否则就会使用中断的方式在相应的中断函数中处理过程数据[9]。
图7 EtherCAT从站协议程序主流程图Figure 7 Main flow diagram of EtherCAT slave protocol program
CPU2中使用电流、转速和位置3个闭环的磁场定向控制(field oriented control,FOC)算法实现伺服控制功能。与CPU1之间通过IPC(interprocessor communication)模块来进行实时信息交流。并且为了后续同步功能的实现,将信号SYNC0同时也作为CPU2的外部中断信号来触发SYNC中断函数。
在TwinCAT主站软件中设置从站运行于DC同步模式,通信周期和同步信号周期均设为2 ms。其中通信周期的稳定性由主站来实现和保证。
以连接3个从站设备的系统为例,验证了分布时钟的高精度同步性能。用示波器观测各从站控制器产生的IRQ信号与SYNC0信号,捕获信号下降沿并将其放大,如图8~10所示。
图8 从站1~2的IRQ和SYNC0信号Figure 8 IRQ and SYNC0 signals of no. 1~2 slave station
图9 从站1~3的IRQ信号下降沿Figure 9 Descending edge of IRQ signal of no. 1~3 slave stations
图10 从站1~3的SYNC0信号下降沿Figure 10 Descending edges of SYNC0 signal of no. 1~3 slave stations
从图9中可以看出,由于传输延时(包括线路延时和ESC处理、转发数据帧的耗时),越在后边的从站接收到数据帧和触发IRQ信号的时间就会越晚。经过多次测量,前后2个从站之间的传输延时平均在730 ns,当从站数量较多时,就会有明显的误差。如图10所示,在使用分布时钟机制产生的SYNC0信号补偿了传输延后,多次测量得到误差在25 ns以内,同步精度很高且和从站的先后顺序无关。
多轴系统的同步控制关键在于2个环节:各伺服系统控制环的同步和运动控制参数的更新时刻的同步[10]。课题组利用高精度同步的SYNC0信号提出了一种同步控制的具体实现方案。
3.2.1 伺服控制环同步
该伺服系统的控制环周期由DSP的PWM模块配置,考虑IGBT开关损耗等因素,一般以10 kHz的频率触发主中断函数,在其中执行内环即电流环控制并更新PWM输出。外环包括速度环与位置环,周期为内环的10倍,每进入10次主中断函数则执行1次外环控制。微处理器使用20 MHz的外部晶振,其频率稳定性为50×10-6,精度较高,但会随着时间逐渐累积误差。可以通过在SYNC中断函数中将PWM计数值清零以确保没有误差累积,实现控制环周期的同步。
为了观测同步效果,使用DAC模块将PWM定时器计数值转换成IO口的电压值并用示波器捕获,如图11所示。同时观测2个从站的DAC输出值,如图12所示。未同步情况下,两者具有初始相位差,并且由于各自晶振的漂移,相位差会不断累积增大,1 min左右就会相差1个周期;同步后,相位误差会及时在SYNC0信号触发时被消除,可以观察到2个从站的DAC输出波形相位始终重合,实现了控制环周期的精准同步。
图11 DAC输出与SYNC0信号波形Figure 11 Waveform of DAC output and SYNC0 signal
3.2.2 数据更新同步
各从站在接收到主站发送的运动控制参数后需要同步地应用到控制算法中去。一般的DC模式中过程数据的接收和应用都在SYNC中断函数中执行;而本课题中由于采用了双核代码结构,数据的接收和应用分别位于不同的CPU中,之间需要通过IPC模块进行交流。为此,代码设计时同时利用IRQ信号和SYNC0信号,修改并优化了DC同步运行模式。如图2所示,令从站处于DC模式时先在IRQ中断函数中处理过程数据,然后进入“数据准备”阶段,完成数据的复制、传递以及前处理计算,直到SYNC0信号触发后再在CPU2的SYNC中断函数中同步将准备好的数据应用于控制算法,并同步地准备好要返回给主站的数据。由于提前完成数据的复制和前处理计算,理论上能进一步提高同步性能。
实验波形如图13所示,其中CH1为SYNC0同步信号,周期为2 ms;CH2为用IO口电平表示的SYNC中断函数触发时刻,在该中断函数中完成了PWM定时器计数值清零、数据更新等同步操作;CH3和CH4分别是控制环内环和外环的触发时刻,在各个从站中都同步一致。
图13 同步功能示意波形Figure 13 Waveform of synchronization function
为验证同步控制效果,在一个2轴系统中进行同步控制实验,硬件平台如图14所示。为了便于观测同步效果,2个从站的电机参数和控制程序均一致。系统采用主令式的同步控制策略,2台电机之间没有耦合关系。
图14 实验硬件平台Figure 14 Experimental hardware platform
考虑实际应用场景,例如在无轴传动印刷机应用中,多轴系统需要长时间匀速运行,并且要求高精度的位置同步。运行时由主站发送目标转速,在从站中各自独立地根据转速做积分运算得到位置给定从而进行位置控制。这种方式对主站的实时性要求不高,但要求各从站控制环周期的严格同步。
对上述运行方式进行模拟测试,由主站发出指令同时启动2台电机并给定目标转速为360 r/min。其中,为了突出从站时钟误差累积产生的影响,改用精度较低的内部振荡器代替外部晶振。
为验证控制环周期是否实现同步,令2个从站将在外环周期中独立计算得到的位置给定参数(转过的圈数)返回给主站进行观测。结果如图15所示,2个电机的给定位置曲线完全重合,误差始终为零,说明二者的控制环周期实现了同步。
图15 双机给定位置及误差曲线Figure 15 Target position and error curves of two motors
观测并记录2个从站返回的实际位置。在实现控制环的同步的情况下运行约2 min后,通过主站发送标志位参数来同时禁用2个从站SYNC中断函数中对PWM计数值的清零操作,即关闭同步功能,然后继续运行,最后将数据保存导出处理如图16所示。
图16 双机实际位置及误差曲线Figure 16 Actual position and error curves of two motors
处理实际位置角数据时,每转过10圈就将角度值归零,得到图16(a)和(b)中的锯齿波形。从图中可以看出,若不进行同步操作,由于控制环周期相位误差的不断增大,2台电机的位置角度误差也会随之不断增大。实现控制环周期同步时,2台电机的实际位置角曲线基本重合,机械角度误差保持在±0.6°以内,主要由各伺服控制的跟随误差叠加而成。
根据TMS320F28379D芯片的外设资源和双核算力,可以实现4台电机的高精度同步运行[11]。本实验中,从站微处理器芯片的算力和空间均有富余,可以考虑将其应用于更复杂的多轴系统中。比如图17所示的4色组单面印刷系统中,1个色组印刷单元内可以仅使用1块TMS320F28379D芯片实现3个轴的同步控制,各色组之间则可以通过EtherCAT实时以太网技术来实现通信和同步,可以在代替机械传动,实现高精度多轴同步控制的同时降低成本。
图17 4色组单面印刷系统示意图Figure 17 Schematic diagram of four-color group single-sided printing system
课题组针对多轴系统的精准同步控制问题进行了研究,设计并搭建了基于EtherCAT实时工业以太网的伺服控制系统。利用EtherCAT分布时钟机制所产生的高精度同步信号,可以补偿通信数据在到达不同从站时的传输延时;将其作为微处理器的外部中断信号,在触发时消除因各从站微处理器芯片晶振误差带来的时钟误差,可以实现各个从站控制环周期的同步。
实验结果表明:该基于EtherCAT的伺服系统实现了各从站控制环周期和通信数据更新的精准同步,能够满足高精度的多轴同步控制要求,为更加复杂的多轴系统应用场景和多轴同步控制算法提供了基础。