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