武 岳,王 偉,李志剛,張 昊,李墨林
(海洋石油工程股份有限公司,天津 300452)
眾所周知,石油行業與其他行業相比較,需要的生產工藝和生產設備的安全等級比較高,因為在石油行業的生產過程和生產產品中都會有易燃有毒的氣液體產生,加之海洋石油平臺處于海洋中孤立的環境下,一旦發生安全事故,逃生幾率很低,如果放松安全警惕,后果不堪設想。而據有關資料表明,90%的安全事故是由人的錯誤操作造成的,許多事故發生的原因,表面上看來是設備因素,但追究該設備的歷史運行狀況,一般都與人的因素有關,由此可見,一份具有歷史查詢功能的操作記錄報表尤為重要。
本文介紹了以羅克韋爾公司的PlantPAx分布式體系結構為平臺對操作員的操作情況進行實時記錄并生成報表的方法,使管理人員可以方便查看操作員對設備的操作情況,當發生事故時,可以很快分清事故責任。以往的操作記錄常常采用曲線記錄或報警記錄的方式,由于石油平臺的操作基本都是數字量的脈沖信號,所以曲線記錄的方式很難捕捉到這些瞬時信號,監測起來也非常不直觀,而采用報警記錄的方式,里面會有許多模擬量的報警信息和系統的報警記錄,不易于查尋。這里介紹的方法是通過Factorytalk SE上位機組態軟件中自帶的數據記錄服務功能,采用系統ODBC源將手動操作的變量值改變信息寫入數據庫SQL 2008中,再通過HMI畫面按鈕打開Excel對數據庫中數據進行讀取。此報表的特點是數據清晰及時,對操作記錄的采集準確無誤,具有歷史查詢和篩選功能,極大地方便了管理人員查看記錄的工作。
開放數據庫互連ODBC(open database connectivity)是微軟公司開放式服務結構WOSA(Windows open services architecture)中有關數據庫的一個組成部分,它制定了一組協議規范,并提供了訪問數據庫的標準應用程序編程接口 (即 API)。ODBC API使不同的數據庫系統有了統一的接口,用戶使用一套接口程序就可以方便地對不同數據庫系統進行操作,并且這些接口支持大部分數據庫語言,所以用戶可將不同的數據庫語言映射到ODBC 中去[1]。
ODBC最大的優點是可以通過統一的接口方式對 SQL、Access、Oracle等數據庫進行處理。當像Excel制表軟件這類應用程序要對數據庫進行操作時,不需要通過數據庫管理系統來完成,只要對數據庫管理系統對應的ODBC驅動程序進行操作即可,大大地避免了數據傳遞之間的軟件障礙,使應用程序對數據庫的訪問更加靈活便捷。
一個完整的ODBC由以下幾個部分所組成:
(1)應用程序(application);
(2)ODBC 管理器(administrator)。ODBC 管理器位于Windows控制面板(control panel)的ODBC數據源內,其主要作用是對數據源和安裝的ODBC驅動程序進行管理;
(3)驅動程序管理器(driver manager)。驅動程序管理器是ODBC的核心部分,它包含在ODBC32.DLL中,對訪問用戶是不可見的,它的主要任務是對ODBC驅動程序進行管理;
(4)ODBC API;
(5)ODBC驅動程序。是一些DLL,提供了ODBC和數據庫之間的接口;
(6)數據源。數據源實際上是數據庫的映射文件,其中包含了數據庫類型和數據庫位置等信息。
ODBC的各部分關系如圖1所示。

圖1ODBC關系Fig.1 ODBC diagram
當用戶要通過應用程序來讀取數據庫的內容時,首先我們要在Windows控制面板的ODBC中建立一個數據源,數據源中包含了欲訪問數據庫的位置、數據類型及ODBC驅動程序等信息,相當于建立起了一個通往具體數據庫的入口,接下來我們要做的只是要通過應用程序使ODBC獲得數據源名,那樣ODBC就可以自動地鏈接到對應數據庫中去。在ODBC中,只能通過驅動程序管理器和數據庫傳遞信息,ODBC API不能對數據庫進行直接訪問。驅動程序管理器可以內嵌在Excel軟件中,Excel通過驅動程序管理器訪問數據庫的數據源,數據庫再將要訪問的數據通過驅動程序管理器反饋給Excel[2],由此可見,驅動程序管理器是ODBC的核心部分。
海洋石油平臺中控系統作為海洋油氣田開采的核心系統,仿佛是整個平臺的“大腦”和“中樞神經”,對油氣開采工藝過程控制及配電安全起到至關重要的作用。一般海洋石油平臺中控系統主要包括3個子系統(PCS過程控制系統、ESD緊急關斷系統、FGS火氣系統),PCS系統可實現采油工藝流程實時監控、監控作業參數;ESD及FGS系統可對采油安全實施有效保護,對現場漏氣、火災等風險因素進行實時監控,當發生險情時邏輯判斷是否需要進行設備及工藝保護關斷。3套系統共同實現海洋石油平臺采油過程工藝控制及安全保護,確保采油作業安全平穩進行。
操作員對中控系統的操作一般有對電機的啟??刂疲瑢DV閥門和BDV閥門的開關控制,對PV閥門和SV閥門的開度給定,以及在特殊時刻需要對ESD緊急關斷系統的設備進行操作。每當操作員在HMI監控畫面上按下控制按鈕時,系統將自動把操作時間和所操作的設備記錄在數據庫中,擁有權限的人員可在任何一臺操作員站上點擊“操作記錄”按鈕,系統會以Excel的形式自動打開操作記錄報表,顯示出預設周期內的所有操作記錄和操作的時間。
將生產PLC與Factorytalk View SE進行組態,使SE采集將要進行記錄的變量值,并對這些變量做適當的配置,在配置過程中通過ODBC可以連接對應的數據庫,將變量值和時間等參數保存到數據庫中去,這時會有一個對應的數據源產生,最后在SE監控畫面上繪制按鈕,該按鈕的作用是以Excel的形式打開上述數據源,形成報表。系統解決方案框圖如圖2所示。

