OPC UA是一項開放標準,適用于從機器到機器間(M2M)的水平通信和從機器直到云端的垂直通信。該標準獨立于供應商和平臺,支持廣泛的安全機制,并且可以與 PROFINET 共享同一工業(yè)以太網(wǎng)絡。
OPC UA通信的特性及優(yōu)勢
特性:
? ?獨立于供應商和平臺
? ?集成的安全概念(加密、簽名和驗證)
? ?一致、端到端,并可擴展
? ?信息模型和語義服務
? ?與PROFINET 不受限制的并行傳輸
優(yōu)勢:
? ?標準化接口和廣泛的可用性
? ?直接按照協(xié)議進行安全通信,無需額外硬件
? ?跨所有自動化層的直接連接和通信
? ?簡單明了的數(shù)據(jù)解釋
? ?基于以太網(wǎng)的簡單網(wǎng)絡,使用現(xiàn)有的工業(yè)以太網(wǎng)基礎設施
? ?簡單機器集成用的國際標準化接口(配套規(guī)范)
具有OPC UA接口+支持工具的西門子產(chǎn)品和系統(tǒng)
西門子為全集成自動化(TIA)提供從現(xiàn)場層擴展到控制和操作層的全面硬件和軟件組合。作為開放的通信標準,OPC UA 在整個 TIA 產(chǎn)品組合中扮演著重要的角色。
應用示例內(nèi)容及軟/硬件需求
此應用示例的內(nèi)容
為了實現(xiàn) OPC UA 客戶端與 SIMATIC S7-1500 的服務器進行數(shù)據(jù)交換,這個應用示例將向您詳細介紹 SIMATIC S7-1500 的 OPC UA 服務器的配置以及如何通過 OPC UA 客戶端軟件連接 S7-1500 服務器。
用于測試用途的 OPC UA 客戶端
●? Unified Automation 的 “UaExpert”??擅赓M使用的功能豐富的客戶端:? ?下載 UaExpert 的鏈接 ( https://www.unified-automation.com/downloads/opc-ua-clients.html )
●? OPC Foundation 的 “UA Sample Client” 。在 OPC Foundation 注冊的用戶可免費使用該客戶端:下載 OPC Foundation 示例客戶端的鏈接 ( https://opcfoundation.org )
S7-1500 配置 OPC UA 服務器的軟/硬件需求
已獲得操作 OPC UA 功能的運行系統(tǒng)許可證。
TIA Portal V14 以及S7-1500 V2.0以后開始支持OPC UA服務器功能,除 S7-1500 標準? ? ? CPU 之外,這一特性同樣適用于 S7-1500F、S7-1500T、S7-1500C、S7-1500pro? ? ?CPU、ET 200SP CPU、SIMATIC S7-1500 軟件控制器和 PLCSIM Advanced。S7-1500 CPU 上所有集成的 PROFINET 接口,均可用于訪問該 CPU 的 OPC UA? ? ? 服務器。? ? 不能借助 CP 或 CM 通過自動化系統(tǒng)的背板總線直接訪問 CPU 的 OPC UA 服務器。
S7-1500 的 OPC UA 服務器實驗環(huán)境
在本應用實例中,使用以下產(chǎn)品配置 OPC UA 服務器。
軟件:
TIA V15.1
UA Expert V1.5.1
硬件:
CPU 1511-1PN V2.6
配置S7-1500的OPC UA服務器
1、使能 OPC UA 服務器
S7-1500的 OPC UA 服務器默認是禁用的,下面介紹如何使能一個簡單的 OPC UA 服務器
1.1、導航至 CPU 的屬性常規(guī)界面選擇 OPC UA 服務器常規(guī)選項激活 OPC UA 服務器。
1.2、導航至 'CPU 屬性>運行系統(tǒng)許可證> OPC UA' 選擇選擇所需許可證類型。
運行 S7-1500 CPU 的 OPC UA 服務器需要使用許可證。所需的許可證類型取決于相應? ? ?CPU 的性能。將許可證類型分為以下幾類:
●? SIMATIC OPC UA S7-1500 小型(CPU 1511、CPU 1512、CPU 1513、ET 200SP? ? CPU、CPU 1515SP PC 需要使用這種類型)
●? SIMATIC OPC UA S7-1500 中型(適用于 CPU 1515、CPU 1516、軟件控制器 CPU? ? 1507、CPU 1516pro-2PN)
●? SIMATIC OPC UA S7-1500 大型(CPU 1517、CPU 1518 需要使用這種類型)
1.3、導航至? 'CPU 屬性>OPC UA>常規(guī)'? 選項設置 OPC UA 應用名稱,也可以使用默認名稱。請注意,證書上需要輸入應用程序名稱(主題備用名稱),并且更改應用程序名稱后可能需要再次生成現(xiàn)有證書。
1.4、導航至 'CPU 屬性>OPC UA>服務器' 選項設置服務器會話數(shù)量限制以及采樣發(fā)布的最短間隔,無特殊需求也可以使用默認設置。
●? 會話最大超時,在該字段中指定在不進行數(shù)據(jù)交換的情況下OPC UA服務器關閉會話之前的最大時長。允許值在1到 600000秒之間。
●? 最大OPC UA會話數(shù),在該字段中指定OPC UA服務器啟動并同時操作的最大會話數(shù)。最大會話數(shù)取決于CPU的性能。每個會話都會占用資源。
●? 最大注冊節(jié)點數(shù),在該字段中指定OPC UA服務器注冊的最大節(jié)點數(shù)。最大注冊節(jié)點數(shù)取決于CPU的容量,并會在組態(tài)字段內(nèi)容時顯示(將光標放在字段中)。每次注冊都會占用資源。
● 最短采樣時間間隔,在“最短采樣時間間隔”中,可設置OPC UA服務器記錄CPU變量值并與以前值相比較檢查是否發(fā)生變更的時間間隔。
● 最短發(fā)布時間間隔,在“最短發(fā)布時間間隔”中,可設置變量值發(fā)生改變時服務器通過新值向客戶端發(fā)送消息的時間間隔。
● 所監(jiān)視元素的最大數(shù)量,在該字段中指定該CPU的OPC UA服務器可同時監(jiān)視值更改的最大元素數(shù)量。監(jiān)視會占用資源,可監(jiān)視元素的最大數(shù)量取決于所用的CPU。
1.5、編譯硬件并下載就可以啟用一個簡單的OPC UA服務器,服務器在其標準配置中允許任意客戶端進行連接。如果需要管理客戶端證書以及訪問認證管理請繼續(xù)進行下面配置。
2、使能全局安全設置
為了管理 OPC UA 服務器的證書必須啟用TIA項目的全局安全設置。
2.1、導航至項目樹下安全設置為項目設置用戶名密碼。
2.2、導航至 'CPU 屬性>防護與安全>證書管理器' 選項使能證書管理器。
3、配置安全策略
通過OPC UA服務器的安全策略來配置OPC UA客戶端和服務器之間的加密和身份驗證方式,選擇允許的安全策略。
4、通過管理證書實現(xiàn)安全訪問
為了實現(xiàn)只允許指定的OPC UA客戶端與OPC UA服務器進行連接,需要做以下配置
4.1、創(chuàng)建服務器證書,根據(jù)需要選擇自簽署還是CA簽署。
4.2、禁止運行過程中自動接受客戶端證書。
4.3、導出客戶端證書。
4.4、管理受信證書,把之前導出的客戶端證書導入到受信證書一欄。
4.5、分配可信客戶端。
5、用戶身份認證
S7-1500 OPC UA服務器用戶身份認證分為2種,一種是訪客認證,另一種是用戶名和密碼認證。如果需要指定用戶登錄權限需要禁止訪客認證并增加用戶名密碼認證。
6、分配PLC變量的訪問權
對PLC中創(chuàng)建的變量分配它的讀寫權限,默認都可以訪問,可以單獨為變量分配讀寫權限,也可以整個DB塊設置訪問權限。
7、項目編譯下載后進行訪問測試
通過UA Expert進行連接訪問,選擇安全策略及用戶身份認證方式后進入證書驗證界面,需要信任服務器證書并接受臨時會話請求。注意這里 UA Expert 通過 Trust Server Certificate 按鈕即可完成 Server 證書的導入,如果是其它客戶端沒有此功能需要手動到 TIA 下的證書管理器中導出CA證書和設備證書并拷貝到客戶端對應受信證書列表里即可。
建立連接成功后瀏覽PLC數(shù)據(jù),并進行讀寫訪問測試。
8、OPC UA 服務器方法的創(chuàng)建
在 S7-1500 CPU(自固件版本 V2.5 起)的OPC UA服務器中,可以選擇通過用戶程序提供方法。OPC UA方法為不同通信節(jié)點之間的交互提供了有效機制,該機制提供作業(yè)確認和反饋值,因此用戶無需再編程握手機制。
OPC UA方法的工作原理
通常,OPC UA方法的工作原理與運行系統(tǒng)中由外部OPC UA客戶端調(diào)用的受專有技術保護函數(shù)塊的原理類似。OPC UA 客戶端僅“監(jiān)視”已定義的輸入和輸出,函數(shù)塊、方法或算法的內(nèi)容對外部OPC UA客戶端保持隱藏,OPC UA客戶端接收成功執(zhí)行的反饋以及函數(shù)塊(方法)返回的值,或者,如果執(zhí)行不成功,則會收到錯誤消息。
服務器方法的實現(xiàn)
1. 使用OPC_UA_ServerMethodPre查詢服務器方法調(diào)用該指令將執(zhí)行以下任務:
–? 通過該指令詢問CPU的OPC UA服務器是否已通過OPC UA客戶端調(diào)用服務器方法。
–? 如果已調(diào)用方法,并且服務器方法具有輸入?yún)?shù),服務器方法現(xiàn)在會接收到輸入?yún)?shù)。
2. 編輯服務器方法
在這部分服務器方法中,用戶提供實際用戶程序。如果服務器方法使用輸入?yún)?shù),則可使用這些參數(shù)。僅當OPC UA客戶端已調(diào)用服務器方法時,才可執(zhí)行服務器方法的這一部分。成功執(zhí)行方法后,如果方法具有輸出參數(shù),需要設置服務器方法的輸出參數(shù)。
3. 使用OPC_UA_ServerMethodPost響應服務器方法
要完成服務器方法,應調(diào)用“OPC_UA_ServerMethodPost”指令。使用參數(shù)通知 “OPC_UA_ServerMethodPost”指令是否已處理用戶程序,如果用戶程序已成功執(zhí)行,則會通過相關參數(shù)通知OPC UA服務器。OPC UA服務器隨后會將服務器方法的輸出參數(shù)發(fā)送到OPC UA客戶端。
無論用戶程序是由“OPC_UA_ServerMethodPre”和 “OPC_UA_ServerMethodPost” 指令處理還是在下一個周期繼續(xù)執(zhí)行,始終以成對的形式調(diào)用這兩個指令。
給出了使用 OPC UA 服務器方法指令為用戶程序中所執(zhí)行的 OPC UA 客戶端提供一個方法。需要注意的是服務器方法指令的多重實例必須命名為 “OPC_UA_ServerMethodPre_Instance” 和 “OPC_UA_ServerMethodPost_Instance”,否則不會在服務器上創(chuàng)建方法,還有就是需要聲明 “UAMethod_InParameters” 和 “UAMethod_OutParameters” 兩個變量分別連接到方法指令引腳上,否則方法指令會報錯。
在客戶端內(nèi)瀏覽到創(chuàng)建的服務器方法,選中 Method 后鼠標右鍵來調(diào)用方法,在調(diào)用方法對話框中傳輸輸入?yún)?shù)點擊 Call 按鈕,返回輸出參數(shù)及方法執(zhí)行后的狀態(tài)。
常見問題及建議
1、通過OPC UA客戶端訪問OPC UA服務器的建議
●? 對于一次性或不頻繁的數(shù)據(jù)訪問,請使用標準的讀/寫訪問。
● 對于少量數(shù)據(jù)的循環(huán)訪問(循環(huán)間隔最長約為 5 秒),請使用訂閱。 優(yōu)化OPC UA服務器中的最短發(fā)布時間間隔設置和最小采樣時間間隔設置。
● 如果定期訪問某些特定變量(重復訪問),則可使用函數(shù) “RegisteredRead” 和 “Regist? eredWrite” 。
2、導致 OPC UA 服務器連接失敗的原因
當建立到 OPC UA 服務器的連接時,需用注意許多要點來保證過程順利地進行。以下連接建立出錯的原因與用到的 OPC UA 客戶端和服務器無關。
基于證書連接的日期和時間
基于證書授權的通訊中,在OPC UA 服務器上,需要檢查證書的有效期。這就要求終端系統(tǒng)具備當前時間。對證書檢查時,OPC UA 服務器可能會給出時間錯誤響應,狀態(tài)碼為 “BadSecurityChecksFailed” 或者 “BadCertificateTimeInvalid” 。解決方案建議使用 NTP 服務器來實現(xiàn)時鐘同步。如果 NTP 無法實現(xiàn),則只能手動為終端系統(tǒng)設置當前時間。
經(jīng)過 NAT 路由器的 OPC UA 客戶端-服務器連接嘗試失敗,產(chǎn)生錯誤信息 “BadCommunicationError” 或 “BadNotConnected” 。
在NAT系統(tǒng)中,IPv4 數(shù)據(jù)包被路由器處理。?這意味著數(shù)據(jù)包的源IP?( “Source NAT” ) 或者目的 IP ( “Destination NAT” ) 會被路由器配置的IP地址替換掉 ( 取決于目的端口 )。而客戶端和服務器并不知道這個過程。