KepOPC全新DA2UA中间件实现OPCDA与UA的转换及互操作
?????????KepOPC是支持OPC、S7等工業(yè)標(biāo)準(zhǔn)協(xié)議設(shè)備數(shù)據(jù)采集與交換的中間件軟件,本文主要介紹如何采用KepOPC中間件(DA2UA)實現(xiàn)從OPCDA到OPCUA的轉(zhuǎn)換及互操作,隨著OPCUA及跨平臺技術(shù)的不斷迭代,傳統(tǒng)OPCDA受制于DCOM安全機制等技術(shù)限制已經(jīng)滿足不了工業(yè)互聯(lián)網(wǎng)架構(gòu)下的應(yīng)用需求,IT及OT更加迫切需要融合及互操作。下面讓我們看一下KepOPC中間件(DA2UA)的功能和操作方法。
本站下載地址:https://download.csdn.net/download/weixin_29482793/85024884
百度網(wǎng)盤下載地址:https://pan.baidu.com/s/1xnzS8aWZ-WYPJrzPoFSRcg
提取碼:2s8a
第一步、打開及退出軟件
????????雙擊應(yīng)用軟件圖標(biāo)打開“OPCDA2UA.exe”軟件,第一次配置時會彈出圖1所示提示窗口,點擊“OK”顯示軟件主窗口如圖2所示,按照提示操作步驟選擇“File”->“OPCSetting”后,打開參數(shù)設(shè)置頁面如圖3所示。軟件的退出采用輸入密碼方式退出,密碼默認(rèn)是?admin ,常態(tài)化運行可以最小化到托盤,避免誤操作。
?圖1 首次應(yīng)用提示窗口
?圖2?中間件主界面
?圖3?首次參數(shù)配置提示界面
第二步、OPC參數(shù)設(shè)置
????????按照圖3提示,點擊“OK”確定后顯示參數(shù)設(shè)置界面如圖4所示,參數(shù)設(shè)置分為如下幾步:
?圖4?參數(shù)設(shè)置界面
?????????(1)OPC UA參數(shù)配置:在程序默認(rèn)的ServerAddress、ServerName、Security Modes、Security Policies、Anonymous或用戶名密碼、運行Mode等參數(shù)基礎(chǔ)上修改成自己需要的配置內(nèi)容,以上各項均不能為空;
????????(2)OPC DA?添加節(jié)點:點擊”AddGroup“彈出DA服務(wù)器掃描窗口,如圖5所示:
?圖5?OPC DA服務(wù)器搜索界面
????????輸入OPCDA服務(wù)器IP地址,選擇OPC連接方式(DCOM、OPEN),點擊”SCAN“按鈕搜索服務(wù)器,選中對應(yīng)的服務(wù)器點擊”Add“按鈕添加到OPCParamSetting窗口,如圖6所示。
?圖6?OPC?DA節(jié)點添加界面
????????單擊選中添加的DA參數(shù)行,點擊”Connect“按鈕連接OPCDA服務(wù)器,提示連接成功后,目錄樹展開服務(wù)器節(jié)點目錄,雙擊末支節(jié)點名稱添加到圖6右側(cè)列表,此過程亦可通過批量方式添加。選中Gruop1后,點擊”AddBranch“按鈕添加整組節(jié)點到右側(cè)窗口,實現(xiàn)節(jié)點的批量添加。(注意:批量添加的前提是Group1下節(jié)點均為末支節(jié)點),批量添加如圖7、圖8所示:
?圖7?OPC?DA節(jié)點批量添加方法
?圖8?OPC?DA節(jié)點批量添加完成
????????通過”Delete Item“和”Delete All“按鈕刪除表中選中的節(jié)點,實現(xiàn)對本組節(jié)點的管理,如圖9所示:
?圖9?OPC分組節(jié)點管理功能
????????點擊”Disconnect“按鈕完成本組節(jié)點的添加,保存到臨時隊列,如圖10所示,依次類推可以重復(fù)添加第二組、第三組。。。。。。的OPC節(jié)點和連接。添加完所有組后,點擊”Save“保存所有配置項目,保存并關(guān)閉參數(shù)設(shè)置窗口后,主界面顯示相關(guān)分組信息和節(jié)點信息,如圖11所示。
?圖10?OPC分組節(jié)點管理功能
?圖11?OPC分組節(jié)點添加到主界面
第三步、運行及停止
????????點擊”START“按鈕開始運行,運行正常的界面如圖12所示:
?圖12?OPC2UA運行正常界面
????????中間件支持UA服務(wù)器功能,參數(shù)設(shè)置界面可設(shè)置OPCUA服務(wù)器url地址,允許匿名連接和展開節(jié)點目錄樹,支持OPCUA數(shù)據(jù)交換是否啟用選擇,url地址可自定義,端口可自定義,默認(rèn)地址為opc.tcp://0.0.0.0:4841/OPCUA/KepOPC。服務(wù)器不需要做任何配置或端口映射,通過第三方UA客戶端或者KepOPC中間件能夠在局域網(wǎng)或跨平臺直連該服務(wù)器,做數(shù)據(jù)橋接及寫值互操作,UA客戶端向中間件寫值的同時寫值到OPCDA服務(wù)器對應(yīng)節(jié)點。
?圖13?UaExpert連接讀取
????????點擊”STOP“按鈕開始運行,運行正常的界面如圖14所示:
?圖14??OPC2UA停止運行界面
????????中間件采集及發(fā)布性能:OPCDA2UA中間件單套軟件支持不低于10000個節(jié)點的采集和發(fā)布,采集和發(fā)布周期不超過1秒,用戶根據(jù)現(xiàn)場實際情況分配各組參數(shù),實現(xiàn)多組協(xié)程處理,提高DA采集效率和UA發(fā)布及互操作效率,下面是用6741個測試節(jié)點搭建測試環(huán)境的測試截圖,如圖15所示,可以看到四組節(jié)點分別采集平均耗時約300ms,平均發(fā)布時耗約300ms。
?
圖15??OPC2UA運行在服務(wù)器的界面
客戶端讀寫實例:
# encoding=utf-8
import sys,time
sys.path.insert(0, "..")
from opcua import Client
from opcua import ua
import time
from datetime import datetime,timedelta
if __name__ == "__main__":
? ? client = Client("opc.tcp://132.232.202.106:4841/OPCUA/KepOPC") #opcua服務(wù)器地址
? ? client.set_user("admin") #登陸用戶名
? ? client.set_password("123456") #登陸密碼
? ? client.set_security_string("Basic256Sha256,SignAndEncrypt,certificate-example.der,private-key-example.pem") #安全和認(rèn)證模式
? ? client.application_uri = "urn:example.org:FreeOpcUa:python-opcua"
? ? client.secure_channel_timeout = 30000
? ? client.session_timeout = 30000
? ? try:
? ? ? ? client.connect()
? ? ? ? print "Connect to ua server success!"
? ? ? ? root = client.get_root_node()
? ? ? ? print("Objects node is: ", root.get_browse_name())
? ? ? ? objects = client.get_objects_node()
? ? ? ? print "childs og objects are: ", objects.get_children()
? ? ? ? channel = objects.get_children()
? ? ? ??
? ? ? ? var = client.get_node("ns=2;s=Group1.WSCC.Device1.Group1.wasiTemp") #測試讀寫點
? ? ? ? var1 = client.get_node("ns=2;s=Group1.WSCC.Device1.Group1.wasiPress")?#測試讀寫點1
? ? ? ? var2 = client.get_node("ns=2;s=Group1.WSCC.Device1.Group1.ByteArray")?#測試讀寫點2
? ? ? ??
? ? ? ? for i in range(0,100000): #循環(huán)讀寫值
? ? ? ? ? ? res = ?var2.get_data_value().Value.Value? #測試點2數(shù)組類型的讀寫操作
? ? ? ? ? ? print res
? ? ? ? ? ? write_list = []
? ? ? ? ? ? for j in range(0,len(res)):
? ? ? ? ? ? ? ? write_list.append(float(i+j+0.01))
? ? ? ? ? ? var2.set_value(write_list)
? ? ? ? ? ? time.sleep(2)
? ? ? ? ? ??
? ? ? ? ? ? var.set_value(float(i+0.25))? #測試點float類型的讀寫操作
? ? ? ? ? ? print var.get_value() # get value of node as a python builtin
? ? ? ? ? ? time.sleep(2)
? ? ? ? ? ? var1.set_value(float(i+0.55))?#測試點1float類型的讀寫操作
? ? ? ? ? ? print var1.get_value() # get value of node as a python builtin
? ? ? ? ? ? time.sleep(2)
? ? finally:
? ? ? ? client.disconnect()
????????運行客戶端實例后,可以看到圖16中服務(wù)器記錄寫值過程和狀態(tài)(成功/失敗),同時服務(wù)器將值同步寫入到opcda服務(wù)器對應(yīng)的節(jié)點中去,從而實現(xiàn)從opcua客戶端到opcda服務(wù)器的讀/寫值互操作功能。
?圖16? 服務(wù)器端讀寫操作日志提示
?????????同時,第三方客戶端或用戶自己編寫的客戶端也能訂閱到服務(wù)器中對應(yīng)寫值節(jié)點值的改變,如圖17所示,以上客戶端讀寫實例能夠完整的測試OPCDA2UA中間件軟件的連接及讀寫,使用之前請先pip安裝對應(yīng)的模塊并導(dǎo)入.der和.pem文件。
?圖17? 客戶端讀寫操作及第三方軟件訂閱結(jié)果
總結(jié):
????????OPCDA2UA中間件采用免安裝設(shè)計,連接方式為DCOM和OPEN兩種DA連接方式,支持同時連接多組OPCDA服務(wù)器,按照用戶要求的節(jié)點添加到各分組列表中,同時具備分組管理和節(jié)點管理功能;支持各分組參數(shù)設(shè)置及修改功能,主要包括OPCUA服務(wù)器地址、名稱及安全機制等參數(shù)。
????????KepOPC中間件系列的DA轉(zhuǎn)UA軟件能夠輕松實現(xiàn)從OPCDA到UA的采集轉(zhuǎn)換及讀寫互操作,減少自動化工程師的DCOM配置煩惱,相信很多自動化或IT工程師都受過DCOM的折磨;降低IT工程師在工業(yè)互聯(lián)網(wǎng)應(yīng)用場景中使用kepware等國外軟件的應(yīng)用成本,同時支持功能定制和靈活裁剪,更好適配工業(yè)互聯(lián)網(wǎng)應(yīng)用場景;通過該方式能夠?qū)崿F(xiàn)跨平臺數(shù)據(jù)交換,實現(xiàn)windows下的DA服務(wù)器與其他操作系統(tǒng)中ua客戶端的互聯(lián)互通,為跨平臺OPC數(shù)據(jù)交換提供一種便捷方案,應(yīng)用者只需關(guān)注邊緣網(wǎng)關(guān)或安全設(shè)備中ua客戶端的開發(fā),降低產(chǎn)品開發(fā)周期和成本。
往期回顧:
-
Raspberry?Pico?DIY應(yīng)用介紹
-
基于Raspberry的超聲波測距儀
-
Web端如何通過MQTT與OPC實現(xiàn)設(shè)備交互控制?
-
Linux系統(tǒng)如何實現(xiàn)從OPC到阿里云IoT平臺的數(shù)據(jù)交換?
-
礦用設(shè)備感知數(shù)據(jù)接入OPC數(shù)據(jù)采集與交換
-
KepOPC-AliIoT(阿里云物聯(lián)網(wǎng)平臺)
-
如何實現(xiàn)從OPC DA到PLC的數(shù)據(jù)逆向交換?
-
如何實現(xiàn)從OPC到阿里云IoT平臺的數(shù)據(jù)交換?
-
OPC-阿里云&OPC-InfluxDB
-
OPC數(shù)據(jù)采集及分析軟件更新介紹
-
OPCDA-UA
-
智能制造還有多遠(yuǎn),KepOPC又能解決哪些問題呢?
-
如何通過KepOPC的MQTT功能訂閱工業(yè)現(xiàn)場數(shù)據(jù)?
-
S7中間件如何通過MySQL與PLC讀寫交互?
-
西門子S7系列PLC數(shù)據(jù)采集及交換平臺功能介紹
-
西門子S7系列PLC數(shù)據(jù)采集及交換平臺使用說明
-
KepOPC工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)交換平臺
-
OPC實時數(shù)據(jù)發(fā)布到MQTT及存儲MySQL關(guān)系數(shù)據(jù)庫
-
OPC實時數(shù)據(jù)發(fā)布到MQTT及存儲InfluxDB時序數(shù)據(jù)庫
-
KepOPC不止是OPC客戶端那么簡單
-
如何利用Socket和COM通迅實現(xiàn)非標(biāo)協(xié)議設(shè)備的工業(yè)互聯(lián)?
總結(jié)
以上是生活随笔為你收集整理的KepOPC全新DA2UA中间件实现OPCDA与UA的转换及互操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python控制安捷伦频谱仪_频谱仪远程
- 下一篇: 巧用JS位运算