余胜林
(中国电子科技集团公司第三十八研究所,安徽 合肥 230088)
笔者所厂于2010年引进首条电镀自动生产线,主要是为军工产品的无氰镀银新工艺配套。同年年末无氰镀银工艺经前期项目论证后正式上线,随着生产量的加大,电流自动控制与军品品种多、批量小的矛盾日益突显,且关系到后续自动化改造升级的前景。因此笔者通过组建QC(质量控制)攻关团队,查找问题的根源并制订对策。本文在QC 活动成果的基础上,主要阐述电流控制故障原因分析及如何通过合理编程来解决PLC(可编程逻辑控制器)硬件上的小BUG(漏洞),希望能为同行解决类似问题提供参考。
该电镀自动生产线采用西门子公司S7-300 型可编程控制器,安装了2 套由变频器驱动的U 型龙门式吊车和人–机界面装置,配备了可进行编程控制的新型高频开关电源,且采用模块化程序设计,从而保证了控制系统的稳定可靠,适应用户的不同需要。
无氰镀银生产线产量逐渐增大以后,在电流控制方面出现了以下故障:零件入槽后整流器无电流输出或电流输出不正确,需要人工干预。设备供应商的软件工程师在仔细检查软件后,提出故障可能是由操作失误造成,随后在人–机界面上增加了电流运行更改输入框(见图1),发现电流异常时可在此框中随即更改。
图1 人–机界面局部视图Figure 1 Partial view of human–machine interface
但类似故障并没有因设备操作人员熟练度的提升而降低,甚至有加剧的趋势,因此初步判定故障产生的原因与设备操作人员无关。
工程人员绘制出PLC 控制整流器流程图(图2)后,QC 小组成员利用“头脑风暴法”将所有影响因素一一列出,并采取现场观察、测量和试验等方法进行逐一验证,找出了4 个影响因素,其中3 个因素与PLC 程序有关,即挂具号自动计数程序出错,电流设定值移库参数设置不当,以及零件入槽时读取电流设定值程序出错。
图2 PLC 控制整流器控制流程图Figure 2 Flow chart of control of PLC rectifier
(1)程序中挂具号自动计数出错,如图3 所示,在工程机的监控画面上出现相同的挂具号。
图3 工程机监控截图Figure 3 Screenshot during monitoring of engineering machine
利用Step7(S7-300/400 的编程软件)在线监视功能监视PLC 挂具自动计数程序段(见图4)时发现,其中的RLO(逻辑运算结果)正跳沿指令失效,导致M405.0在数个扫描周期内都是接通的,挂具计数并没有循环递次增加。
图4 挂具自动计数程序段Figure 4 Program segment for automatic counting of racks
图4 中符号的注释参见表1,文中未作注释的符号均为临时符号,无具体含义。
(2)电流设定值移库条件设置不当,即程序无法将电流设定值移到指定DB(数据库)中。利用Step7 在线监视功能查看PLC 中数据变化时发现,与挂具号对应DB 中的数值发生变化的同时,与前一挂具号对应DB 中的数值也改变。分析PLC 程序(见图5)时发现,其与挂具号自动计数程序的条件相同,采用RLO 正跳沿指令,在M97.0 接通后数个扫描周期内PLC 都进行数据移库操作,同时改变了数个对应DB 内的数值,若上一槽零件未到达指定镀槽,则零件入槽时就读取改变后的数值,这与现场发现电流设定值改变时,上一槽的电流值偶尔会改变且与新设定值相同的现象吻合。
图5 电流设定值移库程序段Figure 5 Program segment for transmission of preset electrical current value from one database to another
(3)零件入槽时读取电流设定值程序出错。在线监视程序时发现,行车到达指定镀槽后,即使上述DB中有数据,在存放控制整流器的临时DB 内,与整流器对应的数据始终为零。通过分析发现,镀件入槽、程序读取电流设定值时,PLC 程序(见图6)中采用了RLO 正跳沿指令,M237.0 接通后数个同期内会发生读取电流值动作,且MW200 的值在每个周期内都会增加50,导致指针偏离正确DB 地址,无数可读,最终表现为电流输出为零。
从以上3 点可以看出,PLC 内RLO 正跳沿指令失效是造成电流控制故障的主要原因。
图6 读取电流设定值程序段Figure 6 Program segment for reading preset electrical current
针对RLO 正跳沿指令失效这一硬件BUG,决定通过编写单周期响应程序来解决。由于挂具号改变条件与设定值移库条件相同,因此将电流设定值移库程序段移入挂具计数所在的程序模块内,用同一个单周期响应程序控制两个操作,先进行挂具计数,然后进行电流设定值移库,从而保证挂具号循环递次增大,电流设定值移入对应的DB 内,同时将改变后的挂具号直接写入上下料位对应(38 号)工位的数据库中,具体程序见图7。
在解决零件入槽时读取电流设定值程序出错之时,综合考虑了控制整流器与读取电流设定值是一体的,因此决定设计一个新程序模块FC25,统一考虑电流设定值读取,电流自动比对、纠错,以及终点电流清零功能,并通过行车位置信息和吊钩动作信息共同决定电流设定值读取,在整流器运行过程之中进行电流值比对和纠错,在零件出槽时对整流器发出清零指令,FC25 的工作原理如图8 所示,改变后的程序见图9。
图7 挂具自动计数与电流设定值移库程序段Figure 7 Program segment for automatic counting of racks and transmission of preset electrical current from one database to another
图8 FC25 程序模块的流程图Figure 8 Flow chart of FC25 program module
图9 修改后的读取电流设定值程序段Figure 9 Modified program segment for reading preset electrical current
2年多的实践证明了QC 小组活动能帮助工程师快速、准确地找出PLC 应用中的问题,从而使问题得以彻底解决。在解决问题的过程中,笔者也获得了另外一个惊喜,即对自动生产线进行改造,使其具有带电入槽的功能[1]。
[1]余胜林.铝合金电镀自动生产线带电入槽的实现[J].电镀与涂饰,2012,31 (4):17-19.