“四選一”程序是《自學自會指令——三菱fx2n編程技術及應用》(莫操君 編著)的一個試驗模型,它是實際問題的提煉,描述的是:
給定四個輸入x0、x1、x2、x3,四個輸出y0、y1、y2、y3;每個輸入對應一個輸出,但每次最多僅允許一個輸出接通;四個輸入中,每次僅有一個接通,才允許有對應輸出。
并且,假定當輸入x0~x3全部斷開時,輸出y0~y3保持前一狀態(tài)不變;參見表1。
表1 輸入輸出的一一對應關系
| 序號 | 輸 入 | 輸 出 | 說 明 | 備 注 |
| 1 | x0 | y0 | x0單個接通、y0接通 | 輸出y0~y3中,不允許有兩個或兩個以上同時接通 |
| 2 | x1 | y1 | x1單個接通、y1接通 | |
| 3 | x2 | y2 | x2單個接通、y2接通 | |
| 4 | x3 | y3 | x3單個接通、y3接通 |
當輸出是、信號時,雖然在外電路中,可以通過互鎖等連結方式,來保證輸入信號的唯一性,但作為plc程序,仍必須考慮信號的正確與否,以保證在接線錯誤、程序調試時強制接通元件等情況下,系統能夠正常工作。
所以,對于該問題的編程思路,可以是:
(1)判斷信號是否正確;
(2)根據輸入信號狀態(tài)決定輸出。
而且假定,當先有一個輸入接通(例如x0)、對應輸出y0接通時,x0不斷開、再接通x1時,輸出狀態(tài)保持不變,即:y0接通、y1~y3斷開。
而為了簡化問題,當再次只有一個輸入接通時,其動作情況暫不作要求,可以是立即轉換到對應輸出;實際編程時,可根據系統情況作出規(guī)定。
1.判別是否只有一個輸入接通
對于輸入信號數量的判別,《自學自會plc指令——三菱fx2n編程技術及應用》(下稱文獻[1])分別用sum、add、for、ld=、inc等指令進行了介紹。
按照文獻[1]的思想,試驗時可以尋求一個問題的不同解法,以熟悉指令和積累編程經驗,故本文試用移位指令來進行編程,參見圖1。
圖1程序,當x0~x3中,只有一個接通時,m100接通;而當有兩個或兩個以上接通時,m20接通,m100斷開。由于本問題,僅需要判斷是否只有一個輸入接通,而不需要具體數量,故圖1程序能夠滿足使用要求。
但是對于圖1的程序,隨著輸入接通個數的增加,m11、m12、m13均可以接通。
為了方便使用,如果設想,當只有一個輸入接通時、則僅m10接通,而兩個輸入接通時、僅m11接通,三個輸入接通時、僅m12接通,四個輸入接通時、僅m13接通,能否做到呢?為此,試編制一個程序如圖2所示。
圖2中,為便于試驗觀察,特設定y4~y7作為m10~m13的動作指示。手頭沒有plc時,也可以用軟件仿真來驗證結果。
這樣,當圖1中的m100接通、或者圖2中的m10接通,就表示輸入信號正確,允許有對應輸出繼電器接通。
于是,可以進行第2步的程序編制了。












