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