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