寫在前面
大家好,我是小智,智能制造之家號主~
前面我們分享了西門子、施耐德、三菱、羅克韋爾等工業巨頭的主要工控協議及其端口:
西門子、施耐德、三菱、RA:全球主要工控協議及端口解析
也原創了很多工業協議、工業通訊相關的干活文章:
技術解讀PROFINET、Ethernet/IP等7種主流工業以太網
最全整理工業通訊上的領域各種總線+協議+規范+接口—數據采集與控制
最詳細的工業網絡通訊技術與協議總結解讀(現場總線、工業以太網、工業無線)
RS232,RS485,RJ45以及Modbus協議超全解析
入門工業通訊之EtherNet/IP協議分析
還分享了各種SCADA與數據采集解決方案:
重磅PPT | 詳解工業數據采集與應用!
XX數字化工廠MES/SCADA系統規劃與實施方案
XX集團工廠集成改造MES+SCADA數字化項目實施方案
數字化車間的自動化設備聯網與數據采集實踐
今天我們分享超全的OPC UA技術解析~
所以我們將通過接下來三期文章,重點通過OPCUA技術的進化史、OPCUA的軟件架構和合適的OPCUA開發工具三個維度介紹OPCUA的現狀。旨在能夠為希望使用OPCUA的朋友提供從入門到進階的知識渠道。
OPCUA技術的前身
OPCUA技術的前身是1996年發布的Classic OPC。最成功的Classic OPC標準是OPC數據訪問(OPC Data Access),它被設計成通信驅動的接口。此接口允許在自動化設備上以標準化的形式讀取和寫入數據。主要使用對象是HMI和SCADA系統,以獲取不同供應商設備統一的軟件接口和數據。
隨著Classic OPC的成功應用, 即成為自動化金字塔結構中不同層級之間的標準接口。但由于OPC對COM的依賴性以及使用DCOM的限制,不能將OPC用于遠程訪問,最終導致無法得到更廣泛的使用。
因此,OPC UA(OPCUnified Architecture)誕生的目標,就是希望設計一種能夠取代現有基于COM的特性同時不損失任何功能和性能的新規范。此外,它還要滿足能夠覆蓋所有獨立系統平臺的需求,也包含描述復雜系統的豐富的可擴展接口和建模能力。覆蓋范圍可從嵌入式系統到SCADA和MES甚至DCS和ERP系統,讓OPC技術的使用范圍擴展到更多應用領域。
基于對新一代OPC的更多功能需求,由來自40多家組織的代表組成最初的工作組。在該工作組中,OPC基金會定義了如何描述和傳輸數據,而協作的其他組織根據其特定信息模型定義各自需要的描述和傳輸數據內容。為了達到最初定義的目標,OPC UA按照不同層次定義不同功能。
OPC UA層次結構
為了涵蓋Classic OPC中已使用的所有成功的服務,在OPC UA基礎服務(OPC UA Base Services)的上層為信息模型定義了對應的服務功能。DA定義了對指定過程數據的操作,例如模擬或數字量的建模以及如何發布。Alarm& Conditions(AC)定義了報警管理和狀態監控功能的高級模型。Historical Access(HA)定義了訪問歷史數據和歷史事件的機制。Programs(Prog)定義了啟動、操作和監視程序執行的機制。
其他組織能夠基于OPC UA信息模型層(Specifications of InformationModels of other Organisations)建立專屬模型,并通過OPC UA發布他們規范化信息。例如,已經在OPC UA進行FDI標準和PLCOpen。FDI包括電子設備描述語言(EDDL)和現場設備工具(FDT),它用于描述、配置和監視設備。PLCopen是一種用于PLC的編程語言標準。除了其他組織進行的規范集成,設備制造商信息模型也可以通過使用UA基礎功能、OPC模型或其他基于OPC UA的信息模型定義。
OPC UA技術在OPC技術的基礎上做了大幅的改進,不僅適用于傳統的過程控制的數據監控類應用,其應用范圍擴展到從嵌入式的傳感器到現場級控制器,到HMI/SCADA系統以及MES和ERP系統,甚至現在一些云服務商在提供工業云通訊的解決方案時也支持OPC UA。2015年,憑借具備信息模型建模和通訊加密的能力,OPC UA正式作為工業4.0參考架構模型里唯一推薦的通訊層規范。
OPC UA的發布解決了Classic OPC對于Windows COM/DCOM依賴的局限性以及其他功能上的限制。同時增強了通訊的安全機制、加強了數據建模等能力。所以,我們可以說Classic OPC被設計成設備驅動接口,而OPC UA被設計成系統接口。它不僅是一種通訊協議,更是一種系統描述方法。
OPC UA使用類似于傳統OPC的客戶端---服務器概念。向其他應用程序發布信息的應用程序稱為UA服務器,從其他應用程序獲取信息的應用程序稱為UA客戶端。
典型的OPC UA服務器/客戶端應用程序由三個軟件層組成,如下圖所示。完整的軟件協議棧可以用C/C++、.NET或JAVA等實現,OPC UA沒有限制使用這些編程語言和開發平臺。
OPC UA軟件層
OPC UA應用程序是要通過OPC UA發布或消費數據的系統。OPC UA應用程序包含應用程序所需的特定功能,并通過使用OPC UA協議棧(OPC UA Stack)+OPC UA軟件開發工具包(OPC UA Client/Server SDK),將應用程序的功能映射到OPC UA的信息模型和服務中。OPC UA客戶端或服務器SDK實現通用OPC UA功能,這些功能要作為應用層一部分的,并實現信息模型和服務。
UA Part 6中的UA通訊協議棧層定義
OPC UA協議棧(OPC UA Stack)實現UA第6部分(OPC UA Part6)中定義的多種OPC UA傳輸映射。UA協議棧用于跨進程或網絡調用UA服務。在OPC UA協議棧(OPC UA Stack)部分又劃分成三個層次,并且每層有不同的規范,如下圖:
消息編碼層(MessageSerialization)以二進制格式和XML格式定義服務參數的序列化。消息安全層(MessageSecurity)指定如何通過使用Web Service安全標準或UA二進制版本來保護消息。消息傳輸層(MessageTransport)定義了使用的網絡協議,例如UA TCP或HTTP和用于Web服務的SOAP。
OPC UA協議棧(OPC UA Stack)通過封裝為OPC UA SDK,以提供對應開發語言的UA客戶端和UA服務器應用程序API。對于設備供應商來說,OPC UA協議棧(OPC UA Stack)和OPC UA SDK這些組件只是工作開始的第一步,更重要的工作是根據具體需求提供模型抽象。
OPCUASDK
OPC UA SDK是對UA協議棧功能的結構化封裝,實現了所有UA應用程序所需的UA通用功能、安全的處理方法,并提供常用功能的示例程序。Unified Automation基于OPC Unified Architecture技術規范,提供一系列跨平臺的軟件開發框架,以適應從嵌入式設備制造商到企業應用程序開發人員的應用程序垂直信息集成。Unified Automation提供的OPC UA SDK包括Ansi C、C++、.NET和Java開發語言。設計的平臺從小的嵌入式系統到桌面PC機上到系統服務器。支持的操作系統包括Windows、Linux、VxWorks、WinCE、OnTime RTOS-32、InTime、FreeRTOS等。
下圖展示了SDK的主要模塊以及與OPC UA應用程序的集成。
在OPC UA Server/Client SDK模塊中實現了所有UA服務器/客戶端通用的UA功能。供應商在使用SDK的過程中不需要了解或者更改這些模塊的內部功能。SDK的用戶只需要知道模塊提供的接口和輔助功能的用法。基礎模塊用于實現OPC UA客戶端和服務器應用程序所需的基本功能。這些基本功能包含使用操作系統功能的封裝,以及用于UA類型(如字符串,擴展對象或其他常用UA結構)的封裝。
核心模塊用于管理OPC UA的地址空間,并實現UA的基本功能,例如管理連接和OPC 基金會定義的地址空間部分。
Pub/Sub模塊實現了OPC UA Pub/Sub通信所需的功能。它可以充當OPC UA發布者或OPC UA訂閱者。更多關于Pub/Sub功能,以及Unified Automation的Pub/Sub SDK的信息,我們今后專門進行討論。
用戶產品的UA功能在OPC UA的SystemIntegration模塊中實現。OPC UA SDK定義了應用所需的ServerConfig、NodeManager和IOManager接口以及MethodManager、EventManager和HistoryManager等可選接口,方便開發者將應用插入到核心模塊。
使用OPC UA SDK是開發OPC UA應用程序最便捷的方法。Unified Automation公司的SDK提供OPC UA Standard一致性標準的所有支持功能,并且OPC UA SDK服務可以作為獨立應用程序運行,也可以是現有應用程序的一部分。其SDK使用廠商幾乎囊括了國外所有大型自動化企業,例如ABB、Siemens、Bosch、Trumpf、Kuka、Yokogawa、Honeywell等知名廠商。SDK的穩定性和接口易用性在多個行業的知名廠商產品中得到了具體驗證。
審核編輯 :李倩
-
OPC
+關注
關注
7文章
326瀏覽量
46113 -
智能制造
+關注
關注
48文章
5488瀏覽量
76267
原文標題:超全的OPC UA技術解析
文章出處:【微信號:智能制造之家,微信公眾號:智能制造之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論