基于嵌入式實時操作系統(tǒng)的現(xiàn)場控制系統(tǒng)
3.5 電子郵件服務(wù)任務(wù)
電子郵件服務(wù)通常情況下處于休眠狀態(tài)。當(dāng)有報警發(fā)生,由監(jiān)控任務(wù)將其投入運行,一旦執(zhí)行完畢,自動刪除所在任務(wù)。通過電子郵件,系統(tǒng)可可以主動地發(fā)送信息。守護任務(wù)通常處于休眠狀態(tài),只有當(dāng)?shù)竭_系統(tǒng)發(fā)送日志的時間或者系統(tǒng)異常時,由相應(yīng)的任務(wù)啟動。在系統(tǒng)正常的情況下,定時向企業(yè)數(shù)據(jù)庫發(fā)送系統(tǒng)運行日志。當(dāng)有系統(tǒng)異常發(fā)生時,守護任務(wù)通過Internet向系統(tǒng)管理和維護人員發(fā)送E-mail報警,通知其對系統(tǒng)進行維護。任務(wù)實現(xiàn)的流程圖如圖4所示。
圖4 電子郵件服務(wù)任務(wù)流程圖
4 嵌入式Web Server中服務(wù)器與客戶端交互技術(shù)的實現(xiàn)
嵌入式Web Server功能塊主要是通過CGI程序來獲取用戶的請求、查詢條件并利用應(yīng)用程序為其提供后臺服務(wù),結(jié)果使用HTML方式描述,并直接回送到客戶端的瀏覽器。CGI是Web服務(wù)器在調(diào)用外部程序時的接口規(guī)范協(xié)議,它規(guī)定了一套標(biāo)準(zhǔn)的參數(shù)格式和環(huán)境變量,擴展Web服務(wù)器的功能.使之能夠執(zhí)行一些Web服務(wù)器本身不能完成的任務(wù),如與各類應(yīng)用服務(wù)器通訊、訪問數(shù)據(jù)庫等。這里我們通過CGI和HTML Form機制可以從瀏覽器中得到用戶組態(tài)和控制輸出等簡單操作的輸入信息。作為Web服務(wù)器外部進程運行的CGI程序與Web服務(wù)器之間的通訊屬于進程的通信,開銷大,速度低。當(dāng)有多份并發(fā)的同樣請求時,必須為每個請求建立一個進程;若Web服務(wù)器將重復(fù)收到多個同樣的請求,必須不斷重復(fù)準(zhǔn)備地址空間、建立運行進程、回收空間、撤銷進程的過程。因此與當(dāng)前流行的ASP、JSP和PHP方式相比,CGI的方式的進程本質(zhì)上效率不高。但是Dynamic C只支持CGI接口,而且從工業(yè)控制的實際情況出發(fā),在工業(yè)以太網(wǎng)內(nèi)部對于現(xiàn)場設(shè)備的訪問與商用Web服務(wù)器不同,不會有太量請求同時并發(fā)執(zhí)行的情況,因此CGI完全可以滿足需要
工業(yè)控制經(jīng)常需要以動態(tài)曲線形式顯示現(xiàn)場的各種數(shù)據(jù),公共網(wǎng)關(guān)接口CGI雖然能夠提供客戶端瀏覽器與嵌入式Web服務(wù)器間的信息交換,但CGI只能為數(shù)據(jù)的傳輸提供通道、進行處理,而不具有繪制圖型的功能;而瀏覽器頁面描述語言HTML也由于其本身的局限性,只能提供靜態(tài)的畫面。為此瀏覽器端程序使用了Java Applet技術(shù),程序功能是定時向現(xiàn)場設(shè)備發(fā)送TCP連接請求,并利用所獲取的數(shù)據(jù)在瀏覽器網(wǎng)頁上繪制動態(tài)曲線,目的是在客戶端實現(xiàn)友好的交互式顯示模式并提供實時數(shù)據(jù)。
本文作者創(chuàng)新點:
本文深入研究了在嵌入式實時操作系統(tǒng)環(huán)境下控制軟件的開發(fā),通過對現(xiàn)場設(shè)備軟件結(jié)構(gòu)的分析,合理地對控制軟件進行任務(wù)劃分,使之成功的運行于嵌入式實時操作系統(tǒng)μC/OS-II上,并根據(jù)實時調(diào)度算法對多個任務(wù)進行統(tǒng)一管理和調(diào)度。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論