臺州科技職業(yè)學(xué)院 (浙江 318020) 揭 曉
在數(shù)控PMC中,以數(shù)控機(jī)床的面板按鈕為例,有大量的按鍵初次按下燈亮,再次按下燈滅的例子。如單段運(yùn)行、潤滑、冷卻、機(jī)床鎖住等。
(1)常見的編程方式 如圖1所示,圖中的X11.7是單段運(yùn)行,X10.3是選擇停止,X11.0是選擇跳過,X10.7程序重啟,X11.4是機(jī)床鎖住,X11.3是空運(yùn)行。一般的程序編寫如下:
圖1
以單節(jié)執(zhí)行地址X11.7為例,當(dāng)按下X11.7按鈕后,R200.0輸出有效,掃描到第二行線圈R200.1輸出,使常閉觸點(diǎn)R200.1斷開,但要到下個(gè)掃描周期才有效,常閉觸點(diǎn)R200.1要到下個(gè)周期才會斷開。所以R200.0輸出后,R200.0常開觸點(diǎn)閉合,使G46.1有輸出并自鎖,并使選擇跳過燈Y7.0有輸出。當(dāng)?shù)诙€(gè)掃描周期來臨,第二行線圈R200.1輸出,使常閉觸點(diǎn)R200.1斷開,使R200.0輸出斷開,這樣第四行的R200.0常閉觸點(diǎn)接通,G46.1常開觸點(diǎn)由于已自鎖,所以G46.1和Y7.0輸出依然有效。
當(dāng)再次按下X11.7以后,R200.0輸出有效,使得第四行的R200.0常閉觸點(diǎn)斷開,G46.1和Y7.0均無輸出。
其余的地址X10.3、X10.7、X11.4等情況也同X11.7相同。
(2)程序的初步改進(jìn) 這樣編寫PMC程序既繁瑣又具有可讀性差的特點(diǎn),尤其是讓初學(xué)者感到難懂,筆者經(jīng)研究發(fā)現(xiàn)利用功能指令來編寫此類程序可以減少程序段數(shù),還可以增加程序的可讀性(見圖2)。
圖2
這種編法的原理是:當(dāng)按下X11.7時(shí),上升沿有效,R200.0輸出。
R200.0常開點(diǎn)閉合,R201開始執(zhí)行非指令,由于原來R201的狀態(tài)是處于零位,取反后變?yōu)?。這樣就輸出G46.1和Y7.0。
當(dāng)再次按下X11.7時(shí),上升沿有效,同樣執(zhí)行取反指令,這時(shí)由于R201是處于1的狀態(tài)的,這時(shí)取反就變?yōu)?了,這樣G46.1和Y7.0就沒有輸出了。
(3)程序的再次改進(jìn) 這種編法在一定程度上提高了編程效率,特別是好懂。但效率還是不高,筆者經(jīng)進(jìn)一步研究發(fā)現(xiàn)采用異或指令可以提高編程效率。程序如下:將所有的按鈕X11.7、X10.7等都作為上升沿的初始按鈕,以R200的八位數(shù)(從R200.0到R200.7 )作為初始狀態(tài),與R201的八位數(shù)字進(jìn)行異或,R201.0 到R201.7作為輸出,由于R201初始位0,這樣按下按鈕后,R200就處于1,異或后變?yōu)?,這樣R201就可以輸出了。再次按下按鈕,R200和R201均處于1,這樣異或后,R201就處于0位了,這樣就沒有輸出了。這樣處理可以一次異或八位,提高了編程的效率,也使程序的可讀性得到提高。如果面板的按鈕還有一些,就再增加一個(gè)比如:R202,有可以控制八位輸出了(見圖3)。
圖3