複製鏈接
請複製以下鏈接發送給好友

OPC技術

鎖定
OPC(OLE for Process Control)技術是指為了給工業控制系統應用程序之間的通信建立一個接口標準,在工業控制設備與控制軟件之間建立統一的數據存取規範。它給工業控制領域提供了一種標準數據訪問機制,將硬件與應用軟件有效地分離開來,是一套與廠商無關的軟件數據交換標準接口和規程,主要解決過程控制系統與其數據源的數據交換問題,可以在各個應用之間提供透明的數據訪問。
中文名
OPC技術
外文名
OLE for Process Control
作    用
主要解決過程控制系統與其數據源的數據交換問題
基礎技術
OLE/COM技術
應    用
在線數據監測、歷史數據訪問等
所屬領域
自動控制技術

OPC技術簡述

OPC是OLE for Process Control的縮寫,即應用於過程控制的OLE
OLE原意是對象連接和嵌入,隨着OLE2的發行,其範圍已遠遠超出了這個概念。如今OLE包含了許多新的特徵,如統一數據傳輸、結構化存儲和自動化,已經成為獨立於計算機語言操作系統甚至硬件平台的一種規範,是面向對象程序設計概念的進一步推廣。
OPC建立於OLE規範之上,它為工業控制領域提供了一種標準的數據訪問機制。工業控制領域用到大量的現場設備,在OPC出現以前,軟件開發商需要開發大量的驅動程序來連接這些設備。即使硬件供應商在硬件上做了一些小小改動,應用程序也可能需要重寫。同時,由於不同設備甚至同一設備不同單元的驅動程序也有可能不同,軟件開發商很難同時對這些設備進行訪問以優化操作。硬件供應商也在嘗試解決這個問題,然而由於不同客户有着不同的需要、同時也存在着不同的數據傳輸協議,因此也一直沒有完整的解決方案。
自OPC提出以後,這個問題終於得到解決。OPC規範包括OPC服務器和OPC客户兩個部分。其實質是在硬件供應商和軟件開發商之間建立一套完整的“規則”。只要遵循這套規則,數據交互對兩者來説都是透明的,硬件供應商只需考慮應用程序的多種需求和傳輸協議,軟件開發商也不必瞭解硬件的實質和操作過程。 [1] 

OPC技術作用

OPC誕生以前,硬件的驅動器和與其連接的應用程序之間的接口沒有統一的標準。如在工廠自動化(Factory Automation,FA)領域,連接PLC等控制設備和SCADALVHMI軟件需要不同的工業自動化網絡系統構成。OPC是為了不同供應廠商的設備和應用程序之間的軟件接口標準化,並使其間的數據交換更加簡單化的目的而提出的。它可以向用户提供不依賴於特定開發語言和開發環境的、可以自由組合使用的過程控制軟件組件產品。OPC系統是由按照應用程序(客户程序)的要求提供數據採集服務的OPC服務器,使用OPC服務器所必需的OPC接口,以及接受服務的OPC應用程序所構成。OPC服務器是利用各個供應廠商的硬件所開發的,使之可以吸收各個供應廠商硬件和系統的差異,從而實現不依賴於硬件的系統構成。同時利用一種叫VARIANT的數據類型,可以不依賴於硬件中固有的數據類型,按照應用程序的要求提供數據格式。 [2] 

OPC技術工作原理

OPC以OLE/COM機制作為應用程序的通信標準,而OLE/COM是一種客户端/服務器模式,具有語言無關性、代碼重用性、易於集成性等優點。OPC服務器中的代碼確定了服務器所存取的設備和數據、數據項的命名規則和服務器存取數據的細節,不管現場設備以何種形式存在,客户都以統一的方式去訪問,從而保證軟件對客户的透明性,使得用户完全從低層的開發中脱離出來。客户應用程序僅須使用標準接口和服務器通信,而並不需要知道底層的實現細節。通過OPC服務器,OPC客户既可以直接讀寫物理VO設備的數據,也可操作SCADA,DCS等系統的端口變量(只要該系統提供OPC服務)。 [2] 

OPC技術特點

OPC是為了解決應用軟件與各種設備驅動程序的通信而產生的一項工業技術規範和標準。它採用客户/服務器體系,基於Microsoft的OLE/COM技術,為硬件廠商和應用軟件開發者提供了一套標準的接口。
綜合起來説,OPC有以下三個特點。
①計算機硬件廠商只需要編寫一套驅動程序就可以滿足不同用户的需要。硬件供應商只需提供一套符合OPC Server規範的程序組,無需考慮工程人員需求。
②應用程序開發者只需編寫一個接口程序便可以連接不同的設備。軟件開發商無需重寫大量的設備驅動程序。
③工程人員在設備選型上有了更多的選擇。對於最終用户而言,可以根據實際情況的不同,選擇符合實際的設備。
OPC擴展了設備的概念。只要符合OPC服務器的規範,OPC客户都可與之進行數據交互,而無需瞭解設備究竟是PLC還是智能儀表,甚至只要在數據庫系統上建立了OPC規範,OPC客户就可與之方便地實現數據交互。
OPC把硬件廠商和應用軟件開發者分離開來,使得雙方的工作效率都有了很大的提高,因此OPC在短時間內取得了飛速的發展。 [1] 

