技術簡介
OPC的發展
OPC全稱是OLE for Process Control,它的出現為基於Windows的應用程式和現場過程控制套用建立了橋樑。在過去,為了存取現場設備的數據信息,每一個套用軟體開發商都需要編寫專用的接口函式。由於現場設備的種類繁多,且產品的不斷升級,往往給用戶和軟體開發商帶來了巨大的工作負擔。通常這樣也不能滿足工作的實際需要,系統集成商和開發商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設備驅動程式。在這種情況下,OPC標準應運而生。OPC標準以微軟公司的OLE技術為基礎,它的制定是通過提供一套標準的OLE/COM接口完成的,在OPC技術中使用的是OLE 2技術,OLE標準允許多台微機之間交換文檔、圖形等對象。
OLE機制
COM是Component Object Model的縮寫,是所有OLE機制的基礎。COM是一種為了實現與程式語言無關的對象而制定的標準,該標準將Windows下的對象定義為獨立單元,可不受程式限制地訪問這些單元。這種標準可以使兩個應用程式通過對象化接口通訊,而不需要知道對方是如何創建的。例如,用戶可以使用C++語言創建一個Windows對象,它支持一個接口,通過該接口,用戶可以訪問該對象提供的各種功能,用戶可以使用Visual Basic,C,Pascal,Smalltalk或其它語言編寫對象訪問程式。在Windows NT4.0作業系統下,COM規範擴展到可訪問本機以外的其它對象,一個應用程式所使用的對象可分布在網路上,COM的這個擴展被稱為DCOM(Distributed COM)。
通過DCOM技術和OPC標準,完全可以創建一個開放的、可互操作的控制系統軟體。OPC採用客戶/伺服器模式,把開發訪問接口的任務放在硬體生產廠家或第三方廠家,以OPC伺服器的形式提供給用戶,解決了軟、硬體廠商的矛盾,完成了系統的集成,提高了系統的開放性和可互操作性。
OPC訪問接口
OPC伺服器通常支持兩種類型的訪問接口,它們分別為不同的程式語言環境提供訪問機制。這兩種接口是:自動化接口(Automation interface);自定義接口(Custom interface)。自動化接口通常是為基於腳本程式語言而定義的標準接口,可以使用VisualBasic、Delphi、PowerBuilder等程式語言開發OPC伺服器的客戶套用。而自定義接口是專門為C++等高級程式語言而制定的標準接口。OPC現已成為工業界系統互聯的預設方案,為工業監控編程帶來了便利,用戶不用為通訊協定的難題而苦惱。任何一家自動化軟體解決方案的提供者,如果它不能全方位地支持OPC,則必將被歷史所淘汰。
規範
OPC的發展和完善
由OPC Task Force制定的OPC(OLE for Process Control)規範於1996年8月正式誕生了,隨著1997年2月Microsoft公司推出Windows95支持的DCOM技術,1997年9月新成立的OPC Foundation對OPC規範進行修改,增加了數據訪問等一些標準,OPC規範得到了進一步的完善。
“OPC 基於Microsoft公司的 Distributed interNet Application (DNA) 構架和 Component Object Model (COM) 技術的,根據易於擴展性而設計的。OPC規範定義了一個工業標準接口,這個標準使得COM技術適用於過程控制和製造自動化等套用領域。”OPC 基礎委員會主席Dave Rehbein是這樣描述的
OPC是以OLE/COM機製作為應用程式的通訊標準。OLE/COM是一種客戶/伺服器模式,具有語言無關性、代碼重用性、易於集成性等優點。OPC規範了接口函式,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而保證軟體對客戶的透明性,使得用戶完全從低層的開發中脫離出來。
應用程式與OPC伺服器之間必須有OPC接口,OPC規範提供了兩套標準接口:Custom標準接口,OLE自動化標準接口。通常在系統設計中採用OLE自動化標準接口。
OLE三層接口
OLE自動化標準接口,及採用OLE自動化技術進行調用,其技術為上節所述的OLE自動化技術。OLE自動化標準接口定義了以下三層接口,依次呈包含關係。
OPC Server:OPC啟動伺服器,獲得其他對象和服務的起始類,並用於返回OPC Group類對象;
OPC Group:存儲由若干OPC Item組成的Group信息,並用於返回OPC Item類對象。
OPC Item:存儲具體Item 的定義、數據值、狀態值等信息。
由於OPC規範基於OLE/COM技術,同時OLE/COM的擴展遠程OLE自動化與DCOM技術支持TCP/IP等多種網路協定,因此可以將OPC客戶、伺服器在物理上分開,分布於網路不同節點上。
OPC規範可以套用在許多應用程式中,如它們可以套用於從SCADA 或者DCS系統的物理設備中獲取原始數據的最低層,它們同樣可以套用於從SCADA 或者DCS系統中獲取數據到應用程式中。實際上,OPC設計的目的就是從網路上某節點獲取數據。圖4.2.2OPC的客戶/伺服器關係圖同樣描述了OPC在SCADA系統的套用。
OPC技術規範設計系統
在進行新型微機遠動系統的研製中,各個計算機以及各個模組的數據交換應該按照OPC規範進行。這樣做有以下好處:
OPC規範以OLE/DCOM為技術基礎,而OLE/DCOM支持TCP/IP等網路協定,因此可以將各個子系統從物理上分開,分布於網路的不同節點上。
OPC按照面向對象的原則,將一個應用程式(OPC伺服器)作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統一的方式去調用這個方法,從而保證軟體對客戶的透明性,使得用戶完全從低層的開發中脫離出來。
OPC實現了遠程調用,使得應用程式的分布與系統硬體的分布無關,便於系統硬體配置以及,使得系統的套用範圍更廣。
採用OPC規範,便於系統的組態化,將系統複雜性大大簡化,可以大大縮短軟體開發周期,提高軟體運行的可靠性和穩定性,便於系統的升級與維護。
OPC規範了接口函式,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而實現系統的開放性,易於實現與其它系統的接口。
套用
由於OPC技術的採用,使得可以以更簡單的系統結構、更長的壽命、更低的價格解決工業控制成為可能。同時現場設備與系統的連線也更加簡單、靈活、方便。因此OPC技術在國內的工業控制領域得到了廣泛的套用,主要套用領域如下:
數據採集技術
OPC技術通常在數據採集軟體中廣泛套用。現在眾多硬體廠商提供的產品均帶有標準的OPC接口,OPC實現了應用程式和工業控制設備之間高效、靈活的數據讀寫,可以編制符合標準OPC接口的客戶端套用軟體完成數據的採集任務。
歷史數據訪問
OPC提供了讀取存儲在過程數據存檔檔案、資料庫或遠程終端設備中的歷史數據以及對其操作、編輯的方法。
報警和事件處理
OPC提供了OPC伺服器發生異常時,以及OPC伺服器設定事件到來時向OPC客戶傳送通知的一種機制,通過使用OPC技術,能夠更好的捕捉控制過程中的各種報警和事件並給予相應的處理。
數據冗餘技術
工控軟體開發中,冗餘技術是一項最為重要的技術,它是系統長期穩定工作的保障。OPC技術的使用可以更加方便的實現軟體冗餘,而且具有較好的開放性和可互操作性。
遠程數據訪問
藉助Microsoft的DCOM(分散式組件對象模型)技術,OPC實現了高性能的遠程數據訪問能力,從而使得工業控制軟體之間的數據交換更加方便。
工業領域
OPC技術對工業控制系統的影響及套用是基礎性和革命性的,簡單地說,它的作用主要表現在以下幾個方面:
解決了設備驅動程式開發中的異構問題
OPC解決了設備驅動程式開發中的異構問題。隨著計算機技術的不斷發展,用戶需求的不斷提高,以DCS(集散控制系統)為主體的工業控制系統功能日趨強大,結構日益複雜,規模也越來越大,一套工業控制系統往往選用了幾家甚至十幾家不同公司的控制設備或系統集成一個大的系統,但由於缺乏統一的標準,開發商必須對系統的每一種設備都編寫相應的驅動程式,而且,當硬體設備升級、修改時,驅動程式也必須跟隨修改。同時,一個系統中如果運行不同公司的控制軟體,也存在著互衝突的風險。
有了OPC後,由於有了統一的接口標準,硬體廠商只需提供一套符合OPC技術的程式,軟體開發人員也只需編寫一個接口,而用戶可以方便地進行設備的選型和功能的擴充,只要它們提供了OPC支持,所有的數據交換都通過OPC接口進行,而不論連線的控制系統或設備是哪個具體廠商提供。
解決了現場匯流排系統中異構網段之間數據交換
OPC解決了現場匯流排系統中異構網段之間數據交換的問題。現場匯流排系統仍然存在多種匯流排並存的局面,因此系統集成和異構控制網段之間的數據交換面臨許多困難。有了OPC作為異構網段集成的中間件,只要每個匯流排段提供各自的OPC伺服器,任一OPC客戶端軟體都可以通過一致的OPC接口訪問這些OPC伺服器,從而獲取各個匯流排段的數據, 並可以很好地實現異構匯流排段之間的數據互動。而且,當其中某個匯流排的協定版本做了升級,也只需對相對應匯流排的程式作升級修改。
可作為訪問專有資料庫的中間件
OPC可作為訪問專有資料庫的中間件。實際套用中,許多控制軟體都採用專有的實時資料庫或歷史資料庫,這些資料庫由控制軟體的開發商自主開發。對這類資料庫的訪問不像訪問通用資料庫那么容易,只能通過調用開發商提供的API函式或其它特殊的方式。然而不同開發商提供的API函式是不一樣的,這就帶來和硬體驅動器開發類似的問題:要訪問不同監控軟體的專有資料庫,必須編寫不同的代碼,這樣顯然十分繁瑣。採用OPC則能有效解決這個問題,只要專有資料庫的開發商在提供資料庫的同時也能提供一個訪問該資料庫的OPC伺服器,那么當用戶要訪問時只需按照OPC規範的要求編寫OPC客戶端程式而無需了解該專有資料庫特定的接口要求。
便於集成不同的數據
OPC便於集成不同的數據,為控制系統向管理系統升級提供了方便。當前控制系統的趨勢之一就是網路化,控制系統內部採用網路技術,控制系統與控制系統之間也網路連線,組成更大的系統,而且,整個控制系統與企業的管理系統也網路連線,控制系統只是整個企業網的一個子網。在實現這樣的企業網路過程中,OPC也能夠發揮重要作用。在企業的信息集成,包括現場設備與監控系統之間、監控系統內部各組件之間、監控系統與企業管理系統之間以及監控系統與Internet之間的信息集成,OPC作為連線件,按一套標準的COM對象、方法和屬性,提供了方便的信息流通和交換。無論是管理系統還是控制系統,無論是PLC(可程式控制器)還是DCS,或者是FCS(現場匯流排控制系統),都可以通過OPC快速可靠的彼此交換信息。換句話說,OPC是整個企業網路的數據接口規範,所以,OPC提升了控制系統的功能,增強了網路的功能,提高了企業管理的水平。
使控制軟體能夠與硬體分別設計
OPC使控制軟體能夠與硬體分別設計、生產和發展,並有利於獨立的第三方軟體供應商產生與發展,從而形成新的社會分工,有更多的競爭機制,為社會提供更多更好的產品。
OPC作為一項逐漸成型的技術已得到國內外廠商的高度重視,許多公司都在原來產品的基礎上增加了對OPC的支持。由於統一了數據訪問的接口,使控制系統進一步走向開放,實現信息的集成和共享,用戶能夠得到更多的方便。OPC技術改變了原有的控制系統模式,給國內系統生產廠商提出了一個發展的機遇和挑戰,符合OPC規範的軟、硬體也已被廣泛套用,給工業自動化領域帶來了勃勃生機。