基于嵌入式實時操作系統(tǒng)的現(xiàn)場控制系統(tǒng)
1 引言
本文引用地址:http://butianyuan.cn/article/152146.htm今天,隨著控制、計算機、通訊、網(wǎng)絡等技術的發(fā)展,信息交換領域正在迅速覆蓋從工廠的現(xiàn)場設備層到控制、管理的各個層次。基于以太網(wǎng)的工業(yè)控制網(wǎng)絡具有數(shù)據(jù)傳輸率高、可靠性好、易維護、可遠程傳輸、互操作性好等優(yōu)點。隨著互聯(lián)網(wǎng)技術的普及與推廣,以及網(wǎng)絡通信速率的提高、交換技術的發(fā)展,使得它受到了全球的擁護和軟硬件支持,并得到了迅速發(fā)展和普及。本文設計和開發(fā)了具有工業(yè)以太網(wǎng)功能的現(xiàn)場控制設備。
2 嵌入式操作系統(tǒng)的選擇
實時嵌入式操作系統(tǒng)的種類繁多,大體上可以分為兩種:商用型和免費型的。商用型的實時操作系統(tǒng)功能穩(wěn)定、可靠、有完善的技術支持和售后服務,但往往價格昂貴,如QNX和Windows CE等。免費型的實時操作系統(tǒng)在價格方面具有優(yōu)勢,目前主要有Linux和μC/OS-II。由于商用實時操作系統(tǒng)的成本太高,采用免費軟件是最好的選擇,因此嵌入式實時操作系統(tǒng)最終選擇了μC/OS-II。
3 μC/OS-Ⅱ下多任務程序的設計
程序的一開始通過一些宏定義對與μC/OS-Ⅱ運行環(huán)境相關的一些配置參數(shù)、服務器的IP地址、網(wǎng)關以及子網(wǎng)掩碼等局域網(wǎng)參數(shù)做了設置,主程序中負責硬件初始化,初始化實時多任務操作統(tǒng),初始化TCP/IP協(xié)議棧,建立任務,為其分配優(yōu)先級,激活各任務將其置為就緒態(tài)。然后在系統(tǒng)內(nèi)核RTOS的調(diào)度下,各個任務按照優(yōu)先級的不同依次投入運行,任務運行結(jié)構(gòu)如圖1所示。
圖1 任務運行調(diào)度示意圖
3.1 故障監(jiān)控任務
監(jiān)控任務用來監(jiān)視當前程序運行狀態(tài),它的優(yōu)先級為最高,它判斷前一個運行任務的運行狀態(tài),如果有錯誤發(fā)生就采取相應的糾錯方案,否則退回到等待狀態(tài)。被監(jiān)視任務正常運行時其執(zhí)行時間是可預估的,被監(jiān)視任務在其即將運行完畢時向監(jiān)視任務發(fā)送消息說明自身運行正常。被監(jiān)視任務運行時,監(jiān)控任務處于等待態(tài),等待被監(jiān)視任務給它發(fā)送消息,等待時間被設定為預計的任務正常運行所需的最大時間。若等待時間內(nèi)監(jiān)視任務收到消息,則認為發(fā)送消息的任務運行正常,依照各任務執(zhí)行順序的先后下一任務開始運行,監(jiān)視任務等待下一任務發(fā)送的消息。若等待時間已過,監(jiān)控任務仍未收到消息,則系統(tǒng)的時間管理函數(shù)將強行把監(jiān)視任務設置為就緒態(tài)。因為監(jiān)控任務的優(yōu)先權是最高的,監(jiān)控任務將首先投入運行,它將搶占對CPU的控制權并采取相應的糾錯方案,進行相應的故障處理,從而避免死機的發(fā)生。任務實現(xiàn)的流程圖如圖2所示。
圖2 故障監(jiān)控任務流程圖
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論