臺州科技職業學院 (浙江 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