硬件和軟件結合I/O點擴展方法 4.1 硬件編碼和軟件譯碼,擴展輸入點
在控制系統(tǒng)輸入信號較多的情況下,可以利用編碼器對輸入信號編碼,然后引到PLC的輸入端,再通過PLC內部程序配合進行譯碼,對各個輸入信號加以識別,可以大大減少對輸入點的占用。PLC的外部接線如圖5所示。由于普通編碼器在有多個信號同時輸入時會出現(xiàn)亂碼,故可采用8線-3線優(yōu)先編碼器74LS148,設定好信號的優(yōu)先權,有時還要將編碼器的選通輸出端和擴展端也接入PLC中,配合程序減少誤判斷。另外,還要注意的是電平的匹配問題(信號電路的+5V和PLC的+24V之間)以及PLC的輸入口對信號識別所要求的技術規(guī)范(驅動電流和電壓能識別的范圍),有時還需增加適當?shù)男盘柗糯蠛透綦x電路。
圖5 硬件編碼接線圖
下面以按鈕SB2按下為例,說明PLC內部軟件譯碼的程序識別方法。由74LS148的功能表可知,該芯片低電平有效,因此圖5中用3個非門將輸出電平轉換成正邏輯。若SB2按下,無論SB0和SB1是否按下,但SB3~SB7均未按下;此時,ABC的輸出為101,經過非門后I0.0,I0.1,I0.2的狀態(tài)分別為0,1,0;對應的STL譯碼程序如下。
LDN I0.0
A I0.1
AN I0.2
= M0.2
這樣,筆者在程序里用M0.2的常開觸點代替了按鈕SB2。即當按鈕SB2按下,M0.2為1;SB2彈起,M0.2又為0,從而實現(xiàn)了軟件譯碼的功能。另外需要指出,該方法在PLC的每一個掃描周期只能讀入8個輸入中的一個輸入狀態(tài),若有2個以上開關閉合,PLC只能檢測出優(yōu)先權高的那個信號。
4.2 軟件編碼和硬件譯碼,擴展輸出點
在控制系統(tǒng)輸出信號較多的情況下,可以通過PLC的內部程序對輸出信號進行編碼,然后通過硬件譯碼器進行譯碼,驅動負載工作,這可以大大的減少對輸出點的占用。PLC的外部接線如圖6所示,采用3線-8線譯碼器74LS138。此時,同樣存在電平匹配的問題,即PLC的直流模塊典型輸出為+24V,而信號電路的工作電壓一般為+5V,因此,有時同樣需要增加信號電路以及功率放大電路以驅動負載工作。