基于單片機(jī)通信網(wǎng)絡(luò)的分布式數(shù)據(jù)采集與控制系統(tǒng)的實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在生產(chǎn)酸酐的小型控制現(xiàn)場(chǎng)中,需要對(duì)各反應(yīng)釜的溫度和壓力進(jìn)行實(shí)時(shí)的監(jiān)測(cè),并使它們保持在規(guī)定的誤差范圍內(nèi)。由于需要控制的設(shè)備較多、相互距離又較遠(yuǎn),且現(xiàn)場(chǎng)有較強(qiáng)的工業(yè)干擾,因此采用體積小、抗干擾能力強(qiáng)的單片機(jī)作為上位機(jī)與現(xiàn)場(chǎng)控制器來(lái)組成分布式數(shù)據(jù)采集與控制系統(tǒng)。在該系統(tǒng)中,上位機(jī)與現(xiàn)場(chǎng)控制器之間采用通信網(wǎng)絡(luò)連接,各測(cè)控單元獨(dú)立工作,完成參數(shù)的測(cè)量與控制;而在主控室內(nèi),由主機(jī)對(duì)各現(xiàn)場(chǎng)測(cè)控器的工作狀態(tài)進(jìn)行監(jiān)測(cè),向各分機(jī)發(fā)送控制命令以及對(duì)整個(gè)生產(chǎn)過(guò)程的數(shù)據(jù)進(jìn)行統(tǒng)一的顯示、儲(chǔ)存等。在本系統(tǒng)中采用主從式RS-485串行通信標(biāo)準(zhǔn)。
1單片機(jī)通信網(wǎng)絡(luò)
RS-485串行總線接口標(biāo)準(zhǔn)以差分平衡方式傳播信號(hào),在發(fā)送端驅(qū)動(dòng)器將TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào)輸出,在接受端接收器將差分信號(hào)還原成TTL信號(hào),這樣具有很強(qiáng)的抗共模干擾的能力,同時(shí)接收靈敏度也很高;在傳輸數(shù)據(jù)速度達(dá)100 kb/s時(shí)通信距離可達(dá)1200 m;允許一對(duì)雙絞線上一個(gè)發(fā)送器驅(qū)動(dòng)多個(gè)負(fù)載設(shè)備,設(shè)備簡(jiǎn)單、成本低和維護(hù)方便。因此,工業(yè)現(xiàn)場(chǎng)控制系統(tǒng)中一般都采用該總線標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸。
在該通信系統(tǒng)中,在主機(jī)的控制下,通過(guò)軟件協(xié)議,主從機(jī)間可互相通信。并且在一個(gè)多機(jī)通信系統(tǒng)中,只有一臺(tái)單機(jī)作為主機(jī),各臺(tái)從機(jī)間不能相互通信,即使有信息交換也必須通過(guò)主機(jī)轉(zhuǎn)發(fā)。各單片機(jī)間通過(guò)RS-485總線通信,主機(jī)通過(guò)點(diǎn)名方式給各從機(jī)發(fā)送命令,實(shí)現(xiàn)對(duì)系統(tǒng)的主控權(quán)。主機(jī)在執(zhí)行任務(wù)的同時(shí)要對(duì)從機(jī)不斷地輪詢(xún),從而監(jiān)視從機(jī)的狀況、接收從機(jī)的請(qǐng)求或給從機(jī)發(fā)送命令。
通信系統(tǒng)總體結(jié)構(gòu)如圖1所示。?
各測(cè)?控器中選用的RS-485通信收發(fā)器芯片為MAX481,使用單片機(jī)的一個(gè)I/O口(P1.7)控制通信收發(fā)器MAX481的工作狀態(tài)。為了提高系統(tǒng)的抗干擾能力,各通信子系統(tǒng)使用了光電隔離器件6N137。
?
為了保證正常傳輸信號(hào)干凈、無(wú)毛刺,在總線末端接一個(gè)120 Ω的匹配電阻吸收總線上的反射信號(hào)。電纜使用雙芯屏蔽電纜,屏蔽端連接設(shè)備機(jī)殼。為了避免干擾,每個(gè)設(shè)備都應(yīng)接地。
2主控制器設(shè)計(jì)
主控制器通過(guò)串行通信接口實(shí)現(xiàn)對(duì)各現(xiàn)場(chǎng)控制器的直接控制,主要用于實(shí)現(xiàn)人-機(jī)對(duì)話功能。由于該系統(tǒng)實(shí)時(shí)性要求不是很高,為了減少線路板的面積和減少占用單片機(jī)的口線,選用體積小、管腳少、可以串行輸入/輸出的芯片。
主機(jī)選用8051單片機(jī)。因?yàn)橹鳈C(jī)要完成數(shù)據(jù)儲(chǔ)存,并要求具有掉電保護(hù)的功能,所以8051需要擴(kuò)展外存。串行EEPROM以其體積小、功耗低、價(jià)格低廉、高可靠性、連線簡(jiǎn)單等顯著優(yōu)勢(shì),逐漸被用于多功能的對(duì)速度要求不太高的智能儀器儀表中。在本系統(tǒng)中,選用24系列的串行EEPROM 24C64。因P0口內(nèi)部沒(méi)有上拉電阻,故作I/O口使用時(shí)外加?10 kΩ?的上拉電阻。
鍵盤(pán)采用中斷掃描工作方式。當(dāng)有鍵按下時(shí)INT0為低電平,向CPU發(fā)中斷申請(qǐng),進(jìn)入鍵盤(pán)中斷服務(wù)程序進(jìn)行按鍵識(shí)別及相應(yīng)功能程序的執(zhí)行。采用串行口靜態(tài)驅(qū)動(dòng)方式,使用74LS164串行輸入、并行輸出8位移位寄存器作為段選碼驅(qū)動(dòng)器,每個(gè)數(shù)碼管使用一片74LS164,把4片串聯(lián)起來(lái),便構(gòu)成一個(gè)4位的 LED顯示器。
各串行件都用軟件編程實(shí)現(xiàn)時(shí)鐘及數(shù)據(jù)的傳遞。
主控制器的硬件電路如圖2所示。
3現(xiàn)場(chǎng)控制器設(shè)計(jì)
每臺(tái)現(xiàn)場(chǎng)控制器是各自獨(dú)立的系統(tǒng),接收(溫度或壓力)傳感器輸出的模擬信號(hào),和工藝要求的參數(shù)相比較,從而得出該路信號(hào)修正量的大小。輸出的模擬信號(hào)作為電磁閥的輸入信號(hào)來(lái)控制流量(氣體或水蒸氣)的大小,從而達(dá)到對(duì)溫度或壓力的控制。圖3是它的硬件電路。
單片機(jī)選用20腳的AT89C2051。AT89C2051是美國(guó)ATMEL公司生產(chǎn)的一種高性能單片機(jī),價(jià)格低廉、與Intel公司生產(chǎn)的MCS 51單片機(jī)高度兼容。AT89C2051將多功能8位CPU和2 kB閃爍存儲(chǔ)器集成在1塊芯片上,對(duì)輸出口進(jìn)行了簡(jiǎn)化,形成了一種僅有20個(gè)引腳的單片機(jī),在功能上相當(dāng)于Intel公司的8031最小應(yīng)用系統(tǒng)。
?
?????????????
具有串行輸入輸出的A/D轉(zhuǎn)換芯片由于接線簡(jiǎn)單,傳輸距離遠(yuǎn),在工業(yè)測(cè)控系統(tǒng)中得到廣泛應(yīng)用。ADC0832是帶有串行輸入輸出8位逐次逼近式模數(shù)轉(zhuǎn)換器,它的模數(shù)轉(zhuǎn)換過(guò)程與數(shù)據(jù)輸出過(guò)程都是在外部時(shí)鐘脈沖的控制下進(jìn)行的,故模數(shù)轉(zhuǎn)換速度比較低,但可以滿足本系統(tǒng)的要求。在該系統(tǒng)中將DI固定接高電平,這樣由DI端輸入的控制字為“111”,這樣AD0832的CH1為單端輸入工作方式,CH0不工作。
同樣,對(duì)于D/A轉(zhuǎn)換也使用具有串行輸入輸出的轉(zhuǎn)換芯片。TCL5615為美國(guó)德州儀器公司的產(chǎn)品,是具有串行接口的數(shù)模轉(zhuǎn)換器,其輸出為電壓型,最大輸出電壓是基準(zhǔn)電壓值的2倍。帶有上電復(fù)位功能,上電時(shí)把DAC寄存器復(fù)位至全零。ADC0832和TCL5615的時(shí)鐘和數(shù)據(jù)的傳遞用軟件編程來(lái)實(shí)現(xiàn)。
4通信軟件設(shè)計(jì)
系統(tǒng)通信軟件有主控制器(主機(jī))通信軟件和現(xiàn)場(chǎng)控制器(從機(jī))通信軟件組成。由于現(xiàn)場(chǎng)控制器還要完成信號(hào)的監(jiān)測(cè)和控制,所以為了提高工作效率,在主從機(jī)發(fā)送和接收過(guò)程中,都采用中斷控制方式。
4.1主機(jī)通信軟件設(shè)計(jì)
主機(jī)的通信功能主要包括呼叫各從機(jī),并向各從機(jī)發(fā)送控制命令。當(dāng)主機(jī)要發(fā)送數(shù)據(jù)時(shí),先調(diào)用相應(yīng)的子程序,完成發(fā)送數(shù)據(jù)前的初始化、參數(shù)預(yù)置以及和從機(jī)接通聯(lián)系的工作,真正的發(fā)送數(shù)據(jù)安排在中斷服務(wù)程序中。主程序在調(diào)用完后,繼續(xù)干自己的工作,以后只需檢查設(shè)定的標(biāo)志位的狀態(tài)就可知道數(shù)據(jù)是否發(fā)完。
4.2從機(jī)通信軟件設(shè)計(jì)
從機(jī)平時(shí)對(duì)監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)的采集和控制,當(dāng)有串行中斷時(shí),執(zhí)行串行中斷服務(wù)程序,判別是否為本分機(jī)的地址信息,若是本機(jī)的地址,轉(zhuǎn)為接收控制命令,并執(zhí)行相應(yīng)的操作:若不是本機(jī)地址,則退出中斷。
通信軟件的流程圖如圖4所示。
5結(jié)語(yǔ)
分布式的數(shù)據(jù)采集系統(tǒng),由各個(gè)從機(jī)完成參數(shù)測(cè)量及控制任務(wù),不但能代替模擬儀表完成常規(guī)的過(guò)程控制,并且能進(jìn)行復(fù)雜算式運(yùn)算和順序控制,在現(xiàn)場(chǎng)對(duì)輸入、輸出數(shù)據(jù)進(jìn)行處理,減少了信息傳輸量,降低了對(duì)上級(jí)計(jì)算機(jī)的要求;主機(jī)通過(guò)數(shù)據(jù)通道,直接與過(guò)程相聯(lián)結(jié),完成生產(chǎn)計(jì)劃、管理、決策的最優(yōu)化,從而實(shí)現(xiàn)了整個(gè)生產(chǎn)過(guò)程的最優(yōu)化自動(dòng)控制。對(duì)該系統(tǒng)進(jìn)行進(jìn)一步的完善和擴(kuò)展,可以應(yīng)用于多種集散式控制系統(tǒng),實(shí)現(xiàn)多臺(tái)分布較遠(yuǎn)設(shè)備的低成本、高可靠。
參考文獻(xiàn)
1李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù).北京:北京航空航天大學(xué)出版社,1999
2李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).北京:北京航空航天大學(xué)出版社,2001
3曹保根.主從式RS485應(yīng)用系統(tǒng)的設(shè)計(jì)與調(diào)試.電子技術(shù),2000(2)
4張專(zhuān)成.串行A/D與8031單片機(jī)的接口技術(shù).電子技術(shù)應(yīng)用,1998(8)