當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于嵌入式實(shí)時(shí)操作系統(tǒng)的現(xiàn)場(chǎng)控制系統(tǒng)

 1 引言

  今天,隨著控制、計(jì)算機(jī)、通訊、網(wǎng)絡(luò)等技術(shù)的發(fā)展,信息交換領(lǐng)域正在迅速覆蓋從工廠的現(xiàn)場(chǎng)設(shè)備層到控制、管理的各個(gè)層次?;谝蕴W(wǎng)的工業(yè)控制網(wǎng)絡(luò)具有數(shù)據(jù)傳輸率高、可靠性好、易維護(hù)、可遠(yuǎn)程傳輸、互操作性好等優(yōu)點(diǎn)。隨著互聯(lián)網(wǎng)技術(shù)的普及與推廣,以及網(wǎng)絡(luò)通信速率的提高、交換技術(shù)的發(fā)展,使得它受到了全球的擁護(hù)和軟硬件支持,并得到了迅速發(fā)展和普及。本文設(shè)計(jì)和開發(fā)了具有工業(yè)以太網(wǎng)功能的現(xiàn)場(chǎng)控制設(shè)備。

  2 嵌入式操作系統(tǒng)的選擇

  實(shí)時(shí)嵌入式操作系統(tǒng)的種類繁多,大體上可以分為兩種:商用型和免費(fèi)型的。商用型的實(shí)時(shí)操作系統(tǒng)功能穩(wěn)定、可靠、有完善的技術(shù)支持和售后服務(wù),但往往價(jià)格昂貴,如QNX和Windows CE等。免費(fèi)型的實(shí)時(shí)操作系統(tǒng)在價(jià)格方面具有優(yōu)勢(shì),目前主要有Linux和μC/OS-II。由于商用實(shí)時(shí)操作系統(tǒng)的成本太高,采用免費(fèi)軟件是最好的選擇,因此嵌入式實(shí)時(shí)操作系統(tǒng)最終選擇了μC/OS-II。

  3 μC/OS-Ⅱ下多任務(wù)程序的設(shè)計(jì)

  程序的一開始通過(guò)一些宏定義對(duì)與μC/OS-Ⅱ運(yùn)行環(huán)境相關(guān)的一些配置參數(shù)、服務(wù)器的IP地址、網(wǎng)關(guān)以及子網(wǎng)掩碼等局域網(wǎng)參數(shù)做了設(shè)置,主程序中負(fù)責(zé)硬件初始化,初始化實(shí)時(shí)多任務(wù)操作統(tǒng),初始化TCP/IP協(xié)議棧,建立任務(wù),為其分配優(yōu)先級(jí),激活各任務(wù)將其置為就緒態(tài)。然后在系統(tǒng)內(nèi)核RTOS的調(diào)度下,各個(gè)任務(wù)按照優(yōu)先級(jí)的不同依次投入運(yùn)行,任務(wù)運(yùn)行結(jié)構(gòu)如圖1所示。

圖1 任務(wù)運(yùn)行調(diào)度示意圖

  3.1 故障監(jiān)控任務(wù)

  監(jiān)控任務(wù)用來(lái)監(jiān)視當(dāng)前程序運(yùn)行狀態(tài),它的優(yōu)先級(jí)為最高,它判斷前一個(gè)運(yùn)行任務(wù)的運(yùn)行狀態(tài),如果有錯(cuò)誤發(fā)生就采取相應(yīng)的糾錯(cuò)方案,否則退回到等待狀態(tài)。被監(jiān)視任務(wù)正常運(yùn)行時(shí)其執(zhí)行時(shí)間是可預(yù)估的,被監(jiān)視任務(wù)在其即將運(yùn)行完畢時(shí)向監(jiān)視任務(wù)發(fā)送消息說(shuō)明自身運(yùn)行正常。被監(jiān)視任務(wù)運(yùn)行時(shí),監(jiān)控任務(wù)處于等待態(tài),等待被監(jiān)視任務(wù)給它發(fā)送消息,等待時(shí)間被設(shè)定為預(yù)計(jì)的任務(wù)正常運(yùn)行所需的最大時(shí)間。若等待時(shí)間內(nèi)監(jiān)視任務(wù)收到消息,則認(rèn)為發(fā)送消息的任務(wù)運(yùn)行正常,依照各任務(wù)執(zhí)行順序的先后下一任務(wù)開始運(yùn)行,監(jiān)視任務(wù)等待下一任務(wù)發(fā)送的消息。若等待時(shí)間已過(guò),監(jiān)控任務(wù)仍未收到消息,則系統(tǒng)的時(shí)間管理函數(shù)將強(qiáng)行把監(jiān)視任務(wù)設(shè)置為就緒態(tài)。因?yàn)楸O(jiān)控任務(wù)的優(yōu)先權(quán)是最高的,監(jiān)控任務(wù)將首先投入運(yùn)行,它將搶占對(duì)CPU的控制權(quán)并采取相應(yīng)的糾錯(cuò)方案,進(jìn)行相應(yīng)的故障處理,從而避免死機(jī)的發(fā)生。任務(wù)實(shí)現(xiàn)的流程圖如圖2所示。