OPC技術適用範圍

開發OPC的最終目標是在工業控制領域建立一套數據傳輸規範,現有的OPC規範涉及以下五個領域。
①在線數據監測。OPC實現了應用程序和工業控制設備之間高效、靈活的數據讀寫。
②報警和事件處理。OPC提供了OPC服務器發生異常時以及OPC服務器設定事件到來時,向OPC客户發送通知的一種機制。
③歷史數據訪問。OPC實現了對歷史數據庫的讀取、操作和編輯。
④遠程數據訪問。藉助Microsoft的DCOM(Distributed Component Object Model)技術,OPC實現了高性能的遠程數據訪問能力。
⑤OPC實現的功能還包括安全性、批處理和歷史報警事件數據訪問等。 [1] 

OPC技術OPC服務器的組成

OPC服務器由三類對象組成,相當於三種層次上的接口:服務器、組對象和數據項。
①服務器對象包含服務器的所有信息,同時也是組對象的容器。一個服務器對應於一個OPC服務器,即一種設備的驅動程序。在一個服務器中,可以有若干個組。
②組對象包含本組的所有信息,同時包含並管理OPC數據項。OPC組對象為客户提供了組織數據的一種方法。組是應用程序組織數據的一個單位,客户可對其進行讀寫,還可設置客户端的數據更新速率。當服務器緩衝區內數據發生改變時,OPC服務器將向客户發出通知,客户得到通知後再進行必要的處理,而無需浪費大量的時間進行查詢。OPC規範定義了兩種組對象:公共組(或稱全局組,public)和局部組(或稱局域組、私有組,local)。公共組由多個客户共有,局域組只隸屬於一個OPC客户。全局組對所有連接在服務器上的應用程序都有效、而局域組只能對建立它的Client有效。一般説來,客户和服務器的一對連接只需要定義一個組對象。在一個組中,可以有若干個數據項。
③數據項是讀寫數據的最小邏輯單位,一個數據項與一個具體的位號相連。數據項不能獨立於組存在,必須隸屬於某一個組。在每個組對象中,客户可以加入多個OPC數據項。
OPC數據項是服務器端定義的對象,通常指向設備的一個寄存器單元。OPC客户對設備寄存器的操作都是通過其數據項來完成的。通過定義數據項,OPC規範儘可能地隱藏了設備的特殊信息,也使OPC服務器的通用性大大增強。OPC數據項並不提供對外接口,客户不能直接對其進行操作,所有操作都是通過組對象進行的。
應用程序作為OPC接口中的Client方,硬件驅動程序作為OPC接口中的服務器方,每一個OPC Client應用程序都可以連接若干個OPC服務器,每一個硬件驅動程序可以為若干個應用程序提供數據。 [1] 

OPC技術接口方式

OPC規範提供了兩套接口方案,即COM接口和自動化接口。COM接口效率高,通過該接口,客户能夠發揮OPC服務器的最佳性能,採用C++語言的客户一般採用COM接口方案。自動化接口使解釋性語言和宏語言訪問OPC服務器成為可能,採用VB語言的客户一般採用自動化接口。自動化接口使解釋性語言和宏語言編寫客户應用程序變得簡單,然而自動化客户運行時需進行類型檢查,這一點則大大犧牲了程序的運行速度。
OPC服務器必須實現COM接口,是否實現自動化接口則取決於供應商的主觀意願。 [1] 

OPC技術數據訪問方式

(1)服務器緩衝區數據和設備數據
OPC服務器本身就是一個可執行程序,該程序以設定的速率不斷地同物理設備進行數據交互。服務器內有一個數據緩衝區,其中存有最新的數據值、數據質量截和時間戳。時間戳表明服務器最近一次從設備讀取數據的時間。服務器對設備寄存器的讀取是不斷進行的,時間戳也在不斷更新。即使數據值和質量戳都沒有發生變化,時間戳也會進行更新。客户既可從服務器緩衝區讀取數據,又可直接從設備讀取數據,從設備直接讀取數據速度會慢一些,一般只有在故障診斷或極特殊的情況下才會採用。
(2)同步和異步
OPC客户和OPC服務器進行數據交互可以有兩種不同方式,即同步方式和異步方式。同步方式實現較為簡單,當客户數目較少而且同服務器交互的數據量也比較少的時候可以採用這種方式;異步方式實現較為複雜,需要在客户程序中實現服務器回調函數。然而當有大量客户和大量數據交互時,異步方式的效率更高,能夠避免客户數據請求的阻塞,並可以最大限度地節省CPU和網絡資源。 [1] 
參考資料
  • 1.    夏建全主編.工業計算機控制技術 原理與應用[M].北京:北京交通大學出版社,2006.09
  • 2.    劉軍,朱傑,劉丙午編著.自動控制技術[M]..北京:兵器工業出版社,2007.05