孔偉力 李勇 禹娟娟
?
IATools如何實現(xiàn)邏輯Check功能
孔偉力 李勇 禹娟娟
中核控制系統(tǒng)工程有限公司,北京 100176
以海南昌江1&2號機組DCS項目為起源,介紹了IA平臺組態(tài)文件的自動審查軟件。核電DCS系統(tǒng)設計工作周期長、工作量大、重復性強,容易導致人為錯誤,不易檢查發(fā)現(xiàn),并且增加過多人工時,不利于項目成本控制。基于上述緣由IATools設計了Auto Check功能。
正則表達式;語言集成查詢;C#
在核電DCS系統(tǒng)設計過程中,由于核電工藝復雜,控制系統(tǒng)邏輯較為煩瑣,過程中會用到大量功能塊,而且功能塊的設置煩雜,給人工審查帶來相當大的工作量。自動審查軟件可以根據工程項目特點設置不同的Check規(guī)則,統(tǒng)一判斷標準,達到批量和快速審查的目的,并提醒設計人員錯誤所在,節(jié)省大量工作時間,降低審查工作強度,提高審查的可靠性和準確性。
正則表達式這個概念最初是由Unix中的工具軟件普及開的,又稱正規(guī)表示法、常規(guī)表示法。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規(guī)則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。正則表達式在各種計算機語言或各種應用領域得到了廣大的應用和發(fā)展[1]。
2.2.1 LOGIC塊語法
在IA Series系統(tǒng)中,LOGIC 塊屬性見表1[2]:
表1 LOGIC 塊屬性
LOGIC 塊在核電DCS系統(tǒng)中常用的語句有IN、OUT、AND、OR、NOT、DOFF、DON、OSP、MRS、BIF、STM等等。
根據IA資料文件IACC all blocks description B0193AX-Rev AA的語法規(guī)則,定義LOGIC塊在Check功能中的正則表達式,事例如下:
LOGIC塊中AND指令后面可以為空、數字、操作數,所以定義LOGIC中AND正則表達式分別如下:
AND=^s*((d*$)|(~?BI(0[1-9]|1[0-6]))|(~?BO0[1-4])|(~?M0[1-5]))s*(s+(~?BI(0[1-9]|1[0-6]))|(~?BO0[1-4]$)|(~?M0[1-5]))?$
LOGIC塊中DON、DOFF指令后面可以是數字、RIxx,所以定義LOGIC中DON、DOFF正則表達式分別如下:
DON=^((s*[1-9][0-9]*$)|(RI0[1-2]))$
DOFF=^((s*[1-9][0-9]*$)|(RI0[1-2]))$
2.2.2 CALCA塊語法
見表2。
表2 CALCA塊語法
CALCA 塊在核電DCS系統(tǒng)中常用的語句有IN、OUT、AND、OR、NOT、DOFF、DON、OSP、MRS、ADD、STM等等。
根據IA資料文件IACC all blocks description B0193AX-Rev AA的語法規(guī)則,定義CALCA塊在Check功能中的正則表達式,事例如下:
AND指令后面可以為空、數字、操作數,所以定義CALCA中AND正則表達式分別如下:
AND=^(s*(d*$)|(~?BI(0[1-9]|1[0-6]))|(~?BO0[1-8])|(~?M((0[1-9])|(1[0-9])|(2[0-4])))s*(s(~?BI(0[1-9]|1[0-6]))|(~?BO0[1-8])|(~?M((0[1-9])|(1[0-9])|(2[0-4]))))?$
CALCA中DON、DOFF指令后面可以是數字、Mxx,這一點和LOGIC中有所不同,所以定義CALCA中DON、DOFF正則表達式分別如下:
DON=^((s*(([1-9][0-9]*(.[0-9]+)?)|(0.[0-9]+)))|((M0[1-9])|M(1[0-9])|(M2[0-4])))$
DOFF=^((s*(([1-9][0-9]*(.[0-9]+)?)|(0.[0-9]+)))|((M0[1-9])|M(1[0-9])|(M2[0-4])))$
LINQ語言集成查詢(Language Integrated Query)是一組用于C#和Visual Basic語言的擴展。它允許編寫C#或者Visual Basic代碼以查詢數據庫相同的方式操作內存數據。
正是利用了LINQ實現(xiàn)了參數查詢和語法檢查的功能,核電DCS項目中,相同參數會有不同的參數設置。IATools中可以根據不同項目定義不同的Check規(guī)則,這樣方便對模塊參數設置的檢查。
以海南DCS項目中CIN塊為例,項目中要求所有IO點CIN塊的PERIOD=1、并且IOMOPT=1的CIN塊IOM_ID和PNT_NO兩參數不能為空,下面的語句定義了CIN塊針對這兩條要求的查詢方法:
[CIN]
COUNT=2
PARA01=PERIOD
DESC01=CIN塊周期應該為1
RULE01=TYPE = "CIN" && N["PERIOD"] !=1
KEYS01=PERIOD
PARA10=IOMOPT
DESC10=檢查IOMOPT為1的CIN塊 IOM_ID和PNT_NO是否為空
RULE10=TYPE = "CIN" && N["IOMOPT"] =1 && (S["IOM_ID"]= "" || S["PNT_NO"]= "")
KEYS10=IOMOPT;IOM_ID;PNT_NO
IATools采用了Visual Studio 2010的C#語言開發(fā),運行平臺需要安裝.net framework 3.5。程序運行流程主要有包括讀取配置文件、加載規(guī)則文件、讀取組態(tài)文件、程序執(zhí)行、結果輸出等[3],具體流程見圖1:
圖1 程序運行流程圖
4.2.1 驗證語法錯誤
實驗對象為海南昌江DCS #2機組2509UC ICCPRT文件,2KPR_N1:001CC_L1正確邏輯如下所示:
STEP01=CST
STEP02=
STEP03=AND BI01 BI02
STEP04=AND BI01 BI03
STEP05=AND BI02 BI03
STEP06=OR 3
STEP07=OUT B001
STEP08=
STEP09=NOT
STEP10=OUT B002
STEP11=
STEP12=END
STEP13=
STEP14=
STEP15=
首先,根據定義好的Rules文件和語法規(guī)則,IATools自動審查完成后顯示結果見圖2:
圖2 IATools自動審查完成后顯示結果
沒有輸出結果,而且LOGIC下面顯示沒有語法錯誤。
然后我們將組態(tài)文件修改如下:
STEP01=CST
STEP02=
STEP03=AND BI01 BI17
STEP04=AND BI01 BI03
STEP05=AND BI02 BI03
STEP06=OR 3
STEP07=OUT B001
STEP08=
STEP09=NOT B001
STEP10=OUT B002
STEP11=
STEP12=END
STEP13=
STEP14=
STEP15=
不難看出,STEP03中不應該出現(xiàn)BI17,STEP09中NOT指令不應該有操作數。用IATools進行自動審查,結果見圖3。
軟件輸出結果顯示LOGIC中提示語法錯誤,并且將錯誤以高亮顯示。
圖3 IATools進行自動審查
4.2.2 驗證參數錯誤
實例主要驗證在IOMOPT為1的情況下,IOM_ID、PNT_NO不能為空。實驗對象為海南昌江DCS #2機組2509UC ICCPRT文件,2DVN_N1:160CC_2正確參數如下:
NAME=2DVL_NI:160CC_2
TYPE=CIN
DESCRP=LOC.103ZV MANU.CMN
PERIOD=1
PHASE=0
LOOPID=2DVL160CC_2
IOMOPT=1
IOM_ID=250906
PNT_NO=2
根據定義好的參數檢查規(guī)則,Check完成后顯示結果為空,見圖4:
圖4 Check完成后顯示結果
將IOM_ID、PNT_NO刪除,當前參數如下:
NAME=2DVL_NI:160CC_2
TYPE=CIN
DESCRP=LOC.103ZV MANU.CMN
PERIOD=1
PHASE=0
LOOPID=2DVL160CC_2
IOMOPT=1
IOM_ID=
PNT_NO=
將修改的ICCPRT文件再進行Check,結果顯示見圖5:
圖5 Check完成后顯示結果
輸出結果將空置的IOM_ID、PNT_NO進行了高亮顯示。
IATools的Check功能在組態(tài)文件審查工作中能夠快速、準確地定位問題所在,降低了審查難度,提高了審查的效率。當然仍有一些問題存在,定義的規(guī)則只能檢查固定的語法錯誤和參數錯誤,一些不是語法類的錯誤是不能檢查到的,所以組態(tài)文件還需要在不斷的測試和檢查過程中進行完善。
[1]AndrewWatt.正則表達式入門經典[M].北京:清華大學出版社,2008.
[2]查方興.I/A Series系統(tǒng)及應用[Z].上海:??怂共_有限公司,2009.
[3]顧寧燕.21天學通ASP.NET[M].北京:電子工業(yè)出版社,2011.
How IATools Implements Logical Check Functions
Kong Weili Li Yong Yu Juanjuan
China Nuclear Control Systern Engineering Co., Ltd., Beijing 100176
Taking Hainan Changjiang 1&2 unit DCS project as the origin, the paper introduces the configuration file IA platform automatic review software. The design of nuclear power DCS system is long, heavy workload and repetitive. It is easy to cause human errors, and not easy to detect and find too much labor. It is not conducive to project cost control. Therefore, IATools designs Auto Check function based on above reason.
regular expressions; language integrated query; C#
TP311.5
A