圖2 故障監(jiān)控任務(wù)流程圖[!--empirenews.page--]

  3.2 模擬量輸入輸出與數(shù)字量處理任務(wù)

  模擬量輸入輸出任務(wù)屬于周期性執(zhí)行的任務(wù)。它包括幾個(gè)組成部分:模擬信號(hào)量的輸入,控制算法的運(yùn)算,產(chǎn)生控制輸出。任務(wù)首先從物理通道讀取經(jīng)過(guò)A/D轉(zhuǎn)換后的傳感器信號(hào),對(duì)其進(jìn)行平滑濾波、工程單位轉(zhuǎn)換和報(bào)警檢測(cè)后與控制給定值進(jìn)行比較,其誤差經(jīng)過(guò)內(nèi)置的PID控制功能塊運(yùn)算后,得到相應(yīng)的控制量,此控制量經(jīng)過(guò)工程單位轉(zhuǎn)換后直接送給D/A轉(zhuǎn)換輸出給現(xiàn)場(chǎng)執(zhí)行機(jī)構(gòu),控制其輸出,從而實(shí)現(xiàn)了現(xiàn)場(chǎng)化的閉環(huán)控制。

  數(shù)字量指的是變量的輸入或輸出值只能是0或者1這兩種狀態(tài)中的一種。與模擬量輸入輸出任務(wù)相同,數(shù)字量處理任務(wù)也屬于周期性執(zhí)行的任務(wù),它負(fù)責(zé)讀取現(xiàn)場(chǎng)開關(guān)量狀態(tài)并完成對(duì)離散輸出的控制。相對(duì)來(lái)說(shuō)讀取數(shù)字量輸入是比較簡(jiǎn)單的任務(wù),對(duì)數(shù)字量的基本操作,就是微處理器的相應(yīng)的端口進(jìn)行讀寫。比較復(fù)雜的是對(duì)于脈沖累計(jì)型的輸入信號(hào)和要求以預(yù)定義的一定頻率轉(zhuǎn)換輸出狀態(tài)的輸出信號(hào),在嵌入式實(shí)時(shí)操作系統(tǒng)下可以通過(guò)設(shè)定任務(wù)的執(zhí)行間隔來(lái)得到簡(jiǎn)化
 3.3 Web Server守護(hù)任務(wù)

  服務(wù)器功能是通過(guò)Web Server守護(hù)任務(wù)來(lái)實(shí)現(xiàn),它的服務(wù)是被動(dòng)的,需要用戶對(duì)它進(jìn)行訪問(wèn),然后響應(yīng)用戶的請(qǐng)求。系統(tǒng)通過(guò)監(jiān)聽(tīng)來(lái)自客戶機(jī)的連接請(qǐng)求,一旦監(jiān)聽(tīng)到連接建立請(qǐng)求并建立連接后,接收來(lái)自客戶端的數(shù)據(jù),并根據(jù)相應(yīng)的命令返回所請(qǐng)求的頁(yè)面作為響應(yīng)。任務(wù)實(shí)現(xiàn)的流程圖如圖3所示。

