文本原創(chuàng)微信訂閱號(hào)諸子?xùn)|,轉(zhuǎn)載或抄襲請(qǐng)注明出處。
此前我寫過(guò)一遍文章,通俗講解OPCUA。雖說(shuō)是通俗的講,但是還是略有點(diǎn)深入。因?yàn)槭且诖蠹覍?duì)OPC有所了解的基礎(chǔ)上,再去了解OPCUA的。
這篇文章這次不走技術(shù)層面講解,而是讓大家怎么樣更好地理解和區(qū)分OPC,DA,UA這些概念,別傻傻搞不清楚了。
話不多說(shuō),先來(lái)看看什么是OPC。
OPC是OLE for ProcessControl的縮寫,即應(yīng)用于過(guò)程控制的OLE。
OPC規(guī)范包括OPC服務(wù)器和OPC客戶端兩個(gè)部分。其實(shí)質(zhì)是在硬件供應(yīng)商和軟件開發(fā)商之間建立一套完整的“規(guī)則”。
不好意思,以上兩句話,我摘抄了百度百科。相信很多人查閱OPC資料,也看過(guò)這個(gè)資料啥的。
但是,看了之后,是不是感覺(jué)跟沒(méi)看一樣。連OPC是啥,就大談價(jià)值,SaaS,框架,應(yīng)用,最多也只是空談罷了。
好在我們不是解釋概念,而是聊。聊就不一樣了,拋開那些乏味的專業(yè)術(shù)語(yǔ)。
我們先聊聊這個(gè)背景。
OPC的誕生
OPC是在1996年前后,由幾大自動(dòng)化供應(yīng)商組成一個(gè)工作組,負(fù)責(zé)開發(fā)基于COM和DCOM的數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn),稱之為OPC。
什么是COM和DCOM技術(shù)及數(shù)據(jù)訪問(wèn),我們暫時(shí)不討論。
但可以肯定的是,這個(gè)事,和微軟有關(guān)系。因?yàn)樵?0年代,微軟的操作系統(tǒng)開始占據(jù)市場(chǎng),并且自動(dòng)化供應(yīng)商也沒(méi)有更好地選擇。
在微軟推出COM和DCOM技術(shù)之后,自動(dòng)化供應(yīng)商在產(chǎn)品中開始使用這個(gè)技術(shù)。怎么說(shuō)呢,因?yàn)榭赡茉诋?dāng)時(shí),沒(méi)有比這更好的選擇了。
但是呢,每家自動(dòng)化用法不一樣,對(duì)于做SaaS的呢,有時(shí)候在一個(gè)項(xiàng)目或者軟件里,不可能只使用一家供應(yīng)商或一種設(shè)備的。為了解決這個(gè)問(wèn)題,幾大自動(dòng)化公司就站出來(lái)說(shuō),我們來(lái)搞一套標(biāo)準(zhǔn)的吧,為了工業(yè),為了未來(lái),搞。
于是他們把這一套標(biāo)準(zhǔn)就稱之為OPC了。
注意這個(gè)時(shí)間,96年左右。也就是Windons 95?剛出來(lái)。也就是在視窗系統(tǒng)出來(lái)之前,用的都是DOS系統(tǒng)呀。現(xiàn)在還知道DOS系統(tǒng)的,是真的老工控了。
那時(shí)候互聯(lián)網(wǎng)還沒(méi)有發(fā)展起來(lái),更別說(shuō)物聯(lián)網(wǎng)了。
在自動(dòng)化行業(yè),還是有數(shù)據(jù)采集需求,那采集的數(shù)據(jù)去哪里呢,就要去到上位機(jī)系統(tǒng),上位機(jī)也就是Windows了,要知道那時(shí)候Windows的市場(chǎng)占有率多可怕。
也就是在同一臺(tái)電腦,又要進(jìn)行數(shù)據(jù)采集,又要進(jìn)行數(shù)據(jù)顯示,又要應(yīng)用在現(xiàn)場(chǎng),這種電腦,很多時(shí)候往往就是工控機(jī)的角色了。
而電腦采集數(shù)據(jù),無(wú)非就是通過(guò)串口,以太網(wǎng),或者就是板卡集成到PC主機(jī)數(shù)據(jù)采集。
這就為難了那個(gè)做純軟件開發(fā),他們做的是UI的軟件,也就是類似組態(tài)王之類的界面顯示系統(tǒng),但是每家的數(shù)據(jù)采集都不一樣,沒(méi)有個(gè)標(biāo)準(zhǔn)和統(tǒng)一,也可以理解為硬件商提供的數(shù)據(jù)采集都不一樣。
也就是硬件廠商A把數(shù)據(jù)采集做好了,同時(shí)軟件客戶B把UI軟件設(shè)計(jì)出來(lái)了,但是中間缺乏一個(gè)橋梁。UI調(diào)用數(shù)據(jù),查閱和管理數(shù)據(jù),按理說(shuō)是可以用數(shù)據(jù)庫(kù)的。
在當(dāng)時(shí),可能COM和DCOM技術(shù)比使用數(shù)據(jù)庫(kù)更為方便,以及更為開發(fā)者接受。所以自動(dòng)化更傾向于使用COM和DCOM技術(shù)。
也就是自動(dòng)化供應(yīng)商采集數(shù)據(jù),封裝成COM組件或服務(wù)。做UI系統(tǒng)的,比如組態(tài)王之類的,只需要調(diào)用COM組件或服務(wù),就完美解決之前的數(shù)據(jù)對(duì)接橋梁?jiǎn)栴}。
再加上有了OPC標(biāo)準(zhǔn)之后,軟件的開發(fā)復(fù)用性更強(qiáng)一些,也促進(jìn)了SaaS的發(fā)展。雖然,目前很多都是偽SaaS模式,這個(gè)在后續(xù)的文章和大家交流為什么會(huì)有偽Saas存在。
至此,OPC的來(lái)龍去脈就差不多清楚了。
DA (OPC DA)
那什么又是OPC DA呢。?這個(gè)D,也就是Data,數(shù)據(jù)訪問(wèn)了。
OPC?只是一個(gè)標(biāo)準(zhǔn)。那用OPC來(lái)干嘛,用OPC來(lái)進(jìn)行數(shù)據(jù)訪問(wèn)。
所以,只要前面了解了OPC標(biāo)準(zhǔn),再了解OPCDA?就很清楚了。
也就是OPCDA的數(shù)據(jù)訪問(wèn),都是同一臺(tái)電腦里發(fā)生的。
OPC數(shù)據(jù)采集端,通過(guò)串口,以太網(wǎng),板卡,采集到的數(shù)據(jù),作為OPC服務(wù)端,以便OPC客戶端來(lái)進(jìn)行訪問(wèn)。
也就是應(yīng)用程序,比如組態(tài)王,就是客戶端程序。
這里的客戶端和服務(wù)端,并不是我們所說(shuō)的TCP/IP里的客戶端和服務(wù)器。
在同一臺(tái)電腦里,應(yīng)用程序訪問(wèn)數(shù)據(jù),是通過(guò)DOM技術(shù)來(lái)訪問(wèn)的。
再通俗一點(diǎn),比如A程序把采集到的數(shù)據(jù)寫到一個(gè)指定文件里。
然后B程序到指定的文件讀取數(shù)據(jù)并顯示出來(lái)的。
所以O(shè)PCDA的數(shù)據(jù)采集,客戶端和服務(wù)端的角色就是類似于A程序和B程序的角色一樣。
所以,我們目前見到的OPCDA數(shù)據(jù)采集,都是在同一臺(tái)電腦里發(fā)生的。
而且,是因?yàn)榛贑OM,DCOM技術(shù),限定了這個(gè)只能是在Windows實(shí)現(xiàn)。如果有客戶說(shuō)他們?cè)诎沧肯到y(tǒng)或者別的系統(tǒng)實(shí)現(xiàn)了OPCDA,那可得悠著點(diǎn)。畢竟這么古老的技術(shù),要么就是忽悠的,要么就是行業(yè)里的技術(shù)牛人,硬是跨平臺(tái)跨系統(tǒng)實(shí)現(xiàn)。
難道就是說(shuō),OPCDA就不能遠(yuǎn)程訪問(wèn)了嗎?
這里很多人就容易搞不清楚了。
首先OPCDA不是協(xié)議。雖說(shuō)OPC是一個(gè)標(biāo)準(zhǔn),但是這個(gè)標(biāo)準(zhǔn)并不是指某個(gè)通信協(xié)議標(biāo)準(zhǔn),而是指某種技術(shù)的使用標(biāo)準(zhǔn)和規(guī)范。
那,既然OPCDA不是協(xié)議,更不是某種TCP協(xié)議,那是不是就意味著OPCDA不能在兩臺(tái)電腦之間訪問(wèn)呢。
其實(shí)呢,也不是的。
在Windows里,就存在一種兩臺(tái)電腦之間通信的機(jī)制或協(xié)議。叫RPC,也就是遠(yuǎn)程過(guò)程調(diào)用。這里不作詳細(xì)解析。
簡(jiǎn)單地說(shuō),OPC DA呢,好比如電腦上的某個(gè)資源或文件之類的,而Windows的RPC,就是為了讓兩臺(tái)電腦可以互相訪問(wèn)資源的。OPCDA的技術(shù)是COM技術(shù),所以有些遠(yuǎn)程訪問(wèn)OPC,也看到描述為OPC COM之類的。
但是像這種還是基于PC到PC的。
也就是純OPCDA,如果想要支持遠(yuǎn)程訪問(wèn),那就必須配置支持RPC服務(wù)等。實(shí)際上還是借助了RPC通道或服務(wù)來(lái)間接使用OPCDA的訪問(wèn)。而且這種應(yīng)用呢,也局限于在Windows的使用。雖然也會(huì)一些人覺(jué)得,RPC可以不僅是在Windows使用呀。
如果RPC可以完全解決OPCDA的遠(yuǎn)程訪問(wèn)問(wèn)題,那就沒(méi)有OPCUA了。
OPCUA登場(chǎng)
UA?也就是統(tǒng)一框架。
為什么要出OPCUA,最直接的原因是啥呢。
2000年以后,很多嵌入式設(shè)備開始出現(xiàn),linux系統(tǒng),wince系統(tǒng)等逐漸應(yīng)用在自動(dòng)化設(shè)備中。
而這些設(shè)備基本不能使用COM?,DCOM技術(shù),甚至開發(fā)者也不愿意在這些嵌入式設(shè)備上使用這些技術(shù)和應(yīng)用。
為了能支持跨平臺(tái),跨系統(tǒng),OPCUA應(yīng)運(yùn)而生了。
因?yàn)榇饲癘PCDA如果要在兩臺(tái)電腦間訪問(wèn),除了復(fù)雜的配置,操作的繁瑣,還存在安全性問(wèn)題。使得OPCDA再難以滿足多元化需求。
現(xiàn)在有需要遠(yuǎn)程訪問(wèn)OPC的,都在使用OPCUA了,遠(yuǎn)程訪問(wèn)OPCDA也逐漸不被大家接受。慢慢地OPCDA也只存在于單機(jī)服務(wù)了。
OPCUA除了約定了數(shù)據(jù)等定義規(guī)范,同時(shí)還支持了TCP/IP協(xié)議。使得遠(yuǎn)程訪問(wèn)不再局限于使用RPC技術(shù)。
也就是OPCUA終于有了屬于自己的協(xié)議,不再寄人籬下看別人顏色了。
同時(shí)數(shù)據(jù)結(jié)構(gòu),存儲(chǔ),映射等,不再使用COM/DCOM技術(shù),就意味著不再限制于Windows了。
在各種嵌入式系統(tǒng)也可以實(shí)現(xiàn)OPCUA,并且可以在各平臺(tái),各系統(tǒng)進(jìn)行數(shù)據(jù)通信訪問(wèn)。
同時(shí)OPCUA將DA,HAD,AE整合在一起。也就是支持?jǐn)?shù)據(jù)(有時(shí)候也叫實(shí)時(shí)數(shù)據(jù)),歷史數(shù)據(jù),報(bào)警和事件,通通一個(gè)協(xié)議搞定。
因?yàn)槭仟?dú)立的TCP/IP協(xié)議,不再受限于別的技術(shù),SCADA項(xiàng)目陸續(xù)使用OPCUA技術(shù),也出現(xiàn)了很多成功的SCADA系統(tǒng)。
而且各大互聯(lián)網(wǎng)平臺(tái),也都在逐漸接受和推廣OPCUA。相對(duì)于MQTT來(lái)說(shuō),OPCUA是能實(shí)現(xiàn)大一統(tǒng)。畢竟MQTT只是一個(gè)開放通道,每家的MQTT版本,主題都不一樣,格式也不一樣。
當(dāng)然OPCUA和MQTT也不是一個(gè)量級(jí)的,本身也沒(méi)有一定的可比性。
這里講OPCUA的篇幅可能有點(diǎn)少,但更多是主要將OPC,DA, OPCDA,OPCUA區(qū)別清楚。
如果想多了解一些OPCUA,可關(guān)注訂閱號(hào)諸子?xùn)|,查看之前的那篇通俗講解OPCUA。
最后,我們?cè)購(gòu)?fù)盤總結(jié)一下。
首先,什么是OPC。
OPC就是基于COM/DCOM的數(shù)據(jù)訪問(wèn)的標(biāo)準(zhǔn)。
DA,就是數(shù)據(jù)訪問(wèn)。
OPCDA,就是基于OPC標(biāo)準(zhǔn)的數(shù)據(jù)訪問(wèn)。
因?yàn)槭腔贑OM技術(shù)的,意味著OPCDA只能在Windows上使用。
OPCDA可以在兩臺(tái)電腦之間訪問(wèn),但不是OPCDA協(xié)議,是通過(guò)Windows的RPC,具體看不同的windows設(shè)置。
OPCDA在兩臺(tái)電腦之間訪問(wèn),會(huì)使得PC存在一定的安全問(wèn)題。
如果想在嵌入式設(shè)備實(shí)現(xiàn)OPCDA的數(shù)據(jù)采集,我勸你還是放棄。
OPCUA,也就是OPC統(tǒng)一框架。
OPCUA包含DA,HAD,AE。并不等價(jià)于OPCUA包含OPCDA。
DA和OPCDA是兩回事。
OPCUA就是解決OPCDA幾大問(wèn)題:
1 OPCDA只能使用COM技術(shù),限制在Windows使用。
2?安全問(wèn)題。
3?數(shù)據(jù)模式結(jié)構(gòu)定義等的優(yōu)化。
4?跨平臺(tái)跨系統(tǒng)訪問(wèn)。
5?有專屬的TCP/IP協(xié)議,其協(xié)議標(biāo)注為IEC62541。
想了解更多物聯(lián)網(wǎng)文章,敬請(qǐng)關(guān)注諸子?xùn)|,您身邊的物聯(lián)網(wǎng)協(xié)議顧問(wèn)。