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