圖3 Web Server守護(hù)任務(wù)流程圖

  3.4 通訊任務(wù)

  網(wǎng)絡(luò)通信任務(wù)是基于C/S模式的,即客戶/服務(wù)器模式。現(xiàn)場(chǎng)設(shè)備作為服務(wù)方,它在等待客戶的請(qǐng)求,提供數(shù)據(jù)和信息,客戶方是控制方,它可以運(yùn)行于工業(yè)現(xiàn)場(chǎng)的同等現(xiàn)場(chǎng)設(shè)備,也可以是遠(yuǎn)程瀏覽器,客戶方提出請(qǐng)求,對(duì)應(yīng)著雙方約定好的命令,現(xiàn)場(chǎng)設(shè)備在驗(yàn)證命令后,開始根據(jù)不同的命令字發(fā)送相關(guān)數(shù)據(jù)或者修改本地參數(shù)變量。通訊任務(wù)主要完成兩方面的任務(wù),一方面考慮到工業(yè)現(xiàn)場(chǎng)中,不同的控制節(jié)點(diǎn)之間有相互數(shù)據(jù)交換的需求,另一方面用于響應(yīng)客戶端瀏覽器中嵌入的applet通過(guò)Socket連接向服務(wù)器請(qǐng)求實(shí)時(shí)數(shù)據(jù)的請(qǐng)求,二者的區(qū)別在于通過(guò)不同的通信端口向服務(wù)器請(qǐng)求數(shù)據(jù)。

  通訊任務(wù)主要通過(guò)Socket編程實(shí)現(xiàn),現(xiàn)場(chǎng)設(shè)備控制器和現(xiàn)場(chǎng)設(shè)備之間的通信采用TCP協(xié)議,通信端口選擇1000;而瀏覽器內(nèi)嵌的applet與服務(wù)器的通訊則選擇2000端口。應(yīng)用于工業(yè)現(xiàn)場(chǎng)的程序應(yīng)該是“健壯”的,然而在實(shí)際中,已經(jīng)打開的TCP Socket連接隨時(shí)可能會(huì)中斷,原因是多方面的,可能是網(wǎng)絡(luò)問(wèn)題引起的連接超時(shí),或者是接收端發(fā)出了RST重置標(biāo)識(shí)或放棄連接等等。因此在應(yīng)用程序中設(shè)計(jì)了一個(gè)狀態(tài)機(jī)檢測(cè)機(jī)制,隨時(shí)檢測(cè)TCP Socket上的連接狀態(tài),根據(jù)當(dāng)前連接的不同狀態(tài)采取相應(yīng)的處理方法,這樣就增強(qiáng)了程序的“健壯性”。程序中先后對(duì)兩個(gè)端口的Socket連接進(jìn)行監(jiān)視并根據(jù)其不同狀態(tài)轉(zhuǎn)入不同條件下處理,由于對(duì)兩個(gè)端口的操作原理基本相同,區(qū)別在于Socket連接建立后,自定義的通信內(nèi)容的不同所引起的服務(wù)器對(duì)其響應(yīng)的不同。[!--empirenews.page--]

  3.5 電子郵件服務(wù)任務(wù)

  電子郵件服務(wù)通常情況下處于休眠狀態(tài)。當(dāng)有報(bào)警發(fā)生,由監(jiān)控任務(wù)將其投入運(yùn)行,一旦執(zhí)行完畢,自動(dòng)刪除所在任務(wù)。通過(guò)電子郵件,系統(tǒng)可可以主動(dòng)地發(fā)送信息。守護(hù)任務(wù)通常處于休眠狀態(tài),只有當(dāng)?shù)竭_(dá)系統(tǒng)發(fā)送日志的時(shí)間或者系統(tǒng)異常時(shí),由相應(yīng)的任務(wù)啟動(dòng)。在系統(tǒng)正常的情況下,定時(shí)向企業(yè)數(shù)據(jù)庫(kù)發(fā)送系統(tǒng)運(yùn)行日志。當(dāng)有系統(tǒng)異常發(fā)生時(shí),守護(hù)任務(wù)通過(guò)Internet向系統(tǒng)管理和維護(hù)人員發(fā)送E-mail報(bào)警,通知其對(duì)系統(tǒng)進(jìn)行維護(hù)。任務(wù)實(shí)現(xiàn)的流程圖如圖4所示。

