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