武 岳,王 偉,李志剛,張 昊,李墨林
(海洋石油工程股份有限公司,天津 300452)
眾所周知,石油行業(yè)與其他行業(yè)相比較,需要的生產(chǎn)工藝和生產(chǎn)設(shè)備的安全等級比較高,因為在石油行業(yè)的生產(chǎn)過程和生產(chǎn)產(chǎn)品中都會有易燃有毒的氣液體產(chǎn)生,加之海洋石油平臺處于海洋中孤立的環(huán)境下,一旦發(fā)生安全事故,逃生幾率很低,如果放松安全警惕,后果不堪設(shè)想。而據(jù)有關(guān)資料表明,90%的安全事故是由人的錯誤操作造成的,許多事故發(fā)生的原因,表面上看來是設(shè)備因素,但追究該設(shè)備的歷史運(yùn)行狀況,一般都與人的因素有關(guān),由此可見,一份具有歷史查詢功能的操作記錄報表尤為重要。
本文介紹了以羅克韋爾公司的PlantPAx分布式體系結(jié)構(gòu)為平臺對操作員的操作情況進(jìn)行實時記錄并生成報表的方法,使管理人員可以方便查看操作員對設(shè)備的操作情況,當(dāng)發(fā)生事故時,可以很快分清事故責(zé)任。以往的操作記錄常常采用曲線記錄或報警記錄的方式,由于石油平臺的操作基本都是數(shù)字量的脈沖信號,所以曲線記錄的方式很難捕捉到這些瞬時信號,監(jiān)測起來也非常不直觀,而采用報警記錄的方式,里面會有許多模擬量的報警信息和系統(tǒng)的報警記錄,不易于查尋。這里介紹的方法是通過Factorytalk SE上位機(jī)組態(tài)軟件中自帶的數(shù)據(jù)記錄服務(wù)功能,采用系統(tǒng)ODBC源將手動操作的變量值改變信息寫入數(shù)據(jù)庫SQL 2008中,再通過HMI畫面按鈕打開Excel對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行讀取。此報表的特點(diǎn)是數(shù)據(jù)清晰及時,對操作記錄的采集準(zhǔn)確無誤,具有歷史查詢和篩選功能,極大地方便了管理人員查看記錄的工作。
開放數(shù)據(jù)庫互連ODBC(open database connectivity)是微軟公司開放式服務(wù)結(jié)構(gòu)WOSA(Windows open services architecture)中有關(guān)數(shù)據(jù)庫的一個組成部分,它制定了一組協(xié)議規(guī)范,并提供了訪問數(shù)據(jù)庫的標(biāo)準(zhǔn)應(yīng)用程序編程接口 (即 API)。ODBC API使不同的數(shù)據(jù)庫系統(tǒng)有了統(tǒng)一的接口,用戶使用一套接口程序就可以方便地對不同數(shù)據(jù)庫系統(tǒng)進(jìn)行操作,并且這些接口支持大部分?jǐn)?shù)據(jù)庫語言,所以用戶可將不同的數(shù)據(jù)庫語言映射到ODBC 中去[1]。
ODBC最大的優(yōu)點(diǎn)是可以通過統(tǒng)一的接口方式對 SQL、Access、Oracle等數(shù)據(jù)庫進(jìn)行處理。當(dāng)像Excel制表軟件這類應(yīng)用程序要對數(shù)據(jù)庫進(jìn)行操作時,不需要通過數(shù)據(jù)庫管理系統(tǒng)來完成,只要對數(shù)據(jù)庫管理系統(tǒng)對應(yīng)的ODBC驅(qū)動程序進(jìn)行操作即可,大大地避免了數(shù)據(jù)傳遞之間的軟件障礙,使應(yīng)用程序?qū)?shù)據(jù)庫的訪問更加靈活便捷。
一個完整的ODBC由以下幾個部分所組成:
(1)應(yīng)用程序(application);
(2)ODBC 管理器(administrator)。ODBC 管理器位于Windows控制面板(control panel)的ODBC數(shù)據(jù)源內(nèi),其主要作用是對數(shù)據(jù)源和安裝的ODBC驅(qū)動程序進(jìn)行管理;
(3)驅(qū)動程序管理器(driver manager)。驅(qū)動程序管理器是ODBC的核心部分,它包含在ODBC32.DLL中,對訪問用戶是不可見的,它的主要任務(wù)是對ODBC驅(qū)動程序進(jìn)行管理;
(4)ODBC API;
(5)ODBC驅(qū)動程序。是一些DLL,提供了ODBC和數(shù)據(jù)庫之間的接口;
(6)數(shù)據(jù)源。數(shù)據(jù)源實際上是數(shù)據(jù)庫的映射文件,其中包含了數(shù)據(jù)庫類型和數(shù)據(jù)庫位置等信息。
ODBC的各部分關(guān)系如圖1所示。
圖1ODBC關(guān)系Fig.1 ODBC diagram
當(dāng)用戶要通過應(yīng)用程序來讀取數(shù)據(jù)庫的內(nèi)容時,首先我們要在Windows控制面板的ODBC中建立一個數(shù)據(jù)源,數(shù)據(jù)源中包含了欲訪問數(shù)據(jù)庫的位置、數(shù)據(jù)類型及ODBC驅(qū)動程序等信息,相當(dāng)于建立起了一個通往具體數(shù)據(jù)庫的入口,接下來我們要做的只是要通過應(yīng)用程序使ODBC獲得數(shù)據(jù)源名,那樣ODBC就可以自動地鏈接到對應(yīng)數(shù)據(jù)庫中去。在ODBC中,只能通過驅(qū)動程序管理器和數(shù)據(jù)庫傳遞信息,ODBC API不能對數(shù)據(jù)庫進(jìn)行直接訪問。驅(qū)動程序管理器可以內(nèi)嵌在Excel軟件中,Excel通過驅(qū)動程序管理器訪問數(shù)據(jù)庫的數(shù)據(jù)源,數(shù)據(jù)庫再將要訪問的數(shù)據(jù)通過驅(qū)動程序管理器反饋給Excel[2],由此可見,驅(qū)動程序管理器是ODBC的核心部分。
海洋石油平臺中控系統(tǒng)作為海洋油氣田開采的核心系統(tǒng),仿佛是整個平臺的“大腦”和“中樞神經(jīng)”,對油氣開采工藝過程控制及配電安全起到至關(guān)重要的作用。一般海洋石油平臺中控系統(tǒng)主要包括3個子系統(tǒng)(PCS過程控制系統(tǒng)、ESD緊急關(guān)斷系統(tǒng)、FGS火氣系統(tǒng)),PCS系統(tǒng)可實現(xiàn)采油工藝流程實時監(jiān)控、監(jiān)控作業(yè)參數(shù);ESD及FGS系統(tǒng)可對采油安全實施有效保護(hù),對現(xiàn)場漏氣、火災(zāi)等風(fēng)險因素進(jìn)行實時監(jiān)控,當(dāng)發(fā)生險情時邏輯判斷是否需要進(jìn)行設(shè)備及工藝保護(hù)關(guān)斷。3套系統(tǒng)共同實現(xiàn)海洋石油平臺采油過程工藝控制及安全保護(hù),確保采油作業(yè)安全平穩(wěn)進(jìn)行。
操作員對中控系統(tǒng)的操作一般有對電機(jī)的啟停控制,對SDV閥門和BDV閥門的開關(guān)控制,對PV閥門和SV閥門的開度給定,以及在特殊時刻需要對ESD緊急關(guān)斷系統(tǒng)的設(shè)備進(jìn)行操作。每當(dāng)操作員在HMI監(jiān)控畫面上按下控制按鈕時,系統(tǒng)將自動把操作時間和所操作的設(shè)備記錄在數(shù)據(jù)庫中,擁有權(quán)限的人員可在任何一臺操作員站上點(diǎn)擊“操作記錄”按鈕,系統(tǒng)會以Excel的形式自動打開操作記錄報表,顯示出預(yù)設(shè)周期內(nèi)的所有操作記錄和操作的時間。
將生產(chǎn)PLC與Factorytalk View SE進(jìn)行組態(tài),使SE采集將要進(jìn)行記錄的變量值,并對這些變量做適當(dāng)?shù)呐渲?,在配置過程中通過ODBC可以連接對應(yīng)的數(shù)據(jù)庫,將變量值和時間等參數(shù)保存到數(shù)據(jù)庫中去,這時會有一個對應(yīng)的數(shù)據(jù)源產(chǎn)生,最后在SE監(jiān)控畫面上繪制按鈕,該按鈕的作用是以Excel的形式打開上述數(shù)據(jù)源,形成報表。系統(tǒng)解決方案框圖如圖2所示。
圖2 系統(tǒng)解決方案框圖Fig.2 System solution diagram
在海洋石油平臺中控系統(tǒng)中,羅克韋爾產(chǎn)品的系統(tǒng)架構(gòu)為分布式體系結(jié)構(gòu),即配置2臺冗余服務(wù)器進(jìn)行監(jiān)控頁面發(fā)布,其余操作員站對服務(wù)器進(jìn)行訪問的網(wǎng)絡(luò)結(jié)構(gòu)方式,網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure diagram
我們將操作記錄的數(shù)據(jù)庫建立在服務(wù)器中,并將數(shù)據(jù)源共享,這樣,操作員站無需任何設(shè)置就可以通過HMI界面直接訪問服務(wù)器中的操作記錄數(shù)據(jù)源。
SQL Server 2008在Microsoft的數(shù)據(jù)平臺上發(fā)布,可以組織管理任何數(shù)據(jù)。能夠?qū)⒓磿r文檔、歷史文檔、消息文檔、時間標(biāo)簽等數(shù)據(jù)直接存儲到數(shù)據(jù)庫中。能夠?qū)?shù)據(jù)進(jìn)行查詢、搜索、同步、報告和分析之類的操作。SQL Server 2008允許使用Microsoft.NET和Visual Studio開發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù),在面向服務(wù)的架構(gòu)SOA和通過Microsoft BizTalk Server進(jìn)行的業(yè)務(wù)流程中使用數(shù)據(jù)。信息工作人員可以通過日常使用的工具直接訪問數(shù)據(jù)。
在SQL 2008 Management Studio中建立要存放操作記錄的數(shù)據(jù)庫,命名為“test”。需要注意的是,由于我們要在其他客戶端對數(shù)據(jù)庫進(jìn)行訪問,所以數(shù)據(jù)庫要使用用戶名和密碼登錄的方式,不能使用Windows身份登陸。
數(shù)據(jù)日志的作用是將組態(tài)的變量存儲為歷史變量,方便用戶進(jìn)行歷史記錄的查詢[3]。在對數(shù)據(jù)日志進(jìn)行配置時,需要將變量添加到數(shù)據(jù)日志中去,并配置這些變量的采集周期和歷史存儲周期,對于變量的存儲有2種方式,其一是存儲為內(nèi)部文件,我們這里用到的是第二種方式,即通過ODBC存儲到數(shù)據(jù)庫中,再使用Excel生成報表。
在數(shù)據(jù)日志模型中添加操作記錄配置文件,由于我們要在數(shù)據(jù)庫中記錄操作,所以記錄模式選擇ODBC數(shù)據(jù)源,在配置數(shù)據(jù)源中,選擇只用于服務(wù)器的系統(tǒng)數(shù)據(jù)源,并選擇SQL Server作為驅(qū)動程序,登錄方式選擇使用用戶名密碼登錄,最后更改默認(rèn)的數(shù)據(jù)庫為剛剛在SQL中新建的數(shù)據(jù)庫“test”,點(diǎn)擊測試數(shù)據(jù)源,系統(tǒng)會顯示“測試成功”,說明我們創(chuàng)建的數(shù)據(jù)源已成功與SQL數(shù)據(jù)庫鏈接。如果直接點(diǎn)擊數(shù)據(jù)記錄模型配置文件中的“創(chuàng)建表格”按鈕,系統(tǒng)將自動在“test”數(shù)據(jù)庫中分別創(chuàng)建表格“Tag Table”、“Float Table”、“Sting Table”,其中“Tag Table”中記錄的是標(biāo)簽名、標(biāo)簽類型、標(biāo)簽數(shù)據(jù)類型以及標(biāo)簽長度,“Float Table”中記錄的是標(biāo)簽發(fā)生時間、標(biāo)簽數(shù)值、標(biāo)簽狀態(tài)、標(biāo)簽標(biāo)記等,“Sting Table”中記錄的是字符串型數(shù)據(jù)。在操作記錄報表中我們只需要“Tag Table”中的標(biāo)簽名和“Float Table”表中的內(nèi)容,在此,我們選擇最簡單的方式,即刪除“Tag Table”,只在數(shù)據(jù)庫中建立“Float Table”表和“Sting Table”表,這樣,標(biāo)簽名將自動添加到“Float Table”表中,為了查看方便,對其進(jìn)行中文注釋。如圖4所示。
圖4 報表設(shè)置Fig.4 Report setting diagram
在數(shù)據(jù)記錄模型中添加需要進(jìn)行記錄的操作標(biāo)簽名,并將記錄觸發(fā)方式更改為“On Change”,即一旦變量發(fā)生改變就進(jìn)行記錄的方式,這樣可以快速及時地對操作員的操作進(jìn)行捕捉,最后設(shè)置歷史記錄保存周期,可以以天、星期、月為單位。
值得一提的是,一般來講Factorytalk View SE軟件的HMI服務(wù)器只能加載1個數(shù)據(jù)日志,而歷史曲線數(shù)據(jù)日志是每個中控系統(tǒng)必不可少的,所以為了將操作記錄與歷史曲線記錄分開,我們需要啟動一個應(yīng)用項目的多個數(shù)據(jù)日志模型,所以我們要在啟動宏中使用多個DataLogOn
在HMI畫面中創(chuàng)建用于打開操作記錄報表的按鈕,并為其編寫VBA代碼:
為了使任意一臺操作員站都能打開報表,位于服務(wù)器的Excel軟件和“test”數(shù)據(jù)源都應(yīng)設(shè)為共享。最終報表如圖5所示。
圖5 最終表格Fig.5 Final report
石油平臺中控系統(tǒng)操作記錄報表是結(jié)合ODBC數(shù)據(jù)源和SQL 2008數(shù)據(jù)庫而實現(xiàn)的,經(jīng)過一周的實際應(yīng)用證明,所有的被監(jiān)控操作均能夠及時準(zhǔn)確地寫入操作記錄表格中去,此報表不但能夠查詢操作員的歷史操作記錄,還可對操作記錄進(jìn)行篩選,針對某一設(shè)備或某一時間段重點(diǎn)查詢,操作方便,數(shù)據(jù)清晰準(zhǔn)確,完全符合中控系統(tǒng)的要求和需要,填補(bǔ)了設(shè)備操作這一數(shù)據(jù)空白。而且報表的功能不只局限于操作記錄,同時也可對設(shè)備的運(yùn)行情況給予記錄,為重要設(shè)備的檢修和維護(hù)以及能源消耗情況提供重要依據(jù)。
[1]聶文燕.開放式數(shù)據(jù)庫互連(ODBC)技術(shù)的探討[J].新疆職業(yè)大學(xué)學(xué)報,2004,12(1):74-77.
[2]檀磊.ODBC 研究[J].軟件導(dǎo)刊,2011,10(1):41-42.
[3]FactoryTalk View SE 用戶手冊[Z],2008.