台州科技职业学院 (浙江 318020) 揭 晓
在数控PMC中,以数控机床的面板按钮为例,有大量的按键初次按下灯亮,再次按下灯灭的例子。如单段运行、润滑、冷却、机床锁住等。
(1)常见的编程方式 如图1所示,图中的X11.7是单段运行,X10.3是选择停止,X11.0是选择跳过,X10.7程序重启,X11.4是机床锁住,X11.3是空运行。一般的程序编写如下:
图1
以单节执行地址X11.7为例,当按下X11.7按钮后,R200.0输出有效,扫描到第二行线圈R200.1输出,使常闭触点R200.1断开,但要到下个扫描周期才有效,常闭触点R200.1要到下个周期才会断开。所以R200.0输出后,R200.0常开触点闭合,使G46.1有输出并自锁,并使选择跳过灯Y7.0有输出。当第二个扫描周期来临,第二行线圈R200.1输出,使常闭触点R200.1断开,使R200.0输出断开,这样第四行的R200.0常闭触点接通,G46.1常开触点由于已自锁,所以G46.1和Y7.0输出依然有效。
当再次按下X11.7以后,R200.0输出有效,使得第四行的R200.0常闭触点断开,G46.1和Y7.0均无输出。
其余的地址X10.3、X10.7、X11.4等情况也同X11.7相同。
(2)程序的初步改进 这样编写PMC程序既繁琐又具有可读性差的特点,尤其是让初学者感到难懂,笔者经研究发现利用功能指令来编写此类程序可以减少程序段数,还可以增加程序的可读性(见图2)。
图2
这种编法的原理是:当按下X11.7时,上升沿有效,R200.0输出。
R200.0常开点闭合,R201开始执行非指令,由于原来R201的状态是处于零位,取反后变为1。这样就输出G46.1和Y7.0。
当再次按下X11.7时,上升沿有效,同样执行取反指令,这时由于R201是处于1的状态的,这时取反就变为0了,这样G46.1和Y7.0就没有输出了。
(3)程序的再次改进 这种编法在一定程度上提高了编程效率,特别是好懂。但效率还是不高,笔者经进一步研究发现采用异或指令可以提高编程效率。程序如下:将所有的按钮X11.7、X10.7等都作为上升沿的初始按钮,以R200的八位数(从R200.0到R200.7 )作为初始状态,与R201的八位数字进行异或,R201.0 到R201.7作为输出,由于R201初始位0,这样按下按钮后,R200就处于1,异或后变为1,这样R201就可以输出了。再次按下按钮,R200和R201均处于1,这样异或后,R201就处于0位了,这样就没有输出了。这样处理可以一次异或八位,提高了编程的效率,也使程序的可读性得到提高。如果面板的按钮还有一些,就再增加一个比如:R202,有可以控制八位输出了(见图3)。
图3