本發(fā)明屬于等離子體控制,具體涉及一種基于多級狀態(tài)機模型的實時控制方法。
背景技術(shù):
1、托卡馬克裝置通過磁約束將等離子體化的聚變物質(zhì)約束在真空室中,并通過輔助手段加熱等離子體使之達到核聚變反應(yīng)條件,釋放出聚變能。加熱的等離子體高溫高壓,對其進行實時精準的控制是實現(xiàn)磁約束核聚變的重要技術(shù)條件之一。
2、適用于托克馬克實驗的等離子體控制系統(tǒng)(pcs)從系統(tǒng)啟動到放電實驗的全生命周期中包含了復(fù)雜的流程。每個系統(tǒng)階段都執(zhí)行不同的任務(wù)。在東方超環(huán)(east)中,pcs對系統(tǒng)狀態(tài)的處理是粗粒度和孤立的,系統(tǒng)使用了一個簡單狀態(tài)機稱為鎖定服務(wù)器。這個服務(wù)接收各種事件的通知,并通過改變pcs的狀態(tài)來響應(yīng)事件。在這個系統(tǒng)中,系統(tǒng)被分為了空閑,初次鎖定,最終鎖定,放電中等幾個狀態(tài)??梢钥闯銎淞鞒炭刂剖菃尉€的,沒有對并行的子組件內(nèi)部狀態(tài)的支持。
3、對于新型的分布式等離子體控制系統(tǒng),系統(tǒng)的流程復(fù)雜,個別組件或子系統(tǒng)存在上下或并行關(guān)系的子流程。傳統(tǒng)的簡單狀態(tài)機不能滿足需求。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的是提供一種基于多級狀態(tài)機模型的實時控制方法,通過流程調(diào)度組件及其消息事件分發(fā)的機制實現(xiàn)了在分布式的控制框架下對系統(tǒng)流程進行統(tǒng)一管理,多層狀態(tài)機很好的適配了托卡馬克等離子體放電實驗的需求,提供了穩(wěn)定可靠的流程控制和合適的流程粒度,使得控制流程清晰靈活,易于擴展和修改。
2、為實現(xiàn)上述目的,本發(fā)明提出一種基于多級狀態(tài)機模型的實時控制方法,包括有以下方法步驟:
3、s1、系統(tǒng)由多個組件構(gòu)成,其中流程調(diào)度組件維護系統(tǒng)工作流運行,它包含了核心狀態(tài)機,其余組件運行自己的狀態(tài)機,即子狀態(tài)機,核心狀態(tài)機維護系統(tǒng)頂層狀態(tài),同時調(diào)配外部組件的子狀態(tài)機;
4、s2、流程調(diào)度組件與外部組件的接口統(tǒng)一由消息定義,組件實現(xiàn)消息響應(yīng)所對應(yīng)事件的回調(diào)函數(shù),執(zhí)行任務(wù)及進行狀態(tài)轉(zhuǎn)移;
5、s3、流程調(diào)度組件根據(jù)自身狀態(tài)以及外部組件發(fā)來的消息進行狀態(tài)轉(zhuǎn)移并發(fā)布消息,管理等離子體全局放電流程;
6、s4、外部組件根據(jù)流程調(diào)度組件發(fā)送來的消息執(zhí)行相應(yīng)的回調(diào)函數(shù),處理自身子狀態(tài)機的狀態(tài)轉(zhuǎn)移并執(zhí)行任務(wù),也可向流程調(diào)度組件發(fā)布消息,進而改變主流程。
7、可選的,所述s1中流程調(diào)度組件通過zeromq的發(fā)布訂閱模式消息與外部組件連接。
8、可選的,所述zeromq基于字符前綴對消息進行過濾,用點分割的字符串消息作為話題格式。
9、可選的,所述話題格式的命名規(guī)則為:functioncode.component.service.messagename;
10、其中,functioncode部分是標識功能碼,默認為event,表示是事件;component是組件名稱的縮寫,例如wfe(work?flow?engine);service部分是服務(wù)名稱的縮寫,例如daqservice;messagename是消息名稱。
11、可選的,所述核心狀態(tài)機包括空閑狀態(tài)、初始化狀態(tài)、校正狀態(tài)、就緒狀態(tài)、工作執(zhí)行狀態(tài)以及失敗狀態(tài)。
12、可選的,所述s3的具體步驟如下:
13、s31、首先系統(tǒng)啟動,各個組件進行初始化,此時整個系統(tǒng)未完全啟動;
14、s32、啟動完成后,流程調(diào)度組件進入等待狀態(tài);
15、s33、等待狀態(tài)中,如果接收到來自配置組件的配置消息,則進入初次鎖定狀態(tài),此階段由操作員在用戶界面上確認放電配置完畢觸發(fā);
16、s34、初次鎖定中,用戶再次確認進入最終鎖定,等待開始放電;
17、s35、初次鎖定中,如果需要取消放電,用戶可取消初次鎖定,流程組件進入解鎖狀態(tài),重新配置放電后重新進入初次鎖定狀態(tài);
18、s36、最終鎖定中,收到來自總控的觸發(fā)命令進入運行狀態(tài),開始放電。
19、s37、運行狀態(tài)中,當?shù)竭_配置的結(jié)束時間或因為意外終止時進入結(jié)束狀態(tài),進行放電后清理工作。
20、s38、任一狀態(tài)中,設(shè)備發(fā)生重大異?;蚱渌付ǖ奶厥鉅顟B(tài)時,系統(tǒng)將進入到失敗狀態(tài)
21、s39、失敗狀態(tài)中,如系統(tǒng)異常得到解除,流程調(diào)度組件可重新進入等待狀態(tài)。
22、可選的,所述s4中外部組件包括子狀態(tài)機,所述子機包括等待狀態(tài)、準備狀態(tài)、放電狀態(tài)、結(jié)束狀態(tài)以及失敗狀態(tài)。
23、可選的,具體包括如下步驟:
24、s41、啟動完畢,組件將進入到等待狀態(tài);
25、s42、當流程調(diào)度組件進入初次鎖定時,組件子狀態(tài)機進入準備狀態(tài),處理放電配置,初始化放電;
26、s43、觸發(fā)后進入放電狀態(tài),組件執(zhí)行等離子體放電過程中的主任務(wù);
27、s44、在放電結(jié)束完成后,將進入清理狀態(tài);
28、s45、清理狀態(tài)結(jié)束后,重新進入等待狀態(tài)。
29、s46、任意環(huán)節(jié)出現(xiàn)致命異常時,進入失敗狀態(tài),進行本地異常處理并發(fā)布消息給流程控制組件使得主流程也進入異常狀態(tài)。
30、可選的,s4所述子狀態(tài)機流程為典型流程,對于特殊的服務(wù)或控制組件會適當改變。
31、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
32、本發(fā)明通過流程調(diào)度組件及其消息事件分發(fā)的機制實現(xiàn)了在分布式的控制框架下對系統(tǒng)流程進行統(tǒng)一管理,多層狀態(tài)機很好的適配了托卡馬克等離子體放電實驗的需求,提供了穩(wěn)定可靠的流程控制和合適的流程粒度,使得控制流程清晰靈活,易于擴展和修改。符合當前托卡馬克裝置及其他類似實驗裝置不斷迭代演化的特點。在實驗發(fā)展和技術(shù)進步中可以快速的適應(yīng)。
1.一種基于多級狀態(tài)機模型的實時控制方法,等離子體控制系統(tǒng)由多個組件構(gòu)成,所述組件包括流程調(diào)度組件和外部組件,其特征在于,包括有以下方法步驟:
2.根據(jù)權(quán)利要求1所述的一種基于多級狀態(tài)機模型的實時控制方法,其特征在于,所述s2中流程調(diào)度組件通過zeromq消息中間件的發(fā)布訂閱模式消息與外部組件通信,每個組件都訂閱自身需要處理的消息。
3.根據(jù)權(quán)利要求2所述的一種基于多級狀態(tài)機模型的實時控制方法,其特征在于,所述zeromq消息中間件基于字符前綴對消息進行過濾,用點分割的字符串消息作為話題格式。
4.根據(jù)權(quán)利要求3所述的一種基于多級狀態(tài)機模型的實時控制方法,其特征在于,所述話題格式的命名規(guī)則為:functioncode.component.service.messagename;
5.根據(jù)權(quán)利要求1所述的一種基于多級狀態(tài)機模型的實時控制方法,其特征在于,所述核心狀態(tài)機包括等待狀態(tài)、初步鎖定狀態(tài)、最終鎖定狀態(tài)、解鎖狀態(tài)、運行狀態(tài),結(jié)束狀態(tài)以及失敗狀態(tài)。
6.根據(jù)權(quán)利要求5所述的一種基于多級狀態(tài)機模型的實時控制方法,其特征在于,所述s3的具體步驟如下:
7.根據(jù)權(quán)利要求1所述的一種基于多級狀態(tài)機模型的實時控制方法,其特征在于,所述s4中外部組件包括子狀態(tài)機,所述子機包括等待狀態(tài)、準備狀態(tài)、放電狀態(tài)、結(jié)束狀態(tài)以及失敗狀態(tài)。
8.根據(jù)權(quán)利要求7所述的一種基于多級狀態(tài)機模型的實時控制方法,其特征在于,所述子狀態(tài)機具體包括如下步驟:
9.根據(jù)權(quán)利要求7所述的一種基于多級狀態(tài)機模型的實時控制方法,其特征在于,所述子狀態(tài)機流程為典型流程,對于特殊的服務(wù)或控制組件會適當改變。