微控制器在科研試驗(yàn)中實(shí)現(xiàn)的前端設(shè)備的遠(yuǎn)程復(fù)位控制
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在蘭州重離子加速器冷卻儲(chǔ)存環(huán)工程(HIRFL-CSR)的調(diào)試階段,需要將由HIRFL重離子加速器獲得的束流注入冷卻儲(chǔ)存環(huán)(CSR)當(dāng)中。在束流調(diào)節(jié)的過程中因?yàn)榭刂葡到y(tǒng)操作平凡,實(shí)時(shí)性要求高,網(wǎng)絡(luò)上的數(shù)據(jù)量大大增加,致使前端網(wǎng)關(guān)要吞吐電源控制模塊的大量數(shù)據(jù);另外,前端網(wǎng)關(guān)和電源控制模塊與強(qiáng)電控制系統(tǒng)在電器上發(fā)生連接,前端網(wǎng)關(guān)和電源控制模塊微系統(tǒng)有時(shí)受到強(qiáng)電控制系統(tǒng)影響,這樣就增加了前端網(wǎng)關(guān)死機(jī)的可能。中心控制室的束流調(diào)節(jié)人員在調(diào)節(jié)束流的過程中如果發(fā)現(xiàn)前端網(wǎng)關(guān)死機(jī),就必須到現(xiàn)場復(fù)位網(wǎng)關(guān)后調(diào)節(jié)束流的工作才能順利進(jìn)行,這樣對于調(diào)節(jié)人員來說,既費(fèi)時(shí)又費(fèi)力,工作效率受到影響。為了提高調(diào)束效率,減輕調(diào)節(jié)人員的體力勞動(dòng),我們設(shè)計(jì)并實(shí)現(xiàn)了HIRFL-CSR束流注入線網(wǎng)關(guān)遠(yuǎn)程復(fù)位系統(tǒng),使束流調(diào)節(jié)人員在中心控制室的計(jì)算機(jī)上用鼠標(biāo)很快就可以復(fù)位前端網(wǎng)關(guān),提高了束流調(diào)節(jié)效率。
圖1
該網(wǎng)關(guān)遠(yuǎn)程復(fù)位系統(tǒng)主要由AT89C51單片機(jī)硬件電路、復(fù)位網(wǎng)關(guān)、AT89C51單片機(jī)信號(hào)處理程序、控制室界面應(yīng)用程序組成,其系統(tǒng)結(jié)構(gòu)示意圖如圖1。
1硬件結(jié)構(gòu)與原理
1。1單片機(jī)硬件電路
單片機(jī)硬件電路分為:信號(hào)轉(zhuǎn)換電路、AT89C51單片機(jī)、隔離電路、繼電器電路等。
信號(hào)轉(zhuǎn)換電路是全雙工工作的,其功能主要有兩個(gè):一是用來將復(fù)位網(wǎng)關(guān)發(fā)送過來的MAX485信號(hào)轉(zhuǎn)成AT89C51單片機(jī)P3口可接收的RS232信號(hào),然后由AT89C51根據(jù)信號(hào)進(jìn)行處理再通過P2口選擇相應(yīng)的繼電器復(fù)位相應(yīng)的網(wǎng)關(guān);二是由另外一片MAX485把AT89C51的P3口送來的信號(hào)轉(zhuǎn)換成復(fù)位網(wǎng)關(guān)接收的MAX485總線信號(hào)。
AT89C51是一種低功耗,高性能CMOS8位微控制器,具有4K字節(jié)閃存,可編程可擦除存儲(chǔ)器。該微控制器采用Atmel高密度,非易失性存儲(chǔ)器制造技術(shù),與工業(yè)標(biāo)準(zhǔn)的MSC-51指令集和I/O管腳相兼容,其編程開發(fā)軟件可用KeiluVision2,編程方便、效率高。AT89C51為很多嵌入式控制應(yīng)用提供了非常靈活而又價(jià)格便宜的方案,它的主要性能有:4K字節(jié)的閃存,128字節(jié)的RAM,32個(gè)I/O口,2個(gè)16位的定時(shí)器,5個(gè)兩極中斷源結(jié)構(gòu),1個(gè)全雙工串行口,片內(nèi)振蕩器和時(shí)鐘電路。由于AT89C51性價(jià)比高,因此我們用AT89C51來實(shí)現(xiàn)復(fù)位硬件電路的微處理器。
本系統(tǒng)中的AT89C51單片機(jī)主要對接收到的信號(hào)實(shí)現(xiàn)智能處理,然后通過向P2口傳送信號(hào)選擇繼電器完成復(fù)位操作。因?yàn)閱纹瑱C(jī)P2口外部輸出隔離電路采用集電極開路的光電隔離器件,繼電器電路采用上拉電阻和光電隔離器件串接,所以內(nèi)部P2口寄存器某位置0時(shí)外部相應(yīng)繼電器電路不導(dǎo)通,前端網(wǎng)關(guān)處于正常工作狀態(tài),當(dāng)內(nèi)部P2口寄存器某位置1時(shí)外部相應(yīng)的繼電器電路導(dǎo)通,繼電器導(dǎo)通3秒,相應(yīng)的網(wǎng)關(guān)斷電3秒復(fù)位,復(fù)位成功后單片機(jī)通過P3口向網(wǎng)絡(luò)返回復(fù)位成功信息。
1。2復(fù)位網(wǎng)關(guān)
復(fù)位網(wǎng)關(guān)的主要功能是完成中心控制室應(yīng)用程序和AT89C51單片機(jī)硬件電路模塊的連接。因?yàn)樵摼W(wǎng)關(guān)與AT89C51電路模塊之間的數(shù)據(jù)吞吐量非常小,而且AT89C51電路模塊與電源之間沒有在電器上連接,避免了強(qiáng)電控制電路對單片機(jī)系統(tǒng)的嚴(yán)重干擾,從而復(fù)位電路的穩(wěn)定性和可靠性得以保證。一塊復(fù)位網(wǎng)關(guān)可以扇出數(shù)塊復(fù)位電路,一塊復(fù)位電路至少可以復(fù)位8塊網(wǎng)關(guān),所以一塊復(fù)位網(wǎng)關(guān)可以管理數(shù)十塊前端網(wǎng)關(guān)的復(fù)位工作,同時(shí)復(fù)位網(wǎng)關(guān)和AT89C51電路之間采用MAX485總線,因此AT89C51單片機(jī)硬件電路可以分布在較大范圍的位置來復(fù)位分散布局的網(wǎng)關(guān)。
2軟件描述
2。1AT89C51單片機(jī)程序
AT89C51單片機(jī)信號(hào)處理程序是用KeiluVision2編寫,程序主要采用查詢方式工作,可消除亂麻,被消除亂麻位數(shù)可以自己定義,輸入命令出錯(cuò)時(shí)可重新輸入,單片機(jī)操作成功后可返回成功信息。整個(gè)程序的流程圖如圖2所示。
該單片機(jī)的程序首先加入“stdio。h”、“at89x51。h”頭文件,主要用來定義AT89C51的寄存器和調(diào)用系統(tǒng)庫函數(shù),其次聲明一個(gè)延時(shí)函數(shù)和尋址函數(shù),延時(shí)函數(shù)主要用來控制復(fù)位時(shí)間的長短,尋址函數(shù)主要用來識(shí)別網(wǎng)絡(luò)上單片機(jī)電路饃塊編號(hào),當(dāng)AT89C51程序檢測到網(wǎng)絡(luò)上出現(xiàn)自己的命令時(shí),就繼續(xù)執(zhí)行程序進(jìn)行相應(yīng)的復(fù)位操作,否則當(dāng)逐個(gè)識(shí)別到不是自己的命令時(shí),就會(huì)馬上消除緩沖區(qū)的字符,重新獲取網(wǎng)絡(luò)上的命令。采用這種查詢方式工作的單片機(jī)當(dāng)總線上出現(xiàn)亂碼數(shù)據(jù)的時(shí)候,不會(huì)發(fā)生誤操作,因?yàn)橹挥休斎朊畹淖址晚樞蚨挤媳欢x的命令格式時(shí)才能夠成功輸入命令,完成相應(yīng)的復(fù)位操作,錯(cuò)一個(gè)字符就得重新輸入,這樣的程序結(jié)構(gòu)比起單純的查詢輸入不僅能夠消除網(wǎng)絡(luò)上傳送過來的亂碼,而且當(dāng)輸入命令錯(cuò)誤時(shí),立即可以重新輸入,避免了單純查詢方式的輸入命令出錯(cuò)還必須得輸完規(guī)定的字符才能重新輸入的方式,提高了操作效率。
圖2
2。2控制室界面應(yīng)用程序
控制室界面應(yīng)用程序主要由VC++編寫,核心是Socket編程。Socket是建立在傳輸層協(xié)議(主要是TCP和UDP)上的一種套接字規(guī)范,最初是由美國加州Berkley大學(xué)提出的,它定義兩臺(tái)計(jì)算機(jī)間進(jìn)行通信的規(guī)范(也是一種編程規(guī)范),兩臺(tái)計(jì)算機(jī)之間利用一個(gè)“通道”進(jìn)行通信,這個(gè)通道就是由通信兩端的套接字組成。Socket屏蔽了底層通信軟件和具體操作系統(tǒng)的差異,使得任何安裝了TCP協(xié)議軟件和實(shí)現(xiàn)了套接字規(guī)范的兩臺(tái)計(jì)算機(jī)之間通信成為可能。
大多數(shù)網(wǎng)絡(luò)通信程序可分為兩類:服務(wù)器端和客戶端。由于復(fù)位網(wǎng)關(guān)是基于Linux操作系統(tǒng)的服務(wù)器端,所以本應(yīng)用程序用StreamSocket創(chuàng)建基于Windows的中心控制室客戶端服務(wù)應(yīng)用程序。StreamSocket是面向連接的編程方式,它提供了一系列的數(shù)據(jù)糾錯(cuò)功能,可以保證在網(wǎng)絡(luò)上傳送的數(shù)據(jù)及時(shí)、無誤地到達(dá)對方。本界面客戶端應(yīng)用程序的Socket編程模型如圖3。
圖3
本程應(yīng)用程序首先用MFCAppWizard建立一個(gè)單文本對話框,其次在對話框里加入IP編輯框、端口編輯框、連接按鈕用來連接復(fù)位網(wǎng)關(guān);加入一些單選按鈕,用來選擇要復(fù)位的前端網(wǎng)關(guān);加入一個(gè)編輯對話框,用來顯示接收到的返回信息;加入復(fù)位按鈕,給AT89C51發(fā)送復(fù)位命令。然后,給應(yīng)用程序加入相應(yīng)的CSocket類、函數(shù)、變量。程序編譯完成后,就可以生成Win32Release可執(zhí)行文件,然后安裝到中心控制室實(shí)現(xiàn)復(fù)位操作。應(yīng)用程序操作步驟非常簡單,當(dāng)工作人員發(fā)現(xiàn)前端網(wǎng)關(guān)死機(jī)時(shí),打開本應(yīng)用程序,輸入復(fù)位網(wǎng)關(guān)的IP和端口號(hào),進(jìn)行連接,復(fù)位網(wǎng)關(guān)連接成功后,可選擇前端網(wǎng)關(guān)號(hào),點(diǎn)擊復(fù)位按鈕,如果復(fù)位成功,編輯對話框出現(xiàn)復(fù)位成功的信息,工作人員很快可以繼續(xù)調(diào)束。
3結(jié)束語
本文的創(chuàng)新點(diǎn)就是用微處理器實(shí)現(xiàn)了在科研試驗(yàn)當(dāng)中對前端網(wǎng)關(guān)的智能復(fù)位控制,消除了幾年來HIRFL-CSR試驗(yàn)階段由于前端網(wǎng)關(guān)死機(jī)迫使科研工作人員到
現(xiàn)場手動(dòng)復(fù)位前端網(wǎng)關(guān)的現(xiàn)象,大大方便了束流調(diào)節(jié)人員,提高了科研人員的工作效率。用微處理器實(shí)現(xiàn)的前端智能電路模塊,通過中心控制室的網(wǎng)絡(luò)通信應(yīng)用程序的操作,實(shí)現(xiàn)了科研試驗(yàn)環(huán)節(jié)對前端設(shè)備的遠(yuǎn)程控制。該系統(tǒng)自2005年10月開始用于HIRFL-CSR束流注入線以來,工作穩(wěn)定,抗干擾強(qiáng),沒有發(fā)生誤操作。實(shí)踐證明,本系統(tǒng)在前端控制網(wǎng)關(guān)的通訊口發(fā)生數(shù)據(jù)堵塞的情況下,仍然可對前端網(wǎng)關(guān)進(jìn)行復(fù)位,具有復(fù)位可靠實(shí)時(shí)性強(qiáng)的優(yōu)點(diǎn)。通過這種遠(yuǎn)程復(fù)位系統(tǒng)在科研控制系統(tǒng)中的實(shí)現(xiàn),我們還可以將這種控制方法運(yùn)用到科研試驗(yàn)控制的許多環(huán)節(jié),比如:遠(yuǎn)程電源的開關(guān)、遠(yuǎn)程控制控制電磁閥,前端設(shè)備的狀態(tài)采集等。因此,我們的物理專業(yè)的研究人員要有意識(shí)地讓微機(jī)控制技術(shù)廣泛應(yīng)用到科研試驗(yàn)的各個(gè)環(huán)節(jié),盡量把一些費(fèi)時(shí)費(fèi)力的工作讓計(jì)算機(jī)來完成,以提高科研當(dāng)中自動(dòng)化的程度,從而幫助研究人員在自己的專業(yè)領(lǐng)域做出成績。這就要求就我們的物理專業(yè)的研究人員,首先要學(xué)習(xí)一些計(jì)算機(jī)專業(yè)的相關(guān)知識(shí),其次,要有應(yīng)用微機(jī)算計(jì)幫自己搞科研的意識(shí),最后,用微計(jì)算機(jī)控制的知識(shí)實(shí)現(xiàn)科研中的自動(dòng)控制,幫助自己搞好科研。