吴兵1,2
(1.上海交通大学电子信息与电气工程学院,上海200240;2.上海智殷自动化科技有限公司,上海200032)
摘要:描述了由PWM定时组成的伺服控制器时钟结构,分析了伺服控制器间时钟不同步的两类原因:时钟偏移和时钟漂移。针对时钟偏移和时钟漂移的特点,提出了多种通过检测Ether CAT从站SYNCO信号边沿来触发伺服控制器间PWM定时同步的时钟同步方案。在PWM定时同步的基础上,通过SYNCO信号边沿标定伺服控制器的控制输出时刻和反馈采样时刻,从而实现伺服控制器间的多轴同步。最后实验证明该设计方案能有效地保证基于F28M35伺服控制器间的多轴同步。
关键词:伺服控制器;Ether CAT;多轴同步;PWM
中图分类号:TP273文章编号:1006 - 2394( 2016) 05 - 0001 - 05
0 引言
高精度的运动控制,不仅需要单轴运动位置控制精确,而且需要各轴同时控制输出和同时反馈采样(即多轴同步),否则会直接影响系统的轨迹精度,影响生产效率及产品质量。多轴同步一直是工业界内热门的研究课题,因此研究多轴同步设计具有一定的现实意义。
在集中式控制系统中,各轴控制输出和反馈采样都在同一个时钟节拍下工作,同步精度可以达到小于1μs,因此不存在多轴同步问题。但该方案使用专用的同步时钟线路来实现多轴同步,增加了机械设计和机械装配难度,较长的同步时钟线路容易受电磁干扰和信号衰减的影响,增加了硬件成本。本文不使用专用时钟线路和专用芯片,仅通过检测Ether CAT从站的SYNCO信号,实现基于TI F28M35开发的伺服控制器间的多轴同步。
1 多轴同步原理
由于每个轴的运动是靠伺服控制器来控制和驱动的,多轴同步最终要靠伺服控制器来实现。伺服控制器间的时钟同步是多轴同步的前提。本文选用了Eth-erCAT作为伺服控制器的通信总线,Ether CAT主站通过实时时钟校正得到高精度同步的DC分布时钟(误差小于1μs),通过Ether CAT主站配置,伺服控制器可以从ESC( Ethe r CAT Slave Controller)处获得周期准确·同步的SYNCO信号,通过检测ESC的SYNCO边沿信号触发PWM定时同步,实现伺服控制器间的PWM定时同步;在PWM定时同步基础上,通过ESC的SYNCO边沿信号来标定控制输出时刻和反馈采样时刻,从而实现伺服控制器间的多轴同步。
伺服控制器内部有电流环刷新定时、速度环刷新定时和位置环刷新定时,通常情况下电流环刷新定时周期最短,且电流环刷新定时与PWM定时完全同步,为了控制方便和控制可靠(尽量避免中断嵌套),伺服控制器软件选用PWM定时作为伺服控制器的唯一定时和基础定时,即控制定时的最小单元是PWM定时周期。如果各伺服控制器间的PWM定时精确同步了,通过PWM定时衡量和ESC的SYNCO边沿信号标定,则可实现伺服控制器间的多轴同步。故在不增加额外硬件的情况下,首先实现伺服控制器间的PWM定时完全同步,再通过PWM衡量和ESC的SYNCO边沿信号标定,就可以实现伺服控制器间的多轴同步。如图1所示为伺服控制器时钟同步结构。
ESC的SYNCO信号一方面触发伺服控制器PWM定时同步,另一方面也标定了运动控制的输出时刻和反馈的采样时刻。如果各伺服控制器PWM定时都被ESC的SYNCO信号边沿触发同步了,则伺服控制器间PWM定时都同步了;在PWM定时同步基础上,通过ESC的SYNCO信号标定控制的输出时刻和采样时刻,从而实现多轴同步,如图2所示为时钟同步时序图。
时钟不同步的原因分为两类:一类是时钟偏移,原因是伺服控制器的上电时间不一样;另一类是时钟漂移,原因是PWM时钟源的精度不高,或者精度受温度影响而变化。无论是由于时钟偏移或者时钟漂移,在ESC的SYNCO信号的上升沿同步PWM定时,第一次同步能解决时钟偏移问题,后续经常性再同步能解决时钟漂移问题,避免了时钟差的累计效应。下面将讨论如何通过ESC的SYNCO信号边沿实现PWM同步。
2多轴同步设计
F28M35带有多个PWM控制器,并提供了同步方法,EPWM1、EPWM2和EPWM3的同步关系和方法如图3所示。
EPWM1可以通过GPTRIP6选择外部GPIOO~GPI063中任一引脚作为时钟同步信号EPWMISYNCI的输入信号源,上升沿时PWM同步,并将EPWM1的输出同步信号EPWMISYNCO作为EPWM2的EP-WM2SYNCI的输入信号源,同理将EPWM2的输出同步信号EPWM2SYNCO作为EPWM3的EPWM3SYNCI的输入信号源,这样通过1路ESC的SYNCO信号同步信号就可以同时控制3路PWM信号,从而保证电机驱动的同步性。PWM工作时,TBCTR为PWM时基计数器,TBPRD为PWM的周期寄存器,TBPHR为PWM的时基相位寄存器(即控制相位同步寄存器),还有2个事件,一个为CTR= zero(即TBCTR值为0),另一个为CTR= PRD(即TBCTR= TBPRD)。PWM同步时有两种工作模式,一种模式同步后TBCTR被TB-PHR值所更新,继续递增计数;另一种模式TBCTR被TBPHR值所更新,继续递减计数。下面从不同的PWM头尾部同步和PWM中间位置同步来分析利弊。
在TBCTR值为0附近(即PWM波形的头尾部)PWM同步,同步位置可能为头部,也可能为尾部,从图4和图5中可知,无论是在头尾部递增还是头尾部递减,都可能出现两次“CTR=zero”事件,即触发两次PWM中断,事件间隔较小,会引起伺服控制器定时误差大,导致不能完成运算任务,故PWM头尾部递增同步方法不可取。
在TBCTR值为TBPRD附近(即PWM波形中间左边或右边)PWM同步,同步位置可能为左边,也可能为右边,从图6和图7中可知,无论是在PWM中间递增还是PWM中间递减,在PWM周期误差不大的情况下,两次出现“CTR=zero”事件(即触发两次PWM中断),时间基本和PWM设置的周期一致,变化较小,故PWM中间递增同步和PWM中间递减同步都可以。本文选择PWM中间递减同步。使用PWM中间递减同步时,如果ESC的SYNCO信号周期和PWM定时周期一致,TBPHS= TBPRD,则每个PWM周期都被正确同步,如图8所示。
只要PWM时钟频率有偏移或者漂移,在中间就会被同步,PWM定时和ESC的SYNCO信号正好相差半个PWM周期,但各伺服控制器间的PWM定时完全同步。在机器人伺服控制器中,SYNCO信号周期和PWM周期是不相同的,在本文的研究中,PWM时钟周期为50μs,ESC的SYNCO信号周期是PWM定时周期整数倍(如80倍,即80个PWM周期同步一次),ESC的SYNCO信号的上升沿会对PWM中间同步,如图9所示。
在晶振精度为0. 003 010情况下,80个PWM周期后,累计的最大PWM周期偏差为0.12μs,对被同步PWM的占空比影响为0.12/50=0.24%,每80个周期的第一个PWM周期被ESC的SYNCO信号重新同步,该误差不会被累积,故可以实现伺服控制器间的PWM时钟完全同步。F28M35硬件实现检测ESC的SYNCO信号上升沿并调整PWM的相位。
通过硬件实现伺服控制器间PWM定时完全同步后,通过ESC的SYNCO信号边沿标定运动控制的输出时刻和反馈采样时刻,则实现了伺服控制器间的多轴同步。
3 多轴同步测试
下面基于F28M35开发的支持Ether CAT小型机器人伺服控制器通过GPIO输出脉冲,使用示波器来观察。伺服控制器ESC输出的250 Hz SYNCO信号如图10所示,为了测试方便,本文使用Tektronix示波器MD03104的AFG输出250 Hz SYNCO信号,PWM输出50μs周期脉冲。
图11显示,channel 1为PWM脉冲波形,channel2为ESC的SYNCO信号,图中显示ESC的SYNCO信号的上升沿触发了PWM中间同步,图中显示不在中间是由于PWM中断延迟造成的。ESC的SYNCO信号触发PWM定时同步后则实现了伺服控制器间的时钟完全同步。
图12为两个伺服控制器输出的两路PWM脉冲波形,周期为50μs,从图12 a)可以看出在PWM未同步前,两路PWM脉冲存在时钟偏移,经过Ether CA-TESC的SYNCO信号上升沿校正后,从图12 b)可以看出两路PWM定时完全同步。
PWM定时同步后,各伺服控制器在ESC的SYNCO信号上升沿后等待相同的PWM周期时间输出运动,图13表明PWM同步前,两个伺服控制器命令输出不同步,图13 b)表明PWM同步后,两个伺服控制器间命令输出基本同步。
把同步信号进一步展开,得到的多轴同步时间差见图14。4 ms的同步周期,同步时间误差为±40. 00 ns,误差率为±0. 001010。高精度的伺服控制器,轴同步误差要小于1μs,从图14可知,基于F28M35伺服控制器的多轴同步达到要求,满足高精度运动控制需求。
4结束语
基于F28M35伺服控制器,通过检测ESC的SYNCO信号的上升沿来触发同步伺服控制器PWM定时同步和执行运动输出,在不使用专用时钟线路和专用芯片(如FPGA)情况下能实现伺服控制器间的多轴同步。接下来需要进一步分析PWM同步时占空比的变化对输出的影响程度。
下一篇:返回列表