基于51單片機構(gòu)成的工業(yè)控制系統(tǒng)
摘要:本文介紹了一種基于51單片機構(gòu)成的工業(yè)采集控制系統(tǒng),此系統(tǒng)滿足一般過程控制及數(shù)據(jù)采集等控制系統(tǒng)的需妻,可作為下位機并與labview或VB等編程系統(tǒng)組成的上位機通過RS232進行控制和數(shù)據(jù)采集,實踐證明此系統(tǒng)不僅體積小、成本低,而且是一種運行可靠、安全、高速的控制系統(tǒng)。
關(guān)鍵詞:MCS-51;數(shù)據(jù)采集;過程控制;labview
0 引言
近年來自動化控制領(lǐng)域日新月異,諸如PLC、DCS、PAC等控制系統(tǒng)層出不窮,但是諸如此類的控制系統(tǒng)的應(yīng)用需要相對昂貴的成本,一方面為了方便客戶使用,控制系統(tǒng)生產(chǎn)廠家極力推行自己的編程語言,而在科研領(lǐng)域,大部分科研人員都已熟練掌握了C語言、VB等編程語言,一些科研項目的建設(shè)完全沒有必要采用PLC、DCS等動輒幾萬甚至幾十萬元的控制系統(tǒng)作為一次性的試驗投入。因此本文介紹一種基于51單片機構(gòu)成的工業(yè)控制采集系統(tǒng),成本不足千元,并且可以滿足相當(dāng)一部分工業(yè)控制采集系統(tǒng)的需要。
1 系統(tǒng)組成
本系統(tǒng)由以下芯片組成:一片89C52單片機(限于篇幅,管腳說明見參考文獻)、兩片MAXl86AD采集、兩片74HC573作為開關(guān)量輸出鎖存、兩片74LS245作為開關(guān)量輸入信號緩沖、一片MAX232C用于與上位機通訊。16個采集通道部分原理圖如圖l所示。
MAXl86CS片選信號接單片機P2.7口,P2口一共可以接四片MAXl86,分別接P2.7、P2.6、P2.5、P2.4,如果需要更多的模擬量采集則需要使用74HCl38來進行譯碼,以擴展單片機接口,不過系統(tǒng)運行速度會減慢。
開關(guān)量的輸入采用74LS245進行緩沖,每片74LS245外部可以連接8個開關(guān)量輸入信號,緩沖器74LS245的CS片選信號接單片機P3的空引腳,例如P3~5位,當(dāng)需要更多的開關(guān)量輸入信號時候可增加一片74LS245,將片選信號端接單片機P3口剩余的空引腳,如果空引腳不足,則需要將各片選信號接74HCl38譯碼器來根據(jù)需要擴展。
圖2所示為一片74LS245組成的8個開關(guān)量輸入通道。
開關(guān)量的輸出采用74HC573進行鎖存,每片74HC573可以輸出8個開關(guān)量信號,通過三極管8150放大信號后驅(qū)動繼電器線圈,如圖3所示。
鎖存器74HC573的選通信號由單片機P3~7位控制,鎖存允許信號直接接地,在P3~7為O時鎖存器輸出為P0口數(shù)據(jù),可利用單片機P3~6位控制另外一片74HC573的選通與否,以擴展開關(guān)量輸出口。
通訊部分采用芯片MAX232C與上位機通訊,具體接線如圖4所示。
此通訊電路僅能實現(xiàn)15m的通訊距離,如果需要更長距離通訊,則需先將信號轉(zhuǎn)換為RS422全雙工信號,在計算機一端再轉(zhuǎn)換為RS232接入計算機即可。
2 編程環(huán)境及程序
本系統(tǒng)使用Keil V3.0作為編程環(huán)境(編程環(huán)境介紹見參考文獻),MAXl86采集子程序如下:
開關(guān)量輸入輸出部分的程序在main函數(shù)中,由串口收到的上位機開關(guān)量狀態(tài)數(shù)據(jù)直接作為單片機輸出數(shù)據(jù)輸出到P0口,P0各位作為一個開關(guān)量通過圖3所示的放大電路驅(qū)動各開關(guān)量負載。單片機開關(guān)量輸入數(shù)據(jù)直接發(fā)送回上位機回顯單片機Pl口各位狀態(tài)。
3 結(jié)束語
本系統(tǒng)通過PCB制板封裝后,調(diào)試正常,16路數(shù)據(jù)采集正常,16路開關(guān)量輸入、16路開關(guān)量輸出正常,工作可靠安全,可脫離上位機單獨使用。如果需要擴展輸入輸出端口,只需使用MODBUS協(xié)議將此套系統(tǒng)組成RTU設(shè)備網(wǎng)絡(luò)即可實現(xiàn)。本系統(tǒng)不建議采用多片選通的方式增加輸入輸出口,這樣系統(tǒng)執(zhí)行速度會受到影響,采用STC89C52單片機一片不足5元,為了系統(tǒng)安全可靠的運行,所以采用多片單片機組成MODBUS網(wǎng)絡(luò)來進行擴展可以增加系統(tǒng)可靠性,而且每個控制模塊出現(xiàn)故障時不影響其他控制模塊的正常運行和通訊。