性吧杏吧,手机色情直播破解版,杏杏吧在线

關(guān)于OPC UA工業(yè)通訊協(xié)議的概念和相關(guān)經(jīng)驗(yàn)

2021/1/25 16:12:47 人評(píng)論 次瀏覽 分類:PLC應(yīng)用  文章地址:http://m.prosperiteweb.com/tech/3567.html

OPC UA是一種工業(yè)通訊協(xié)議,從2008年發(fā)展到今天,現(xiàn)在在業(yè)界已經(jīng)非常的流行了。本文旨在介紹一些OPC UA的概念,分享一些相關(guān)經(jīng)驗(yàn),希望對(duì)從事OPC UA相關(guān)工作的朋友有幫助。

1、OPC UA的信息模型與統(tǒng)一架構(gòu)

有一些朋友常常會(huì)說OPCUA之所以能夠如此普及是因?yàn)樗芸缙脚_(tái)。遠(yuǎn)程I/O模塊覺得這不是一個(gè)充分條件。我個(gè)人認(rèn)為OPCUA之所以能夠很廣泛的普及是因?yàn)樗慕y(tǒng)一架構(gòu)與信息模型做的太完善了。OPCUA的信息模型來源于面向?qū)ο缶幊?OOP)的思想,這也是最契合實(shí)際需求的。

假設(shè)在工業(yè)現(xiàn)場(chǎng)有若干臺(tái)空調(diào)需要監(jiān)控,首先我們需要監(jiān)視它的溫度,濕度,運(yùn)行狀態(tài);其次我們需要對(duì)它進(jìn)行啟停操作;然后我們需要接受它的非停事故報(bào)警信息;最后我們常常需要分析某一時(shí)段的運(yùn)行參數(shù)來判斷空調(diào)的狀態(tài)。運(yùn)用面向?qū)ο缶幊痰乃枷耄覀儎?chuàng)建一個(gè)類—空調(diào),在這個(gè)類中分別定義相應(yīng)的屬性,方法和事件,其中屬性即可以是簡(jiǎn)單的數(shù)據(jù),也可以是復(fù)雜的結(jié)構(gòu)體。這個(gè)類即可理解成OPC UA的信息模型。OPC UA將現(xiàn)場(chǎng)的這些實(shí)時(shí)數(shù)據(jù)(DA),歷史數(shù)據(jù)(HDA)還有事故報(bào)警數(shù)據(jù)(A&E),在同一平臺(tái)進(jìn)行管理,即為統(tǒng)一架構(gòu)。



用這種模式來通訊,效果怎么樣呢?下面我們做一個(gè)簡(jiǎn)單的演示。在unified automation公司出品的demo server中,已經(jīng)定義了若干個(gè)空調(diào),我們通過該公司出品的客戶端UA Expert進(jìn)行監(jiān)視。在菜單欄的左側(cè),列出了該空調(diào)的屬性,方法和事件;在右側(cè)中,這里只是監(jiān)視空調(diào)的溫度,濕度和運(yùn)行狀態(tài)。這時(shí),空調(diào)是停止(OFF)狀態(tài)。如果需要將空調(diào)啟動(dòng),并將運(yùn)行目標(biāo)溫度設(shè)定為比較舒服的25℃,只需要調(diào)用StartWithSetpoint方法,并在對(duì)話框中輸入目標(biāo)值即可。


監(jiān)控事件與報(bào)警信息時(shí),創(chuàng)建事件試圖并訂閱該空調(diào)的事件??照{(diào)的啟停狀態(tài)發(fā)生會(huì)觸發(fā)一個(gè)事件,空調(diào)處于停止?fàn)顟B(tài)則會(huì)觸發(fā)一個(gè)報(bào)警,同時(shí)在客戶端也可以確認(rèn)報(bào)警。


最后,如果在服務(wù)器端,將空調(diào)某個(gè)屬性歷史存儲(chǔ)功能打開,經(jīng)過一段時(shí)間的存儲(chǔ)后,在客戶端就可以讀取歷史數(shù)據(jù)了。


這就是信息模型與統(tǒng)一架構(gòu)的魅力,讓一個(gè)通訊軟件有了HMI的感覺。


當(dāng)然,OPC UA的這個(gè)信息模型其實(shí)也不是在工控界獨(dú)領(lǐng)風(fēng)騷的,在PTC的物聯(lián)網(wǎng)平臺(tái)Thingworx中的物模型(thing model),羅克韋爾的CIP協(xié)議也都是類似的面向?qū)ο蟮哪P汀K哉f好的設(shè)計(jì)都是相似的,不好的設(shè)計(jì)各有各的磕磣。



2、OPC UA的安全性

