報警狀態機分析及框架設計

2021-05-21 21:57:38 字數 1303 閱讀 9125

運動控制最常見的及最簡單的狀態機應當就是報警狀態機了。報警狀態機模型如下:

圖表 1報警狀態機狀態轉換圖

上圖是系統報警狀態的簡化模型,共分為兩個狀態:

n在該狀態下,系統處於正常狀態,沒有報警

w:系統處於報警狀態

輸入符號,共有兩個:

true:

報警觸發訊號,表示系統當中有故障

false:

該訊號來時,表示系統正常,沒有報警,可以執行

狀態轉換**如下:

圖表 2報警狀態機轉換**

動作觸發**如下:

圖表 3報警狀態機動作觸發**

運動控制裝置當中,報警型別可能有幾種,或者幾十種,甚至上百種,可能來自上位也可能源自下位,對於報警的處理,其大部分處理方式是相同的,既一旦有報警,則裝置停止,並告知使用者。一般還需要對該過程建立日誌。所有的過程對於程式實現來說都並不困難,很容易實現,似乎建立模型有些多此一舉。實際不是的,原因如下:

1)報警是分型別的

按照嚴重程度分:有警示性報警,這類報警不影響使用者操作和裝置執行,但是可能預示著會發生某一類故障或起到提示性作用;有故障型報警,這類報警常常會引發裝置停止。

按照報警源分:有資料報警或者軟體引發的報警;有外圍裝置的報警。

2)報警的處理方式不同即其有目的針對性

系統內的報警,處理方式並不相同。有的僅僅告知報警,之後不做任何處理,如一些畫面報警。有些不可以執行裝置的某些功能,但其它功能可以執行,比如手動操作。但有的要求將裝置進入鎖死狀態,除非報警解除,任何操作都不被允許,比如急停報警。有些報警只在終端顯示,在終端做記錄。有些報警需要上報伺服器,伺服器通過報警可以判斷裝置的狀態,使伺服器能對裝置做出一些合理的響應及處理。

採用狀態機模型對報警過程進行分析,主要是希望能把這個過程抽象出來。針對其每乙個部分,進行抽象的封裝,從而可以達到即使系統是不同的,但是也可以採用同乙個報警程式框架,進而減少**重複開發工作量。

從上文當中的幾個圖可以看出,設計這種需求的框架,分兩塊即可以,一塊是報警模組管理器,另外一塊就是報警模組。其中模型模組包含訊號發生器和動作觸發器兩種行為。

管理各個報警模組及管理一些輔助模組,如日誌系統

主要包括:

1) 報警資訊

2) 訊號發生器

掃瞄輸入訊號,或根據各種條件在邏輯處理或綜合計算以後產生輸入訊號

3) 動作觸發器

動作觸發器對應的既是圖示3所對應的**,執行相應的報警觸發動作。

QT狀態機框架

qt的state machine framework是在qt4.6中引入的,其理論基礎是harel的statechart,通過定義一系列的可能狀態,以及系統如何在這些狀態中進行轉換 transitions between states 來描述整個狀態機的執行。qt的狀態機體系主要包括三部分模組 光有...

GPON接入 狀態機分析

gpon接入 狀態機分析 在g984.3和g987.3中定義了onu啟用的步驟。其狀態分別是 o1 初始狀態 o2 3 序列號處理 o4 時間調整 o5 正常操作狀態 o6 間歇的下行失步狀態 o7 緊急停止狀態 onu在上電以後,或者onu收到deactivationploam訊息以後,或者從o7...

設計模式(三)狀態機

狀態模式 主要解決某個物件具有不同的狀態,根據狀態的不同具有不同的行為。狀態的變化影響這物件的行為的問題。例如航空訂票,機票有不同的狀態,根據不同的狀態 已登機,未登機,起飛前24小時 決定機票的行為 可退票,可改簽等 又例如銀行卡的餘額流水決定者使用者可存款,可借款,可借款金額。又例如工作流審批過...