SCADA系統(tǒng)在石化生產(chǎn)過程中的報警管理淺析
1 引言
石油化工生產(chǎn)過程具有易燃、易爆、有毒、有害的特點。為了確保企業(yè)生產(chǎn)安全、穩(wěn)定、長周期生產(chǎn),保護(hù)國家財產(chǎn),保障職工人身安全和健康,提高經(jīng)濟(jì)效益,必須加強安全生產(chǎn)管理,不斷提高安全生產(chǎn)監(jiān)督水平。
隨著生產(chǎn)過程自動化水平不斷提高,設(shè)備綜合管理和重要性與日俱增。在廣州石化的生產(chǎn)實踐中,近年來,大量采用scada(supervisory control and data acquistion)系統(tǒng)作為生產(chǎn)過程管理自動化控制系統(tǒng)。作為監(jiān)督控制與數(shù)據(jù)采集系統(tǒng),scada系統(tǒng)將先進(jìn)的計算機(jī)技術(shù)、工業(yè)控制技術(shù)和通訊技術(shù)有機(jī)地結(jié)合在一起,既具有強大的現(xiàn)場測控功能,又具有極強的組網(wǎng)通訊能力,是自動化領(lǐng)域中廣泛應(yīng)用的重要系統(tǒng)之一。結(jié)合我廠的生產(chǎn)特點,生產(chǎn)過程中的報警和事件的監(jiān)督管理是一個極為重要的環(huán)節(jié)。因此本文將scada系統(tǒng)的報警和事件管理作為重點來論述。
2 scada系統(tǒng)在廣州石化的應(yīng)用簡介
scada系統(tǒng)在廣州石化的成功應(yīng)用實例很多,最典型的應(yīng)用包括原油碼頭、油庫及輸油管線監(jiān)控系統(tǒng)、原油罐區(qū)監(jiān)控系統(tǒng)、液烴罐區(qū)監(jiān)控系統(tǒng)、水處理控制系統(tǒng)和煙機(jī)機(jī)組控制系統(tǒng)等。雖然這些系統(tǒng)所監(jiān)控的生產(chǎn)工藝過程各有不同,而且所使用的系統(tǒng)硬件及scada軟件也有區(qū)別,但它們一般都具有如圖1所示的基本結(jié)構(gòu):基于pc機(jī)windows平臺的scada上位機(jī)系統(tǒng),通過通訊網(wǎng)絡(luò)連接到各主流廠家plc系統(tǒng)平臺作為下位機(jī)系統(tǒng)。
上位機(jī)系統(tǒng)的scada軟件主要是采用wonderware的intouch和西門子公司的wincc。下位機(jī)系統(tǒng)平臺則是各主流廠家的各種型號的plc控制系統(tǒng),它們既有自己封閉的網(wǎng)絡(luò)又有開放接口。上位機(jī)通常通過i/o接口卡或標(biāo)準(zhǔn)串口運行專用的上層采集模塊,從下位機(jī)中實時地采集設(shè)備的各種參數(shù)。上位機(jī)系統(tǒng)在接受這些信息后,以適當(dāng)?shù)男问饺鐖D形、圖象或聲音等方式顯示給用戶,以達(dá)到監(jiān)視的目的;同時數(shù)據(jù)經(jīng)過處理后,告知用戶設(shè)備各種參數(shù)的狀態(tài)(報警、正?;驁缶謴?fù));上位機(jī)同時還可以接受操作人員的指示,將控制信號發(fā)送到下位機(jī)中,以達(dá)到控制的目的。
對于設(shè)備的操作方式, scada系統(tǒng)能夠方便地實現(xiàn)三種操作方式:
“遠(yuǎn)程操作”—也就是在現(xiàn)場控制室操作員站上能對現(xiàn)場設(shè)備、閥門等的啟停、開關(guān)進(jìn)行操作,即在計算機(jī)屏幕上操作。
“就地操作”—某些設(shè)備也可以實現(xiàn)就地操作,在現(xiàn)場電氣柜或機(jī)旁操作箱上的按鈕進(jìn)行操作。
“自動操作”—某些工藝過程比如由于液位低等外部原因引起,通過plc系統(tǒng)直接輸出停泵等操作,以保護(hù)現(xiàn)場設(shè)備和工藝安全。
3 scada系統(tǒng)的報警和事件管理
3.1 系統(tǒng)的軟硬件的組成
作為本節(jié)所引用的實例,其系統(tǒng)的軟硬件組成結(jié)構(gòu)和圖1相同。其中系統(tǒng)的上位機(jī)采用的scada軟件包,包括wonderware公司的intouch8.0和rockwell公司的rslogix5等,它們可以在pc-base的任何平臺上運行,每單項功能設(shè)計均為模塊化設(shè)計,用戶可以在系統(tǒng)中進(jìn)行各種新的開發(fā)和修改而不影響系統(tǒng)的正常運行;而系統(tǒng)的下位機(jī)采用allen-bradley公司的plc5控制系統(tǒng)。
3.2 系統(tǒng)的報警和事件
intouch有兩種方式來通知操作員過程活動:報警與事件。報警是過程狀態(tài)出現(xiàn)問題時發(fā)出的警告,同時要求操作人員做出響應(yīng)。當(dāng)一過程值超出用戶自定義的極限時,譬如模擬量超出了上限值,報警即被觸發(fā)。它觸發(fā)了未確認(rèn)報警狀態(tài),可以通知操作人員發(fā)生了什么問題。如果加入配置,intouch能夠?qū)缶瘜懭氲酱疟P文件中,并將它打印出來。一旦操作人員確認(rèn)了報警,系統(tǒng)返回確認(rèn)狀態(tài)。事件表示了系統(tǒng)正常狀態(tài)時的消息,當(dāng)某一系統(tǒng)條件滿足時,事件即被觸發(fā),它不要求操作人員響應(yīng),其查詢和記錄方法與報警相同。
3.3 報警和事件的顯示與查詢
intouch提供兩種報警顯示系統(tǒng):標(biāo)準(zhǔn)報警顯示和分布式報警顯示。由于分布式報警顯示系統(tǒng)界面更豐富、功能更為強大,而且在運行時進(jìn)行各種查詢更為方便靈活,因此即使在獨立式應(yīng)用程序系統(tǒng)中亦推薦使用分布式報警顯示對象。圖2所示就是一個典型應(yīng)用的報警顯示畫面示意圖。
為了在系統(tǒng)運行中方便操作員進(jìn)行各種分類查詢和操作,在圖2的報警顯示畫面中設(shè)置了許多功能按鈕(用戶可根據(jù)各系統(tǒng)的實際要求不同而進(jìn)行增減)。在這一實例中過程系統(tǒng)只劃分為:a1,a2,a3三個單元(在intouch中亦稱為報警組)。下面是具體的實施要點:
首先,在標(biāo)記名字典中創(chuàng)建消息標(biāo)記名alarm_group和querytype。alarm_group用來定義報警組名:在圖2畫面中,如按下單元報警按鈕“a1”執(zhí)行acTIon腳本:alarm_group=“a1”;
按下單元報警按鈕“a2”執(zhí)行acTIon腳本:alarm_group=“a2”;
按下“返回系統(tǒng)報警總匯”執(zhí)行acTIon腳本:alarm_group=“$system”等。querytype用來定義查詢類型:按下“報警摘要”按鈕執(zhí)行acTIon腳本:querytype=“summ”;
按下“報警歷史”按鈕執(zhí)行action腳本:querytype=“hist”。按下以上按鈕及“a3”按鈕均要執(zhí)行共同的action腳本:almquery(“almobj_main”,“intouch!”+alarm_group, 1, 999,“all”,querytype),以動態(tài)地切換報警顯示畫面,腳本中almobj_main為在圖2中嵌入的報警對象名稱。
為了確認(rèn)系統(tǒng)中發(fā)生的報警,在“確認(rèn)全系統(tǒng)報警”按鈕上鏈接action腳本:$system.ack=1;在“確認(rèn)當(dāng)前報警組報警”按鈕上鏈接action腳本:groupvar.name=alarm_group,groupvar.ack=1;其中g(shù)roupvar報警組組變量。此外,為了方便操作員操作,根據(jù)對應(yīng)報警組是否存在未確認(rèn)的報警在單元報警按鈕a1,a2,a3上添加顏色動畫鏈接,讓操作員直觀了解系統(tǒng)單元報警狀態(tài)并能直接進(jìn)入有未確認(rèn)報警的單元細(xì)目顯示畫面,確認(rèn)該單元的報警。
3.4 報警確認(rèn)的操作站通知
intouch的設(shè)計支持創(chuàng)建獨立式和分布式應(yīng)用程序。分布式應(yīng)用系統(tǒng)通常有好幾層網(wǎng)絡(luò),而且分布式應(yīng)用程序亦要復(fù)雜得多,但其分布式報警功能在各操作站和服務(wù)器之間能自動實現(xiàn)報警確認(rèn)的“通知”功能。相反,獨立式應(yīng)用程序一般較容易配置,需最少網(wǎng)絡(luò),只需要簡單的維護(hù),各工作站獨立工作,自動實現(xiàn)操作站冗余功能。因此,在中、小型scada系統(tǒng)中大多都將上位機(jī)系統(tǒng)配置成獨立式應(yīng)用程序。
但是,對于獨立式應(yīng)用,系統(tǒng)中各操作站的報警確認(rèn)在intouch應(yīng)用程序中與其他操作站是無關(guān)的。為了實現(xiàn)類似分布式應(yīng)用程序報警確認(rèn)的“通知”功能,需要在獨立式應(yīng)用系統(tǒng)中手工增加報警確認(rèn)的操作站通知功能。
以單元a1的報警確認(rèn)為例,該單元所有的報警屬于報警組a1。首先在標(biāo)記名字典創(chuàng)建離散i/o標(biāo)記名:a1alarm-ack,其dde訪問項目為:b3:301/1。并在apllication script中添加腳本:a1alarm-ack = a1.ack。而在plc梯形圖程序中添加圖3所示的梯級。
這樣,不論系統(tǒng)中哪一個操作站觸發(fā)a1單元的報警確認(rèn):a1.ack=1,則有a1alarm-ack=1,均會使plc處理器中的位b3:301/1=1,通過dde自動更新其他操作站的標(biāo)記名a1alarm-ack的值,從而確認(rèn)系統(tǒng)所有工作站a1單元的所有報警(a1.ack=1)。圖3中的定時器t48:1的作用是當(dāng)觸發(fā)報警確認(rèn)后2秒鐘,自動解鎖plc位b3:301/1,以接受a1單元的新報警。
3.5 現(xiàn)場設(shè)備的報警顯示
在裝置的控制系統(tǒng)改造中,工藝往往會要求保留現(xiàn)場報警指示燈?,F(xiàn)以儀表位號tag1為例說明一個現(xiàn)場報警指示燈的實現(xiàn)方法:首先在標(biāo)記名字典創(chuàng)建離散i/o標(biāo)記名:tag1-unack,tag1-lamp,其dde訪問項目分別為b3:301/2,o:101/1。在plc梯形圖程序中添加以下梯級:
在圖4中,tag1是報警指示燈tag1-lamp的報警源,o:101/1為報警指示燈的輸出通道。標(biāo)記名square-wave-signal是系統(tǒng)共用的頻率為1hz的方波信號源(它是采用定時器方式在plc梯形圖的其他梯級中實現(xiàn))。圖4梯級的功能是:當(dāng)系統(tǒng)存在位號tag1的未確認(rèn)報警時,tag1-unack=1,報警指示燈tag1-lamp輸出頻率1hz的閃光信號到現(xiàn)場報警指示面板顯示;當(dāng)tag1報警已確認(rèn)時,tag1=1和tag1-unack=0,那么tag1-lamp輸出報警常亮信號;正常時o:101/1=0,tag1-lamp輸出報警滅燈信號。test是現(xiàn)場報警指示燈面板上的公用試燈按鈕。
為了不斷地掃描該儀表位號是否存在新的未確認(rèn)報警狀態(tài),需apllication script的運行時腳本中添加語句:tag1-unack=tag1.unack。
4 結(jié)束語
本文所論述的報警與事件管理方法綜合了目前廣州石化多套運行中的scada系統(tǒng)的相關(guān)方法和技巧,在多年的生產(chǎn)實踐中已經(jīng)證明是行之有效的,對于其他中、小型系統(tǒng)的scada-plc改造具有普遍性的參考意義。