基于PLC位置控制系统急停处理的研究与应用*
2020-09-25黎一强
黎一强
(罗定职业技术学院,广东云浮 527200)
0 引言
随着经济发展和科技进步,企业为了提高生产效率,采用了大量的自动化生产线用于生产。这些自动化生产线在生产过程中用到了许多位置控制,为了提高控制的精度,在自动化生产线的位置控制中,往往都是采用PLC发脉冲控制步进电机或伺服电机的位移来实现的。
这些自动化生产线要设置有急停控制功能[1],用于保证操作人员的人身安全及生产线设备安全,保障生产线稳定运行。在生产过程中当遇到紧急情况时,按下急停控制按钮[2],生产线的运动部分应立即停止,禁止所有的输出动作。当故障清除急停恢复后,希望生产线能按照急停前的工作状态继续运行[3],以提高生产效率。但研究发现实际生产中许多采用PLC控制步进电机或伺服电机驱动的位置控制系统,在自动化生产线急停恢复后,都是设计先进行机械归零复位,然后再次启动从零位开始重新工作,这样就大大降低了生产效率[4],甚至造成原材料的浪费。本文就是研究解决该生产问题,以提高生产线的生产效率。
1 位置控制系统的构成
步进电机是一种使用数字脉冲信号控制转轴进行机械角位移的电机,数字脉冲的频率和数量决定了电机的转速和转角[5]。自动化生产线为了提高生产精度,许多机械位移都是采用PLC发脉冲控制步进电机或伺服电机的拖动控制系统。如某生产线要控制1个机械手臂在相距4 000 mm的A、B两点之间进行多点精准定位往复运动,可采用PLC控制步进电机或伺服电机构成拖动系统。步进电机或伺服电机的运动位移是由控制的脉冲数与脉冲当量的乘积来决定的[6],所以要选择晶体管输出的PLC。
为了研究位置控制系统的急停控制,选择FX3U-48MT的PLC作为控制器,该PLC的Y0、Y1、Y2为高速脉冲输出端子,输出脉冲的最高频率可达100 kHz。选用Kinco的三相步进电机3S57Q-04056作为驱动电机,该步进电机配套的驱动器是Kinco 3M458,步进电机的步距角在整步方式下为1.2°,半步方式下为0.6°,在无细分的条件下300个脉冲电机转一圈,通过驱动器设置细分精度最高可以达到10 000个脉冲电机转一圈。3M458驱动器DIP开关细分设置如表1所示。
位置控制系统步进电机的同步轮齿距为5 mm,共12个齿,当步进电机旋转一周时带动机械手臂的位移为60 mm,通过驱动器设置细分,当10 000个脉冲步进电机转一圈时,机械手臂位移的精度最高,脉冲当量μ=60 mm/10 000=0.006 mm。在这里,设置步进电机是1 000步/转,脉冲当量μ=60 mm/1 000=0.06 mm。
表1 3M458驱动器DIP开关细分设置
2 位置控制系统的I/O接线图
根据位置控制系统设计急停处理的功能,可得到该系统的I/O分配表如表2、表3所示。
表2 PLC输入分配表
表3 PLC输出分配表
根据PLC的I/O分配表可画出PLC的I/O接线图如图1所示。
图1 PLC的I/O接线图
3 常规急停处理的缺陷
FX3U-48MT的PLC内置三轴的定位控制功能,这个功能输出点为Y0、Y1、Y2,常采用脉冲输出指令PLSY、相对定位指令DRVI及绝对定位指令DRVA从这些功能输出点发出高速脉冲去驱动步进电机或伺服电机。为了实现急停发生后系统能立即停止运动,保持急停发生的现有状态,排除急停故障复位重新启动,系统不用回到初始状态,能直接从急停前的状态继续运行,以提高生产效率。经查阅相关文献及实际生产操作的调研,发现PLC控制系统急停处理常用的控制方法有2种,一是采用主控指令MC;二是采用跳转指令CJ[7]。
研究发现在PLC运动位置控制系统中,急停处理采用常用编程方法存在着严重的缺陷,许多运行控制系统在急停复位后,不能实现从急停前的断点处继续运行,都是先复位让系统回复到初始状态,再从初态开始运行,这样大大降低了生产效率。
3.1 MC急停控制
3.1.1 PLSY指令位置控制
图2所示为图1位置控制系统采用主控指令MC的急停控制梯形图程序。该程序利用双字脉冲输出指令DPLSY,从Y0输出频率为5 kHz共30 000个脉冲控制步进电机拖动机械手臂位移L=0.06 mm×30 000=1 800 mm。图2所示为系统工作在急停发生时的状态,急停按钮SB0被按下,置位M0发出急停信号,主控开关N0断开,MC N0到MCR N0之间程序块的输出被停止,Y0处于OFF状态,也就是说当急停发生时Y0停止脉冲的输出,Y0的输出脉冲寄存器D8140的值保持为13 686不变,共输了13 686个脉冲,步进电机拖动机械手臂位移L1=0.06 mm×13 686=821.16 mm而停止,急停起到停止运行的作用。
图2 MC控制PLSY指令急停发生时状态
当故障排除,急停复位,主控开关接通,重新启动后,如果系统是从急停前的断点继续工作的话,PLC的Y0端子应再发送30 000-13 686=16 314个脉冲后停止,步进电机拖动机械手臂再次位移L2=0.06 mm×13 686=978.84 mm,L1+L2=1 800 mm。但DPLSY指令的特性是该指令每次得电启动后,都是连续输出程序中设定的脉冲数,所以急停恢复后Y0是连续发送30 000个脉冲才停止,也就是说系统共发出了43 686个脉冲如图3所示,步进电机拖动机械手臂位移为821.16 mm+1 800 mm=2 621.16 mm,超出了原来控制的运动范围,造成机械事故。
图3 MC控制PLSY指令急停恢复后状态
3.1.2 DRVA指令位置控制
图4、图5所示为采用DRVA绝对位置指令,从PLC的Y0发脉冲控制步电机位移的梯形图程序。该程序的功能也是从Y0输出频率为5 kHz共30 000个脉冲,控制步进电机拖动机械手臂位移1 800 mm,D8340为Y0的输出脉冲寄存器。图4是系统工作在急停发生时的状态,主控开关N0断开,MC N0到MCR N0之间程序块的输出被停止,Y0处于OFF状态,Y0的输出脉冲寄存器D8340的值保持为13 330不变,步进电机拖动机械手臂位移L1=0.06 mm×13 330=799.80 mm而停止,急停起到停止运行的作用。
图4 MC控制DRVA指令急停发生时状态
图5 MC控制DRVA指令急停恢复后的状态
DRVA指令是以脉冲输出端子的输出脉冲寄存器为零时,机械手的位置为电气原点的。在这个系统中Y0的输出脉冲寄存器D8340为0时,机械手的位置为电气原点。图4是机械手距电气原点799.80 mm时发生了急停动作,如果不用断开PLC的电源进行急停故障排查,当急停恢复重启后,D8340的值保持为13 330不变,系统的电气原点没有发生变化,根据DRVA绝对位置控制的功能,PLC驱动Y0点再发送30 000-13 686=16 314个脉冲后停止,步进电机拖动机械手臂的位移为1 800 mm,达到控制的要求。
但控制系统发生急停事故之后,往往要停电进行故障排查。D8340数据寄存器不具有停电保持功能,PLC断电后,D8340的数值会清零。当急停故障排除后,PLC系统上电重新启动,因断电时D8340的数值已清零,PLC系统是将D8340为0时机械手的位置看作电气原点,故PLC重新从Y0连续发送30 000个脉冲,步进电机拖动机械手臂位移为799.08 mm+1 800 mm=2 599.08 mm,也超出了原来控制的运动范围,也没达到急停控制的目的。
3.1.3 DRVI指令位置控制
采用相对位置控制指令DRVI从PLC的Y0发脉冲控制步电机,它的程序结构与采用DRVA指令的相似。当急停发生,主控开关断开,Y0停止发脉冲。DRVI是将该指令启动信号看作相对电气原点位置的,所以急停恢复后,DRVI指令将急停断点看成相对电气原点,PLC驱动Y0点重新连续发送30 000个脉冲控制步进电机位移。它实现的功能与PLSY指令相似,机械手将超程运行,这也是机械设计不允许的,达不到急停控制的要求。
3.2 跳转指令CJ控制
图6 CJ指令控制急停发生时状态
许多PLC控制系统的急停设计,也采用条件跳转指令CJ来实现。当跳转指令CJ的条件满足时,跳到CJ指令指定的标签位置P,被跳过的程序模块保存原来的输出不变,但在PLC发脉冲定位控制系统中,这种急停设计也存在着严重的缺陷。按照常规的编程方法,图6所示为位置控制系统采用CJ指令控制急停发生时的梯形图程序,该程序利用DRVA指令从Y0端子发脉冲控制步进电机。当急停发生时,M0得电CJ指令跳转到指定的标签位置P0处,跳过了DRVA指令模块,由图可以看出启动信号M1虽然失电,但由于CJ指令的特性,被跳过的程序块保持原来的输出不变,所以Y0及Y1的值保持为ON不变,Y0一直有脉冲输出,步进电机不会停止。但Y0的脉冲存储器D8340的值,在CJ发生跳转时一直保持在12883不变,这会误导编程者。采用PLSY及DRVI指令的控制结果与DRVA指令是一样,也不能实现急停控制,图7所示为CJ指令控制急停恢复后的状态。
图7 CJ指令控制急停恢复后的状态
4 急停处理的优化设计
通过前面的分析,在基于PLC位置控制系统的急停处理中,不管是采用哪条脉冲发生指令,条件跳转指令CJ都是无法实现急停控制。但在采用主控指令MC的急停处理控制系统中:(1)如果是采用PLSY或DRVI指令发脉冲的,只要在急停恢复时,将原来设置的总脉冲数减去已发送的脉冲数,即可实现要求的急停控制;(2)如果是采用DRVA指令发送脉冲的,只要在急停恢复时,保持已经发送的脉冲数即可。
4.1 PLSY指令位置控制的优化
采用PLSY发脉冲指令,Y0的脉冲存储器是D8140,D8140不具有断电保持功能,通过图2的梯形图分析,不能实现急停控制的主要原因:(1)急停断电排故时D8140的数值已清零;(2)PLSY是以该指令启动信号看作重新开始发送脉冲的信号,所以急停恢复后,PLC驱动Y0点重新连续发送设定的脉冲个数。
在急停发生时,要解决这些问题,先将D8140内的数据存放到一个具有断电保持功能的寄存器中如D202,急停恢复时再将D202的数据传送给D8140;再用一个变量D200来存放PLSY指令要发送的脉冲数,这个变量实时等于总的脉冲数减去已发送的脉冲数。这样就能保证要发送的脉冲数不变达到急停控制的目的。图8所示为MC控制PLSY指令急停控制的优化梯形图程序,在程序执行时步10程序中采用M8000将要总发送的30 000个脉冲实时减去已发送脉冲D8140的数值存放在D200中,D200的数值就是PLSY要发送的脉冲数。同时用DMOV指令实时将D8140的数值传送给D202。在程序运行的第一个周期,步0采用初始化脉冲M8002将D202的数据传送回给D8140。也就是说D202是实时记录PLC已发送的脉冲数,D202具有断电保持功能,当PLC恢复运行时,M8002通过DMOV指令再将D202的数据传送给D8140作为初始值,保持了原来已经发送的脉冲数,同时D200保持还要发送的脉冲数,这样就达到了急停控制的目的。
图8 MC控制PLSY指令急停控制的优化程序
4.2 DRVA指令位置控制的优化
采用DRVA发脉冲指令,因Y0的脉冲存储器D8340不具有断电保持功能,通过图4的梯形图分析,不能实现急停控制的主要原因,是急停断电排故时D8340的数值已清零。所以要在急停发生时,先将D8340内的数据存放到一个具有断电保持功能的寄存器中如D200,急停恢复时再将D200的数据传送给D8340,这样就能保持已发送的脉冲数不变达到急停控制的目的。
图9是MC控制DRVA指令急停控制的优化梯形图程序,在程序执行时步10程序中采用M8000将D8340的数据实时传送给D200保存,在程序运行的第一个周期,步0采用初始化脉冲M8002将D200的数据传送给D8340。也就是说D200是实时记录PLC已发送的脉冲数,D200具有断电保持功能,当PLC恢复运行时,M8002通过DMOV指令再将D200的数据传送给D8340作为初始值,保持了原来已经发送的脉冲数,达到了急停控制的目的。
4.3 DRVI指令位置控制的优化
DRVI指令的程序优化结构与采用PLSY指令的相似。它也要保持已发送的脉冲数及用变量设定DRVI指令要发送的脉冲数。但DRVI指令驱动Y0的脉冲存储器是D8340,通过程序优化后也能达到急停控制的要求。
图9 MC控制DRVA指令急停控制的优化程序
5 结束语
本文通过程序优化设计,实时将PLC已发送的运动脉冲数传送给断电保持存储器,急停发生时能保持原来运动的数据,急停恢复后,不管是采用哪条脉冲指令,运动机械都不用进行归零复位,实现从急停断点连续工作。PLC控制伺服电机的运动系统可采用同样的编程方法。通过实际生产应用,该方法实现了急停控制的需求,保障了人身安全及设备安全,运行效果明显,有力地促进了生产[8],提高了生产线的工作效率,节约了能源,减少了生产成本,创造了较大经济效益。