孔德山,李 亮
(1.北京廣利核系統工程有限公司,北京 100094;2.生態環境部核與輻射安全中心,北京 102400)
在整個核電站運行過程中,DCS 控制系統占據著舉足輕重的地位,特別是安全級DCS 控制系統。由于其控制著核島內設備,一旦出現邏輯設計錯誤,將導致控制指令無法傳遞到下游,嚴重情況下可能出現跳堆事故。因此,在核電站安全級應用軟件邏輯的驗證過程中,必須給予足夠重視[1]。核電站安全級應用軟件邏輯由眾多算法塊構成,通過不同算法塊的組合設計實現工藝控制功能。在應用軟件邏輯的驗證過程中,一方面要保證輸入輸出路徑覆蓋率為100%,另一方面邏輯中存在的工藝功能也要全部驗證。在應用軟件邏輯頁數總量達到上萬頁的前提下,如何保證應用軟件邏輯測試進度快、質量高是急需解決的問題。
以往核電站安全級邏輯測試主要采用人工比對,利用涂抹以及手動強制邏輯中的輸入變量并比對輸出結果,實現邏輯驗證[2]。為提升測試效率,降低人因失誤,在人工測試的基礎上興起了自動測試。自動測試是將人工強制、結果比對環節轉化為工具自動執行,把以人為驅動的測試行為轉化為機器執行的一種過程。單控制站應用軟件邏輯自動測試方法(SIMAT 法)目前在各個領域應用較為廣泛,該方法主要利用軟件邏輯仿真平臺,由工具在工程軟件內部對輸入變量進行強制,采集輸出變量結果與測試用例標準值進行自動比對,比對一致則在結果中輸入“√”,比對不一致則在結果中輸入“×”,進而實現軟件邏輯的自動驗證。
當前核電站安全級DCS 系統邏輯驗證的方法主要包括人工驗證方法以及自動驗證方法,下面對當前人工驗證方法以及自動驗證方法進行介紹。
核電站安全級DCS 系統邏輯人工驗證方法主要有兩個階段,這兩個階段主要是從靜態驗證比對到動態驗證比對的升級,目的是從應用角度提升驗證的準確性,解決靜態比對中忽略軟件邏輯中顯示正常而實際運行線路不通的缺點。圖1 為人工驗證方法的流程圖,圖1 左側紅框中為第一階段人工涂抹階段,右側紅框為第二階段人工強制階段。

圖1 安全級DCS軟件邏輯人工驗證流程圖Fig.1 Flow chart of manual verification of safety-level DCS software logic
人工涂抹階段。依據文件為功能圖文件,對象文件為工程軟件,依據功能圖實現對工程軟件(應用軟件邏輯)的比對,比對內容主要為工程軟件中的每個系統變量名稱、算法塊結構、說明、算法塊連接線等信息與功能圖對應的系統信息一致。一致則通過涂抹的方式生成記錄,不一致則做好不符合項的處理。
人工強制階段。采用人工涂抹的方式對安全級DCS 系統邏輯進行比對,主要是靜態比對。靜態比對的方法僅僅是對信息的表層進行了驗證,無法對系統中的算法塊、信號流向實現動態驗證[3]。為了解決這一問題,針對每個系統邏輯頁編制真值表用例,用例編制要求實現算法塊路徑以及邏輯功能全覆蓋。由人工依照真值表強制輸入信號,并核對輸出信號與用例的一致性。采用人工驗證方法最大的問題在于應用軟件邏輯測試工作量大,在邏輯的測試過程中容易出現人因失誤,因此人工測試方法逐漸被淘汰。
為提高軟件邏輯測試效率,避免人因失誤,軟件邏輯自動測試的方法逐漸被重視。軟件邏輯自動測試的核心為自動裝置調取用例真值,并依照真值表的設計內容對輸入信號強制,并自動采集輸出信號與標準值進行比對,最終實現邏輯組態的驗證[4]。
圖2 為單控制站應用軟件邏輯自動測試方法的實施流程圖。

圖2 單控制站應用軟件邏輯自動測試方法實施流程圖Fig.2 Flow chart of the implementation of the automatic test method for the application software logic of a single control station
單控制站應用軟件邏輯自動測試方法相比較人工驗證方法,主要優化了以下幾點:
1)測試工具與DCS 單站系統連接,并實現單站邏輯逐頁驗證。圖3 為單控制站應用軟件邏輯自動測試方法結構,操作人員采用專用測試電腦,導入工程組態邏輯工程及測試用例,該工具依據測試用例進行自動執行。

圖3 單控制站應用軟件邏輯自動測試方法結構圖Fig.3 The structure diagram of a single control station application software logic automatic test method
2)測試記錄自動生成,當工程組態邏輯與用例標準值不一致時,進行錯誤定位,以便設計人員分析問題。
3)節省時間,避免了人力投入量大、人因失誤率高的缺點,有效地提升了整個核電站DCS 控制系統應用軟件邏輯測試的效率。
總體來說,單控制站應用軟件邏輯自動測試方法通過引入邏輯開發平臺,不需要連接DCS 控制系統設備,直接調取軟件工程中的組態邏輯,依據用例真值表的內容實現輸入變量信息的自動強制以及輸出變量信息的自動采集。
單控制站應用軟件邏輯自動測試方法,基于研發平臺搭建的模擬環境實現邏輯自動測試,由于環境的限值,導致測試電腦僅能實現單站邏輯驗證,對于一些信號無法從源頭上驗證,這也使得整個應用軟件的邏輯驗證被分割開。另外,由于單控制站應用軟件邏輯自動測試方法采用模擬環境,執行電腦操作系統的運算周期為200ms,算法塊在設計的過程中運算周期為50ms。當延遲塊時間為10s 時,利用模擬環境測試,導致裝置在執行50 個周期后便進行輸出變量數據采集,而此時的延遲塊需要200 個周期才能運算完成。因此,采用模擬環境導致采集時間提前,需在測試用例的設計過程中考慮不同控制站的運算周期,解決測試用例時間延遲問題,增加了設計的難度。
相比較單控制站應用軟件邏輯自動測試方法,基于自動測試裝置多站測試方法(TD_Base 法)利用局域網,將DCS 控制系統各控制站與專用測試電腦連接,進而實現所需DCS 控制站邏輯的驗證。圖4 為基于自動測試裝置多站測試方法的流程圖。

