孟彩菊,楊世英,靳玉貞,何 佳,任瑞國(guó)
(1.山西省地震局太原基準(zhǔn)地震臺(tái),山西 太原 030025;2.太原大陸裂谷動(dòng)力學(xué)國(guó)家野外科學(xué)觀測(cè)研究站,山西 太原 030025)
中國(guó)地震局通過(guò)“中國(guó)數(shù)字地震觀測(cè)網(wǎng)絡(luò)”和“中國(guó)地震背景場(chǎng)探測(cè)”等重大項(xiàng)目的實(shí)施,在臺(tái)站安裝了大量數(shù)字化觀測(cè)設(shè)備,逐步建立起了以中國(guó)局、片區(qū)、省局和臺(tái)站為主體的多級(jí)工作模式。在日常監(jiān)測(cè)工作中,運(yùn)行維護(hù)是臺(tái)站的一項(xiàng)重要任務(wù),也是地震監(jiān)測(cè)臺(tái)網(wǎng)連續(xù)穩(wěn)定運(yùn)行的可靠保障。目前,管理部門對(duì)監(jiān)測(cè)質(zhì)量及數(shù)據(jù)連續(xù)率的要求不斷提高,運(yùn)行維護(hù)工作在響應(yīng)時(shí)間、恢復(fù)時(shí)間、維護(hù)成本等方面仍需不斷提高(1)中國(guó)地震局.中國(guó)地震監(jiān)測(cè)發(fā)展設(shè)計(jì)綱要(2016-2035年),2015.,[1]。
在各類觀測(cè)設(shè)備故障中,由于軟、硬件等不明原因造成的死機(jī)占一定的比例。在以往的工作中,值班人員發(fā)現(xiàn)觀測(cè)設(shè)備不能連通而懷疑死機(jī)時(shí),會(huì)到現(xiàn)場(chǎng)對(duì)觀測(cè)設(shè)備進(jìn)行斷電復(fù)位,然后需要再次查看觀測(cè)數(shù)據(jù),直至恢復(fù)正常。這一操作過(guò)程未完全實(shí)現(xiàn)自動(dòng)處理,工作效率低下。文章以太原臺(tái)的加速度數(shù)據(jù)采集器死機(jī)為案例,通過(guò)微軟的Visual Studio 2015的網(wǎng)絡(luò)編程及對(duì)網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)了對(duì)數(shù)據(jù)采集器進(jìn)行自動(dòng)檢測(cè),在出現(xiàn)死機(jī)時(shí)自動(dòng)進(jìn)行斷電重啟操作,自動(dòng)操作開(kāi)啟數(shù)據(jù)流,使觀測(cè)設(shè)備數(shù)據(jù)傳輸恢復(fù)正常。
太原臺(tái)的加速度觀測(cè)采用SYSCOM設(shè)備,加速度計(jì)型號(hào)為MS2007,數(shù)據(jù)采集器型號(hào)為MR2002。加速度計(jì)架設(shè)在臺(tái)站觀測(cè)山洞中,數(shù)據(jù)采集器通過(guò)引入山洞的網(wǎng)絡(luò)接入臺(tái)站行業(yè)網(wǎng),數(shù)據(jù)直接傳輸至省局臺(tái)網(wǎng)。臺(tái)站值班人員每天通過(guò)瀏覽數(shù)據(jù)采集器頁(yè)面查看數(shù)據(jù)傳輸狀態(tài),當(dāng)無(wú)法打開(kāi)頁(yè)面時(shí),說(shuō)明數(shù)據(jù)采集器出現(xiàn)死機(jī),需進(jìn)入觀測(cè)山洞對(duì)數(shù)據(jù)采集器進(jìn)行斷電重啟操作,然后在瀏覽器的數(shù)據(jù)采集器頁(yè)面上再點(diǎn)擊“ON”按鈕(見(jiàn)圖1),開(kāi)啟數(shù)據(jù)流。
由于此數(shù)據(jù)采集器死機(jī)現(xiàn)象相對(duì)較多,為避免觀測(cè)人員進(jìn)山洞對(duì)觀測(cè)環(huán)境造成影響,曾使用某品牌的智能插座,將數(shù)據(jù)采集器的供電電源接在智能插座的輸出上。在需要斷電重啟時(shí),不必再進(jìn)入觀測(cè)山洞,利用手機(jī)安裝的APP控制智能插座,進(jìn)行一次“電源關(guān)”與“電源開(kāi)”操作,完成斷電重啟。由于此類智能插座需要接入互聯(lián)網(wǎng),不適合未接入互聯(lián)網(wǎng)的站點(diǎn),并且未開(kāi)放API接口,無(wú)法編程實(shí)現(xiàn)死機(jī)時(shí)的及時(shí)自動(dòng)復(fù)位請(qǐng)求,故決定選用可進(jìn)行二次開(kāi)發(fā)的網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備進(jìn)行替代。
圖1 數(shù)據(jù)采集器頁(yè)面Fig.1 Data acquisition device page
隨著近年來(lái)物聯(lián)網(wǎng)技術(shù)的興起,已有眾多廠商提供了價(jià)格低廉且可供二次開(kāi)發(fā)的網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備,對(duì)于簡(jiǎn)單的應(yīng)用可省去底層開(kāi)發(fā)成本。文章使用的是廣州泥人電子科技有限公司的TCP-KP-I2O2網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備,該設(shè)備采用工業(yè)級(jí)設(shè)計(jì)方案,搭載32位ARM處理器和10/100M以太網(wǎng)網(wǎng)絡(luò)芯片,具有速度快,運(yùn)算能力強(qiáng),穩(wěn)定性高,抗干擾能力強(qiáng)等特點(diǎn),可在工業(yè)環(huán)境中使用(見(jiàn)圖2)。
其中,以太網(wǎng)模塊采用了W5500解決方案,內(nèi)部集成全硬件TCP/IP協(xié)議棧+MAC+PHY,全硬件協(xié)議棧技術(shù)采用硬件邏輯門電路實(shí)現(xiàn)復(fù)雜的TCP/IP協(xié)議簇,通過(guò)RJ45接口接入網(wǎng)絡(luò);單片機(jī)的主控芯片采用基于ARM的STM32F103C8T6,通過(guò)I/O口與以太網(wǎng)模塊直連;繼電器通過(guò)驅(qū)動(dòng)電路與單片機(jī)相連;該設(shè)備由5V直流供電,支持多路繼電器控制(2)ST公司.STM32F103中文手冊(cè),2007.(3)WIZnet公司.W5500數(shù)據(jù)手冊(cè),2015.。實(shí)際應(yīng)用中,將數(shù)據(jù)采集器的電源接到網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備的繼電器接線端子上,便可通過(guò)編寫軟件向遠(yuǎn)程控制設(shè)備發(fā)送命令,實(shí)現(xiàn)數(shù)據(jù)采集器的斷電重啟。
圖2 網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備結(jié)構(gòu)圖Fig.2 Network remote control equipment structure
為實(shí)現(xiàn)在數(shù)據(jù)采集器死機(jī)時(shí)自動(dòng)斷電重啟并開(kāi)啟數(shù)據(jù)流,需編制軟件實(shí)現(xiàn)定時(shí)啟動(dòng)(見(jiàn)圖3)。
圖3 數(shù)據(jù)采集器自動(dòng)檢測(cè)與斷電重啟流程Fig.3 The flow of automatic detection and power-off restart of data acquisition device
為直觀地顯示數(shù)據(jù)采集器頁(yè)面,按照值班人員的日常巡查方法,在程序的窗體中添加了WebBrowser控件。微軟在.Net 2.0以上版中提供的托管包裝WebBrowser控件可以在Windows窗體客戶端程序中顯示網(wǎng)頁(yè),使用Navigate(String)方法將指定的統(tǒng)一資源定位符(URL)處的文檔加載到WebBrowser控件中,替換上一個(gè)文檔??稍赑rogress Changed事件(文檔下載的進(jìn)度更新時(shí)發(fā)生)或Document Completed(完成加載文檔時(shí)發(fā)生)事件的處理函數(shù)中判斷頁(yè)面是否正常加載。也可根據(jù)屬性Ready State(WebBrowser控件的當(dāng)前狀態(tài))結(jié)合時(shí)間進(jìn)行判斷。當(dāng)加載不成功時(shí),即可判斷數(shù)據(jù)采集器已死機(jī)。
先使用網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備自帶的配置程序?qū)ζ溥M(jìn)行設(shè)置,將其設(shè)置為TCP服務(wù)器模式,并配置相應(yīng)的IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)和設(shè)備端口號(hào)。設(shè)備工作在此模式時(shí),需編寫一個(gè)簡(jiǎn)單的TCP客戶端,連接請(qǐng)求由此客戶端發(fā)起,設(shè)備監(jiān)聽(tīng)到連接請(qǐng)求后與電腦建立連接并進(jìn)行會(huì)話。Socket是網(wǎng)絡(luò)應(yīng)用程序的核心,Socket通常也稱作“套接字”,用于描述IP地址和端口,是一個(gè)通信鏈的句柄,應(yīng)用程序通常通過(guò)“套接字”向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。使用.NET的System.Net Sockets.Socket類庫(kù)編寫客戶端應(yīng)用,主要有以下步驟:(1) 建立socket連接:Connect();(2) 發(fā)送信息與接收消息:Send()和Receive();(3) 關(guān)閉連接Close()[2-3]。根據(jù)網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備二次開(kāi)發(fā)手冊(cè),單路繼電器延時(shí)控制指令格式為:
發(fā)送:AT+STACH
如果數(shù)據(jù)采集器電源接在繼電器1的常閉端,則可發(fā)送“AT+STACH1=1,10
數(shù)據(jù)采集器斷電重啟后,待其頁(yè)面可加載顯示為“The data stream is OFF”時(shí),需點(diǎn)擊圖1的“ON”按鈕開(kāi)啟數(shù)據(jù)流,否則流服務(wù)器仍不可接收到數(shù)據(jù)流。對(duì)頁(yè)面的HTML代碼進(jìn)行簡(jiǎn)單分析,第53頁(yè)圖4中,從60行可知點(diǎn)擊“ON”按鈕是執(zhí)行的statr_stream()函數(shù)。此例中,可使用WebBrowser控件的Document.InvokeScript("start_stream")語(yǔ)句執(zhí)行在HTML頁(yè)面中定義的活動(dòng)腳本函數(shù)statr_stream(),實(shí)現(xiàn)開(kāi)啟數(shù)據(jù)流。
圖4 頁(yè)面HTML代碼Fig.4 Page HTML code
圖5 軟件運(yùn)行界面Fig.5 Software running screen
編譯后的軟件界面如圖5所示,點(diǎn)擊“數(shù)采檢測(cè)”,連接數(shù)據(jù)采集器頁(yè)面,并顯示在WebBrowser框內(nèi),如果頁(yè)面不可連接,將給出提示信息。點(diǎn)擊“重啟數(shù)采”,控制網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備的繼電器吸合10秒后斷開(kāi),實(shí)現(xiàn)斷電重啟,然后在數(shù)據(jù)采集器頁(yè)面可連接時(shí),開(kāi)啟數(shù)據(jù)流。當(dāng)勾選“自動(dòng)”復(fù)選框后,軟件將每間隔指定的分鐘數(shù),對(duì)數(shù)據(jù)采集器檢測(cè)一次,“死機(jī)時(shí)”自動(dòng)斷電重啟,并開(kāi)啟數(shù)據(jù)流。
文中介紹的網(wǎng)絡(luò)遠(yuǎn)程控制設(shè)備及編寫的自動(dòng)處理軟件已應(yīng)用于太原臺(tái)。該項(xiàng)改進(jìn)措施減輕了觀測(cè)人員的工作負(fù)擔(dān),有效提高了工作效率,為做好儀器設(shè)備運(yùn)維工作、提高觀測(cè)設(shè)備連續(xù)率做出了積極探索。另外,所介紹的硬件及軟件編程方法,對(duì)有類似需求的人員有參考借鑒價(jià)值。