基于可编程逻辑控制器的运动控制干扰补偿方法
2022-01-26杜鹏飞应成聂佳
杜鹏飞,应成,聂佳
(上海电器科学研究所(集团)有限公司,上海 200063)
可编程逻辑控制器(PLC)的运动控制功能包括高速脉冲输出和高速计数器功能。高速脉冲输出功能是通过发送一串高频脉冲驱动伺服电机或者步进电机,最终达到机械位置定位的目的。高速计数器是对安装在电机上的编码器输出的高频脉冲进行计数,从而得知电机的转动位置[1]。
PLC定位指令完成一次动作,高速脉冲输出有加速、匀速、减速三个过程,一般通过梯形加减速或者S型加减速来实现[2]。本文通过梯形加减速来阐述,S型加减速原理相同。电机驱动器收到PLC发出的脉冲信号后,开始对应地进行加速、匀速、减速运转,PLC输出的一个脉冲对应电机一个微小的角度转动[3]。PLC中的脉冲输出指令是开环的如图1所示。一般来说,伺服电机驱动器最高可接收1MHz左右的脉冲频率。在伺服电机驱动器内部有一定的滤波措施,可抵抗一定的现场电磁干扰。但是当工业现场干扰比较强,伺服驱动器无法滤除这些干扰时,就会出现接收到比PLC实际发送的更多或者更少的脉冲数,导致系统定位不准确。
图1 开环系统示意图
1 整体方案
本设计采用了一种补偿的方法,通过高速计数器实时监测电机的转动,计算得出电机实际的转动位置。当电机驱动器受到外部电磁干扰时,PLC得到某个时间片内的高速计数器值与高速脉冲发送的脉冲数不相等,PLC在下个时间片增加或者减少发出的脉冲数来进行补偿,从而达到精确控制位置的目的。
本设计阐述了一种梯形加减速的算法,按照时间片分割法对加、减速过程进行单位时间分割,脉冲频率在每个时间片递增或递减。同时也通过时间片对电机实际运行的角度进行采样,通过补偿算法,从而达到精确定位的效果。
本设计通过高速计数器的反馈,实时补偿由于电磁干扰引起的电机定位偏差。从而解决工业现场中运动控制在电磁干扰环境下定位不准的问题。这就使得小型PLC在恶劣干扰环境中的运动控制定位仍然精确,大大增强了市场竞争力。
2 系统组成
本设计带有干扰补偿功能的高速脉冲输出指令,具有编码器输入的接口,将脉冲反馈信号传递给PLC内部的高速计数器。在系统中如果使用步进电机,需要在电机侧接上一个编码器如图2所示。如果是伺服电机,由于伺服电机自身带编码器,只需将伺服电机编码器的线接到PLC的高速计数器上如图3所示。
图2 闭环系统步进电机应用示意图
3 梯形加减速计算
PLC的运动控制一般采用梯形加减速如图4所示,运动轴为PLC的其中一路高速脉冲输出。从基底速度开始,在设定的加速时间加速到设定的脉冲输出最高频率,发送固定频率使电机作匀速运动,最后在设定的减速时间里减速到基底速度停止。
图4 梯形加减速示意图
整个过程的总脉冲数、最高频率、基底速度、加减速时间这些参数由用户设定,PLC在工作前需要对这段路程进行规划。
梯形加减速设定参数:
路程总脉冲数:N。
加速时间:Tacc,单位 ms(毫秒)。
减速时间:Tdec,单位 ms(毫秒)。
基底速度频率:Fbias,单位Hz。基底速度是指电机可以以一定的较小频率直接开始起步运动。基底速度也可以为0,即从速度频率0开始加速。
脉冲输出最高频率:Fmax,单位Hz。
加减速频率阶跃时间片:Tn,单位ms(毫秒)。在加减速时,每隔Tn时间,产生速度阶跃变化。此参数为PLC内部参数,根据设计者的经验使得加减速过程平滑。
电机延时时间:△T,单位ms(毫秒)。步进电机或伺服电机在收到PLC脉冲后至电机开始转动的微小延时。
加速段脉冲总数计算方法:
加速分段数:nacc=Tacc/Tn
加速每段频率递增数:Naccinc=(Fmax-Fbias)/(Tacc/Tn)
加速第一段频率脉冲个数:Nacc1= Fbias*(Tn/1000)
加速第二段频率脉冲个数:Nacc2=(Fbias+Naccinc*(2-1))*(Tn/1000)
加速第三段频率脉冲个数:Nacc3=(Fbias+Naccinc*(3-1))*(Tn/1000)
……
加速第 nacc段频率脉冲个数:Naccn=(Fbias+Naccinc*(nacc-1))*(Tn/1000)
加速段脉冲总数:Nacc=Nacc1+Nacc2+Nacc3+…+Naccn
减速段脉冲总数计算方法:
减速分段数:ndec=Tdec/Tn
减速每段频率递增数:Ndecinc=(Fmax-Fbias)/(Tdec/Tn)
减速第一段频率脉冲个数:Ndec1=(Fbias+Ndecinc*(ndec-1))*(Tn/1000)
减速第二段频率脉冲个数:Ndec2=(Fbias+Ndecinc*(ndec-2))*(Tn/1000)
减速第三段频率脉冲个数:Ndec3=(Fbias+Ndecinc*(ndec-3))*(Tn/1000)
……
减速第 n 段频率脉冲个数:Ndecn=(Fbias+Ndecinc*(ndec-ndec))*(Tn/1000)
减速段脉冲总数:Ndec=Ndec1+Ndec2+Ndec3+…+Ndecn
匀速段脉冲总数计算方法:
Nv=N-Nacc-Ndec
为了按时间片采样反馈高速计数器脉冲计数个数,需要将匀速段也进行Tn时间片分割,可计算匀速段每个时间片Tn发出的脉冲个数为:
Fmax*(Tn/1000)
4 补偿计算
通过上述的计算方法,得到梯形加减速全过程每个时间片Tn输出的脉冲频率和脉冲个数。同时通过PLC的高速计数器,对每个时间片Tn的电机转动角度进行计数,把反馈的脉冲数和PLC发出的脉冲数进行对比。当没有干扰或者干扰较小能被伺服滤波去除时,在同一个时间片Tn里高速计数器反馈的脉冲数和PLC发出的脉冲数是相等的,这时补偿算法不需要进行任何干预。当发生较大的干扰时,在一个时间片里高速计数器读到的脉冲数相比发出的脉冲数增多或者减少。这时PLC的补偿启动,在下一个时间片周期里将减少或增加发出的脉冲数,始终保持PLC发出的脉冲数和伺服相对应的转动角度一致。
具体计算如下:
上述按照Tn划分的时间片,将加速、匀速、减速过程统一记为T1、T2、……Tm……时刻。每个时间片PLC发出的脉冲个数统一记为N1、N2、……Nm……。由于步进电机或伺服电机在收到PLC脉冲后至电机开始转动有一个微小的延时△T。PLC在发出脉冲后的△T延时后开始采样高速计数器值。每个时间片高速计数器反馈的脉冲数为N1hsc、N2hsc、……Nmhsc……。
得到某一个时间片的干扰脉冲个数为Nmif=Nmhsc-Nm
当 Nmif> 0,在 Tm+1时刻,将减少 PLC 发出的脉冲数Nmif。
当 Nmif< 0,在 Tm+1时刻,将增加 PLC 发出的脉冲数Nmif。
这样,通过补偿抵消了由于干扰引起的脉冲数变化,使得运动定位控制更加精确。
5 结论
本设计使得在一部分工业现场恶劣的环境中或者偶尔突发的干扰环境中,避免了由于电磁干扰导致运动控制定位不准确的情况发生。通过增加反馈算法,大大提高了运动控制型PLC的可靠性,扩大了PLC的使用范围。
本设计PLC运动控制指令可以应用于小型机械加工,包装,激光水刀切割,自动焊接等需要定位运动的场合,具有良好的社会经济效益。