張憲民,薛棟棟,鄭家和,李 海
(華南理工大學廣東省精密裝備與制造技術重點實驗室,廣州 510641)
隨著“工業(yè)4.0”與“中國制造2025規(guī)劃”的提出,制造業(yè)開始向智能制造轉(zhuǎn)型[1-2]。工業(yè)物聯(lián)網(wǎng)是第四次工業(yè)革命的表現(xiàn)形式[3],一個完整的工業(yè)物聯(lián)網(wǎng)架構(gòu)從下至上可以分為智能感知層、互聯(lián)互通層與智能決策層3 個層級[4]。工業(yè)現(xiàn)場存在各種不同的設備,除了用于加工制造過程,還提供了豐富的數(shù)據(jù);但這些設備通信方式多樣,語義信息不一,因此產(chǎn)生的多源異構(gòu)的數(shù)據(jù)無法得到利用,形成了“信息孤島”[5]。互聯(lián)互通層的作用正是提供統(tǒng)一語義的通信方式,實現(xiàn)對多元異構(gòu)數(shù)據(jù)的傳輸與解析,打通數(shù)據(jù)鏈,從而實現(xiàn)制造資源向智能化轉(zhuǎn)變,使制造過程中的多源異構(gòu)數(shù)據(jù)得到有效利用[6-7]。只有實現(xiàn)了各設備與各系統(tǒng)的互聯(lián)互通,使接口標準化,信息交互簡便化,才能進一步地運用孿生車間[8]、深度學習[9]、邊緣計算[10]等技術實現(xiàn)物理世界數(shù)字化、制造數(shù)據(jù)信息化、制造過程智能化,最終實現(xiàn)智能制造。
OPC UA(Object Linking and Embedding for Pro?cess Control Unified Architecture)是用于實現(xiàn)工業(yè)物聯(lián)網(wǎng)互聯(lián)互通的一種標準化的、完全開放的通訊協(xié)議,已經(jīng)被德國機械及制造商協(xié)會(VDMA)指定為工業(yè)4.0通信的推薦規(guī)范[11]。OPC UA為多元異構(gòu)數(shù)據(jù)的采集和傳輸提供了技術方案。對應ISO/OSI七層模型,如圖1 所示,OPC UA 為應用于應用層的通訊協(xié)議,其余層次的通訊協(xié)議可以如圖所示。
本文以智能制造互聯(lián)互通研究領域的熱點技術OPC UA 為出發(fā)點,對OPC UA 技術進行了介紹,包括OPC UA 的發(fā)展歷程及其技術特點;其次講述了OPC UA 信息建模和OPC UA 應用的開發(fā)流程,介紹了現(xiàn)階段OPC UA技術在各個領域中的應用情況;然后分析了應用OPC UA技術時存在的問題;最后展望了OPC UA 技術相關研究的進展。本文為OPC UA 技術的應用和研究提供了參考。
圖1 ISO/OSI七層模型
1995 年,OPC(Object Linking and Embedding for Process Control)技術由OPC 基金會提出[12],是微軟公司OLE技術在過程控制中的應用,提供了3個OPC規(guī)范:數(shù)據(jù)訪問(DA)、報警和事件(A&E)、歷史數(shù)據(jù)訪問(HDA),廣泛應用于自動化行業(yè)中。但OPC 技術存在一系列的問題,如對Windows 的依賴性、安全性不足、各服務器相互獨立等問題[13]。隨后,推出的OPC 可擴展標記語言-數(shù)據(jù)訪問(XML-DA)是平臺無關的OPC 規(guī)范,可用于網(wǎng)絡通信,但高資源消耗帶來有限的性能提升,實時性較差,且安全性方面的問題未能解決[14]。2006年,又推出了OPC UA(Unified Architecture)通信規(guī)范[15],是對OPC 的繼承與升級,解決了OPC 技術在跨平臺、安全性、建模能力方面的不足[16]。由于OPC UA 強大的信息建模能力,OPC UA技術得到了眾多行業(yè)應用的關注,出現(xiàn)了許多伴隨行業(yè)標準,如PLCopen發(fā)布了OPC UA相關的技術規(guī)范用于運動控制[17]。
(1)訪問的統(tǒng)一性。OPC UA 將OPC 技術中的DA、A&E、HDA 及各種命令集合在一起,形成地址空間,客戶端只需要一次訪問,即可獲得所有的信息[18]。
(2)面向服務架構(gòu)(SOA)。應用程序通過標準服務進行聯(lián)系,服務是中立的,獨立于硬件平臺、操作系統(tǒng)和編程語言[19]。因此,OPC UA 可以使用C++、C#、java 等各種語言開發(fā),并可以在Win?dows、Linux、Unix 等平臺進行開發(fā)[20]。另外,OPC UA 標準定義了10 類37 種標準服務,如建立會話、瀏覽、調(diào)用方法等。
(3)高性能通信。通過單一的端口進行通信,減少了配置的時間,通過通信棧進行數(shù)據(jù)的編碼、加密和傳輸,通信速度較快。
(4)安全性。OPC UA使用標準安全模型保證安全性,底層提供加密和安全通道,主要通過非對稱加密方式和X.509證書保證安全性[21],其身份認證機制能有效地防御網(wǎng)絡中的惡意攻擊[22],保證安全可靠的通信。
(5)可靠性與冗余性。采用冗余校驗技術,具備對錯誤的自動檢查與糾正能力。
(6)C/S與Pub/Sub實現(xiàn)機制。OPC UA提供了兩種不同的實現(xiàn)機制:一種為主要基于TCP 的客戶端/服務器模型(C/S),一種為主要基于UDP 的發(fā)布者/訂閱者模型(Pub/Sub)。不同的實現(xiàn)機制應用于不用的場景。
(7)面向?qū)ο蠼?。OPC UA具備強大的建模能力[23],采用面向?qū)ο笏枷脒M行信息建模,在元模型的基礎上可以建立靈活的信息模型。
對于制造過程中的多源異構(gòu)數(shù)據(jù),使用具有眾多優(yōu)越性的OPC UA技術進行傳輸和解析,可以使多元異構(gòu)數(shù)據(jù)得到利用,有利于設備及系統(tǒng)實現(xiàn)互聯(lián)互通。
信息建模是工業(yè)4.0中的一個關鍵因素,代表數(shù)據(jù)的意義與對數(shù)據(jù)的描述,實現(xiàn)互聯(lián)互通的關鍵即為建立標準化的信息模型[24]。在建立信息模型方面有多種體系,如OPC UA、UML、CIM-OSA[25]等。王民等[26]對幾種信息建模方式進行了對比,可以發(fā)現(xiàn)基于OPC UA的信息建模具有明顯的優(yōu)勢。
在OPC UA 技術中,信息模型包含在OPC UA 服務器的地址空間中,完全互聯(lián)并以圖拓撲呈現(xiàn),有利用實現(xiàn)訪問的統(tǒng)一性。在地址空間中,節(jié)點為基本單位,而節(jié)點是由屬性和引用兩部分組成,屬性用于描述特定節(jié)點,引用代表兩個節(jié)點之間的關聯(lián),通過引用形成了地址空間的層次結(jié)構(gòu)。在OPC UA 的地址空間中,總共有8 種類型的節(jié)點,分別為數(shù)據(jù)類型節(jié)點、變量節(jié)點、變量類型節(jié)點、對象節(jié)點、對象類型節(jié)點、方法節(jié)點、視圖節(jié)點、參考類型節(jié)點,各種類型節(jié)點的語義及關系如圖2 所示。OPC UA 標準元模型預定義了很多標準的數(shù)據(jù)類型、變量類型、對象類型與參考類型,如表示屬性的變量類型PropertyType、表示基本事件類型的對象類型BaseEventType、表示組織層次結(jié)構(gòu)的參考類型Orga?nizes等。另外,OPC UA還提供了對元模型進行擴展的自由度,客戶端可以可以自動識別自定義類型的語義,如自定義枚舉數(shù)據(jù)類型MachineStatus 表示系統(tǒng)狀態(tài)、自定義對象類型SCARAType 表示對SCARA設備的抽象等,通過這些操作可以豐富語義,更加靈活地建立信息模型。OPC UA信息建模是面向?qū)ο筮M行建模的,對象類型節(jié)點與對象節(jié)點相當于類與類的實例化,部分參考類型也可以以面向?qū)ο蟮乃枷肜斫?,如HasSubType 參考類型相當于繼承,Has?Component相當于類中的變量與方法等。此外,事件是處理信息鴻溝的重要方法之一[27],事件提供了相比一般數(shù)據(jù)更多的信息,代表特定事件發(fā)生,可用于設置通知和報警。最后,OPC 基金會定義了各種節(jié)點類型及參考類型的圖形化表示方法[28],可以使用代表特定語義的圖形畫出人類易讀信息模型圖。
圖2 OPC UA地址空間中8種類型節(jié)點
基于OPC UA的信息建模對多源異構(gòu)數(shù)據(jù)的融合與解析具有非常重要的意義。因此,在制造工廠對各種設備與系統(tǒng)建立合理且完整的信息模型,使同一種類型的設備與系統(tǒng)對外呈現(xiàn)標準的接口,實現(xiàn)語義的統(tǒng)一,是實現(xiàn)智能制造互聯(lián)互通的首要工作。
首先,對目標將應用OPC UA功能的設備或系統(tǒng)進行分析。觀察設備或系統(tǒng)的使用場景,看其是應用于設備級、車間級或企業(yè)級,分析其組成元素和包含的異構(gòu)數(shù)據(jù),確定需要實現(xiàn)的功能。
其次,建立設備或系統(tǒng)的信息模型。查看是否存在適用的行業(yè)伴隨模型,如建立車間機床信息模型可以參考我國于2019年發(fā)布的《數(shù)字化車間機床制造信息模型》(GB/T 37928-2019)相關標準[29]。如果沒有行業(yè)伴隨模型參考,則需要對實際的設備或系統(tǒng)進行抽象,建立標準化的信息模型,實現(xiàn)從物理空間到虛擬空間的映射。信息模型可以輸出為XML文件以便重復使用。
然后,選擇使用的OPC UA開發(fā)庫。當開發(fā)OPC UA服務器或客戶端時,一般不會從標準讀起,從零開始進行自主研發(fā),而是會使用開源庫或者商業(yè)庫進行開發(fā)。常用的OPC UA 開源庫有open62541 庫,商業(yè)庫有Unified Automation、Prosys 等公司提供的OPC UA SDK[28]。一些工業(yè)軟件也實現(xiàn)了OPC UA 功能,可以直接創(chuàng)建OPC UA服務器和客戶端,如Lab?view[30]、Kepware[31]。選擇一個合適的開發(fā)方式能大大地節(jié)省工作量,可以根據(jù)開發(fā)語言、操作系統(tǒng)、所需要的功能、性能等各方面的因素選擇合適的OPC UA開發(fā)包。
最后,在設備或系統(tǒng)中開發(fā)OPC UA服務器實現(xiàn)信息模型的實例化。通過節(jié)點映射關系、數(shù)據(jù)采集策略、數(shù)據(jù)緩存策略實現(xiàn)對多源異構(gòu)數(shù)據(jù)源的綁定,并綁定方法,設置事件與報警、歷史訪問、訪問安全[32]等功能,運行OPC UA 服務器。對于缺乏軟件接口而又需要獲取的數(shù)據(jù),可以通過增加傳感器以采集數(shù)據(jù)。對于工業(yè)現(xiàn)場眾多的標準協(xié)議及私有協(xié)議,進行協(xié)議轉(zhuǎn)換,轉(zhuǎn)換為OPC UA通訊協(xié)議,使對外呈現(xiàn)統(tǒng)一的接口如圖3 所示。搭建完OPC UA 服務器后,在需要使用數(shù)據(jù)的位置建立OPC UA 客戶端,通過OPC UA的編碼格式進行數(shù)據(jù)的傳輸。
圖3 協(xié)議轉(zhuǎn)換
OPC UA作為具有巨大優(yōu)越性的通訊協(xié)議,已經(jīng)得到了廣泛的應用。德國倍福公司于2010 年5 月開發(fā)了支持OPC UA 的海上風力發(fā)電機,是OPC UA 在工控領域的第一次成功應用[33],西門子,艾默生等公司的產(chǎn)品也開始支持OPC UA通訊[28]。
在我國,2017 年9 月GB/T 33863.1~.8-2017《OPC統(tǒng)一架構(gòu)》前8個部分發(fā)布,OPC UA技術在我國也得到越來越廣泛的應用,包括針織領域[34]、發(fā)酵行業(yè)[35]、船舶集成平臺[36]、盾構(gòu)機[37]、煤礦監(jiān)控[38]、地鐵監(jiān)控[39]等各種領域。在制造車間的應用與研究是最多的,包括染整車間[40]、印刷車間[41]、模具裝備制造車間[42]等。制造車間中最重要的兩個部分即為機床與機器人,在機床方面,對西門子數(shù)控機床[43-44]、國產(chǎn)數(shù)控機床[45]、塑性成形機床[46],軋輥磨床[47]等有對OPC UA接口的應用與開發(fā)研究;機器人方面,有應用OPC UA技術在工業(yè)機器人操作系統(tǒng)ROS上開發(fā)機器人監(jiān)控系統(tǒng)的研究[48],也有針對特定類型的機器人如SCARA[49]及特定公司的機器人如FANUC 機器人[50]上監(jiān)控系統(tǒng)的研究。
OPC UA已經(jīng)得到充足的應用,但當前仍存在一些問題需要解決,主要包括以下幾個方面。
(1)設備與系統(tǒng)的升級。使用OPC UA技術,實現(xiàn)設備與系統(tǒng)的互聯(lián)互通能帶來巨大的優(yōu)勢,但各種制造工廠已經(jīng)存在大量設備與產(chǎn)線,新的數(shù)字化車間、智能設備在制造業(yè)中所占的比例較小?,F(xiàn)有的設備不可能完全舍棄,只能在維護現(xiàn)有設備與系統(tǒng)的同時進行逐步的改造與升級。然而,現(xiàn)實中的設備的壽命周期較長,如美國生產(chǎn)線的平均壽命程度為22年[51],而不同行業(yè)的設備的壽命也不盡相同[52]。因此,對所有的設備與系統(tǒng)進行升級換代,使得制造工廠中的所有設備與系統(tǒng)均支持OPC UA通訊協(xié)議是一項任重而道遠的工作。
(2)標準化信息模型的建立。只有建立了各行各業(yè)中標準化的信息模型,實現(xiàn)語義的統(tǒng)一,才能實現(xiàn)真正的即插即用。但目前大部分自動化行業(yè)尚未建立標準化的OPC UA信息模型供設備制造商參考與使用,不同的設備制造商對相同的設備使用不同的信息模型顯然與建立信息模型的初衷相悖。
(3)實時性問題。目前OPC UA相關應用的實現(xiàn)機制基本采用了客戶端/服務器(C/S)架構(gòu)。該架構(gòu)在傳輸層的基本通訊協(xié)議主要為TCP 通訊協(xié)議,因此,具備序列號、確認應答機制、超時重傳等保證可靠性的機制,同時這些機制也導致了無法保證實時性。另外,制造現(xiàn)場所需要傳輸與解析的多源異構(gòu)數(shù)據(jù)成倍增加,OPC UA服務器中的節(jié)點數(shù)量在不斷增多,當多個OPC UA 客戶端同時連接OPC UA 服務器傳輸大量數(shù)據(jù)時,資源開銷巨大,對網(wǎng)絡帶寬的要求增高,實時性愈加無法保證。
(4)跨網(wǎng)絡問題。現(xiàn)今,自動化金字塔的工業(yè)物聯(lián)網(wǎng)架構(gòu)已經(jīng)不能滿足現(xiàn)代智能制造的需求,設備及系統(tǒng)不僅需要縱向的上位機與下位機間的通信,還需要設備與設備、系統(tǒng)與系統(tǒng)之間的數(shù)據(jù)交互,即橫向的通信;另外,云計算、孿生車間等技術需要云平臺直接連接現(xiàn)場設備,即跨層級的任意的聯(lián)通。當前大部分的研究應用都是基于同一個網(wǎng)絡下的互聯(lián),而不同的設備或系統(tǒng)可能位于不同網(wǎng)絡,應用OPC UA技術實現(xiàn)跨局域網(wǎng)的安全可靠且實時性較高的互聯(lián)互通仍是需要解決的問題。
(5)嵌入式系統(tǒng)中的OPC UA。生活中嵌入式系統(tǒng)無處不在,家用電器如咖啡機及生活用品如智能手表均為嵌入式系統(tǒng),在工業(yè)制造中常用的傳感器也為嵌入式系統(tǒng)。嵌入式平臺可以認為是用于實現(xiàn)某特定系統(tǒng)的控制與調(diào)節(jié)的計算平臺,且大部分嵌入式系統(tǒng)計算能力相對較弱[53]。當前制造車間中,控制器與嵌入式系統(tǒng)之間需要更加頻繁的通信,系統(tǒng)可能需要與云平臺直接通信,系統(tǒng)需要開放更多的功能,而新的技術如物聯(lián)網(wǎng)、邊緣計算的出現(xiàn)為嵌入式系統(tǒng)的多邊通信提供了可能性[54-55],但仍需要解決最重要的通信問題。OPC UA即為解決嵌入式系統(tǒng)通信問題的合適的技術,但當嵌入式平臺的代碼容量很小時,OPC UA技術的開發(fā)應用就變得很困難[56]。在國外,小型設備及傳感器的嵌入式系統(tǒng)上開發(fā)OPC UA服務已經(jīng)有了大量的研究[57],Unified Automa?tion 公司已經(jīng)提供了針對小型設備的OPC UA 軟件解決方案[28],而國內(nèi)相關的研究極少。
為了解決傳統(tǒng)的C/S實現(xiàn)機制因為實時性、資源受限而導致的OPC UA 通訊效率收到制約的問題[58],OPC 基金會于2018 年發(fā)布了發(fā)布者/訂閱者(Pub/Sub)規(guī)范[59]。C/S 架構(gòu)與Pub/Sub 架構(gòu)的對比如圖4所示,可以發(fā)現(xiàn)相比C/S 架構(gòu)點對點的通訊方式,Pub/Sub 采用組播式通訊,信息的傳遞通過消息中間件(MOM)完成[60],發(fā)布者按照一定規(guī)則發(fā)布數(shù)據(jù),訂閱者接收數(shù)據(jù)。發(fā)布者與訂閱者之間互為透明,可以動態(tài)地改變發(fā)布者和訂閱者的數(shù)量。另外,發(fā)布者發(fā)布消息時,即使訂閱者斷開連接也能完成消息發(fā)布,從而實現(xiàn)了發(fā)布者與訂閱者之間的解耦。
圖4 C/S架構(gòu)與Pub/Sub架構(gòu)
為了使信息在來自不同廠商的發(fā)布者和訂閱者之間的自由傳遞,在MOM模型的基礎上開發(fā)了多種協(xié)議,其中使用最為廣泛的方案是高級消息隊列協(xié)議(AMQP)和消息隊列遙測傳輸(MQTT)。其中,AMQP 提供了更多安全方面的功能[61-62],MQTT 則需要消耗的資源更少,適用于硬件資源受限的情況[63-64]。
Pub/Sub 的OPC UA 實現(xiàn)機制可用于制造車間中實現(xiàn)橫向的互聯(lián)互通,同一產(chǎn)線中不同設備間的互相通信對工序協(xié)同、故障避免等具有重要意義。另外,Pub/Sub 結(jié)合AMQP 與MQTT 技術,為設備上云提供了支持。作為OPC UA 較新內(nèi)容,Pub/Sub 未來將會得到更多的研究與更廣泛的應用。
OPC UA無法保證數(shù)據(jù)傳輸時的實時性,限制了OPC UA 的使用場合,由此,時間敏感網(wǎng)絡(TSN)結(jié)合OPC UA 應運而生[65]。TSN 是對以太網(wǎng)標準的擴展,工作在ISO/OSI七層模型中的數(shù)據(jù)鏈路層,提供了3 個核心功能:時間同步、流量調(diào)度以及系統(tǒng)配置[66]。OPC UA 與TSN 結(jié)合可以顯著提升實時性,設備或系統(tǒng)響應更加迅速;對底層的大量數(shù)據(jù),TSN能有效減輕傳輸時的網(wǎng)絡負擔。目前,針對OPC UA與TSN相結(jié)合的研究與應用已經(jīng)得到了一定的進展,各芯片制造商與設備制造商紛紛提出TSN 解決方案[67],Julius P 等[68]提出了一種基于open62541 的OPC UA Pub/Sub 結(jié)合TSN 的方法,多家國際組織和知名廠商聯(lián)合發(fā)布了OPC UA TSN 智能制造測試床[69]。TSN 與OPC UA組合應用具有很好的應用前景。
針對上文中提到的當前OPC UA應用時存在的問題,未來將會不斷地有相關的研究,如不斷地建立應用于各行各業(yè)中的基于OPC UA的信息模型、在各種嵌入式系統(tǒng)加入OPC UA通訊功能等。其次,當前工業(yè)現(xiàn)場已經(jīng)存在大量的通訊協(xié)議,協(xié)議轉(zhuǎn)換中間件的開發(fā)具有一定的必要性,如ModbusTCP 協(xié)議的OPC UA 中間件[70]。數(shù)據(jù)的安全問題是工業(yè)物聯(lián)網(wǎng)的巨大隱患,對OPC UA安全機制的進一步研究,如應用于移動終端的身份認證方法[71]、更加優(yōu)越的加密方法[72]等具有很強的研究價值。最后,如今各種新的技術不斷出現(xiàn),云架構(gòu)[73]、5G[74]與OPC UA 技術相結(jié)合進行應用也應該得到關注。
隨著信息時代的到來,人們對信息共享的需求越來越高,也促使著制造工廠向智能制造的方向發(fā)展。OPC UA技術作為實現(xiàn)智能制造中互聯(lián)互通的一個關鍵技術,對制造現(xiàn)場的多源異構(gòu)數(shù)據(jù),其不僅能夠?qū)崿F(xiàn)高效的傳輸,還能通過信息建模實現(xiàn)數(shù)據(jù)語義的統(tǒng)一,進而實現(xiàn)多源異構(gòu)數(shù)據(jù)的解析。通過OPC UA技術,來自不同廠家的設備可以通過標準的技術入口直接相互聯(lián)通,實現(xiàn)即插即用。OPC UA是一種面向未來的工業(yè)通信技術,面對當前制造業(yè)轉(zhuǎn)型的機遇與挑戰(zhàn),應該對OPC UA 技術予以高度重視,關注其應用與發(fā)展。