• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    OPC技術(shù)在天然氣行業(yè)控制系統(tǒng)中的應(yīng)用

    2014-07-01 19:46:19上海液化天然氣有限責(zé)任公司張思元
    上海煤氣 2014年3期
    關(guān)鍵詞:應(yīng)用程序客戶端天然氣

    上海液化天然氣有限責(zé)任公司 張思元

    OPC技術(shù)在天然氣行業(yè)控制系統(tǒng)中的應(yīng)用

    上海液化天然氣有限責(zé)任公司 張思元

    當(dāng)前工業(yè)生產(chǎn)中廣泛采用了PCS(Process Control System)系統(tǒng),天然氣行業(yè)也不例外。控制系統(tǒng)需要將現(xiàn)場儀表采集的信號(hào)傳輸給HIS(Human Interface System)控制站進(jìn)行監(jiān)控。如何使得控制系統(tǒng)與HIS站之間穩(wěn)定、高效的傳輸數(shù)據(jù),是控制系統(tǒng)設(shè)計(jì)中的一個(gè)關(guān)鍵問題。同時(shí),如何將過程數(shù)據(jù)傳輸給第三方設(shè)備,以便于生產(chǎn)系統(tǒng)信息化的建設(shè)也是目前生產(chǎn)企業(yè)需要解決的問題之一。文章討論的OPC技術(shù)即是基于此類問題上的解決方法之一。

    天然氣 PCS OPC

    0 引言

    隨著科技的進(jìn)步,工業(yè)生產(chǎn)正向大規(guī)模、高效率、復(fù)雜化的方向發(fā)展,對(duì)產(chǎn)品的質(zhì)量和數(shù)量的要求也越來越高,已經(jīng)不可能依靠純手工來生產(chǎn),同時(shí)自動(dòng)化程度的提高也能夠有效的減少工作人員的數(shù)量和工作強(qiáng)度,增強(qiáng)企業(yè)的生產(chǎn)力和競爭力。

    上海液化天然氣有限責(zé)任公司負(fù)責(zé)上海液化天然氣(LNG)項(xiàng)目的投資、建設(shè)和運(yùn)營。是上海市“十一五”期間能源供應(yīng)的重要項(xiàng)目,也是2006年市政府重點(diǎn)工程之一,項(xiàng)目主要由接收站工程及輸氣管線工程組成。項(xiàng)目一期工程于2009年底建成,已成為上海市天然氣供應(yīng)保障和調(diào)峰應(yīng)急的主力。根據(jù)市場發(fā)展和調(diào)峰保障的需求,上海液化天然氣有限責(zé)任公司仍在計(jì)劃實(shí)施上海LNG項(xiàng)目擴(kuò)建工程,以進(jìn)一步提高全市天然氣調(diào)峰供應(yīng)和安全應(yīng)急保障能力。

    目前上海LNG控制系統(tǒng)廣泛采用了PCS (Process Control System)過程控制系統(tǒng)和SIS(Safty Instruments System)安全儀表系統(tǒng)以及SCADA數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)。接收站現(xiàn)場儀表采集的信號(hào)通過電纜傳入PCS和SIS系統(tǒng),經(jīng)過相應(yīng)的控制模塊進(jìn)行數(shù)據(jù)處理后,對(duì)現(xiàn)場設(shè)備進(jìn)行自動(dòng)控制,同時(shí)將現(xiàn)場反饋信號(hào)等傳輸給HIS(Human Interface System)控制站進(jìn)行監(jiān)控,也可通過HIS控制站實(shí)現(xiàn)操作員對(duì)現(xiàn)場設(shè)備的遠(yuǎn)程操作。在即將開始的擴(kuò)建中,如何保證控制系統(tǒng)與HIS站之間穩(wěn)定、高效的傳輸數(shù)據(jù),同時(shí)具備一定的兼容能力,以整合擴(kuò)建過程中需要增加的各種控制系統(tǒng),是設(shè)計(jì)和招標(biāo)階段考慮的一個(gè)關(guān)鍵問題。同時(shí)PCS、SIS和SCADA的數(shù)據(jù)如何提供接口,將數(shù)據(jù)傳輸給第三方設(shè)備,以滿足公司信息化的建設(shè)要求也是目前LNG公司目前需要解決的問題。本文討論的OPC技術(shù)即是基于此類問題上的解決方法之一。

    1 OPC技術(shù)

    1.1 OPC技術(shù)概述

    OPC是OLE for Process Control的縮寫。顧名思義,OPC是一種利用微軟的COM/DCOM技術(shù)來達(dá)成自動(dòng)化控制的協(xié)議。OPC的開發(fā)目的,正是為了給工業(yè)控制系統(tǒng)應(yīng)用程序之間的通訊建立一個(gè)接口標(biāo)準(zhǔn),在工業(yè)控制設(shè)備和控制軟件之間建立一個(gè)統(tǒng)一的數(shù)據(jù)存取規(guī)范,這個(gè)規(guī)范不僅適用于單機(jī),而且適用于網(wǎng)絡(luò)分布式系統(tǒng)。

    目前OPC規(guī)范主要包括:

    (1)OPC數(shù)據(jù)存取(Data Access)規(guī)范;

    (2)OPC報(bào)警與事件(Alarm and Event)規(guī)范;

    (3)OPC歷史數(shù)據(jù)存取(Historical Data Access)規(guī)范;

    (4)OPC安全(Security)規(guī)范;

    (5)OPC批處理(Batch)規(guī)范;

    (6)OPC服務(wù)器數(shù)據(jù)交換(Data Exchange)規(guī)范;

    (7)OPC_XML規(guī)范。

    1.2 OPC接口及應(yīng)用

    OPC數(shù)據(jù)訪問接口標(biāo)準(zhǔn)實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)的同步,異步讀寫訪問和數(shù)據(jù)自動(dòng)刷新,通過COM的連接點(diǎn)技術(shù)實(shí)現(xiàn)了服務(wù)器方到客戶方的通訊,即定時(shí)或當(dāng)數(shù)據(jù)變化超過一定范圍時(shí)向客戶方發(fā)送變化的數(shù)據(jù)。數(shù)據(jù)訪問接口標(biāo)準(zhǔn)定義了數(shù)據(jù)訪問的由上而下的三個(gè)層次:服務(wù)器層,組層,項(xiàng)層。OPC服務(wù)器、組、項(xiàng)的關(guān)系如圖1所示。

    圖1 OPC服務(wù)器、組、項(xiàng)的關(guān)系

    OPC組提供了一種途徑給客戶端用來組織數(shù)據(jù)。例如:組可以用一種特別的操作來顯示和報(bào)告項(xiàng)。數(shù)據(jù)可以被讀寫。除此以外,在客戶端和組的項(xiàng)之間可以創(chuàng)建基本的連接,按照需要可以被使用和禁用。OPC客戶端能配置OPC服務(wù)器提供的數(shù)據(jù)變化的速率。OPC項(xiàng)提供的是服務(wù)器內(nèi)的數(shù)據(jù)源的連接。項(xiàng)不能作為一個(gè)對(duì)象被OPC客戶端訪問。所有對(duì)OPC項(xiàng)的訪問是通過OPC組對(duì)象這個(gè)項(xiàng)的容器來完成的。和每個(gè)項(xiàng)關(guān)聯(lián)的是一個(gè)值、性質(zhì)和時(shí)間戳。值是一個(gè)變量。項(xiàng)不是數(shù)據(jù)源,僅僅是連接數(shù)據(jù)源的一種連接,項(xiàng)應(yīng)該被認(rèn)為是一種指定的數(shù)據(jù)地址,而不是物理上真正的數(shù)據(jù)。

    作為一個(gè)最低的級(jí)別,OPC接口能夠從SCADA和PCS系統(tǒng)的物理設(shè)備或者應(yīng)用程序中得到原始數(shù)據(jù)。這種結(jié)構(gòu)和設(shè)計(jì)使得客戶端應(yīng)用程序能夠訪問OPC廠商提供的多種不同的服務(wù)器,見圖2。

    圖2 OPC服務(wù)器和客戶端應(yīng)用中的關(guān)系

    OPC采用客戶/服務(wù)器結(jié)構(gòu),提供了兩套接口方案,分別為自定義接口和自動(dòng)化接口。如圖3所示。

    圖3 OPC接口

    自定義接口效率高,通過它客戶能夠發(fā)揮OPC服務(wù)器的最佳性能,采用C++語言的客戶一般采用此方案;自動(dòng)化接口使解釋性語言和宏語言訪問OPC服務(wù)器成為可能,采用VB語言的客戶一般采用此方案,如圖4所示。

    圖4 OPC結(jié)構(gòu)

    OPC客戶端與服務(wù)器端的通信通過OPC的接口來實(shí)現(xiàn)。服務(wù)器能夠提供可靠的數(shù)據(jù)訪問,并能對(duì)不同的客戶端的訪問請求進(jìn)行優(yōu)化。

    1.3 OPC方式及應(yīng)用

    OPC服務(wù)器可以提供以下幾種方法的讀寫:

    同步讀寫數(shù)據(jù),讀寫函數(shù)直到讀寫完成后才能返回,在此期間OPC客戶程序一直處于等待狀態(tài)。同步讀寫數(shù)據(jù)如圖5。同步方式是按照一定的時(shí)間頻率交換所有數(shù)據(jù)的方式,方法簡單,但效率較低。適用于發(fā)送數(shù)據(jù)量教少的場合。

    圖5 同步通訊方法

    異步讀寫數(shù)據(jù),OPC客戶端對(duì)服務(wù)器進(jìn)行讀、寫操作時(shí),函數(shù)直接返回,客戶端不用等待OPC服務(wù)器的操作,讀寫完畢后,服務(wù)器會(huì)產(chǎn)生一個(gè)回調(diào)(Callback)通知客戶己經(jīng)讀寫完畢。因此相對(duì)于同步通信,異步通信的效率更高,適用于多客戶端訪問同一OPC服務(wù)器和大量數(shù)據(jù)的場合。異步讀寫數(shù)據(jù)如圖6。

    圖6 異步讀寫方法

    除了上述的同步和異步數(shù)據(jù)訪問之外,還有并不需要OPC應(yīng)用程序向OPC服務(wù)器請求,就可以自動(dòng)接到從OPC服務(wù)器送來的變化通知的訂閱方式(Subscription),訂閱方式是異步數(shù)據(jù)訪問的第二種訪問方式。服務(wù)器按一定的更新周期(Update Rate)更新OPC服務(wù)器的數(shù)據(jù)緩沖器的數(shù)值時(shí),如果發(fā)現(xiàn)數(shù)值有變化時(shí),就會(huì)以數(shù)據(jù)變化事件(Datachange)通知OPC應(yīng)用程序。如果服務(wù)器支持不敏感帶(Dead Band)而且OPC標(biāo)簽的數(shù)據(jù)類型是模擬量的情況,只要當(dāng)前值與前次值的差的絕對(duì)值超過一定限度時(shí),才更新緩沖器數(shù)據(jù)并通知OPC應(yīng)用程序。由此可以無視模擬值的微小變化,從而減輕OPC服務(wù)器和OPC應(yīng)用程序的負(fù)荷。訂閱通訊方式如圖7。訂閱方式適用于處于長期監(jiān)視特定變量的情況下。

    圖7 異步訂閱通訊方式

    1.4 OPC技術(shù)的必要性

    使用OPC技術(shù)前,由于每個(gè)廠家所采用的通信接口不一樣,使得不同廠家、不同設(shè)備之間的通信互不兼容,軟件開發(fā)廠商必須按照各個(gè)硬件設(shè)備開發(fā)特定的接口,硬件的升級(jí)也需要更換已有的驅(qū)動(dòng)程序,造成了軟件的重復(fù)開發(fā),資源不能共享等浪費(fèi),不同廠家之間的軟件和硬件難以集成,給現(xiàn)場管理帶來了很多困難。使用了OPC技術(shù)后,各個(gè)不同廠家的獨(dú)立系統(tǒng)可以整合起來,從而實(shí)現(xiàn)系統(tǒng)的集成,提高企業(yè)生產(chǎn)和管理水品。

    從OPC通信方式看,使用了OPC異步讀寫方式及訂閱方式后,極大節(jié)省了客戶程序在數(shù)據(jù)訪問時(shí)期的等待時(shí)間。訂閱方式在數(shù)據(jù)變化不超過范圍的時(shí)候不會(huì)進(jìn)行數(shù)據(jù)刷新并通知客戶程序,減少了傳輸?shù)臄?shù)據(jù)量和數(shù)據(jù)訪問請求,減少了網(wǎng)絡(luò)延遲,提高了控制系統(tǒng)的實(shí)時(shí)性。

    2 控制系統(tǒng)方案

    上海液化天然氣有限責(zé)任公司目前采用了廣泛使用以O(shè)PC技術(shù)為基礎(chǔ)的橫河電機(jī)的控制系統(tǒng),系統(tǒng)架構(gòu)如圖8所示。

    圖8 系統(tǒng)硬件架構(gòu)

    PCS和SIS系統(tǒng)均通過控制總線與HIS(人機(jī)界面工作站)連接,HIS站有2種,一種HIS站中安裝有OPC服務(wù)器及OPC客戶端,直接可以從總線接口上對(duì)PCS及SIS系統(tǒng)進(jìn)行數(shù)據(jù)讀寫,一種沒有安裝OPC服務(wù)器,只安裝有OPC客戶端的HIS通過安裝有OPC 服務(wù)器的HIS站讀寫,如圖9所示。可以看出在擴(kuò)建過程中,如果只增加橫河電機(jī)向下兼容的控制系統(tǒng)或HIS控制站,顯然是沒有問題的。

    圖9 OPC通信接口示意

    如果增加第三方的控制系統(tǒng),同時(shí)生產(chǎn)過程數(shù)據(jù)也需要傳輸給HIS控制站顯示,就需要區(qū)別對(duì)待。由于橫河電機(jī)使用的是Vnet/IP總線協(xié)議,而第三方控制系統(tǒng)的網(wǎng)絡(luò)協(xié)議可能不同,同時(shí)考慮到需要跨網(wǎng)段、各系統(tǒng)獨(dú)立以及安全等問題,就需要使用SIOS(System Integration OPC Station系統(tǒng)整合OPC站)進(jìn)行轉(zhuǎn)換,通過SIOS將數(shù)據(jù)轉(zhuǎn)發(fā)給HIS控制站,如圖9所示。通過這樣的OPC技術(shù),可以對(duì)如PLC、不同廠家的PCS系統(tǒng)等進(jìn)行集成,使用HIS站統(tǒng)一進(jìn)行監(jiān)控,監(jiān)控的范圍包括實(shí)時(shí)數(shù)據(jù)、系統(tǒng)報(bào)警、事件消息等。

    同樣的MES、ERP等第三方系統(tǒng),也可以通過以上方法,逆向由SIOS獲得生產(chǎn)過程數(shù)據(jù),以滿足企業(yè)信息化系統(tǒng)的要求。OPC 服務(wù)器與SIOS一般安裝在同一臺(tái)SIOS工作站中。

    3 API應(yīng)用接口

    通過自動(dòng)化API應(yīng)用接口,可為企業(yè)應(yīng)用開發(fā)人員、第三方開發(fā)者提供良好的支持,使用戶在任何一個(gè)實(shí)時(shí)數(shù)據(jù)庫客戶端上,通過不同的編程環(huán)境(MS Excel VBA、VB Script、VB、VB.NET、C#等),在用戶權(quán)限許可的情況下與實(shí)時(shí)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換,開發(fā)應(yīng)用程序。以下分別用同步和異步兩種方式對(duì)讀最新數(shù)據(jù)和讀歷史報(bào)警事件兩種數(shù)據(jù)進(jìn)行舉例說明。

    3.1 讀取最新數(shù)據(jù)

    3.1.1 同步讀

    以下程序以讀2個(gè)Item為例:

    Private Sub CmdSyncReadLatestValues_Click( )

    Dim rsBrowseResults As ADODB.Recordset

    Dim sItemsArray(1) As String

    Dim lNumItems As Long

    Dim Count As Long

    Dim vItemID As Variant

    Dim vData As Variant

    Dim vValue1, vValue2 As Variant

    Dim lQuality1, lQuality2 As Long

    Dim dTimeStamp1, dTimeStamp2 As Date

    sItemsArray(0) = "Root.Tag1.Value"

    sItemsArray(1) =

    "Root.Tag1.Aggregations.Hour.Mean.Value"

    lNumItems = 2

    Set rsBrowseResults =

    objBrowser.PathToMetaData(sItemsArray,

    lNumItems,brDetail)

    For Count = 1 To lNumItems

    vItemID = rsBrowseResults!ItemID

    If Not IsNull(vItemID) Then

    objDataAccess.Add vItemID

    rsBrowseResults.MoveNext

    Else

    MsgBox "Path is invalid:" & sItemsArray(Count - 1)

    Exit Sub

    End If

    Next Count

    vData = objDataAccess.ReadValue

    vValue1 = vData(1, 0)(0, 0) ‘ Item1.Value值

    lQuality1 = vData(1, 0)(1, 0) ‘Item1.Quality值

    dTimeStamp1 = vData(1, 0)(2, 0) ‘Item1. Timestamp值

    vValue2 = vData(1, 1)(0, 0) ‘Item2. Value值

    lQuality2 = vData(1, 1)(1, 0) ‘Item2. Quality值

    dTimeStamp2 = vData(1, 1)(2, 0) ‘Item2.Timestamp值

    End Sub

    3.1.2 異步讀

    以下程序以讀2個(gè)Item為例:

    Private Sub cmdAsyncReadLatestValue_Click()

    Dim rsBrowseResults As ADODB.Recordset

    Dim sItemsArray(1) As String

    Dim lNumItems As Long

    Dim Count As Long

    Dim vItemID As Variant

    Dim vData As Variant

    Dim vValue1, vValue2 As Variant

    Dim lQuality1, lQuality2 As Long

    Dim dTimeStamp1, dTimeStamp2 As Date

    Set objDataAccess =

    New QUANTUMAUTOMATIONLib.QDataAccess

    objDataAccess.SetSession objSession

    sItemsArray(0) = "Root.Tag1.Value"

    sItemsArray(1) =

    "Root.Tag1.Aggregations.Hour.Mean.Value"

    lNumItems = 2

    Set rsBrowseResults =

    objBrowser.PathToMetaData(sItemsArray,

    lNumItems,brDetail)

    For Count = 1 To lNumItems

    vItemID = rsBrowseResults!ItemID

    If Not IsNull(vItemID) Then

    objDataAccess.Add vItemID

    rsBrowseResults.MoveNext

    Else

    MsgBox "Path is invalid:" & sItemsArray(Count - 1)

    Exit Sub

    End If

    Next Count

    objDataAccess.Execute

    End Sub

    Private Sub objDataAccess_

    OnData(ByVal ItemID As Variant, ByVal

    DataReturnType As QUANTUMAUTOMATIONLib.

    qdaDataReturnType, ByVal Data As Variant)

    Dim vValue As Variant

    Dim lQuality As Long

    Dim dTimeStamp As Date

    Dim vItemID As Variant

    vItemID = ItemID

    vValue = Data(0, 0)

    lQuality = Data(1, 0)

    dTimeStamp = Data(2, 0)

    End Sub

    3.2 讀取歷史報(bào)警及事件

    這里同樣有同步讀和異步讀2種方法。

    3.2.1 同步讀

    Dim ConnectStr As String

    Dim objConnection As ADODB.Connection

    Dim objRecordset As ADODB.Recordset

    Dim Count As Long

    Dim i As Long

    Dim vAEId As Variant

    Dim Events As Variant

    Dim vOPCAEPumpHistID As Variant

    Dim sSource As String

    Dim sMessage As String

    Dim dTimeStamp As Date

    Dim lSequenceNo As Long

    Dim lEventCategory As Long

    Dim lSeverity As Long

    Dim sConditionName As String

    Dim lNoOfAttributes As Long

    Dim vEventAttributesArray As Variant

    Dim vEventAttribute As Variant

    Dim dQueryTime As Date

    Set objConnection = New ADODB.Connection

    ConnectStr = "Provider=sqloledb;"

    ConnectStr = ConnectStr + "Network Library = dbmssocn;"

    ConnectStr = ConnectStr + "Server=;"

    ConnectStr = ConnectStr + "database=QConfig;"

    ConnectStr = ConnectStr + "Trusted_Connection=yes"

    objConnection.Open ConnectStr

    Set objRecordset = New ADODB.Recordset

    objRecordset.LockType = adLockOptimistic

    objRecordset.Open "SELECT OPCAEPump HistId

    FROM OPCServer WHERE Name = 'OPC Gateway 1'", objConnection

    If objRecordset.EOF Then

    MsgBox "Invalid OPC Gateway name"

    Exit Sub

    End If

    vAEId = objRecordset!OPCAEPumpHistId

    If Not IsNull(vAEId) Then objAEAccess.Add vAEId

    Else

    MsgBox "OPCAEPumpHistId is Null"

    Exit Sub

    End If

    dQueryTime = DateAdd("n", -5, Now)

    objAEAccess.SetQueryTimes dQueryTime

    Events = objAEAccess.ReadValue

    If Not IsNull(Events) Then

    For Count = 0 To UBound(Events, 2)

    vOPCAEPumpHistID = Events(0, Count)

    sSource = Events(1, Count)

    sMessage = Events(2, Count)

    dTimeStamp = Events(3, Count)

    lSequenceNo = Events(4, Count)

    lEventCategory = Events(5, Count)

    lSeverity = Events(6, Count)

    sConditionName = Events(7, Count)

    lNoOfAttributes = Events(8, Count)

    EventAttributes

    vEventAttributesArray = Events(9, Count)

    For i = 0 To lNoOfAttributes - 1

    vEventAttribute = vEventAttributesArray(i)

    Next i

    Next Count

    End If

    3.2.2 異步讀

    異步讀之前需要先將objAEAccess定義為'With Events',事件觸發(fā)。

    Dim WithEvents objAEAccess As

    QUANTUMAUTOMATIONLib.QAEAccess

    Dim vAEId As Variant

    Dim vData As Variant

    Dim vAEData As Variant

    Dim lQuality As Long

    Dim dTimeStamp As Date

    Dim ConnectStr As String

    Dim objConnection As ADODB.Connection

    Dim objRecordset As ADODB.Recordset

    Dim dQueryTime As Date

    Set objConnection = New ADODB.Connection

    ConnectStr = "Provider=sqloledb;"

    ConnectStr = ConnectStr + "Network Library=dbmssocn;"

    ConnectStr = ConnectStr + "Server=;"

    ConnectStr = ConnectStr + "database=QConfig;"

    ConnectStr = ConnectStr + "Trusted_Connection=yes"

    connection

    objConnection.Open ConnectStr

    Set objRecordset = New ADODB.Recordset

    objRecordset.LockType = adLockOptimistic

    objRecordset.Open "SELECT OPCAEPumpHistId FROM

    OPCServer WHERE Name = 'OPC Gateway 1'", objConnection

    If objRecordset.EOF Then

    MsgBox "Invalid OPC Gateway name"

    Exit Sub

    End If

    vAEId = objRecordset!OPCAEPumpHistId

    If Not IsNull(vAEId) Then

    objAEAccess.Add vAEId

    Else

    MsgBox "OPCAEPumpHistId is Null"

    Exit Sub

    End If

    dQueryTime = DateAdd("n", -5, Now)

    objAEAccess.SetQueryTimes dQueryTime

    objAEAccess.Execute

    Private Sub objAEAccess_OnAE(ByVal EventReturnType As

    QUANTUMAUTOMATIONLib.qeaEventReturnType, ByVal Events As Variant)

    Dim vOPCAEPumpHistID As Variant

    Dim sSource As String

    Dim sMessage As String

    Dim dTimeStamp As Date

    Dim lSequenceNo As Long

    Dim lEventCategory As Long

    Dim lSeverity As Long

    Dim sConditionName As String

    Dim lNoOfAttributes As Long

    Dim vEventAttributesArray As Variant

    Dim vEventAttribute As Variant

    Dim Count As Long

    Dim i As Long

    If Not IsNull (Events) Then

    For Count = 0 To UBound(Events, 2)

    vOPCAEPumpHistID = Events(0, Count)

    sSource = Events(1, Count)

    sMessage = Events(2, Count)

    dTimeStamp = Events(3, Count)

    lSequenceNo = Events(4, Count)

    lEventCategory = Events(5, Count)

    lSeverity = Events(6, Count)

    sConditionName = Events(7, Count)

    lNoOfAttributes = Events(8, Count)

    vEventAttributesArray = Events(9, Count)

    For i = 0 To lNoOfAttributes - 1

    vEventAttribute = vEventAttributesArray(i)

    Next i

    Next Count

    End If

    If EventReturnType = qeaNew Then

    ElseIf EventReturnType = qeaMoreEvents Then

    MsgBox "More notification to be received"

    ElseIf EventReturnType = qeaEnd Then

    MsgBox "Last notification received"

    End If

    End Sub

    通過以上舉例說明,可以看出OPC規(guī)范了接口函數(shù),不管現(xiàn)場設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而保證軟件對(duì)客戶的透明性,使得用戶完全從底層的開發(fā)中脫離出來。

    4 OPC接口的缺點(diǎn)及發(fā)展趨勢

    現(xiàn)有OPC規(guī)范的不足如下:

    (1)缺少跨平臺(tái)通用性。OPC技術(shù)是建立在COM/DCOM技術(shù)基礎(chǔ)上。微軟開發(fā)的DCOM為遠(yuǎn)程Windows應(yīng)用和計(jì)算機(jī)工作提供了易于使用的通信基礎(chǔ),使得開發(fā)者能夠在自己的應(yīng)用程序中重復(fù)使用微軟的方法和程序。但由于COM/DCOM對(duì)Microsoft平臺(tái)的依賴性,使得OPC-COM接口很難被應(yīng)用到其它平臺(tái)上,OPC接口與COM/DCOM接口的關(guān)系如圖10所示。

    圖10 OPC接口與COM/DCOM接口關(guān)系

    (2)較難與Intemet應(yīng)用程序集成。DCOM需要許多端口用于尋找其他主機(jī)、解析名稱、請求服務(wù)、取得認(rèn)證、發(fā)送數(shù)據(jù)和其他功能。如果這些端口不可用,DCOM會(huì)自動(dòng)搜尋其他端口。正是由于DCOM這種開放任意端口的行為,使之成為網(wǎng)絡(luò)攻擊、病毒和蠕蟲的目標(biāo)。所以,當(dāng)DCOM遇到安全問題時(shí),包括OPC應(yīng)用在內(nèi)的所有應(yīng)用都會(huì)受到感染。而如果使用防火墻等設(shè)備又會(huì)造成無法通信的情況。由于網(wǎng)絡(luò)防火墻會(huì)過濾掉大多數(shù)基于COM傳輸?shù)臄?shù)據(jù),因此OPC-COM不能與Intemet應(yīng)用程序進(jìn)行交互。DCOM不適用于Internet 環(huán)境,它不支持通過Internet訪問對(duì)象。

    (3)較難與企業(yè)應(yīng)用程序連接。企業(yè)應(yīng)用程序需要實(shí)時(shí)的工業(yè)現(xiàn)場數(shù)據(jù),這些數(shù)據(jù)通常來自具有OPC-COM接口的服務(wù)器。但是這些上層應(yīng)用程序大多沒有與OPC-COM服務(wù)器交互的OPC-COM接口,因而不能進(jìn)行連接。

    針對(duì)OPC的以上缺點(diǎn),OPC基金會(huì)推出了OPC UA (Unified Architecture)標(biāo)準(zhǔn)。

    OPC UA服務(wù)器與現(xiàn)有OPC服務(wù)器比較:

    (1)可互操作性:集成了現(xiàn)有OPC各自獨(dú)立的API,增強(qiáng)了可互操作性。

    (2)開放性:增加了對(duì)Linux/Unix 等其他非微軟平臺(tái)的支持。

    (3)安全性:增加了服務(wù)器的鑒別與授權(quán)、消息的簽名與加密,提高了安全性能。

    (4)集成能力:服務(wù)器間的鏈接機(jī)制使得更容易實(shí)現(xiàn)現(xiàn)場層到管理層的集成,諸如實(shí)現(xiàn)MES,ERP系統(tǒng),更適合作為系統(tǒng)的集成工具。

    (5)可靠性:利用冗余技術(shù)、消息序列號(hào)、生存保持期等方法,提高了可靠性。

    基于以上原因,在擴(kuò)建階段,LNG公司會(huì)重視控制系統(tǒng)在安全性方面的問題,優(yōu)先考慮采用OPC UA標(biāo)準(zhǔn)的控制設(shè)備,同時(shí)彌補(bǔ)現(xiàn)有控制設(shè)備現(xiàn)存的缺點(diǎn),以保證生產(chǎn)設(shè)備穩(wěn)定安全的運(yùn)行。

    5 結(jié)語

    綜上所述,本文詳細(xì)描述了OPC的概念、接口及通信方式等情況,結(jié)合上海液化天然氣有限責(zé)任公司即將開展的擴(kuò)建工程,為控制系統(tǒng)的設(shè)計(jì)、招標(biāo)提供了一定的理論基礎(chǔ),同時(shí)討論、對(duì)比了OPC技術(shù)的優(yōu)缺點(diǎn),并對(duì)OPC技術(shù)的發(fā)展趨勢進(jìn)行了展望。

    First notification

    "

    Application of OPC Technology in Natural Gas Controlling System

    Shanghai LNG Co., Ltd. Zhang Siyuan

    At present PCS(Process Control System)has been widely used in industry production ,no exception for natural gas industry. It needs to monitor signals transferring from field instruments to HIS(Human Interface System)control stations. It is important to make signals transferred efficiently between control system and HIS, and how to transfer signals to the third party device is also a problem to be done in the process of informatization for the manufacturing enterprise. The OPC technology discussed in this paper is one of the methods to solve these questions above.

    natural gas, PCS, OPC

    猜你喜歡
    應(yīng)用程序客戶端天然氣
    第六章 意外的收獲——石油和天然氣
    石油和天然氣
    刪除Win10中自帶的應(yīng)用程序
    縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
    孵化垂直頻道:新聞客戶端新策略
    基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
    電子測試(2018年10期)2018-06-26 05:53:34
    天然氣:LNG價(jià)格已經(jīng)開始預(yù)熱了么?
    能源(2018年8期)2018-01-15 19:18:24
    我國天然氣真的供大于求嗎?
    客戶端空間數(shù)據(jù)緩存策略
    關(guān)閉應(yīng)用程序更新提醒
    電腦迷(2012年15期)2012-04-29 17:09:47
    珲春市| 嘉黎县| 高州市| 沅江市| 隆子县| 夹江县| 铁力市| 台中县| 曲阳县| 周至县| 冷水江市| 西平县| 潼南县| 金溪县| 醴陵市| 内江市| 五常市| 丘北县| 正镶白旗| 海口市| 永川市| 大同县| 高雄市| 济阳县| 松江区| 军事| 竹溪县| 讷河市| 凭祥市| 淮南市| 武宣县| 沾化县| 淳化县| 华坪县| 涿鹿县| 桃园市| 酒泉市| 新民市| 广水市| 西林县| 沙雅县|