工業(yè)通訊協(xié)議初期是以速率和穩(wěn)定性優(yōu)先的,那時(shí)候?yàn)榱丝刂葡到y(tǒng)安全,很多網(wǎng)絡(luò)都是與外網(wǎng)隔離的,因?yàn)橐呀?jīng)被物理隔離,所以協(xié)議就沒有做任何的安全設(shè)計(jì)。而且以前處理的芯片處理能力有限,如果要做加密解密運(yùn)算的話,會(huì)消耗很多的資源,所以只能為了時(shí)效性而犧牲安全性。想想Modbus協(xié)議,如果你能連接到網(wǎng)絡(luò)里,用ModScan是不是可以隨意的修改Modbus從站的數(shù)據(jù),無需用戶認(rèn)證,權(quán)限控制;你也可以用一些類似Wireshark之類的抓包軟件很輕松的解析這些明文傳遞的數(shù)據(jù)包??梢哉f系統(tǒng)完全是在裸奔的情況下運(yùn)行的。

不過因?yàn)橄到y(tǒng)與外界是隔離的,如果想攻擊它,你需要騙過廠門口的保安,躲過大狼狗,然后跑到車間,撬開控制柜,接入網(wǎng)絡(luò),然后才能用黑客技術(shù)攻擊它。不過如果你已經(jīng)這么厲害了,是不是直接給控制器上潑一盆水,用這種物理攻擊更高效一些。


但是現(xiàn)在這種情況發(fā)生了變化,因?yàn)楣I(yè)網(wǎng)絡(luò)希望能夠插上互聯(lián)網(wǎng)的翅膀,去做OT與IT的融合,去做工業(yè)物聯(lián)網(wǎng)(IIOT)。所以,在這種需求下安全成為了最大的需求。就像王堅(jiān)院士講:安全是互聯(lián)網(wǎng)公司的生命。在通訊的過程中面臨著眾多的外部安全威脅,例如:信息泄露,篡改指令,越權(quán)操作,偽造重發(fā),泛濫攻擊等。面對(duì)這些威脅,OPC UA則使用加密,簽名,用戶認(rèn)證,權(quán)限訪問控制,會(huì)話管理等方式一層一層完成深度防御。


OPC UA的安全也是得到業(yè)內(nèi)認(rèn)可的,不過世界上也沒有絕對(duì)安全的協(xié)議。Synopsys公司在對(duì)一些工業(yè)通訊協(xié)議進(jìn)行測(cè)試的時(shí)候還是發(fā)現(xiàn)了一些問題的。所以,OPCUA的安全還是有些工作要去做的。欲戴王冠,必承其重。


3、OPC UA與物聯(lián)網(wǎng)(IoT)

物聯(lián)網(wǎng)是一個(gè)很熱的話題,也實(shí)實(shí)在在的影響和改變著我們的生活。從上面OPC UA對(duì)一個(gè)空調(diào)的監(jiān)控的例子中,不難發(fā)現(xiàn)OPC UA協(xié)議對(duì)物的監(jiān)視與控制是很簡(jiǎn)潔流暢的。同時(shí)又有了強(qiáng)大的安全性為它保駕護(hù)航,因此,在面對(duì)物聯(lián)網(wǎng)這個(gè)風(fēng)口,OPC UA也希望將自己打造成一款I(lǐng)oT主流協(xié)議。OPC UA能夠很好的支持HTTPS,在與HTTPS配合時(shí),可以發(fā)送XML或者JSON格式的數(shù)據(jù)。

現(xiàn)在很多的物聯(lián)網(wǎng)平臺(tái)也已經(jīng)支持OPC UA了,比如國(guó)外的Azure,國(guó)內(nèi)的阿里云等物聯(lián)網(wǎng)平臺(tái)。

 
不過OPC UA最初的client與server之間的查詢與響應(yīng)的一對(duì)一模式最適合通訊節(jié)點(diǎn)較少,通訊信息量大且穩(wěn)定持續(xù)的場(chǎng)景。在物聯(lián)網(wǎng)的應(yīng)用場(chǎng)景中,往往通訊節(jié)點(diǎn)比較多,但是節(jié)點(diǎn)間的通訊量不大,有時(shí)還需要一對(duì)多、多對(duì)一通訊。如果還用一對(duì)一的模式去擁抱物聯(lián)網(wǎng),容易撲個(gè)空。這時(shí)OPC UA引入了pub/sub機(jī)制,融合了一些MQTT協(xié)議,就能比較好的支持物聯(lián)網(wǎng)的場(chǎng)景了。相關(guān)的白皮書已于2018年發(fā)布,感興趣的朋友可以去官網(wǎng)下載,看看細(xì)節(jié)。


4、OPC UA常用調(diào)試工具

無論是開發(fā)OPCUA的產(chǎn)品,還是在現(xiàn)場(chǎng)調(diào)試,常常需要一些調(diào)試工具。這些工具包括客戶端和一些模擬服務(wù)器,Matrikon, IntegrationObjects, unified-automation這些廠家都有出品,可以去官網(wǎng)免費(fèi)下載的,使用也很簡(jiǎn)單。這里推薦unified-automation出品的調(diào)試神器UA Expert和UA server。

