先讲故障吧。这个故障具有代表性中间涉及到nc与plc的基础知识所以发上来供大家参考下。公司一台进口滚齿机进两个星期偶尔出现机械手碰撞,原因是当挡停器放过第一个托盘时没有按照程序动作将后面的托盘挡住,导致后面所有的托盘挤压上料位置的托盘造成位移,这时机械手过来上下料就会撞机。
故障处理:由于这是程序某个条件没有满足导致程序动作异常所以我们使用安装simatic step 7 5.5软件的电脑对机床进行排故最终找到是因为程序设定缺陷导致。
以下是查找故障的详细经过。
一、先从挡停器的电磁阀开始,通过查找电器图纸知道控制该挡停器的plc控制点为q130.2,我们在plc中找到该点发现q130.2是通过子程序fc1112调用控制的(图2) 。
图2
二、打开fc1112功能块根据引脚#actuatora找到是#m_storea控制的(图3),而控制#m_storea又是#m_pulsa的。最终控制的点是 db256. dbx [ar1,p#0.0] 控制(图4),其中ar1中包含了偏移地址118转换为位地址就是dbx0.0加偏移地址14.6等于dbx14.6。
图3
图4
三、打开db256数据块找到dbx14.6地址后面显示地址为118(图5),通过交叉数据未能找到该点写入点但我们根据注释猜到该点位通过nc中m代码控制(图6),m功能在简明调试手册中的通道信号这一节有介绍。
图5
图6
四、打开nc程序搜索m118,在l7294子程序下找到相关代码(图7),根据plc分析m118为挡停器开m117挡停器关。
图7
五、根据nc程序动作原理当挡停器打开后用暂停指令g4 f 0.5延时0.5秒,然后对palett_in_st3 变量判断为假就执行m117关闭挡停器否则就不执行m117造成机床故障。
六、搜索nc变量palett_in_st3 可以看到它来自$a_dbb[138] 中的第4位而根据nc程序注释$a_dbb[138]又来自plc中的mb200见(图8) 。
我们在plc程序中搜索nc/plc接口程序fc21,在该程序段中看到plc将mb200开始的4个byte 量写到nc变量$a_dbb[138]开始的四个字节中,那么$a_dbb[138]第四位对于着mb200的0第四位,继续在plc程序搜索m200.4。发现m200.4的信号是plc外部输入i130.0给过来的见(图10)。
图8
图9
图10
七、对应电气图纸我们查到plc输入点i130.0为挡停器工位处检测托盘的解决开关信号用于检测挡停器是否有托盘,那么我们就可以通过这些信号分析程序动作了(图11)。
首先挡停器放过一只托盘并等待0.5秒检测挡停器工位托盘信号如果没有信号机床认为托盘已经通过,可以关闭挡停器有信号表示托盘并没有通过挡停器,所以一直打开挡停器,但是第一只托盘经过后恰巧第二只托盘碰到接近开关就好造成挡停器无法关闭的bug,所以我们根据现象认为是托盘前进速度变快了。
图11
八、根据以上分析我们修改nc程序中挡停器打开的延时g4f0.5将0.5改为0.4(图12),修改后机床动作没问题,故障现象也完全消除了。
图12
这个故障前后花了两个多小时,算不上什么大故障但小故障不出以后可能会酿成大故障。