擴展PLC控制系統(tǒng)I/O點的方法探討
1 引言
可編程序控制器(Programmable Logic Controller)簡稱為PLC,它具有可靠性高、抗干擾能力強等突出優(yōu)點,因而廣泛應(yīng)用于工業(yè)控制領(lǐng)域,已經(jīng)成為現(xiàn)代工業(yè)自動化的主要支柱之一。在PLC控制系統(tǒng)的設(shè)計中,經(jīng)常會遇到I/O點資源緊張以及性價比矛盾的問題。有些被控設(shè)備需要具有手動、自動的工作方式,且手動部分控制按鈕較多;有些自動生產(chǎn)線中,進行位置檢測的行程開關(guān)或者用于系統(tǒng)工作狀態(tài)指示的輸出比較多,都會使占用的I/O點大為增加。一般通過增加擴展模塊來解決,但PLC的I/O點價格昂貴,且還有擴展模塊數(shù)目和I/O點數(shù)目的限制,如SIEMENS的CPU 226最大擴展模塊數(shù)目為7,最大擴展168路數(shù)字量I/O點或35路模擬量I/O點。若此時再增加CPU,勢必使得系統(tǒng)性價比大為降低,在這種情況下,擴展I/O點數(shù)具有較大的實際意義。本文以SIEMENS的S7-200 PLC為例,探討如何擴展PLC控制系統(tǒng)中I/O點數(shù)的方法。
2 硬件電路I/O點擴展方法
2.1 分時分組輸入
對于既有手動方式又有自動方式,而二者不可能同時執(zhí)行的PLC工作方式,不同工作方式的輸入可以共用一個PLC的輸入點。分時分組輸入擴展I/O點數(shù)接線圖如圖l所示。I1.0用來輸入自動/手動命令信號,供自動和手動程序切換用;二極管用來切斷寄生電路,避免錯誤信號的產(chǎn)生;SA用來切換自動和手動操作方式。
圖1 分時分組輸入接線圖
2.2 共用輸出觸點
對于通斷狀態(tài)完全相同的負載,在輸出點功率允許的情況下,可以并聯(lián)于同一輸出點上,即用一個輸出點帶動多個負載,需特別注意的是不能超出每個輸出點的允許負載能力。接線方式如圖2所示。
圖2 共用輸出點接線圖
2.3 合并輸入觸點
對于一個由如圖3所示的按鈕和接觸器實現(xiàn)的電動機多點起動、停止的控制要求,例如可在三處實現(xiàn)啟動和停止,其中,SB1、SB2、SB3為起動按鈕,SB11、SB12、SB13為停止按鈕??梢詫⒚總€按鈕接PLC的一個輸入點,很容易便可實現(xiàn)。若PLC的輸入點較為緊張,則可以用圖4所示的方式接線,與每個按鈕占用一個輸入點的方式相比,該方法的軟件編程更為簡單。
圖3 電動機電氣控制原理圖
圖4 電動機PLC控制接線圖
3 軟件編程I/O點擴展方法
軟件擴展的基本思想是一點兩用或輪序復(fù)用。即當按鈕初次按下時,輸出要求為高;當按鈕再次按下時,輸出要求為低;再按下時又為高,依此類推。這樣就可以節(jié)省一個輸入點,當系統(tǒng)有較多開關(guān)量控制時可節(jié)省較多輸入點,如主機ON和主機OFF,紙料座上和紙料座下,都可以只用一個輸入點來控制。實現(xiàn)“一點兩用”的編程方法較多,如利用內(nèi)部輔助繼電器、定時器、計數(shù)器、移位指令等,本文僅介紹幾種簡便方法。
3.1 利用邊沿檢測、輸出指令
若按鈕SB連到I0.0上,輸出控制Q0.0,利用邊沿檢測和輸出指令實現(xiàn)“一點兩用”,用STEP7 V5.3編制的STL程序如下。
A I0.0
FP M0.0
= M0.1
A M0.1
A Q0.0
= M0.2
A(
O M0.1
O Q0.0
)
AN M0.2
= Q0.0
程序說明:當?shù)?次按下按鈕SB時,I0.0的常開觸點閉合,在RLO邊沿檢測指令FP的作用下,輔助繼電器M0.1接通一個掃描周期,從而輸出繼電器Q0.0的線圈得電,且Q0.0構(gòu)成自鎖(保持)電路,同時Q0.0另一對常開觸點閉合,為M0.2接通做準備;當?shù)?次按下按鈕SB時,在FP指令的作用下,M0.1的常開觸點接通M0.2的線圈回路,M0.2的常閉觸點切斷了PLC的輸出,從而實現(xiàn)一點兩用。
3.2 利用邊沿檢測、跳轉(zhuǎn)指令
若利用邊沿檢測和跳轉(zhuǎn)指令,實現(xiàn)起來較為簡便,其STL程序如下。
A I0.0
FP M0.0
JNB OUT
AN Q0.0
= Q0.0
OUT: NOP0
程序說明:第4、5個語句的功能是實現(xiàn)Q0.0的自取反,但若沒有前面的跳轉(zhuǎn)指令,則程序每個掃描周期都會將Q0.0的狀態(tài)取反一次;第1、2句的作用是限定只有當I0.0的上升沿到時取反一次,否則跳出取反程序段,從而實現(xiàn)一點兩用。
3.3 利用邊沿檢測、異或指令
若利用邊沿檢測和異或指令實現(xiàn)起來更為簡便,程序如下。
A I 0.0
FP M0.0
X Q0.0
= Q0.0
程序說明:當?shù)?次檢測到I0.0的上升沿,此時Q0.0為0,所以異或后輸出Q0.0為1,第2個掃描周期來時,已經(jīng)不是I0.0的上升沿了,因此為0,然而此時Q0.0確為1,所以異或后保持結(jié)果仍為1;第2次檢測到上升沿時,Q0.0為1,異或后輸出Q0.0的結(jié)果為0,等到下一個掃描周期到時,已經(jīng)不是上升沿了,而此時Q0.0還是為0,因此異或保持輸出仍為0。
4 硬件和軟件結(jié)合I/O點擴展方法
4.1 硬件編碼和軟件譯碼,擴展輸入點
在控制系統(tǒng)輸入信號較多的情況下,可以利用編碼器對輸入信號編碼,然后引到PLC的輸入端,再通過PLC內(nèi)部程序配合進行譯碼,對各個輸入信號加以識別,可以大大減少對輸入點的占用。PLC的外部接線如圖5所示。由于普通編碼器在有多個信號同時輸入時會出現(xiàn)亂碼,故可采用8線-3線優(yōu)先編碼器74LS148,設(shè)定好信號的優(yōu)先權(quán),有時還要將編碼器的選通輸出端和擴展端也接入PLC中,配合程序減少誤判斷。另外,還要注意的是電平的匹配問題(信號電路的+5V和PLC的+24V之間)以及PLC的輸入口對信號識別所要求的技術(shù)規(guī)范(驅(qū)動電流和電壓能識別的范圍),有時還需增加適當?shù)男盘柗糯蠛透綦x電路。
圖5 硬件編碼接線圖
下面以按鈕SB2按下為例,說明PLC內(nèi)部軟件譯碼的程序識別方法。由74LS148的功能表可知,該芯片低電平有效,因此圖5中用3個非門將輸出電平轉(zhuǎn)換成正邏輯。若SB2按下,無論SB0和SB1是否按下,但SB3~SB7均未按下;此時,ABC的輸出為101,經(jīng)過非門后I0.0,I0.1,I0.2的狀態(tài)分別為0,1,0;對應(yīng)的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個以上開關(guān)閉合,PLC只能檢測出優(yōu)先權(quán)高的那個信號。
4.2 軟件編碼和硬件譯碼,擴展輸出點
在控制系統(tǒng)輸出信號較多的情況下,可以通過PLC的內(nèi)部程序?qū)敵鲂盘栠M行編碼,然后通過硬件譯碼器進行譯碼,驅(qū)動負載工作,這可以大大的減少對輸出點的占用。PLC的外部接線如圖6所示,采用3線-8線譯碼器74LS138。此時,同樣存在電平匹配的問題,即PLC的直流模塊典型輸出為+24V,而信號電路的工作電壓一般為+5V,因此,有時同樣需要增加信號電路以及功率放大電路以驅(qū)動負載工作。
圖6 PLC接線圖
下面以如何讓Q2為1為例,說明PLC內(nèi)部軟件的編碼方法。由74LS138的功能表可知,若要使輸出Q2為1,應(yīng)該使Y2輸出為0;即對應(yīng)的ABC應(yīng)該為010,從而得到只要讓PLC的Q0.0,Q0.1,Q0.2分別為0,1,0即可;對應(yīng)的STL編碼程序如下,其中M1.2為置位輸出Q2的條件。
LD M1.2
S Q0.0, 1
R Q0.1, 1
S Q0.2, 1
這樣,只需對Q0.0,Q0.1,Q0.2進行組合就可以實現(xiàn)對輸出Q0~Q7分別置為1。本方法存在一個明顯的缺點,即每一個掃描周期只能輸出八種狀態(tài)中的一種,若要同時置位輸出Q0和Q1是不能實現(xiàn)的。
4.3 用N個輸入點識別N×(N+1)/2個輸入信號
若我們將輸入信號接成圖7的形式,再配合以軟件編程便可以實現(xiàn)用3個輸入點識別3×(3+1)/2=6個輸入信號。其基本思想是:當SB1按下時,PLC只檢測到了I0.0為“1”,此時I0.1和I0.2的狀態(tài)均為“0”,那么在程序里就將I0.0的常開觸點和I0.1、I0.2的常閉觸點相與來識別SB1的狀態(tài);若SB2按下時,I0.0和I0.1均為“1”,I0.2為“0”,此時識別程序應(yīng)該為I0.0和I0.1的常開觸點與上I0.2的常閉觸點;其它點的情況類似,輸入信號SB1和SB2的STL識別程序如下,其中,M2.1、M2.2的狀態(tài)就代表了信號SB1、SB2的狀態(tài)。
LD I0.0
AN I0.1
AN I0.2
= M2.1
//信號SB1的識別
LDN I0.0
A I0.1
A I0.2
= M2.2
//信號SB2的識別
需要指出:這種方法不能識別2個及2個以上的信號同時為1的情況,如SB1和SB3同時接通,程序會把它當成SB2接通的情況識別。圖7中二極管的作用是為了隔斷寄生電流形成通路。其實,用3個輸入點最多可以7個信號的識別,如果在圖7中再加一個SB7,用3個二極管連到I0.0、I0.1、I0.2上,則可以通過將3個點的常開觸點相與來識別SB7,但這樣過于繁瑣,因此一般不采用。
圖7 硬件接線圖
4.4 用輸入/輸出口組成矩陣式鍵盤
若控制系統(tǒng)需要設(shè)計鍵盤,常規(guī)的思路是每個按鍵接一個輸入口。然而,當鍵數(shù)增加時,極為浪費輸入點,因此仿照微機系統(tǒng)中制作矩陣式鍵盤的思路,在PLC系統(tǒng)中利用I/O點組成矩陣式鍵盤,如圖8所示為3×3鍵盤結(jié)構(gòu)圖。編程思路:首先,判斷整個鍵盤上有無鍵按下,方法是將行全輸出為1,然后讀入列的狀態(tài),如果列讀入的狀態(tài)全為0,則無鍵按下,不全為0則有鍵按下;其次,逐列掃描,方法是依次將行線送1,檢查對應(yīng)列線的狀態(tài),若列線全為0,則按鍵不在此行;若不全為0,則按鍵必在此行,且是與1電平列線相交的那個鍵。由此可見,對應(yīng)的軟件編程比較復(fù)雜,但是在有些小型的控制系統(tǒng)中可以避免增加操作屏或觸摸屏,從而提高系統(tǒng)性價比。若需要詳細的硬件設(shè)計圖和軟件程序可與作者聯(lián)系。
圖8 3×3鍵盤結(jié)構(gòu)圖
5 結(jié)束語
本文從硬件設(shè)計、軟件編程以及硬件軟件結(jié)合三個方面探討了擴展PLC I/O點的方法。在具體應(yīng)用時,還需考慮每種擴展方法的一些優(yōu)缺點以及抗干擾能力等問題。若能合理的利用這些方法,必能有效的節(jié)省PLC的I/O點數(shù),降低系統(tǒng)成本,提供性價比,更為充分的發(fā)揮PLC的優(yōu)勢。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。