(中國石油化工股份有限公司齊魯分公司第二化肥廠,山東 淄博 255400) 袁 勇
袁勇(1974-)
男,山東淄博人,學士,工程師,現從事化工儀表及控制系統應用。
1 引言
為保證乙烯75萬噸擴建裝置的平穩運行,中國石油化工股份有限公司齊魯分公司第二化肥廠于2004年7月實施了壓縮大機組控制系統改造,以替代原來上世紀80年代的盤裝儀表。ESD(緊急停車系統)部分采用德國HIMA公司H51q系統替代原HIMA早期的Planar系統,這套系統的軟件部分功能強大,設計新穎,尤其在安全設計方面有獨到之處,是一套安全性和可用性都非常突出的控制軟件系統。認真研究H51q系統軟件安全性設計的基本思路和功能對于我們更好的設計、組態和應用ESD系統,保證裝置的安全穩定運行有重要意義。
2 H51q安全系統相關的軟件
H51q安全系統相關的軟件可分為三部分:操作系統、編程工具和用戶程序。用戶程序由編程工具ELOP-II系統軟件包創建。ELOP-II系統軟件包是基于參數化的平臺。用戶程序通過代碼發生器被編譯成機器碼。機器碼通過串口被傳送到中央控制模件的Flash-Eproms中,完成ESD系統軟件部分的創建。
3 操作系統的安全特性
操作系統通過監視程序的代碼版本號、運行版本號、數據版本號、區域代碼號的更改來保證程序的安全性,并以循環掃描的形式來處理用戶程序,過程為:讀輸入數據→根據IEC-61131-3標準處理邏輯→寫輸出。當然在這個過程中還要進行擴展的自診斷、I/O模件診斷、數據傳送和比較。具體的循環階段分為7步,如表1所示。
4 編程工具ELOP-II的安全特性
4.1 安全型工具的應用
根據IEC61131-3編寫的安全工具集成于ELOP-II,用以檢查出用戶錯誤和編程系統(PS)錯誤。集成于ELOP-II的安全工具有三個:C CODE比較器、目標代碼比較器、認證的GNU-C 編譯器。C CODE比較器可以識別用戶程序的更改。目標代碼比較器比較原目標代碼和經過GNU-C 編譯器編譯的目標代碼。這種方法可以避免非安全型的PC產生的錯誤。
? 在創建程序時安全型工具的應用
(1) 根據綁定的標準來創建用戶程序(IEC61508,DIN V VDE 0801 或者用戶的標準)(圖1中(1)~(4));
(2) 更改的用戶程序通過C CODE創建器被編譯成C CODE同時產生一個比較文件(圖1中(5));
(3) 通過產生一個相互參照表來檢查用戶變量使用的正確性。如:所有的變量是否在所定義的區間內使用;
(4) C CODE和比較文件被經過安全認證的GNU編譯器編譯(圖1中(6)~(13))。產生目標代碼和比較代碼;
(5) 目標代碼比較器被激活(圖1中(14))。它對比目標代碼和比較代碼。由非安全型的PC產生的一切錯誤將被檢測和標識出來;
(6) 這樣創建的程序將準備應用,程序被下裝到H51q系統中(圖1中(7))。程序必須經過完全測試;
(7) 一個備份的目標代碼被創建后,PES(Programmable Electronic Systems)開始安全的運行。
圖1 創建程序
? 在更改程序時安全型工具的應用
(1) 用戶程序根據綁定的標準更改(IEC61508,DIN V VDE 0801 或者用戶的標準)(圖1中(1)~(4));
(2) 對于程序的更改,要用到正運行的用戶程序的備份。這個備份包括:VGL文件、目標代碼、輸入數據;
(3) 修改用戶程序;
(4) 最新的被修改的用戶程序通過C CODE創建器被編譯成C CODE(圖1中(5));
(5) C CODE比較器必須被激活(圖1中(12))。它比較新C CODE和先前程序版本的舊C CODE(圖1中(11))。作為比較文件(舊C CODE),一個備份必須被標識出來;
(6) 比較的結果形成文檔(圖1中(15));
(7) 由用戶檢查是否C CODE比較器指示出了所有的對程序的改變。只有相關改變才會被標識出來;
(8) 如果C CODE比較器指示出用戶不認識的更改,可能是用戶的更改引發了其他意想不到的更改或一個內部錯誤。如果C CODE比較器沒有指示出用戶的更改,可能是C CODE比較器不能識別的更改(如圖形方面的更改或初始值的更改)或此更改沒有被順利的接收;
(9) 新的C CODE和比較文件被經過安全認證的GNU-C 編譯器編譯(圖1中(6)~(13))。產生目標代碼和比較代碼;
(10) 目標代碼比較器必須被激活(圖1中(14))。它對比目標代碼和比較代碼。由非安全型的PC產生的一切錯誤將被檢測和標識出來;
(11) 這樣創建的隔離了錯誤的程序才可以準備應用,程序被下裝到H51q系統中。這時所有的更改部分必須經過測試以保證目標代碼的正確性;
(12) 如果一切順利,當前程序的備份是很有必要的。
4.2 在線更改功能的安全性設計(可重裝的代碼)
在線更改過程中,工程師要通過其他手段進行安全監視。在每一次在線更改之前,必須通過C CODE比較器比較之后明確所做出的更改。下裝前,更改部分必須作離線虛擬測試。
如果一個在線更改被允許進行,在代碼創建器編譯時將出現“code reloadable”的信息。
下面情況將導致不能在線重裝(在線重裝按鈕變灰不可操作,只能離線下裝,若此時裝置正運行將導致停車):柜內模件被插入和刪除;全局變量被刪除、增加和重命名;物理I/O被分配或存在的I/O被刪除;增加的變量定義為這些類型:Hipro-n(HIMA系統間非安全型總線變量傳送器),Hipro-s(HIMA系統間安全型總線變量傳送器),Buscom(外接非HIMA系統通訊變量基址設置器),LGP(打印型), Event(事件型)、ELOP-II模塊庫之外的塊的插入和刪除;沒有足夠的數據結構空間去裝載新的機器碼;內存區重新組織分配時(這種情況是因為存儲空間已經到限,但由于先前的重復代碼的創建導致的內存分配之間的空隙形成);Buscom的基址更改。
對于單獨中央控制模件,這種改變必須在故障容忍時間內完成。程序在下裝時,I/O模件不進行讀寫或測試。控制器及協處理器接口都不處理數據。
對于冗余中央控制模件,它不受單中央控制模件的系統的某些限制,在線下裝開始時,第一個控制模件執行下裝,第二個控制模件以MONO(獨立)模式繼續執行用戶程序;第一個控制模件下裝完成后,接收第二個控制模件中用戶當前數據,以MONO模式執行新的用戶程序;第二個控制模件執行下裝,下裝完成并接收完數據后,兩個控制模件以冗余模式運行。
5 用戶程序的安全應用
人們在resource中定義模件時,必須將安全型的和非安全型的數字輸入和數字輸出信號區分開來。非安全型的模件只能被底層操作系統讀寫而沒有故障識別和故障信息。對于安全型的信號,只能使用安全型的模件,最好與標準功能塊綁定使用,以得到更加深入的診斷和安全功能。
另外,根據安全系統不同的設計要求,H51q系統從硬件配置到軟件設計都給出了結合自身特點的靈活配置,體現了系統的安全性和可用性的較好結合,在此就不贅述了。
由于壓縮大機組的安全運行直接關系到整個乙烯裝置的平穩運轉,其ESD系統的改造顯得尤為重要。通過對H51q系統軟件安全策略的研究和應用,成功的保證了組態程序的安全性,及時發現和處理了多起軟件安全隱患,并通過軟件的合理組態充分發揮了硬件的安全功效。
參考文獻
[1] IEC61508, Functional Safety of electrical/electronic/programmable electronic safety-related systems. IEC, 1998, 2000.
[2] Programmable Systems Safety Manual-Systems H41q/H51q operating system BS41q/51q V7.0-7.
[3] Programmable Systems. The H41q/H51q System Families.
[4] PC-based Systems ELOP II Resource type manual Edition 0234.