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