PLC的數據顯示功能一直是困擾PLC使用的難題。在PLC的應用中,經常要監測一些重要數據,但PLC的數據顯示通常是使用外部顯示設備,如顯示屏或觸摸屏,而這些顯示設備的價格一般比較昂貴,對一些小型系統來說更浪費。因此,如何顯示PLC的數據,并盡可能做到高效率、高穩定性、抗干擾能力強、硬件投資少,是許多設計中需要考慮的問題。筆者使用的西門子S7-200PLC中有專門的指令控制LED數碼管顯示,SEGIN,OUT指令就是將IN端輸入字節的低4位確定的16進制數自動轉換為相對應的7段LED數碼管各段的代碼,并送到輸出字節OUT端顯示。若采用靜態LED數碼顯示,PLC顯示一位十進制數據需要7個輸出點予以控制,如果要顯示n位數據,則需要7n個輸出點。所以,使用這種方式對于顯示數據的位數較多時,需要大量的輸出點,而PLC的價格是以輸入輸出點數來計算的,這直接導致硬件成本的上升,鑒于此種原因,尋找一種廉價的顯示技術就顯得尤為必要。提出借鑒單片機的LED數碼管動態掃捕顯示原理,結合PLC周期性掃捕的特點,采用PLC直接輸出數字量驅動數碼管,將PLC開關量輸出分為兩部分,一部分用作數據輸出,另一部分用作控制數碼管公共端信號的輸出。利用人眼的余輝效應,循環點亮每個數碼管,本方法操作簡單、成本低廉。 1 設計實現 所謂動態掃描就是利用PLC周期性掃描的特點,在編程時要做到每個周期只有一個數碼管能夠形成通電回路,從而得電點亮,因為一個掃描周期的時間過短,只有幾十ms,所以人眼感覺每個數碼管都是均勻通電亮著的,同時沒有拖尾現象。 1.1 硬件設計 設計方法的硬件電路實現是一個起動按鈕SB1和一個停止按鈕SB2,兩個數碼管的a、b、c、d、e、f、g段分別連在一起,再與PLC的輸出端Q0.0~Q0.7通過限流電阻連接,兩個數碼管的公共端com1和com2分別通過三極管由PLC的輸出端Q1.0和Q1.1控制,其接線原理如圖1所示。 圖1 雙數碼管掃描顯示PLC驅動電路 由PLC輸出端Q1.0和Q1.1的高低電平控制處于開關工作狀態的三極管,使數碼管com1和com2端循環與PLC公共端M導通輸出,分時選中不同的數碼管,由PLC輸出端Q0.0~Q0.7輸出相應的數據再根據公共端信號使相應的數碼管a、b、c、d、e、f、g段顯示。通過軟件編程可實現用一組起停按鈕控制兩組數碼管顯示相應的數據。1.2 軟件設計 通過兩個軟件設計實現同一硬件電路不同功能的實例來闡述設汁的軟件實現。 1.2.1 軟件設計實例1 此程序實現0~99s反復計數功能,按動SB1起動計數,按動SB2使計數停在計數所停位置,再按動啟動按鈕重新從0開始計數,計數到99后重新從0開始計數。該程序梯形圖如圖2所示。 圖2 軟件設計實例1的梯形圖程序 以上軟件對特殊存儲器位SM0.5產生的1s的時鐘脈沖計數,使用PLC數據運算、傳送、轉換的功能指令傳送、處理變化的計數數據,然后用段譯碼SEG指令驅動7段數碼管,由兩個定時器分別產生周期為200ms、相互反相的時鐘脈沖控制顯示變化的計數數據。1.2.2軟件設計實例2 此程序實現50s倒計時功能,按動SB1起動計時,按動SB2停止計時,同時數碼管熄滅,再按動啟動按鈕重新50s倒計時,計時到0s時,數碼管自動熄滅。 2 結束語 設計主要是將一個兩位數分成兩組數據分別在十位和個位數碼管上顯示,程序采用循環控制方式,則一個掃描周期顯示一組數據,即兩組數據循環顯示。假設程序掃描周期為100ms,定時器定時100ms,那么每組數據的更新周期為100×2=200ms,這樣的顯示頻率足可以達到一般的工業控制要求,完全可以用作實時顯示。同樣,若顯示多組數據,其數據線接法是一樣的,只需增加控制數碼管公共端信號的PLC輸出點,PLC輸出點數為7+n,n為數碼管個數;軟件稍加改動即可。筆者介紹的方法軟、硬件設計均在實驗室調試成功,完全滿足設計要求,并且降低了硬件成本,取得了較好的效果。 |