圖4 TDbase自動測試方法的流程圖Fig.4 Flow chart of TDbase automatic test method
與單控制站應用軟件邏輯自動測試方法相比較,基于自動測試裝置多站測試方法最大的不同有以下兩點:
1)基于自動測試裝置多站測試方法能夠實現多臺DCS控制系統連接,有效地解決了以往無法追溯變量源頭的問題。另外,多系統同時連接,一方面有效地提高測試效率,另一方面實現了現場工藝工況針對性的確認,從根本上確保DCS 控制系統的有效性。
2)相比較單控制站應用軟件邏輯自動測試方法中的模擬測試環境,基于自動測試裝置多站測試方法以下裝到主控板卡中的組態邏輯為測試對象,由于主控板卡的執行周期與算法塊的執行周期一致,因而有效解決延遲算法塊計算不準確問題。
圖5 為基于自動測試裝置多站測試方法多站連接結構圖。

圖5 基于自動測試裝置多站測試方法連接結構圖Fig.5 Connection structure diagram of multi-station test method based on automatic test device
在基于自動測試裝置多站測試方法的基礎上,對測試用例的設計進行規范化。以往在測試用例的設計過程中,根據設計人員經驗要求做到所有邏輯路徑以及功能全覆蓋,但是在實際的設計過程中并沒有明確的方法以及規則,導致在設計的過程中所設計的測試用例樣式較多,一旦出現用例設計錯誤,無法實現用例錯誤快速定位,影響測試進程。因此,為了規范測試用例設計,將功能圖法以及判定表法引入測試用例設計過程中,實現組態邏輯工藝覆蓋、功能塊覆蓋以及信號傳輸路徑覆蓋,最終利用步驟優化原則實現重復步驟簡化。
以圖6 為例,整個邏輯中包含10 個算法塊、4個輸入、3 個輸出,按照功能圖法以及判定表法的要求,執行以下步驟,生成用例。

圖6 應用軟件邏輯結構圖Fig.6 Application software logic structure diagram
1)確定邏輯圖中輸入變量4 個、輸出變量3 個。
2)存在兩處工藝功能,分別是圖6 中的閉鎖1 以及閉鎖2,信號RPS2701KP 以及信號RPS2703KP 分別能夠閉鎖信號RP S2702KP,因此用例中必須存在上述原則。
3)功能圖中共有10 個算法塊,主要包括與、或、非、延時塊。設計用例的過程中要考慮算法塊自身的功能并實現驗證,如“與”邏輯塊,要保證每個與塊實現表1 的邏輯。

表1 “與”算法塊標準步驟Table 1 "AND" algorithm block standard steps
表2 為生成的測試用例。

表2 測試用例表格Table 2 Test case table
上述的判定表中:
每步執行的采樣時間為5s。
算法塊A 分別由步驟1、步驟2、步驟3 實現表1 邏輯驗證。
算法塊B 分別由步驟2、步驟4、步驟5 實現表1 邏輯驗證。
算法塊C 分別由步驟4、步驟6、步驟7 實現表1 邏輯驗證。
算法塊D 分別由步驟4、步驟6、步驟7 實現表1 邏輯驗證。
延遲塊8s、7s 分別由步驟3 和4、步驟5 和6 實現邏輯驗證。
閉鎖功能1 和2 分別由步驟3 和步驟5 實現驗證。

表3 不同測試方法對比表Table 3 Comparison table of different test methods
整個邏輯依據功能圖法以及判定表法通過分析邏輯圖內部結構,利用相同步驟實現不同功能的原則,在保證邏輯功能驗證全面、路徑驗證全面基礎上,壓縮測試步驟,一方面減少重復的步驟,另一方面提高測試的效率。
基于自動測試裝置多站測試方法,一方面節省了大量的人力物力,另一方面由于是自動測試裝置執行,避免了因人工操作帶來的錯誤,保障了測試的準確性。本文以防城港3 號機安全級DCS 控制系統應用軟件邏輯測試為對象,進行3 種方法應用實踐,主要得出了以下結論:
通過對上述關鍵要素增加權重,繪制圖7,可以清晰明了地體現出基于自動測試裝置多站測試方法優越性。
通過圖7 中的信息可以清晰看出,基于自動測試裝置多站測試方法在測試效率、測試可靠性、人力需求,以及問題可追溯性等關鍵因素上具有明顯的優勢。使用基于自動測試裝置多站測試方法,可有效提升核電站DCS 控制系統應用軟件邏輯測試效率。后續在整個應用軟件邏輯測試的研究過程中,將重點研究應用軟件邏輯測試用例自動生成,最終實現應用軟件邏輯測試驗證從設計到執行的全自動化目標。

圖7 不同測試方法對比圖Fig.7 Comparison of different test methods