OPC是一種利用微軟的COM/DCOM技術來達成自動化控制的協定,采用典型的C/S模式,針對硬件設備的驅動程序由硬件廠商完成,提供統一OPC接口標准的Server程序,軟件廠商只需按照OPC標准接口編寫Client程序就訪問Server程序進行讀寫,即可實現與硬件設備的通信。
(1)OPC DA: Data Access協議,是最基本的OPC協議。OPC DA服務器本身不存儲數據,只負責顯示數據收集點的當前值。客戶端可以設置一個refresh interval,定期刷新這個值。目前常見的協議版本號為2.0和3.0,兩個協議不完全兼容。也就是用OPC DA 2.0協議的客戶端連不上OPC DA 3.0的Server。
(2)OPC HDA: Historical Data Access協議。前面說過DA只顯示當前狀態值,不存儲數據。而HDA協議是由數據庫提供,提供了歷史數據訪問的能力。比如價格昂貴的Historian數據庫,就是提供HDA協議接口訪問OPC的歷史數據。HDA的Java客戶端目前我沒找到免費的。
(3)OPC報警事件訪問規范(OPC AE)定義了報警與時間類型的消息類信息,以及狀態變化管理等相關標准。
(4)OPC UA: Unified Architecture統一架構協議。誕生於2008年,摒棄了前面老的OPC協議繁雜,互不兼容等劣勢,並且不再需要COM口訪問,大大簡化了編程的難度。基於OPC UA的開源客戶端非常多。不過由於誕生時間較晚,目前在國內工業上未大規模應用,並且這個協議本身就跟舊的DA協議不兼容,客戶端沒法通用。以面向服務的架構(SOA)為基礎。
com:Component Object Model對象組件模型,是微軟定義的一套軟件的二進制接口,可以實現跨各個角落編程語言的進程間通信,進而實現復用。
dcom:Microsoft Distributed Component Object Model,網絡傳輸數據的COM協議,客戶端也可以通過互聯網分布在。
OPC UA相對於傳統OPC的變化:
一、功能方面,OPC UA不僅支持傳統OPC的所有功能,更支持更多新的功能:1. 網絡發現:自動查詢本PC機中與當前網絡中可用的OPC Server。2. 地址空間優化:所有的數據都可以分級結構定義,使得OPC Client不僅能夠讀取並利用簡單數據,也能訪問復雜的結構體。3. 互訪認證:所有的讀寫數據/消息行為,都必須有訪問許可。4. 數據訂閱:針對OPCClient不同的配置與標准,提供數據/消息的監控,以及數值變化時的變化報告。5. 方案(Methods)功能:OPC UA中定義了通過在OPCServer中定義方案(Methods),來讓OPC client執行特定的程序。
二、平台支持方面,由於不再基於COM/DCOM技術,OPC UA標准提供的更多的可支持的硬件或軟件平台。硬件平台諸如傳統的PC機、基於雲的服務器、PLC、ARM等其他微處理器;而軟件平台可支持微軟的Windows、蘋果公司的OSX、安卓,以及其他的基於Linux的分布式操作系統。
三、安全性方面,最大的變化是OPC UA可以通過任何單一端口(經管理員開放后)進行通信,這使得OPC通信不再會由於防火牆受到大量的限制。
節點(nodes) : 共計有8種節點(對象,對象類型,變量,變量類型,視圖,方法,引用,數據類型)
在根節點(root)下有3類節點:對象(objects)、類型(types)、視域(views),節點是由命名空間和id共同決定的,地址空間僅僅在邏輯上是層級結構。