電梯系統中實時控制軟體系統的案例分析
簡化的電梯系統(不考慮轎廂啟停的速度控制等)的輸入訊號包括:超重、報警、到達響鈴、關門阻擋訊號檢測、轎廂內的目的樓層請求按鈕、每層的上公升召喚按鈕、每層的下降召喚按鈕、每層的樓層行程開關、開門按鈕、關門按鈕、開門限位開關、關門限位開關;輸出包括:目的按鈕指示燈、上行召喚按鈕指示燈、下降召喚按鈕指示燈、轎廂上公升、轎廂下降、到達樓層顯示燈、開門、關門、當前電梯狀態顯示燈。可把系統狀態劃分為三種:空閒態、上公升態、下降態。其電梯排程演算法描述為:電梯在執行中服務於同方向上的請求,中途不改變其運動方向,除非它完成了所有同方向上的請求任務。
強實時功能需求即是指必須在規定的時間內完成。若有任務未在截止期限內完成,則會造成不可估量的損失。所以對於超重和報警訊號的響應是有強實時需求的。這種任務的響應時間在毫秒或微秒級。此外目的按鈕指示燈、上行召喚按鈕指示燈、下降召喚按鈕指示燈、轎廂上公升、轎廂下降、到達樓層顯示燈、開門、關門、當前電梯狀態顯示燈等也是需要實時響應的。這種任務的響應時間可以是毫秒到秒的數量級。
儘管運送服務不是實時的,但是對使用者輸入的確認響應是實時的。當使用者按下按鈕時,控制系統立即點亮與上行召喚、下行召喚、目的按鈕對應的指示燈,實時響應確認使用者請求, 並註冊這個請求。此後,控制系統按照使用者請求移動轎廂,到達有請求的樓層時停止移動轎廂,自動開門,完成對使用者的服務,並熄滅相應的指示燈,登出請求。這種呼叫顯示及使用者請求註冊功能構成乙個全域性實時任務,在電梯正常工作狀態中該任務都需要實時執行。
電梯轎廂在運動時需要實時監測,顯示當前到達樓層,判斷是否有註冊的請求,以便在有請求的樓層停止。到達樓層是通過安裝在各層的行程開關檢測的,為了顯示樓層數碼和判斷是否到達目標樓層,當前樓層用數字量表示。程式中通過程式設計把行程開關輸出量變換成相應的樓層的數字並顯示,這個功能構成了「當前層更新」的全域性實時任務。
除了上面的全域性實時任務還有區域性的實時任務,比如在上公升(下降、空閒)態中轎廂運動過程中停止的判斷及停止動作的執行等。區域性順序控制任務相互沒有重疊,但只有乙個在執行。全域性實時任務一直在執行。上公升態、下降態、空閒態任務中通過置位門控制使能變數來啟動門控制任務。門控制完成後復位門控制使能變數,以便需要任務同步的任務得到當前的狀態。
這幾個實時任務都是事件觸發的。且這幾個實時任務之間存在一定的依賴關係,當使用者請求註冊後,控制系統對其輸入進行確認響應並按照其請求移動轎廂和開關門。到達樓層後實時顯示樓層號。呼叫顯示及使用者請求註冊完成請求的響應和請求資訊的註冊,對使用者的服務在任務的上公升和下降態中完成。任務之間的通訊可使用共享記憶體的方法實現,即呼叫顯示及使用者請求註冊任務置位相應變數,上公升態下降態查詢相應變數並完成「當前層更新」,完成服務後復位變數。
實時系統和非實時系統的區別
嵌入式作業系統分為實時系統和非實時系統兩類,常見的實時系統有 threadx freertos ucos 常見的非實時系統有 windows linux android。兩類作業系統的主要區別在於任務排程處理方式不同,常用的任務排程方式有兩種 基於任務優先順序的任務排程方式和基於時間片的任務排程方式...
實時系統與非實時系統的區別
嵌入式作業系統分為實時系統和非實時系統兩類,常見的實時系統有 threadx freertos ucos 常見的非實時系統有 windows linux android。兩類作業系統的主要區別在於任務排程處理方式不同,常用的任務排程方式有兩種 基於任務優先順序的任務排程方式和基於時間片的任務排程方式...
OS 實時系統中的排程
實時系統是一種時間起主導作用的系統。在實時系統中,正確的但是遲到的應答往往比沒有還要糟糕。實時系統通常可以分為兩類 硬實時,軟實時。前者必須滿足絕對的時間截止,後者最然不希望偶爾的錯失時間截止,但是可以容忍。實時系統中的事件可以按照響應方式進一步分為週期性時間和非週期性時間。乙個系統可能要響應多個週...