圖2 系統解決方案框圖Fig.2 System solution diagram
在海洋石油平臺中控系統中,羅克韋爾產品的系統架構為分布式體系結構,即配置2臺冗余服務器進行監控頁面發布,其余操作員站對服務器進行訪問的網絡結構方式,網絡結構如圖3所示。

圖3 網絡結構Fig.3 Network structure diagram
我們將操作記錄的數據庫建立在服務器中,并將數據源共享,這樣,操作員站無需任何設置就可以通過HMI界面直接訪問服務器中的操作記錄數據源。
SQL Server 2008在Microsoft的數據平臺上發布,可以組織管理任何數據。能夠將即時文檔、歷史文檔、消息文檔、時間標簽等數據直接存儲到數據庫中。能夠對數據進行查詢、搜索、同步、報告和分析之類的操作。SQL Server 2008允許使用Microsoft.NET和Visual Studio開發的自定義應用程序中使用數據,在面向服務的架構SOA和通過Microsoft BizTalk Server進行的業務流程中使用數據。信息工作人員可以通過日常使用的工具直接訪問數據。
在SQL 2008 Management Studio中建立要存放操作記錄的數據庫,命名為“test”。需要注意的是,由于我們要在其他客戶端對數據庫進行訪問,所以數據庫要使用用戶名和密碼登錄的方式,不能使用Windows身份登陸。
數據日志的作用是將組態的變量存儲為歷史變量,方便用戶進行歷史記錄的查詢[3]。在對數據日志進行配置時,需要將變量添加到數據日志中去,并配置這些變量的采集周期和歷史存儲周期,對于變量的存儲有2種方式,其一是存儲為內部文件,我們這里用到的是第二種方式,即通過ODBC存儲到數據庫中,再使用Excel生成報表。
在數據日志模型中添加操作記錄配置文件,由于我們要在數據庫中記錄操作,所以記錄模式選擇ODBC數據源,在配置數據源中,選擇只用于服務器的系統數據源,并選擇SQL Server作為驅動程序,登錄方式選擇使用用戶名密碼登錄,最后更改默認的數據庫為剛剛在SQL中新建的數據庫“test”,點擊測試數據源,系統會顯示“測試成功”,說明我們創建的數據源已成功與SQL數據庫鏈接。如果直接點擊數據記錄模型配置文件中的“創建表格”按鈕,系統將自動在“test”數據庫中分別創建表格“Tag Table”、“Float Table”、“Sting Table”,其中“Tag Table”中記錄的是標簽名、標簽類型、標簽數據類型以及標簽長度,“Float Table”中記錄的是標簽發生時間、標簽數值、標簽狀態、標簽標記等,“Sting Table”中記錄的是字符串型數據。在操作記錄報表中我們只需要“Tag Table”中的標簽名和“Float Table”表中的內容,在此,我們選擇最簡單的方式,即刪除“Tag Table”,只在數據庫中建立“Float Table”表和“Sting Table”表,這樣,標簽名將自動添加到“Float Table”表中,為了查看方便,對其進行中文注釋。如圖4所示。

圖4 報表設置Fig.4 Report setting diagram
在數據記錄模型中添加需要進行記錄的操作標簽名,并將記錄觸發方式更改為“On Change”,即一旦變量發生改變就進行記錄的方式,這樣可以快速及時地對操作員的操作進行捕捉,最后設置歷史記錄保存周期,可以以天、星期、月為單位。
值得一提的是,一般來講Factorytalk View SE軟件的HMI服務器只能加載1個數據日志,而歷史曲線數據日志是每個中控系統必不可少的,所以為了將操作記錄與歷史曲線記錄分開,我們需要啟動一個應用項目的多個數據日志模型,所以我們要在啟動宏中使用多個DataLogOn
在HMI畫面中創建用于打開操作記錄報表的按鈕,并為其編寫VBA代碼:

為了使任意一臺操作員站都能打開報表,位于服務器的Excel軟件和“test”數據源都應設為共享。最終報表如圖5所示。

圖5 最終表格Fig.5 Final report
石油平臺中控系統操作記錄報表是結合ODBC數據源和SQL 2008數據庫而實現的,經過一周的實際應用證明,所有的被監控操作均能夠及時準確地寫入操作記錄表格中去,此報表不但能夠查詢操作員的歷史操作記錄,還可對操作記錄進行篩選,針對某一設備或某一時間段重點查詢,操作方便,數據清晰準確,完全符合中控系統的要求和需要,填補了設備操作這一數據空白。而且報表的功能不只局限于操作記錄,同時也可對設備的運行情況給予記錄,為重要設備的檢修和維護以及能源消耗情況提供重要依據。
[1]聶文燕.開放式數據庫互連(ODBC)技術的探討[J].新疆職業大學學報,2004,12(1):74-77.
[2]檀磊.ODBC 研究[J].軟件導刊,2011,10(1):41-42.
[3]FactoryTalk View SE 用戶手冊[Z],2008.