有關OPC UA的特點,及其對智能制造、物聯網、工業4.0的價值和意義等,不再贅筆,我們集中于實操。
測試說明
OPC UA采用客戶端/服務器架構,因此測試中需要一個服務器,一個客戶端。

服務器:S7-1500:CPU 1515-2PN TIA: V15.1
客戶端:UaExpert V1.5.1 331
測試有非安全測試和安全測試兩種,下文分節介紹:
1、非安全連接測試
非安全測試,設置最簡單,我們先短平快得通訊上,感受一下!
①TIA中的相關設置
創建工程等常規操作不詳述!TIA中的相關設置都在CPU的屬性中!
Step 1: 激活OPC UA服務器

因本CPU的X1口的IP為191.168.0.1,且我們將OPC UA的端口設為48400,因此后續我們會以此地址訪問此OPC UA服務器。
Step 2: 勾選CPU需要的運行許可證,本試驗需要的是medium許可證

Step 3: 在服務器的選項中,設置端口及其他設置。端口默認為4840,可保持默認!我們此處將其修改為48400。

Step 4: OPC UA的常規中,可設置應用程序名稱,此處保持默認

至此,TIA中的基本設置已完成。
②TIA中的編程
需在TIA中創建幾個變量,并編幾句代碼,以驗證通訊。創建數據塊DB_1,包含5個變量

并在Main中編寫如下幾行代碼:

編譯下載,使CPU運行起來,確保程序運行正常!至此,PLC中的設置完成。
③UaExpert中的測試連接
Step 1: 打開UaExpert軟件(電腦需跟PLC建立連接)
Step 2: 添加 OPCUA Server(可1處右鍵ADD,也可直接點2處的+號)

Step 3: 添加Server的操作(1處雙擊,2處輸入地址及端口號如圖),點擊OK…

Step 4: 連接
選中剛添加的Server,選中”None-None…”,選項,即無安全校驗。因PLC中默認啟用訪客認證,因此可以在Anonymous處,進行無密碼登錄。點擊OK…

Step 5: 接受服務器證書,Continue…

Step 6: OPC UA服務器已連接上,并顯示在AddressSpace中。找到DB_1并將其拖放入右側的Data Access View中。

Step 7: 通過置位復位幾個Bool變量,即可看到幾個Float變量按PLC中編程的規律變化。

至此,非安全連接通訊已完成。
2、安全連接測試
①TIA中的相關設置
使能全局安全設置
為了管理 OPCUA 服務器的證書必須啟用TIA項目的全局安全設置。
Step 1: 項目樹下安全設置中,為項目設置用戶名和密碼

Step 2: 導航至"CPU 屬性>防護與安全>證書管理器" 選項使能證書管理器
Step 3: 配置安全策略(把無安全設置去掉,則必須進行證書驗證)

②服務器和客戶端證書的處理
Step 1: 創建服務器證書(Security的標簽頁中,點擊服務器證書后面的按鈕,新增…)

彈窗中設置必要的參數(一般默認即可),確定后,即可生成服務器證書。

UaExpert連接PLC時,會自動獲取此證書,因此不用將此證書導出,并導入到UaExpert中。
Step 2: 客戶端證書(需在UaExpert中導出UaClient證書,并導入到S7-1500的客戶端信任列表里)。OK后,UaExpert的Client證書存入PC硬盤。
TIA軟件中,項目樹下的安全設置中,將導出的Client證書導入受信證書一欄。
CPU屬性下,禁止自動接受客戶端證書;在CPU屬性下,分配可信客戶端
在用戶身份認證中,取消“啟用訪客認證”,在UaExpert中必須輸入用戶名和密碼才能訪問OPC UA 服務器。
在用戶管理中,可新增用戶并為其設置密碼。此處需至少新增一個用戶,并按規定為其設置密碼!
項目編譯下載后,在UaExpert中進行訪問測試
以”opc.tcp://192.168.0.1:48400”地址添加服務器。展開服務器,因為在PLC側沒有選中“無安全設置”和“啟用訪客訪問”,因此,在這兒就沒有”None-None…”選項,登錄的“Anonymous”也是不可選的,只能通過用戶名和密碼登錄。
輸入用戶名和密碼后,彈出認證確認窗口,信任并接受服務器證書后繼續…
如果在CPU屬性的Security中,Secure Channel選中“無安全設置”,用戶身份認證勾選“啟用訪客認證“,則在UaExpert中添加Server后,連接顯示畫面如下圖:

此時,可以選擇加密或不加密策略。可以”Anonymous”也可以用“用戶名密碼“登錄。
有時,帶安全策略的登錄,會連接不上,報錯”BadCertificateTimeInvalid”!

這是因為PLC CPU的系統時間不對。認證證書的時間不符合要求。需在CPU中將系統時間修改為當前時間,或“轉至在線“后,在TIA中的”在線與診斷“下的功能下,通過”設置時間“,將CPU時間更新!再次連接即可成功!
登錄上以后,就可以如下圖,監控并給變量賦值操作了!

以上為非安全和安全UaExpert訪問S7-1500 PLC的OPC UA服務器實操過程的簡單介紹!
盡管文章較長,然截圖較多,操作步驟是簡單的!通過這種沉浸式操作體驗,及瀏覽操作軟件的相關頁面及條目,可對一些概念,如命名空間、Node、對象、證書、簽名,安全認證等概念有較深的了解。工程軟件的學習,是必須要動手的,必須結合硬件和軟件界面,才能有切身體會,不然,僅憑看資料,看再多遍,也是隔靴搔癢。本文操作步驟參考官方指導文檔,依序動手做了一遍,其收益是良多的!
另,S7-1500自固件V2.6以后,也支持OPC UA Client功能,Client功能的實現,涉及很多復雜的編程,本篇不做詳述。本篇用UaExpert作為OPC UA Client!
紙上得來終覺淺,絕知此事要躬行......
作者:流浪者云軒