一种控制从站伺服驱动器同步主站的方法
【专利摘要】本发明公开了一种控制从站伺服驱动器同步主站的方法,所述控制同步主站的方法包括以下步骤:在所述第二核检测到SYNC同步信号后,获取CNT信号的当前值,CNT信号为所述PWM中断处理模块中产生PWM三角载波时的实时计数值;比较CNT信号的当前值与K/2的大小,其中,K为设定的PWM中断的起始时刻与SYNC同步信号的上升沿之间的允许时间漂移值所对应的PWM三角载波计数值;在CNT的当前值大于等于K/2时,判断计数方向,根据所述计数方向设置CNT的值为中断值或者距离中断值设定阈值范围内的整数值;控制PWM中断处理模块在PWM三角载波的每个起始时刻均起始产生PWM中断。本发明的控制方法,可避免不同步而导致的实时指令接收异常问题,使得所控制的伺服电机无抖动现象。
【专利说明】
一种控制从站伺服驱动器同步主站的方法
【技术领域】
[0001]本发明涉及伺服驱动控制领域,特别是涉及一种针对EtherCAT总线型从站伺服驱动器同步主站的控制方法。
【【背景技术】】
[0002]在运动控制领域,随着“工业4.0”和“中国制造2025”口号政策的出来,市场的竞争更是日趋激烈。就伺服驱动器而言,这种竞争不仅体现在传统的对于电机控制的稳定可靠性、动态性能优以及适用各种复杂负载的控制要求,目前更是体现在针对伺服驱动器与上位机之间的通信速率快延时小、多轴控制接线简单、集中控制方式简易、可扩展性强等要求。
[0003]传统的脉冲型伺服系统已无法满足上述目前的要求,总线型伺服系统渐成为市场主流趋势。实时以太网EtherCAT总线伺服驱动器顺势而上,具有硬件支持的高实时性、高速率通信、高同步性、高效率等优点,足以满足中高端运动控制场合的要求。
[0004]实时以太网EtherCAT总线分为DC模式和free_run模式,其同步性体现在DC模式下,但其中的高同步性一般是指主站控制器与从站伺服驱动器中的从站控制器ESC之间的同步,而此同步是德国beckhoff公司自主研发的EtherCAT通信协议所最突出最机密的优点所在,这种同步是EtherCAT通信协议本身所具备的,无需另外开发,它是分布时钟使连接在网络中的所有ESC达到精准同步,所有EtherCAT从站伺服驱动器的分布时钟均以第一个EtherCAT从站伺服驱动器的时钟为参考来通过主站进行补偿和实时修正,因此EtherCAT本身具有尚同步性能。
[0005]—般地,从站伺服驱动器包括ESC控制器,MCU处理器部分。而ESC控制器和M⑶处理器使用各自的时钟信号,当两者时钟不同步时,所控制的伺服电机就会产生抖动现象。
【
【发明内容】
】
[0006]本发明所要解决的技术问题是:弥补上述现有技术的不足,提出一种控制从站伺服驱动器同步主站的方法,使得所控制的伺服电机无抖动现象。
[0007]本发明的技术问题通过以下的技术方案予以解决:
[0008]—种控制从站伺服驱动器同步主站的方法,所述从站伺服驱动器包括ESC控制器和双核MCU,所述双核MCU的第二核中包括PWM中断处理模块,所述PWM中断处理模块根据计数模式产生PWM三角载波;所述控制同步主站的方法包括以下步骤:在所述第二核检测到SYNC同步信号后,获取CNT信号的当前值,CNT信号为所述P丽中断处理模块中产生P丽三角载波时的实时计数值;比较CNT信号的当前值与K/2的大小,其中,K为设定的PffM中断的起始时刻与SYNC同步信号的上升沿之间的允许时间漂移值所对应的PWM三角载波计数值;在CNT的当前值大于等于K/2时,判断计数方向,根据所述计数方向设置CNT的值为中断值或者距离中断值设定阈值范围内的整数值;控制所述PWM中断处理模块在所述PWM三角载波的每个起始时刻均起始产生PWM中断。
[0009]本发明与现有技术对比的有益效果是:
[0010]本发明的控制从站伺服驱动器同步主站的方法,针对双核M⑶处理器,对于双核M⑶中通过PWM中断处理模块的PffM中断来接收解析的实时控制指令的从站伺服驱动器,通过比较PffM中断处理模块的计数值是否大于等于设定的允许漂移值,在大于时,复位CNT,设置CNT为O或者I?K/4之间的整数。PffM中断处理模块根据新设置的CNT开始新的三角载波计数。而CNT信号反映了PffM中断相对于ESC控制器的同步信号的时间偏移,当设置CNT为O或者I?K/4之间的整数后,则新产生的PffM三角载波的起始点是靠近ESC控制器的同步信号的起始点,从而根据PWM三角载波的起始点产生的PWM中断也与同步信号大致同步,则PWM中断过程中接收的实时位置速度转矩指令与ESC控制器发给MCU处理器中第一核,再由第一核解析传递给MCU核2的实时控制指令同步,可避免不同步而导致的实时控制指令接收异常的问题,从而使得所控制的伺服电机无抖动现象。
【【附图说明】】
[0011]图1是本发明【具体实施方式】的驱动控制系统的结构示意图;
[0012]图2是本发明【具体实施方式】中SYNC同步信号与PffM中断信号的时序图;
[0013]图3是本发明【具体实施方式】中PWM中断信号周期中接收到实时位置指令时的相关信号的波形示意图;
[0014]图4是本发明【具体实施方式】中ESC控制器发出实时过程数据、SYNC同步信号的时序示意图;
[0015]图5是本发明【具体实施方式】中PWM三角载波、PWM中断信号和SYNC同步信号的波形时序图;
[0016]图6是本发明【具体实施方式】的控制同步方法的流程图
[0017]图7a是本发明【具体实施方式】中向下计数时设置CNT前后的PWM三角载波与PffM中断信号的波形示意图;
[0018]图7b是本发明【具体实施方式】中向上计数时设置CNT前后的PWM三角载波与PffM中断信号的波形示意图。
【【具体实施方式】】
[0019]下面结合【具体实施方式】并对照附图对本发明做进一步详细说明。
[0020]如图1所示,为本【具体实施方式】中驱动控制系统的结构示意图。驱动控制系统包括EtherCAT主站控制器、EtherCAT伺服驱动器和伺服电机。其中,EtherCAT伺服驱动器包括内含ESC控制器的硬件芯片(本【具体实施方式】中为ET1100的硬件芯片),其主要用于与EtherCAT主站控制器通信和与双核M⑶第一核进行数据交互。双核M⑶中的第一核用于与ESC控制器交互接收实时位置速度转矩指令,并将接收的所述实时位置速度转矩指令解析后传输给第二核。双核MCU中的第二核用于与ESC控制器交互接收SYNC同步信号。本【具体实施方式】中,ESC控制器设置在ETllOO硬件芯片中。在其它实施方式下,也可以IP核的方式固化在其他处理器中,例如FPGA。
[0021]图1所示的箭头I为EtherCAT主站控制器与从站控制器(ESC控制器)之间的实时数据交互。箭头2为ESC控制器与双核MCU的核I之间的并行数据交互,包括ESC中锁存的来自主站控制器更新的实时位置、速度、转矩指令,MCU核I状态机的状态信息等。箭头4为ESC控制器向MCU的核2传输SYNC同步信号。箭头3为双核M⑶内部的数据交互,包括MCU核I解析后的实时位置速度转矩指令传递给MCU核2,MCU核2反馈给MCU核I的实际位置速度转矩信息等。
[0022]M⑶核I用于处理EtherCAT从站通信协议部分,其中有:与ETllOO之间的通信功能、邮箱数据和过程数据的接收及解析处理、状态机、与MCU核2数据交互部分。
[0023 ] M⑶核2主要用于伺服电机控制部分,其中有:位置速度电流三环控制程序、对SYNC同步信号的同步处理、与MCU核I数据交互部分。M⑶核2包括P丽中断处理模块。三环伺服控制程序通过所述PWM中断处理模块执行。
[0024]经研究,在上述驱动控制系统的控制过程中,所控制的伺服电机发生抖动的一个原因是ESC控制器与MCU之间不同步。由于两者使用不同的时钟信号,因此要实现ESC控制器与包含了从站通信协议部分和伺服电机三环控制部分的MCU部分之间的同步控制是一个技术难点。
[0025]进一步分析,ESC控制器沿箭头4所交互的SYNC同步信号,是对应MCU核I的实时控制指令接收、解析以及发送到第二核的时刻控制。也即,ESC控制器发出一个SYNC信号就发一个实时控制指令,发给MCU核I的实时指令解析传递给MCU核2是同步SYNC信号的。同时刻,核I把解析的实时指令传递给核2。而MCU核2的PffM中断处理模块中的PffM中断,是对应MCU核2中接收实时指令的时刻控制。也即,核2是在PffM中断中接收实时指令并用于伺服控制。
[0026]如图2所示,为SYNC同步信号与P丽中断信号的时序图。Tsync表示由EtherCAT主站控制器配置给ESC控制器的SYNC同步信号的周期。T?表示P丽中断信号的周期。TsyncST?的整数倍。由于ESC控制器和MCU有各自的时钟,PWM中断信号与SYNC同步信号之间无法始终保持相对静止,两者之间会存在漂移。且随着时间的延伸,这种相对时间偏差t会慢慢加大。最大偏差时,ESC发出的SYNC同步信号的上升沿与M⑶第二核的PWM中断信号的上升沿之间存在一个P丽中断信号的周期T?的时间偏差。时间偏差t从O到慢慢加大,随之SYNC同步信号上升沿又慢慢靠近PWM中断信号上升沿,从而又同步一次,偏差为O。随后t又慢慢加大,如此循环。在工作过程中,当两者不同步时,MCU第二核中接收到实时控制指令的时刻(在PWM中断过程中接收)与前端MCU第一核发送实时控制指令的时刻(与SYNC信号同步)不同步,因此导致了电机控制的抖动。而且,一旦出现不同步,无论实时控制指令设置在PWM中断信号的哪个阶段接收处理以用于电机转动控制,均会在循环过程中出现不同步的情形。综上,PffM中断信号与SYNC同步信号在各循环周期中出现的不同步是电机产生循环抖动的一个根源。
[0027]如图3所示,以控制指令为位置指令为例,示意了在PWM中断周期中接收到实时位置指令时的相关信号的波形示意图。图中,空心圆圈表示基本同步,位置指令接收正常;带交叉线的圆圈表示不能同步,位置指令接收不正常。
[0028]鉴于上述分析,本【具体实施方式】中的控制从站伺服驱动器同步主站时,控制构思为控制PffM中断与SYNC同步信号同步,具体地,在各控制周期中,也即各SYNC信号周期内,控制与SYNC信号较近的一个PWM中断的起始时刻大致同步SYNC信号,不存在相对漂移即可。同时,设置PWM中断处理模块在PffM中断过程中接收实时控制(位置、速度、转矩)指令,即可控制简便地实现MCU核2中接收指令与MCU核I解析传递实时指令同步,不会出现上述因不同步而导致的实时指令接收异常的问题,从而避免电机转动过程中的循环抖动。
[0029]MCU核2中包含两个中断:PffM中断和外部中断。PffM中断处理模块内部针对PffM中断的同步功能包括外部同步方式和内部软件同步方式。本【具体实施方式】中在外部中断过程中采用的是内部软件同步方式来设置CNT信号的值。如图4所示,设定tl时刻,ESC控制器发出实时过程数据,该实时过程数据作为MCU核I中断的中断源。具体中断为IRQ中断:即核I一旦接收到过程数据就会产生中断,并在此中断中解析出实时控制指令信息。t2时刻,ESC控制器发出SYNC同步信号,该SYNC同步信号作为MCU核2的外部中断的中断源。其中,tl时刻与t2时刻之间的间隔T是保持恒定的。该T时间段内核I解析完来自ESC控制器的实时数据和传输完实时控制指令给核2。图中t3时刻表示下一次ESC控制器发出实时过程数据,核I产生中断的时刻。13与11之间的时间间隔为S YNC同步信号的周期。综上,核I的IR Q中断受实时过程数据的控制,而实时控制指令就包含在实时过程数据中,其始终是与SYNC同步信号精准同步。IRQ中断用于接收实时控制指令并加以解析传输给核2。而核2的外部中断的中断源触发核2产生外部中断,此中断优先级高于PWM中断,可以嵌套PWM中断。
[0030]本【具体实施方式】,PffM中断处理模块中根据PWM三角载波产生PffM中断。具体地,PWM中断处理模块根据计数值产生PWM三角载波,进而产生PWM中断。例如,以采用CNT=中断值=O时的下溢中断为例,当CNT为O时,即产生PffM下溢中断,核2执行PffM下溢中断时应执行的程序。需说明的是,下图5所示的PWM中断信号并非PffM中断处理模块实际产生的一个信号,而是为便于理解所示意的程序执行过程,即反应的是中断过程中程序的执行阶段。当CNT为O时,PWM中断信号的上升沿表示此时刻产生PWM下溢中断,此时刻开始进入中断过程,此时刻之后执行中断过程中应执行的程序。也即PWM中断信号的脉冲波处于相应的高电平状态或者低电平状态不表示事实上信号的高低电平,仅示意有程序执行的阶段(高电平对应的时间段),以及没有程序执行的阶段(低电平对应的时间段)。而各时间段的长短取决于PWM下溢中断过程中执行的程序量的多少,即伺服控制程序的执行时间多少。
[0031]如图5所示,为PffM中断时相应信号的波形时序图C3PRD表示计数的最大周期值,CNT表示在产生PWM三角载波过程中的计数值。从图中可知,本【具体实施方式】中,采用中断值为O时的下溢中断,即当CNT=中断值=0时,产生中断。采用下溢中断,CNT的数值直接反应了接收到中断源时PWM中断的当前状态距离起始时刻的时间偏离,便于控制。需说明的是,中断值可选择其它任何值。中断方式也可选择上溢中断。例如,将计数周期值中的最大值作为中断值,则当CNT =中断值=周期值的最大值时产生中断。t表示PffM中断起始时刻与SYNC同步信号上升沿之间的实际漂移值,K为所设定的允许时间漂移值转换得到的计数值。优选地,设定的允许时间漂移值为外部中断程序运行的最大时间的2倍。不同的MCU的处理效率不同,则中断程序运行的最大时长也不同。通过具体测试可获取得到该最大时长的值,根据该值可设定允许时间漂移值,进而换算得到计数时的计数值。外部中断程序量越小,则允许时间漂移值越小,则K就越小。
[0032]由图5可知,第2个SYNC同步信号与PffM中断偏差在K/2以内,而第N+2个和第2N+2个SYNC同步信号与PffM中断信号的偏差均超过了 K/2,需要予以控制以实现两者的同步。
[0033]如图6所示,为本【具体实施方式】中的控制同步的流程图。当核2检测到SYNC同步信号后,也即检测到中断源时,触发产生外部中断。此时获取CNT的当前值,比较CNT的当前值与K/2的大小。
[0034]如果小于K/2,表示偏差在允许的范围内,对PWM中断处理模块不做干涉控制,对PffM下溢中断不做任何处理。
[0035]如果大于K/2,则复位CNT。此时,判断计数方向,根据计数方向设置CNT的值为中断值或者距离中断值设定阈值范围内的整数值。该设定阈值范围可参考K的值设定,例如阈值范围上限值设置为K除以整数倍,下限值设置为I,则取I?(K除以整数)范围内整数值。具体地,
[0036]如向下计数,则设置CNT=中断值O,从而重新起始产生PWM三角载波,实现与外部中断的同步。如图7a所示,为设置CNT值前后,PffM三角载波与PffM中断信号的波形示意图。实线部分表示设置CNT信号之前,PWM三角载波与PWM中断信号的波形;虚线部分表示设置CNT信号之后,P丽三角载波与P丽中断信号的波形。设置后,CNT的值从当前值变为0,因此重新起始产生PWM三角载波,在PWM三角载波起始时刻产生PWM中断,从而PWM中断过程与SYNC同步信号实现同步。
[0037]如向上计数,则设置CNT的值为I?(K除以整数倍)范围内整数值,例如I?K/4之间的整数。如图7b所示,为设置CNT值前后,PffM三角载波与PffM中断信号的波形示意图。实线部分表示设置CNT信号之前,Pmi三角载波与HVM中断信号的波形;虚线部分表示设置CNT信号之后,P丽三角载波与P丽中断信号的波形。设置后,CNT的值从当前值变为I?K/4之间的正整数,优选地,为I。因此重新从CNT= I对应的状态开始产生PffM三角载波,将PffM三角载波重新起始的时刻作为PWM中断的起始时刻,从而PffM中断过程与SYNC同步信号实现同步。
[0038]由于PffM中断处理模块根据CNT的值产生中断,因此,当设置CNT的值为I?K/4之间的正整数后,是一个靠近O的阶段,则据此产生的PWM三角载波距离起始时刻(CNT = O)是一个较近的范围,而PWM中断根据PWM三角载波的起始时刻重新起始产生,从而PWM中断与外部中断同步。同时,设置为一个靠近O的允许范围内容(I?K/4),可避免在上行计数时再次将CNT设置为O,避免对PffM中断周期时间的稳定性造成破坏。此外,当K对应外部中断运行时间的2倍时,则外部中断的执行时间对应K/2,时间很小,从而嵌套在PWM中断中对伺服三环控制的时间把握上影响很小。
[0039]优选地,在所述PffM中断的起始时刻接收从所述双核MCU的第一核中解析输出的实时控制指令。这样,对应于起始时刻接收指令,可便于控制。控制在所述PWM中断处理模块接收所述实时控制指令后,所述PWM中断处理模块执行伺服三环控制过程。
[0040]通过本【具体实施方式】的同步控制过程,实现了在不改变整体方案的前提下以及对EtherCAT总线伺服三环控制的影响可忽略、也没有破坏PffM中断周期时间稳定性的情况下,可使ESC发出的SYNC同步信号与PffM中断伺服三环控制程序实现同步,实现EtherCAT主站规划发出的实时位置指令经过ESC从站控制器、MCU核I,完整同步的传递给MCU核2,使实时位置控制准确同步,伺服电机无抖动现象。
[0041]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
【主权项】
1.一种控制从站伺服驱动器同步主站的方法,其特征在于:所述从站伺服驱动器包括ESC控制器和双核MCU,所述双核MCU的第二核中包括PffM中断处理模块,所述PffM中断处理模块根据计数模式产生PWM三角载波;所述控制同步主站的方法包括以下步骤:在所述第二核检测到SYNC同步信号后,获取CNT信号的当前值,CNT信号为所述WM中断处理模块中产生Pmi三角载波时的实时计数值;比较CNT信号的当前值与K/2的大小,其中,K为设定的HVM中断的起始时刻与SYNC同步信号的上升沿之间的允许时间漂移值所对应的PffM三角载波计数值;在CNT的当前值大于等于K/2时,判断计数方向,根据所述计数方向设置CNT的值为中断值或者距离中断值设定阈值范围内的整数值;控制所述PWM中断处理模块在所述PWM三角载波的每个起始时刻均起始产生PWM中断。2.根据权利要求1所述的控制从站伺服驱动器同步主站的方法,其特征在于:所述PWM中断处理模块采用CNT = O时的下溢中断;根据所述计数方向设置CNT信号的值为O或者I?K/4之间的整数。3.根据权利要求2所述的控制从站伺服驱动器同步主站的方法,其特征在于:在所述计数方向为向上计数时,设置CNT信号的值为I?K/4之间的整数。4.根据权利要求3所述的控制从站伺服驱动器同步主站的方法,其特征在于:设置CNT信号的值为I。5.根据权利要求2所述的控制从站伺服驱动器同步主站的方法,其特征在于:在所述计数方向为向下计数时,设置CNT信号的值为O。6.根据权利要求1所述的控制从站伺服驱动器同步主站的方法,其特征在于:控制所述PffM中断处理模块在所述PWM中断的起始时刻接收从所述双核MCU的第一核中解析输出的实时控制指令。7.根据权利要求6所述的控制从站伺服驱动器同步主站的方法,其特征在于:控制在所述PffM中断处理模块接收所述实时控制指令后,所述PffM中断处理模块执行伺服三环控制过程。8.根据权利要求6所述的控制从站伺服驱动器同步主站的方法,其特征在于:所述实时控制指令包括实时位置控制指令,实时速度控制指令或者实时转矩控制指令。
【文档编号】G05B19/042GK105824275SQ201610327695
【公开日】2016年8月3日
【申请日】2016年5月17日
【发明人】覃海涛, 龙世鹏, 吴立, 田天胜, 李卫平
【申请人】深圳市雷赛智能控制股份有限公司, 深圳市雷赛软件技术有限公司