OPC UA 概述
OPC UA是一項開放標(biāo)準(zhǔn),適用于從機(jī)器到機(jī)器間(M2M)的水平通信和從機(jī)器直到云端的垂直通信。該標(biāo)準(zhǔn)獨(dú)立于供應(yīng)商和平臺,支持廣泛的安全機(jī)制,并且可以與 PROFINET 共享同一工業(yè)以太網(wǎng)絡(luò)。
OPC UA通信的特性及優(yōu)勢
特性:
? ?獨(dú)立于供應(yīng)商和平臺
? ?集成的安全概念(加密、簽名和驗證)
? ?一致、端到端,并可擴(kuò)展
? ?信息模型和語義服務(wù)
? ?與PROFINET 不受限制的并行傳輸
優(yōu)勢:
? ?標(biāo)準(zhǔn)化接口和廣泛的可用性
? ?直接按照協(xié)議進(jìn)行安全通信,無需額外硬件
? ?跨所有自動化層的直接連接和通信
? ?簡單明了的數(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)
西門子為全集成自動化(TIA)提供從現(xiàn)場層擴(kuò)展到控制和操作層的全面硬件和軟件組合。作為開放的通信標(biāo)準(zhǔn),OPC UA 在整個 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ù)交換,這個應(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 通過自動化系統(tǒng)的背板總線直接訪問 CPU 的 OPC UA 服務(wù)器。下表列出了不同版本所支持的功能。
表1:OPC UA功能列表
S7-1500 的 OPC UA 服務(wù)器實(shí)驗環(huán)境
在本應(yīng)用實(shí)例中,使用以下產(chǎn)品配置 OPC UA 服務(wù)器。
圖2:實(shí)驗環(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)是禁用的,下面介紹如何使能一個簡單的 OPC UA 服務(wù)器
1.1、導(dǎo)航至 CPU 的屬性常規(guī)界面選擇 OPC UA 服務(wù)器常規(guī)選項激活 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ī)" ?選項設(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ù)器" 選項設(shè)置服務(wù)器會話數(shù)量限制以及采樣發(fā)布的最短間隔,無特殊需求也可以使用默認(rèn)設(shè)置,如下圖6。
● ?會話最大超時,在該字段中指定在不進(jìn)行數(shù)據(jù)交換的情況下 OPC UA 服務(wù)器關(guān)閉會話之前的最大時長。? ?允許值在 1 到 600000 秒之間。
● ?最大 OPC UA 會話數(shù),在該字段中指定 OPC UA 服務(wù)器啟動并同時操作的最大會話數(shù)。最大會話數(shù)取決于 CPU 的性能。每個會話都會占用資源。
● ?最大注冊節(jié)點(diǎn)數(shù),在該字段中指定 OPC UA 服務(wù)器注冊的最大節(jié)點(diǎn)數(shù)。最大注冊節(jié)點(diǎn)數(shù)取決于 CPU 的容量,并會在組態(tài)字段內(nèi)容時顯示(將光標(biāo)放在字段中)。每次注冊都會占用資源。
● 最短采樣時間間隔, ? ?在“最短采樣時間間隔”中,可設(shè)置 OPC UA 服務(wù)器記錄 ? ? CPU 變量值并與以前值相比較檢查是否發(fā)生變更的時間間隔。
● 最短發(fā)布時間間隔, 在“最短發(fā)布時間間隔”中,可設(shè)置變量值發(fā)生改變時服務(wù)器通過新值向客戶端發(fā)送消息的時間間隔。
● 所監(jiān)視元素的最大數(shù)量,在該字段中指定該 CPU 的 OPC UA 服務(wù)器可同時監(jiān)視值更改的最大元素數(shù)量。?監(jiān)視會占用資源,可監(jiān)視元素的最大數(shù)量取決于所用的 CPU。
圖6. 選項
1.5、編譯硬件并下載就可以啟用一個簡單的 OPC UA 服務(wù)器,服務(wù)器在其標(biāo)準(zhǔn)配置中允許任意客戶端進(jìn)行連接,如下圖7所示。如果需要管理客戶端證書以及訪問認(rèn)證管理請繼續(xù)進(jìn)行下面配置。
圖7. 非安全訪問測試
2、使能全局安全設(shè)置
為了管理 OPC UA 服務(wù)器的證書必須啟用TIA項目的全局安全設(shè)置。
2.1、導(dǎo)航至項目樹下安全設(shè)置為項目設(shè)置用戶名密碼,如下圖8。
?
?
?
?
圖8. 安全設(shè)置
2.2、導(dǎo)航至 "CPU 屬性>防護(hù)與安全>證書管理器" 選項使能證書管理器,如下圖9。
圖9. 證書管理器
3、配置安全策略
通過 OPC UA 服務(wù)器的安全策略來配置 OPC UA 客戶端和服務(wù)器之間的加密和身份驗證方式,如下圖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)行過程中自動接受客戶端證書,如下圖12。
圖12. 禁用自動接受客戶端證書
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)限,也可以整個 DB 塊設(shè)置訪問權(quán)限,如下圖17。
圖17.變量訪問權(quán)限
7、項目編譯下載后進(jìn)行訪問測試
通過 UA Expert 進(jìn)行連接訪問,選擇安全策略及用戶身份認(rèn)證方式后進(jìn)入證書驗證界面,需要信任服務(wù)器證書并接受臨時會話請求,如下圖18。注意這里 UA Expert 通過 Trust Server Certificate 按鈕即可完成 Server 證書的導(dǎo)入,如果是其它客戶端沒有此功能需要手動到 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í)行不成功,則會收到錯誤消息。
服務(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)在會接收到輸入?yún)?shù)。 2. 編輯服務(wù)器方法 ? ?在這部分服務(wù)器方法中,用戶提供實(shí)際用戶程序。如果服務(wù)器方法使用輸入?yún)?shù),則可使用這些參數(shù)。? ?僅當(dāng) OPC UA 客戶端已調(diào)用服務(wù)器方法時,才可執(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í)行,則會通過相關(guān)參數(shù)通知 OPC UA 服務(wù)器。OPC UA 服務(wù)器隨后會將服務(wù)器方法的輸出參數(shù)發(fā)送到 OPC UA 客戶端。 ? ?無論用戶程序是由 “OPC_UA_ServerMethodPre” 和 “OPC_UA_ServerMethodPost” 指令處理還是在下一個周期繼續(xù)執(zhí)行,始終以成對的形式調(diào)用這兩個指令。
如下圖20所示給出了使用 OPC UA 服務(wù)器方法指令為用戶程序中所執(zhí)行的 OPC UA 客戶端提供一個方法。需要注意的是服務(wù)器方法指令的多重實(shí)例必須命名為 “OPC_UA_ServerMethodPre_Instance” 和 “OPC_UA_ServerMethodPost_Instance”,否則不會在服務(wù)器上創(chuàng)建方法,還有就是需要聲明 “UAMethod_InParameters” 和 “UAMethod_OutParameters” 兩個變量分別連接到方法指令引腳上,否則方法指令會報錯。
圖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è)置。
● 如果定期訪問某些特定變量(重復(fù)訪問),則可使用函數(shù) “RegisteredRead” 和 “Regist ?eredWrite” 。
2、導(dǎo)致 OPC UA 服務(wù)器連接失敗的原因
當(dāng)建立到 OPC UA 服務(wù)器的連接時,需用注意許多要點(diǎn)來保證過程順利地進(jìn)行。以下連接建立出錯的原因與用到的 OPC UA 客戶端和服務(wù)器無關(guān)。
基于證書連接的日期和時間
基于證書授權(quán)的通訊中,在OPC UA 服務(wù)器上,需要檢查證書的有效期。這就要求終端系統(tǒng)具備當(dāng)前時間。對證書檢查時,OPC UA 服務(wù)器可能會給出時間錯誤響應(yīng),狀態(tài)碼為 “BadSecurityChecksFailed” 或者 “BadCertificateTimeInvalid” 。解決方案建議使用 NTP 服務(wù)器來實(shí)現(xiàn)時鐘同步。如果 NTP 無法實(shí)現(xiàn),則只能手動為終端系統(tǒng)設(shè)置當(dāng)前時間。
經(jīng)過 NAT 路由器的 OPC UA 客戶端-服務(wù)器連接嘗試失敗,產(chǎn)生錯誤信息 “BadCommunicationError” 或 “BadNotConnected” 。
在NAT系統(tǒng)中,IPv4 數(shù)據(jù)包被路由器處理。?這意味著數(shù)據(jù)包的源IP?( “Source NAT” ) 或者目的 IP ( “Destination NAT” ) 會被路由器配置的IP地址替換掉 ( 取決于目的端口 )。而客戶端和服務(wù)器并不知道這個過程。
編輯:黃飛
評論
查看更多