在調(diào)試通訊產(chǎn)品時(shí),通過抓包,分析報(bào)文是很有效的手段。對(duì)于OPC UA協(xié)議,非常推薦使用抓包神器Wireshark來完成這項(xiàng)工作。Wireshark對(duì)OPCUA的支持也是很完善的,已經(jīng)將OPCUA加入所支持的協(xié)議列表里,缺省的端口為4840。


打開Wireshark,然后在OPC UA做些操作,比如browse節(jié)點(diǎn)。這時(shí)候在Wireshark中就能看到這個(gè)browse請(qǐng)求的細(xì)節(jié),對(duì)照白皮書第四篇,瞬間秒懂各個(gè)細(xì)節(jié)。所以,只要左手Wireshark,右手OPC UA白皮書,兩天即可輕松實(shí)現(xiàn)從入門到精通。(其實(shí)學(xué)習(xí)任何網(wǎng)絡(luò)協(xié)議都可以這樣,左手協(xié)議解析器,右手白皮書。)


5、OPC UA開源庫(kù)

除了上面提到的調(diào)試工具之外,現(xiàn)在網(wǎng)上也涌現(xiàn)出很多的OPC UA開源庫(kù),開發(fā)的語(yǔ)言也是琳瑯滿目。這也可以看出OPC UA的生態(tài)圈是非常好的。巧妙的使用這些庫(kù)可以很好的提高我們開發(fā)和測(cè)試產(chǎn)品的效率,比如完成一些功能測(cè)試,回歸測(cè)試,性能測(cè)試,模糊測(cè)試等等。

這里介紹兩款開源庫(kù):

◆python-opcua:源代碼網(wǎng)址為:
優(yōu)點(diǎn):它最大的特點(diǎn)就是簡(jiǎn)單,用pip install opcua安裝即可,經(jīng)過幾年更新以后,對(duì)OPCUA協(xié)議的支持也越來越充分,既支持服務(wù)器,又支持客戶端。下面是官網(wǎng)給出的實(shí)例,用不到30行代碼就能創(chuàng)建一個(gè)包含一個(gè)動(dòng)態(tài)點(diǎn)的服務(wù)器。
缺點(diǎn):這個(gè)庫(kù)的性能差一些;有部分OPC UA協(xié)議標(biāo)準(zhǔn)中定義的服務(wù)還沒有支持。最后,在使用的過程中發(fā)現(xiàn)存在一些bug。

◆UA-.NETStandard:源代網(wǎng)址為:

優(yōu)點(diǎn):這個(gè)庫(kù)是OPC基金會(huì)官方出品的庫(kù),包含服務(wù)器,客戶端,可以在windows,linux運(yùn)行,也可以在iOS和Android運(yùn)行。它的性能很好,拿到了OPCUA實(shí)驗(yàn)室的官方認(rèn)證,對(duì)OPC UA協(xié)議標(biāo)準(zhǔn)支持的全面程度自然沒得說了。
缺點(diǎn):從工控人的角度看,需要一些C#的編程技能,上手稍微慢一點(diǎn),沒有Python那個(gè)庫(kù)容易學(xué)習(xí)。Git上同樣有一些實(shí)例工程,可以在它們的基礎(chǔ)上根據(jù)自己的開發(fā)和測(cè)試需求做修改。

6、小結(jié)

可以說OPC UA的統(tǒng)一架構(gòu)真的是包羅萬象,既能做實(shí)時(shí)數(shù)據(jù),又能做歷史數(shù)據(jù),既能上云,又能嵌入到控制器,甚至可能被封裝到PLC中的功能碼,將觸角深入到工控通訊行業(yè)的各個(gè)角落。真所謂:可上九天攬?jiān)?,可下五洋捉鱉。這從它超過14卷的白皮書就能看出它的野心。而且還是一款成長(zhǎng)中的協(xié)議,還有很多的功能在拓展,比如:OPC UA還在與TSN技術(shù)融合,要在數(shù)據(jù)鏈路層搞點(diǎn)事情。

作為吃瓜群眾,我有時(shí)候覺得OPC UA不只是想要統(tǒng)一架構(gòu),更是想一統(tǒng)江湖??墒鞘澜缟蠜]有完美的東西,這樣一個(gè)大而全的架構(gòu),它的缺點(diǎn)是什么?OPC UA又會(huì)用什么樣的方式完善呢?歡迎你也來聊聊你的想法!

相關(guān)閱讀
PCS 7通過OpenPCS 7站組件實(shí)現(xiàn)OPC UA通訊
通過OPC UA標(biāo)準(zhǔn)實(shí)現(xiàn)Kepware與SCADA軟件的數(shù)據(jù)交換

共有訪客發(fā)表了評(píng)論 網(wǎng)友評(píng)論

  客戶姓名:
郵箱或QQ:
驗(yàn)證碼: 看不清楚?