一模型建立
1概念說明
2模型建立
運動控制最常見的及最簡單的狀態機應當就是報警狀態機了。報警狀態機模型如下:
圖表 1報警狀態機狀態轉換圖
上圖是系統報警狀態的簡化模型,共分爲兩個狀態:
N : 在該狀態下,系統處於正常狀態,沒有報警
W: 系統處於報警狀態
輸入符號,共有兩個:
true: 報警觸發信號,表示系統當中有故障
false: 該信號來時,表示系統正常,沒有報警,可以運行
圖表 2報警狀態機轉換表格
動作觸發表格如下:
|
||
圖表 3報警狀態機動作觸發表格
二模型分析
1報警特點分析
運動控制設備當中,報警類型可能有幾種,或者幾十種,甚至上百種,可能來自上位也可能源自下位,對於報警的處理,其大部分處理方式是相同的,既一旦有報警,則設備停止,並告知用戶。一般還需要對該過程建立日誌。所有的過程對於程序實現來說都並不困難,很容易實現,似乎建立模型有些多此一舉。實際不是的,原因如下:
1)報警是分類型的
按照嚴重程度分:有警示性報警,這類報警不影響用戶操作和設備運行,但是可能預示着會發生某一類故障或起到提示性作用;有故障型報警,這類報警常常會引發設備停止。
按照報警源分:有數據報警或者軟件引發的報警;有外圍設備的報警。
2)報警的處理方式不同即其有目的針對性
系統內的報警,處理方式並不相同。有的僅僅告知報警,之後不做任何處理,如一些畫面報警。有些不可以執行設備的某些功能,但其它功能可以執行,比如手動操作。但有的要求將設備進入鎖死狀態,除非報警解除,任何操作都不被允許,比如急停報警。有些報警只在終端顯示,在終端做記錄。有些報警需要上報服務器,服務器通過報警可以判斷設備的狀態,使服務器能對設備做出一些合理的響應及處理。
2主要目的
採用狀態機模型對報警過程進行分析,主要是希望能把這個過程抽象出來。針對其每一個部分,進行抽象的封裝,從而可以達到即使系統是不同的,但是也可以採用同一個報警程序框架,進而減少代碼重複開發工作量。
三框架設計
從上文當中的幾個圖可以看出,設計這種需求的框架,分兩塊即可以,一塊是報警模塊管理器,另外一塊就是報警模塊。其中模型模塊包含信號發生器和動作觸發器兩種行爲。
1報警模塊管理器的主要作用
管理各個報警模塊及管理一些輔助模塊,如日誌系統
2報警模塊
主要包括:
1) 報警信息
2) 信號發生器
掃描輸入信號,或根據各種條件在邏輯處理或綜合計算以後產生輸入信號
3) 動作觸發器
動作觸發器對應的既是圖標3所對應的表格,執行相應的報警觸發動作。