1 引言
可編程序控制器(Programmable Logic Controller)簡稱為PLC,它具有可靠性高、抗干擾能力強等突出優點,因而廣泛應用于工業控制領域,已經成為現代工業自動化的主要支柱之一。在PLC控制系統的設計中,經常會遇到I/O點資源緊張以及性價比矛盾的問題。有些被控設備需要具有手動、自動的工作方式,且手動部分控制按鈕較多;有些自動生產線中,進行位置檢測的行程開關或">

      技術頻道

      擴展PLC控制系統I/O點的方法探討

      1 引言
      可編程序控制器(Programmable Logic Controller)簡稱為PLC,它具有可靠性高、抗干擾能力強等突出優點,因而廣泛應用于工業控制領域,已經成為現代工業自動化的主要支柱之一。在PLC控制系統的設計中,經常會遇到I/O點資源緊張以及性價比矛盾的問題。有些被控設備需要具有手動、自動的工作方式,且手動部分控制按鈕較多;有些自動生產線中,進行位置檢測的行程開關或者用于系統工作狀態指示的輸出比較多,都會使占用的I/O點大為增加。一般通過增加擴展模塊來解決,但PLC的I/O點價格昂貴,且還有擴展模塊數目和I/O點數目的限制,如SIEMENS的CPU 226最大擴展模塊數目為7,最大擴展168路數字量I/O點或35路模擬量I/O點。若此時再增加CPU,勢必使得系統性價比大為降低,在這種情況下,擴展I/O點數具有較大的實際意義。本文以SIEMENS的S7-200 PLC為例,探討如何擴展PLC控制系統中I/O點數的方法。

      2 硬件電路I/O點擴展方法
      2.1 分時分組輸入
      對于既有手動方式又有自動方式,而二者不可能同時執行的PLC工作方式,不同工作方式的輸入可以共用一個PLC的輸入點。分時分組輸入擴展I/O點數接線圖如圖l所示。I1.0用來輸入自動/手動命令信號,供自動和手動程序切換用;二極管用來切斷寄生電路,避免錯誤信號的產生;SA用來切換自動和手動操作方式。

      圖1 分時分組輸入接線圖

      2.2 共用輸出觸點
      對于通斷狀態完全相同的負載,在輸出點功率允許的情況下,可以并聯于同一輸出點上,即用一個輸出點帶動多個負載,需特別注意的是不能超出每個輸出點的允許負載能力。接線方式如圖2所示。

      圖2 共用輸出點接線圖

      2.3 合并輸入觸點
      對于一個由如圖3所示的按鈕和接觸器實現的電動機多點起動、停止的控制要求,例如可在三處實現啟動和停止,其中,SB1、SB2、SB3為起動按鈕,SB11、SB12、SB13為停止按鈕。可以將每個按鈕接PLC的一個輸入點,很容易便可實現。若PLC的輸入點較為緊張,則可以用圖4所示的方式接線,與每個按鈕占用一個輸入點的方式相比,該方法的軟件編程更為簡單。

      圖3 電動機電氣控制原理圖

      圖4 電動機PLC控制接線圖

      3 軟件編程I/O點擴展方法
      軟件擴展的基本思想是一點兩用或輪序復用。即當按鈕初次按下時,輸出要求為高;當按鈕再次按下時,輸出要求為低;再按下時又為高,依此類推。這樣就可以節省一個輸入點,當系統有較多開關量控制時可節省較多輸入點,如主機ON和主機OFF,紙料座上和紙料座下,都可以只用一個輸入點來控制。實現“一點兩用”的編程方法較多,如利用內部輔助繼電器、定時器、計數器、移位指令等,本文僅介紹幾種簡便方法。
      3.1 利用邊沿檢測、輸出指令
      若按鈕SB連到I0.0上,輸出控制Q0.0,利用邊沿檢測和輸出指令實現“一點兩用”,用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
      程序說明:當第1次按下按鈕SB時,I0.0的常開觸點閉合,在RLO邊沿檢測指令FP的作用下,輔助繼電器M0.1接通一個掃描周期,從而輸出繼電器Q0.0的線圈得電,且Q0.0構成自鎖(保持)電路,同時Q0.0另一對常開觸點閉合,為M0.2接通做準備;當第2次按下按鈕SB時,在FP指令的作用下,M0.1的常開觸點接通M0.2的線圈回路,M0.2的常閉觸點切斷了PLC的輸出,從而實現一點兩用。
      3.2 利用邊沿檢測、跳轉指令
      若利用邊沿檢測和跳轉指令,實現起來較為簡便,其STL程序如下。
      A I0.0
      FP M0.0
      JNB OUT
      AN Q0.0
      = Q0.0
      OUT: NOP0
      程序說明:第4、5個語句的功能是實現Q0.0的自取反,但若沒有前面的跳轉指令,則程序每個掃描周期都會將Q0.0的狀態取反一次;第1、2句的作用是限定只有當I0.0的上升沿到時取反一次,否則跳出取反程序段,從而實現一點兩用。
      3.3 利用邊沿檢測、異或指令
      若利用邊沿檢測和異或指令實現起來更為簡便,程序如下。
      A I 0.0
      FP M0.0
      X Q0.0
      = Q0.0
      程序說明:當第1次檢測到I0.0的上升沿,此時Q0.0為0,所以異或后輸出Q0.0為1,第2個掃描周期來時,已經不是I0.0的上升沿了,因此為0,然而此時Q0.0確為1,所以異或后保持結果仍為1;第2次檢測到上升沿時,Q0.0為1,異或后輸出Q0.0的結果為0,等到下一個掃描周期到時,已經不是上升沿了,而此時Q0.0還是為0,因此異或保持輸出仍為0。

      4 硬件和軟件結合I/O點擴展方法
      4.1 硬件編碼和軟件譯碼,擴展輸入點
      在控制系統輸入信號較多的情況下,可以利用編碼器對輸入信號編碼,然后引到PLC的輸入端,再通過PLC內部程序配合進行譯碼,對各個輸入信號加以識別,可以大大減少對輸入點的占用。PLC的外部接線如圖5所示。由于普通編碼器在有多個信號同時輸入時會出現亂碼,故可采用8線-3線優先編碼器74LS148,設定好信號的優先權,有時還要將編碼器的選通輸出端和擴展端也接入PLC中,配合程序減少誤判斷。另外,還要注意的是電平的匹配問題(信號電路的+5V和PLC的+24V之間)以及PLC的輸入口對信號識別所要求的技術規范(驅動電流和電壓能識別的范圍),有時還需增加適當的信號放大和隔離電路。

      圖5 硬件編碼接線圖

      下面以按鈕SB2按下為例,說明PLC內部軟件譯碼的程序識別方法。由74LS148的功能表可知,該芯片低電平有效,因此圖5中用3個非門將輸出電平轉換成正邏輯。若SB2按下,無論SB0和SB1是否按下,但SB3~SB7均未按下;此時,ABC的輸出為101,經過非門后I0.0,I0.1,I0.2的狀態分別為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,從而實現了軟件譯碼的功能。另外需要指出,該方法在PLC的每一個掃描周期只能讀入8個輸入中的一個輸入狀態,若有2個以上開關閉合,PLC只能檢測出優先權高的那個信號。

      4.2 軟件編碼和硬件譯碼,擴展輸出點
      在控制系統輸出信號較多的情況下,可以通過PLC的內部程序對輸出信號進行編碼,然后通過硬件譯碼器進行譯碼,驅動負載工作,這可以大大的減少對輸出點的占用。PLC的外部接線如圖6所示,采用3線-8線譯碼器74LS138。此時,同樣存在電平匹配的問題,即PLC的直流模塊典型輸出為+24V,而信號電路的工作電壓一般為+5V,因此,有時同樣需要增加信號電路以及功率放大電路以驅動負載工作。

      圖6 PLC接線圖

      下面以如何讓Q2為1為例,說明PLC內部軟件的編碼方法。由74LS138的功能表可知,若要使輸出Q2為1,應該使Y2輸出為0;即對應的ABC應該為010,從而得到只要讓PLC的Q0.0,Q0.1,Q0.2分別為0,1,0即可;對應的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進行組合就可以實現對輸出Q0~Q7分別置為1。本方法存在一個明顯的缺點,即每一個掃描周期只能輸出八種狀態中的一種,若要同時置位輸出Q0和Q1是不能實現的。
      4.3 用N個輸入點識別N×(N+1)/2個輸入信號
      若我們將輸入信號接成圖7的形式,再配合以軟件編程便可以實現用3個輸入點識別3×(3+1)/2=6個輸入信號。其基本思想是:當SB1按下時,PLC只檢測到了I0.0為“1”,此時I0.1和I0.2的狀態均為“0”,那么在程序里就將I0.0的常開觸點和I0.1、I0.2的常閉觸點相與來識別SB1的狀態;若SB2按下時,I0.0和I0.1均為“1”,I0.2為“0”,此時識別程序應該為I0.0和I0.1的常開觸點與上I0.2的常閉觸點;其它點的情況類似,輸入信號SB1和SB2的STL識別程序如下,其中,M2.1、M2.2的狀態就代表了信號SB1、SB2的狀態。
      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 用輸入/輸出口組成矩陣式鍵盤
      若控制系統需要設計鍵盤,常規的思路是每個按鍵接一個輸入口。然而,當鍵數增加時,極為浪費輸入點,因此仿照微機系統中制作矩陣式鍵盤的思路,在PLC系統中利用I/O點組成矩陣式鍵盤,如圖8所示為3×3鍵盤結構圖。編程思路:首先,判斷整個鍵盤上有無鍵按下,方法是將行全輸出為1,然后讀入列的狀態,如果列讀入的狀態全為0,則無鍵按下,不全為0則有鍵按下;其次,逐列掃描,方法是依次將行線送1,檢查對應列線的狀態,若列線全為0,則按鍵不在此行;若不全為0,則按鍵必在此行,且是與1電平列線相交的那個鍵。由此可見,對應的軟件編程比較復雜,但是在有些小型的控制系統中可以避免增加操作屏或觸摸屏,從而提高系統性價比。若需要詳細的硬件設計圖和軟件程序可與作者聯系。

      圖8 3×3鍵盤結構圖

      5 結束語
      本文從硬件設計、軟件編程以及硬件軟件結合三個方面探討了擴展PLC I/O點的方法。在具體應用時,還需考慮每種擴展方法的一些優缺點以及抗干擾能力等問題。若能合理的利用這些方法,必能有效的節省PLC的I/O點數,降低系統成本,提供性價比,更為充分的發揮PLC的優勢。


      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 少妇无码一区二区三区免费| 后入内射国产一区二区| 午夜精品一区二区三区在线观看| 亲子乱AV视频一区二区| 日本一区免费电影| 无码人妻精品一区二区三区蜜桃| 国产一区二区三区精品视频| 波多野结衣一区二区三区高清在线 | 无码人妻精品一区二区三区久久 | 国产在线观看一区精品| 激情久久av一区av二区av三区| 色窝窝无码一区二区三区| 国产一区二区三区精品视频| 一区二区手机视频| 一区二区国产在线观看| 暖暖免费高清日本一区二区三区| 波多野结衣久久一区二区| 老熟妇仑乱一区二区视頻| 91精品一区二区三区久久久久| 亚洲无线码一区二区三区| 国产一区二区中文字幕| 亚洲色精品aⅴ一区区三区| 久久婷婷色综合一区二区| 亚洲一区视频在线播放| 久久久99精品一区二区| 中文字幕一区二区三区在线播放 | 国产成人午夜精品一区二区三区 | 春暖花开亚洲性无区一区二区| 亚洲一区二区三区在线观看网站| 69福利视频一区二区| 精品无码人妻一区二区免费蜜桃| 亚洲AV无码一区二区乱子伦 | 久久久久无码国产精品一区| 精品国产亚洲一区二区三区| 亚洲av不卡一区二区三区| 亚洲一区二区三区在线网站| 国产一区二区成人| 国产一区二区精品久久91| 精品一区二区无码AV| 日韩亚洲AV无码一区二区不卡| 国产乱人伦精品一区二区|