圖4 電子郵件服務(wù)任務(wù)流程圖

  4 嵌入式Web Server中服務(wù)器與客戶端交互技術(shù)的實(shí)現(xiàn)

  嵌入式Web Server功能塊主要是通過(guò)CGI程序來(lái)獲取用戶的請(qǐng)求、查詢條件并利用應(yīng)用程序?yàn)槠涮峁┖笈_(tái)服務(wù),結(jié)果使用HTML方式描述,并直接回送到客戶端的瀏覽器。CGI是Web服務(wù)器在調(diào)用外部程序時(shí)的接口規(guī)范協(xié)議,它規(guī)定了一套標(biāo)準(zhǔn)的參數(shù)格式和環(huán)境變量,擴(kuò)展Web服務(wù)器的功能.使之能夠執(zhí)行一些Web服務(wù)器本身不能完成的任務(wù),如與各類應(yīng)用服務(wù)器通訊、訪問(wèn)數(shù)據(jù)庫(kù)等。這里我們通過(guò)CGI和HTML Form機(jī)制可以從瀏覽器中得到用戶組態(tài)和控制輸出等簡(jiǎn)單操作的輸入信息。作為Web服務(wù)器外部進(jìn)程運(yùn)行的CGI程序與Web服務(wù)器之間的通訊屬于進(jìn)程的通信,開銷大,速度低。當(dāng)有多份并發(fā)的同樣請(qǐng)求時(shí),必須為每個(gè)請(qǐng)求建立一個(gè)進(jìn)程;若Web服務(wù)器將重復(fù)收到多個(gè)同樣的請(qǐng)求,必須不斷重復(fù)準(zhǔn)備地址空間、建立運(yùn)行進(jìn)程、回收空間、撤銷進(jìn)程的過(guò)程。因此與當(dāng)前流行的ASP、JSP和PHP方式相比,CGI的方式的進(jìn)程本質(zhì)上效率不高。但是Dynamic C只支持CGI接口,而且從工業(yè)控制的實(shí)際情況出發(fā),在工業(yè)以太網(wǎng)內(nèi)部對(duì)于現(xiàn)場(chǎng)設(shè)備的訪問(wèn)與商用Web服務(wù)器不同,不會(huì)有太量請(qǐng)求同時(shí)并發(fā)執(zhí)行的情況,因此CGI完全可以滿足需要
 工業(yè)控制經(jīng)常需要以動(dòng)態(tài)曲線形式顯示現(xiàn)場(chǎng)的各種數(shù)據(jù),公共網(wǎng)關(guān)接口CGI雖然能夠提供客戶端瀏覽器與嵌入式Web服務(wù)器間的信息交換,但CGI只能為數(shù)據(jù)的傳輸提供通道、進(jìn)行處理,而不具有繪制圖型的功能;而瀏覽器頁(yè)面描述語(yǔ)言HTML也由于其本身的局限性,只能提供靜態(tài)的畫面。為此瀏覽器端程序使用了Java Applet技術(shù),程序功能是定時(shí)向現(xiàn)場(chǎng)設(shè)備發(fā)送TCP連接請(qǐng)求,并利用所獲取的數(shù)據(jù)在瀏覽器網(wǎng)頁(yè)上繪制動(dòng)態(tài)曲線,目的是在客戶端實(shí)現(xiàn)友好的交互式顯示模式并提供實(shí)時(shí)數(shù)據(jù)。

  本文作者創(chuàng)新點(diǎn):

  本文深入研究了在嵌入式實(shí)時(shí)操作系統(tǒng)環(huán)境下控制軟件的開發(fā),通過(guò)對(duì)現(xiàn)場(chǎng)設(shè)備軟件結(jié)構(gòu)的分析,合理地對(duì)控制軟件進(jìn)行任務(wù)劃分,使之成功的運(yùn)行于嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II上,并根據(jù)實(shí)時(shí)調(diào)度算法對(duì)多個(gè)任務(wù)進(jìn)行統(tǒng)一管理和調(diào)度。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