文本原創(chuàng)為微信訂閱號:諸子東。
這是一篇通俗講解OPC UA的入門篇
為什么要通俗的講呢渴庆,主要是怕自己講的自己看不懂铃芦,會尷尬。
比這更尷尬的是襟雷,自己寫的沒看懂刃滓,你們卻看懂了。
OPC UA內容過于深奧耸弄,筆者最近研究咧虎,說不上研究,只能說是學習计呈,最近學習了OPC UA一段時間砰诵,是時候寫一篇通俗入門篇給大家講解一下OPC UA征唬。
如果后續(xù)沒有看到其他關于OPC UA的文章,說明筆者已經從入門到放棄了茁彭。
在講這個OPC UA之前总寒,需要先介紹幾個單詞縮寫術語。
IOT:物聯(lián)網
IIOT:工業(yè)IOT理肺,工業(yè)物聯(lián)網
IT:Information Technology
OT: Operational Technology
(圖片來源于網上)
那么摄闸,最直接的問題是:什么是OPC UA。
如果我直接從網上摘抄OPC UA的解釋妹萨,那就對不起這個標題啦贪薪。
在這篇通俗篇里,有可能很多用語會不夠嚴謹眠副,但請不要介意,畢竟這篇文章面向更多非研發(fā)人員竣稽。
首先囱怕,OPC UA是一種協(xié)議。
這不是廢話嘛毫别。
說到協(xié)議娃弓,在工業(yè)領域里,我想大家最熟悉的岛宦,就是Modbus?協(xié)議了台丛。
那Modbus這個協(xié)議呢,可以串口通信砾肺,也有以太網通信挽霉。
Modbus可以讀和寫位數(shù)據(jù),也可以讀和寫字數(shù)據(jù)变汪。
位數(shù)據(jù)呢侠坎,就是所謂的開關點。字數(shù)據(jù)呢裙盾,就是什么溫度实胸,濕度,產量等數(shù)據(jù)番官,也就是非開關類型數(shù)據(jù)庐完。
那OPC UA呢,是一種基于以太網的協(xié)議徘熔。
其實現(xiàn)在但凡一種協(xié)議门躯,基本都離不開讀和寫位數(shù)據(jù),字數(shù)據(jù)近顷。OPC UA也一樣的生音。
但是OPC UA和Modbus?或者宁否,和別的協(xié)議有什么不太一樣呢。隨后會演示一下缀遍。
(該圖片源于某介紹視頻里所使用的PPT的截圖)
該視頻源:
https://www.aparat.com/v/r4FgE/OPC_UA_Security_by_Darek_Kominek_v2016_1
從圖中介紹慕匠,可以看出,OPC UA可謂是上天入地域醇,無所不能台谊,秒天秒地呀。
毋庸置疑譬挚,OPC UA已經在IIOT里可以說很牛逼了锅铅。
OPC標準在1996年的時候開始發(fā)布的,目標就是要把PLC的特定協(xié)議减宣,像modbus之類的盐须,抽象出來,做成統(tǒng)一的接口或應用漆腌。有點類似于現(xiàn)在的網關贼邓,可以接各PLC協(xié)議,然后由網關與服務器特定的協(xié)議闷尿,把各plc的數(shù)據(jù)塑径,上報給服務器。各平臺也有接口可以調用填具,這樣對平臺來說统舀,就不需要管plc是什么plc,具體是什么協(xié)議劳景。
OPC UA就是在OPC的基礎上誉简,創(chuàng)立了新的框架。此處不再過多討論OPC盟广。
通俗地講描融,就是OPC UA約定了一套協(xié)議標準,對于所有使用OPC UA協(xié)議的設備和電腦等衡蚂,都可以相互訪問窿克,控制等。
那么問題來了毛甲,對于使用modbus?協(xié)議的設備來說年叮,那確實也是可以互相訪問了。那如果全世界的設備玻募,都使用modbus?協(xié)議只损,該多好呀,設備都能互相兼容。但事實并沒有我們想得那么美好跃惫。
我覺得原因無非就是modbus協(xié)議已經滿足不了需求了叮叹,因為modbus協(xié)議太簡單了,簡單不代表淘汰爆存,還是有很多設備也還在使用modbus協(xié)議的蛉顽。
此處拿modbus協(xié)議作類比,主要是讓大家更好地了解和接受OPC UA的入門先较。
好携冤,下面我們就開始來認識一下OPC UA。
一?OPC UA的連接
像modbus tcp屬于tcp協(xié)議闲勺,常用端口是502.
OPC UA也是一種tcp協(xié)議曾棕,常用端口是4840。
如圖是OPC UA的連接菜循,OPC UA是需要登錄過程的翘地,可以使用用戶名和密碼,還可以使用證書癌幕。
(圖中所使用的工具是 uaexpert ,是一個非常好用的調試和開發(fā)OPC UA的神器子眶,吐血推薦)
OPC UA可以說安全性是非常好的,具備信息加密序芦,身份驗證和審核。
登錄之后呢粤咪,干什么呢谚中。
二?OPC UA的變量發(fā)現(xiàn)
Modbus的變量類型,或者說地址訪問寥枝,主要是有位數(shù)據(jù):0X宪塔,1X。還有字數(shù)據(jù):3X囊拜,4X某筐。
類型單一,數(shù)據(jù)表示不明確冠跷∧咸埽基本每個項目都要有相應的地址映射表。也就是什么地址表示溫度蜜托,什么地址表示產量抄囚,這樣不利于項目的實施和維護。
如圖所示橄务,是某個OPC UA設備的地址空間幔托。
可以看出,OPC UA在變量,或者地址上重挑,具備的特性:
1?允許OPC UA客戶端發(fā)現(xiàn)服務端的變量嗓化。
這個怎么說呢,這對使用者來說谬哀,就不需要去看設備的程序或配置刺覆,也不需要再去找什么點表等等,OPC UA客戶端就可以獲取當前連接設備的變量玻粪。也就是這個設備有什么變量隅津,客戶端都能搜索出來了,這個可以說是非常有用的劲室。
2?變量數(shù)據(jù)是分層表示的伦仍。
分層表示可能有點專業(yè)術語的感覺。
這個就和windows的目錄結構可以說一樣一樣的很洋。這樣的好處就是不同的變量數(shù)據(jù)的分組關系會比較明確充蓝,利于復雜的數(shù)據(jù)結構。
3?變量直接以名字顯示喉磁。
這個就是我們所謂的標簽變量了谓苟。看這個變量名协怒,就知道這個數(shù)據(jù)是啥意思了涝焙。標簽變量的優(yōu)勢,不用多說孕暇,反正就是有優(yōu)勢仑撞。
這種就區(qū)別于像modbus的3X,4X這樣的變量類型妖滔。這在使用和維護上隧哮,就可以減少對點表的依賴,甚至不再需要數(shù)據(jù)點表座舍。也有點類似于數(shù)據(jù)庫的概念沮翔。
拿到變量之后,干什么呢曲秉。
三?變量的讀寫采蚀。
拿到變量之后,無非就是讀數(shù)據(jù)或者寫數(shù)據(jù)承二。
1變量具備讀寫屬性搏存。
???OPC UA客戶端可以獲取每個變量的屬性,屬性里就包括該變量是可讀的矢洲,還是可寫的贷掖。
對于不可寫的變量衔沼,客戶端發(fā)起寫請求踩衩,服務端也會有相應的出錯提示。
2?變量具備數(shù)據(jù)類型袁滥。
當我們要知道某個數(shù)據(jù)的值,比如產量的值是10000個灾螃,這個10000题翻,我們并不關系是浮點數(shù)的10000還是32位有符號或無符號的10000。
因為每個變量都具備各自的數(shù)據(jù)類型腰鬼,并能按相應的數(shù)據(jù)類型嵌赠。
像modbus這個的字類型,當我們確定一個變量熄赡,比如確定一個溫度變量姜挺,需要知道是4X多少,以及是浮點數(shù)還是有符號數(shù)彼硫。而這個確定炊豪,就需要參考PLC或設備里對這個變量的定義,或者需要特定的數(shù)據(jù)點表對照拧篮,使用起來十分不方便词渤。
如圖,當我們掃描到變量后串绩,當需要對一些變量進行讀取時缺虐,選擇我們要讀取的變量后,就可以向服務端讀取數(shù)據(jù)礁凡。
每個變量有自己的變量類型高氮,而對使用者或者用戶來說,更多關心的是數(shù)據(jù)把篓,也就是展現(xiàn)出來的值。
而對開發(fā)者來說腰涧,或者就協(xié)議來說韧掩,變量類型是非常有用的。這在數(shù)據(jù)傳輸窖铡,轉換疗锐,存儲等,數(shù)據(jù)的類型是要匹配的费彼。
3?數(shù)據(jù)的訂閱滑臊。
像modbus?這樣的協(xié)議,要獲取數(shù)據(jù)箍铲,每次都需要向服務端發(fā)起讀命令雇卷,然后服務端再把數(shù)據(jù)回復。這種就是問答式的數(shù)據(jù)獲取,問答式的數(shù)據(jù)獲取关划,一個是效率問題小染,要想數(shù)據(jù)更新快,就要問的頻繁贮折,這也種造成網絡請求壓力裤翩。
而OPC UA,存在一種訂閱方式调榄。對數(shù)據(jù)進行訂閱之后踊赠,就不用每次去問這個變量是多少了,就可以由服務端這邊主動把數(shù)據(jù)發(fā)過來的每庆。
以上就是OPC UA的通俗入門介紹了筐带。
簡單地講,這個協(xié)議大概是什么樣呢扣孟。
OPC UA安全性如何烫堤?
放心,這個協(xié)議很安全凤价。什么會話加密鸽斟,用戶驗證等應用盡有,安全地很利诺。
OPC UA有什么數(shù)據(jù)富蓄?
OPC UA就類似于訪問電腦文件夾一樣,你能看到什么目錄慢逾,目錄里有什么文件(變量)立倍,文件(變量)是什么類型,數(shù)據(jù)是多少侣滩,一目了然口注。方便管理和維護,讓你效率提高再提高君珠。
當然里面的數(shù)據(jù)有普通數(shù)據(jù)啦寝志,報警數(shù)據(jù)里,歷史數(shù)據(jù)啦等等策添。
OPC UA的通用性如何材部?
這個就有意思了。這個就要拿MQTT來說一下了唯竹。
MQTT雖然是一個標準協(xié)議乐导,但也只是提供了標準的傳輸通道,也就提供了主題和payload的傳輸模式浸颓,但是每一家開發(fā)的MQTT物臂,定義的主題旺拉,以及payload格式都不一樣,這就造成了現(xiàn)在火的一塌糊涂的MQTT鹦聪,其實兼容性是非常差的账阻。每一家都希望別人以他們?yōu)闃藴剩此麄兗襾硎褂迷蟊尽2贿^淘太,MQTT更多也是在云平臺和設備之間的應用,那每家開發(fā)自己的產品规丽,那就都不一樣了蒲牧。
而OPC UA,也是一個標準協(xié)議赌莺,但凡使用了OPC UA的設備冰抢,就必要符合OPC UA規(guī)范。這種情況就不會像MQTT那樣艘狭,每家定義的不一樣挎扰。
而OPC UA,每家不一樣的地方,無非就是數(shù)據(jù)巢音,或者變量不一樣遵倦。
比如有些設備的有溫度,濕度官撼。有些設備沒有溫度梧躺,但有產量的。但在OPC UA的使用傲绣,應用掠哥,方案,框架等秃诵,都具備很多的兼容性续搀,移植性等。當然菠净,這點更多是對開發(fā)者而言的禁舷。
但開發(fā)既是成本呀。企業(yè)可不希望換一種設備或換一個平臺嗤练,就要重新開發(fā)榛了,重新花時間設計框架在讶,制定需求等等煞抬。因此OPC UA在工廠上,MES系統(tǒng)等應用也非常廣泛构哺,特別是現(xiàn)在的智能工廠革答,基本會看不到modbus的影子战坤。基本都是OPC UA或者Ethernet/IP等協(xié)議残拐,如果你還看到大量使用modbus之類的途茫,那就說明這個工廠還不夠智能,規(guī)模還不夠大溪食。當然這也就存在商機和機會啦囊卜,剛好就有借口或理由推一下OPC UA,讓工廠升級換代啦。错沃。
OPC UA可以運行在哪里呢栅组。
可以這么說,基本能有程序運行的地方枢析,就能運行OPC UA玉掸。小至單片機,大到服務器醒叁∷纠耍可謂是上天入地,無所不能運行把沼。
OPC UA的應用如何啊易?
這個問題可不好回答。就隨便說說幾句吧智政。
OPC UA畢竟主打的是數(shù)據(jù)交換认罩。
information exchange for industrial communication
數(shù)據(jù)交換是直譯啦。主要在于數(shù)據(jù)統(tǒng)一性的傳輸续捂,交互垦垂,維護等,OPC UA發(fā)揮著非常大的作用牙瓢。
OPC UA就可以在IIOT中劫拗,為各設備,企業(yè)矾克,用戶等互操作页慷,數(shù)據(jù)應用等提供了必要的M2M,M2E應用架構了胁附。
對于一些以OT為主線的公司或運營來說酒繁,OPC UA的模式讓OT更易于管理和維護。
OPC UA會讓IT和OT之間的界限變是模糊控妻。
因為在IIOT領域里州袒,往往是IT和OT缺乏協(xié)調性,導致應用成本弓候,運維成本的增加郎哭,維護的困難性他匪。
而OPC UA確實也能讓IT和OT更好地融合,甚至還能提升IT和OT團隊融合效率夸研。
(此圖摘抄于網上邦蜜,)
(此圖截圖于一個視頻講解OPC)
視頻源:
https://www.aparat.com/v/oaj5I/What_is_OPC%3F_UA_in_a_Minute
該視頻是一分鐘介紹OPC UA。是一個老外手繪介紹OPC UA的大概亥至,可謂是圖文并茂悼沈,感興趣的可以看一下。
好了姐扮,以上就是該篇內容了井辆。
更多類似文章,敬請關注溶握,但不要期待杯缺。
微信訂閱號: 諸子東。
物聯(lián)網協(xié)議顧問睡榆。