物聯(lián)網(wǎng)數(shù)據(jù)接入篇-應(yīng)用層 OPC(8)
前幾篇文章講述的是TCP/IP 模型中的網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層部分協(xié)議,這里到了第四層應(yīng)用層的 MQTT協(xié)議。都是物聯(lián)網(wǎng)常用的應(yīng)用層協(xié)議。這里寫(xiě)到了重頭戲 OPC 框架。
OPC 框架,OLE for Process Control,用于過(guò)程控制的 OLE,是針對(duì)現(xiàn)場(chǎng)控制系統(tǒng)的一個(gè)工業(yè)標(biāo)準(zhǔn)接口,是工業(yè)控制和生產(chǎn)自動(dòng)化領(lǐng)域中使用的硬件和軟件的接口標(biāo)準(zhǔn)。并非傳統(tǒng)意義上的單純應(yīng)用層協(xié)議。
OPC 標(biāo)準(zhǔn)于 1996 年首次發(fā)布,實(shí)現(xiàn)把 PLC 特定的協(xié)議(如 Modbus、Profibus 等)抽象成為標(biāo)準(zhǔn)化的接口,作為“中間人”的角色把其通用的“讀寫(xiě)”要求轉(zhuǎn)換成具體的設(shè)備協(xié)議。
一、OPC 解決的問(wèn)題
PLC 和 PC 上的 SCADA 系統(tǒng)或者 HMI軟件(稱為 OPC Client)進(jìn)行數(shù)據(jù)交換的驅(qū)動(dòng)程序不一致,通信協(xié)議和接口不一致。且向更上一層傳遞數(shù)據(jù)也不容易。
1. 沒(méi)有 OPC 之前
電腦上要安裝 3 個(gè)驅(qū)動(dòng)程序,安裝 3 套組態(tài)軟件。數(shù)據(jù)標(biāo)準(zhǔn)也不一樣,不能整合到一起自己用,也不能很好的把數(shù)據(jù)在交給上一層的應(yīng)用。
2. 有了 OPC 標(biāo)準(zhǔn)之后
電腦上安裝 1 個(gè)驅(qū)動(dòng)程序,安裝 1 個(gè) SCADA 系統(tǒng),就能訪問(wèn)所有數(shù)據(jù)。統(tǒng)一監(jiān)控、調(diào)度,統(tǒng)一數(shù)據(jù)分析、上傳,都得到了很好的解決。硬件廠家生產(chǎn)的硬件和驅(qū)動(dòng)程序,必須符合 OPC 規(guī)范,把數(shù)據(jù)發(fā)送到 OPC 服務(wù)端,通過(guò) OPC 客戶端,有一套標(biāo)準(zhǔn)的讀取數(shù)據(jù)、解析數(shù)據(jù)的方法。
不需要這么多驅(qū)動(dòng)程序了,大家都說(shuō)中文,就不要翻譯了,就是這個(gè)意思。嚴(yán)謹(jǐn)一點(diǎn),這里驅(qū)動(dòng)程序1、2、3 還是需要的,但是我們電腦可以不用過(guò)度關(guān)心他們了。
3. OPC 服務(wù)端和客戶端怎么溝通
正好微軟系統(tǒng)中就有這么一個(gè)溝通工具框架 OLE,啥是 OLE ?Object Link Embeded,在程序之間鏈接和嵌入對(duì)象數(shù)據(jù)。解決的是程序與程序之間的通信問(wèn)題(可以是不同電腦之間的程序)。
他的歷史是這樣的:
微軟在 OLE2.0 中建立了一個(gè)稱為COM(Component Object Model,即組件對(duì)象模式)的新規(guī)范。為了滿足 Internet 戰(zhàn)略,微軟把OLE 換成了 ActiveX。通俗來(lái)說(shuō),OLE / COM / ActiveX 技術(shù),就是讓我們?cè)?word 文檔中調(diào)用 Excel 的能力插入表格,插入之后雙擊還能調(diào)用 Excel 能力進(jìn)行編輯,是一種跨應(yīng)用程序相互調(diào)用的一種能力規(guī)范。
4. OPC 有哪些能力
在 PLC 和 HMI 中間增加一個(gè)標(biāo)準(zhǔn)化接口就是 OPC Server,而不用知道每個(gè)驅(qū)動(dòng)程序的細(xì)節(jié)。他有以下能力:
- OPC DA:它允許收集實(shí)時(shí)讀取、寫(xiě)入和監(jiān)控過(guò)程安量。
- OPC HA:OPC 歷史數(shù)據(jù)訪問(wèn),提供對(duì)已存儲(chǔ)數(shù)據(jù)的訪問(wèn)的。
- OPC A&E:OPC 報(bào)警和事件接口。允許接受事件和報(bào)警通知。
5. OPC 有什么問(wèn)題:
NO1. 過(guò)度依賴 Windows 系統(tǒng)。
因?yàn)?COM / DCOM 技術(shù)必須依賴 Windows,限制了 OPC 發(fā)展。為了解決這個(gè)問(wèn)題,出現(xiàn)了 OPC UA(OPC 統(tǒng)一架構(gòu))。
NO2. 不能進(jìn)行互聯(lián)網(wǎng)通信。不能做到隨時(shí)隨地的監(jiān)控?cái)?shù)據(jù)。
二、OPC DA 和 OPC
既然 OPC (DA)有問(wèn)題,那他就要升級(jí)到 OPC UA。接下來(lái)介紹一下這兩種規(guī)范的差異:
OPC UA 是為了順應(yīng)標(biāo)準(zhǔn)化以及跨平臺(tái)的發(fā)展趨勢(shì),也是為了能更好地推廣 OPC,OPC 基金會(huì)于近些年來(lái)在先前 OPC DA 成功應(yīng)用的基礎(chǔ)上推出了一項(xiàng)全新的 OPC 標(biāo)準(zhǔn),即 OPC UA。
OPC UA 接口協(xié)議涵蓋了之前的 A&E、DA、OPC XML DA 或者 HDA,僅通過(guò)一個(gè)地址空間就能訪問(wèn)先前所有的對(duì)象,并且不會(huì)受到 WINDOWS 平臺(tái)的限制,這是因?yàn)樗菑膫鬏攲?Scoket 及以上進(jìn)行定義的。
1. OPC UA 五大特點(diǎn)
OPC 統(tǒng)一框架,解決了依賴 Windows 和不能連接互聯(lián)網(wǎng)問(wèn)題。(Open Platform Communications Unified Architecture)。他有五大特點(diǎn):
1)跨平臺(tái)和跨語(yǔ)言:
消除了對(duì) COM / DCOM 技術(shù)的依賴,要求 OPC UA 應(yīng)用可以在不同平臺(tái)部署(PLC、嵌入式控制器、網(wǎng)關(guān)、Web 應(yīng)用程序、智能手機(jī)、Windows、Linux、)。
2)可聯(lián)網(wǎng)安全性高:
可以聯(lián)網(wǎng),使用 HTTPS 協(xié)議,防火墻友好,聯(lián)網(wǎng)安全交換信息。
3)復(fù)雜信息模型,實(shí)物資產(chǎn)數(shù)字化:
①數(shù)據(jù)高度結(jié)構(gòu)化:能夠詳細(xì)地定義和組織各種復(fù)雜的工業(yè)對(duì)象和數(shù)據(jù)。②豐富的語(yǔ)義表達(dá):可以準(zhǔn)確地傳達(dá)對(duì)象的屬性、關(guān)系和行為等信息。簡(jiǎn)單說(shuō)就是不只傳了一個(gè)值、值得質(zhì)量、時(shí)間戳,還包括他的單位、設(shè)定值、傳感器的類型、配置參數(shù)、它在整個(gè)系統(tǒng)架構(gòu)中的位置、他與其他設(shè)備組件的關(guān)系。
4)面向服務(wù)架構(gòu) SOA:
主站從站不是傳輸比特或字節(jié)(對(duì),這里 cue 的就是 Modbus,傳輸?shù)氖?bit 或者 byte,用戶不友好型)。OPC UA Server 提供了讀、寫(xiě)、配置等等服務(wù)供 Client 端調(diào)用。可讀性強(qiáng)、可復(fù)用性強(qiáng)、可維護(hù)性強(qiáng)。這里采用了面向服務(wù)的設(shè)計(jì),可以調(diào)用很多標(biāo)準(zhǔn)的方法來(lái)用??赡苤皩?xiě)的是 一堆二進(jìn)制代碼,現(xiàn)在可以用人能看得懂的英文來(lái)編程了。
5)強(qiáng)大的IT 集成性:
說(shuō)的是傳感器直接能把數(shù)據(jù)傳到網(wǎng)上而不經(jīng)過(guò)中間層。
之前數(shù)據(jù)是這樣傳遞的:傳感器–PLC 邏輯控制器–SCADA/HMI 系統(tǒng)–MES 智能制造系統(tǒng)–ERP 系統(tǒng)。
通過(guò) OPC UA,這樣傳遞數(shù)據(jù):傳感器–PLC 邏輯控制器–OPC 服務(wù)器–ERP 系統(tǒng)。他的野心和大,能實(shí)現(xiàn)PLC 邏輯控制器–SCADA/HMI 系統(tǒng)–MES 智能制造系統(tǒng)–ERP 系統(tǒng)這幾兩個(gè)項(xiàng)目之間的倆倆通信,為工業(yè) 4.0 打好基礎(chǔ)。
2. OPC UA 基礎(chǔ)架構(gòu)
3. OPC UA 強(qiáng)大的信息建模功能
強(qiáng)大的信息建模(IM)是OPC UA的核心。OPC UA定義了基本模塊和通用規(guī)則,并使用它們構(gòu)建面向?qū)ο蟮哪P停瓷厦娴膱D,也就知道 OPC 為啥不單純是應(yīng)用層協(xié)議了):
- 服務(wù)發(fā)現(xiàn):也叫查找,允許客戶端查找OPC UA服務(wù)器、以及服務(wù)器支持的協(xié)議、安全策略和其他功能。
- 定義協(xié)議映射:允許在OPC UA應(yīng)用程序之間建立連接和交換標(biāo)準(zhǔn)化的信息。
- 信息訪問(wèn):包括在地址空間公開(kāi)基于對(duì)象的信息模型的方法和訪問(wèn)這些信息的服務(wù)???,是面向服務(wù)的。
- 安全性和穩(wěn)健性:將兩者集成到信息傳輸和信息訪問(wèn)當(dāng)中。穩(wěn)健也叫魯棒性。
- 信息模型在此基礎(chǔ)架構(gòu)之上逐級(jí)分層。OPC UA 指定了一些基本信息模型(數(shù)據(jù)訪問(wèn)—DA、報(bào)警和事件—AE等等),這些模型定義了如下常用的對(duì)象,包括實(shí)時(shí)信息和歷史數(shù)據(jù)變量以及警報(bào)。
4. OPC UA 通信協(xié)議
二進(jìn)制通訊協(xié)定是 opc.tcp://Server;二進(jìn)制傳輸效率高,資源需求少,可以穿透防火墻。
Web服務(wù)的通訊協(xié)定是 http://Server。支持不同的開(kāi)發(fā)工具和開(kāi)發(fā)環(huán)境。
客戶端-服務(wù)器通信:
OPC UA客戶端-服務(wù)器通信采用面向服務(wù)的體系結(jié)構(gòu)(SOA),服務(wù)定義了信息模型的訪問(wèn)方式。不同于傳統(tǒng)的Web服務(wù),傳統(tǒng)Web服務(wù)使用基于XML的WSDL來(lái)描述服務(wù),這種方法存在提供商間互操作性差異的問(wèn)題。
相比之下,OPC UA預(yù)先定義了通用的標(biāo)準(zhǔn)化服務(wù),確保所有實(shí)現(xiàn)都兼容。由于服務(wù)的標(biāo)準(zhǔn)化,OPC UA不需要像WSDL那樣的特定定義,這確保了所有實(shí)現(xiàn)的兼容性和互操作性,使調(diào)用者無(wú)需了解特定的服務(wù)結(jié)構(gòu)或行為細(xì)節(jié)。
發(fā)布、訂閱模式:
PubSub 模式為數(shù)據(jù)和事件通知提供了一種替代機(jī)制,與傳統(tǒng)的客戶端-服務(wù)器通信不同,它優(yōu)化了多對(duì)多的交互。在PubSub模型中,多個(gè)客戶端可以同時(shí)接收廣播通知,這些通知以“一觸即發(fā)”的方式發(fā)送。
使用PubSub,OPC UA應(yīng)用程序不直接交換請(qǐng)求和響應(yīng)。相反,發(fā)布者將消息發(fā)送到面向消息的中間件,而無(wú)需知道訂閱者的具體身份。同樣,訂閱者可以通過(guò)訂閱感興趣的數(shù)據(jù)或事件,而發(fā)布者不需要知道具體哪些訂閱者存在。
PubSub和客戶端-服務(wù)器模式都基于OPC UA的信息模型。通常情況下,OPC UA服務(wù)器充當(dāng)發(fā)布者,而OPC UA客戶端充當(dāng)訂閱者。本地的OPC UA客戶端-服務(wù)器通信可以用于配置和管理PubSub組件。
5. OPC DA 和 OPC UA 的區(qū)別
三、應(yīng)用
OPC Server 提供數(shù)據(jù)采集、協(xié)議轉(zhuǎn)換、數(shù)據(jù)管理服務(wù)。支持?jǐn)?shù)據(jù)采集與下控,下控還是推薦用 IO server。
- 工業(yè)自動(dòng)化:在工廠中連接各種控制系統(tǒng)、設(shè)備和監(jiān)控軟件,實(shí)現(xiàn)數(shù)據(jù)共享和協(xié)同工作。
- 智能制造:助力智能工廠中設(shè)備之間的數(shù)據(jù)交互和智能化管理。
- 能源管理:用于能源監(jiān)控系統(tǒng),實(shí)時(shí)獲取和分析能源數(shù)據(jù)。
- 樓宇自動(dòng)化:在智能樓宇系統(tǒng)中,使不同的子系統(tǒng)能夠高效通信。
- 過(guò)程控制:確保過(guò)程控制系統(tǒng)中數(shù)據(jù)的準(zhǔn)確和及時(shí)傳遞。
通俗來(lái)說(shuō),OPC是個(gè)中介,OPC包括一整套接口、屬性和方法的標(biāo)準(zhǔn)集,用于過(guò)程控制和制造業(yè)自動(dòng)化系統(tǒng)。必須依賴Windows系統(tǒng),就是說(shuō) OPC Server 必須部署在 Windows 服務(wù)器上,以為他依賴了 Windows 的 COM 技術(shù)(不太嚴(yán)謹(jǐn)哈,OPC UA就致力于跨系統(tǒng)服務(wù))。
最快的學(xué)習(xí)方法是看官方文檔:OPC-UA-Interoperability-For-Industrie4-and-IoT-CN-v11s。https://opcfoundation.org/wp-content/uploads/2020/09/OPC-UA-Interoperability-For-Industrie4-and-IoT-CN-v11s.pdf
參考文獻(xiàn)
15 張圖, 把TCP/IP 講得一清二楚!-騰訊云開(kāi)發(fā)者社區(qū)-騰訊云
什么是OPC UA&它是如何工作的?_嗶哩嗶哩_bilibili
探索 OSI 會(huì)話層:建立和管理通信會(huì)話的關(guān)鍵_不同機(jī)器之間用戶會(huì)話的建立與管理-CSDN博客
3、物聯(lián)網(wǎng)的物理層協(xié)議 – 孤情劍客 – 博客園
【2024軟考】《網(wǎng)絡(luò)工程師》新版精講視頻-希賽網(wǎng)(零基礎(chǔ)系統(tǒng)教程,建議收藏)!_嗶哩嗶哩_bilibili
MQTT協(xié)議_mqtt payload一定要字符串嗎-CSDN博客
MQTT協(xié)議_mqtt payload一定要字符串嗎-CSDN博客
物聯(lián)網(wǎng)協(xié)議之COAP簡(jiǎn)介及Java實(shí)踐-CSDN博客
如何使用CoAP的對(duì)稱加密自主接入和DTLS自主接入_物聯(lián)網(wǎng)平臺(tái)(IoT)-阿里云幫助中心
DTU和RTU的區(qū)別_rtu和dtu的區(qū)別-CSDN博客
network_protocol_structures.pdf
一文看懂Modbus協(xié)議-阿里云開(kāi)發(fā)者社區(qū)
modbus_application_protocol_specification_v1.1b3.pdf
https://help.dtuip.com:8888/images/20191028084839667.pdf
一文看懂Modbus協(xié)議-阿里云開(kāi)發(fā)者社區(qū)
Modbus 寄存器 | 人人都懂物聯(lián)網(wǎng)
https://zh.wikipedia.org/wiki/Modbus
MQTT教學(xué)(一):認(rèn)識(shí)MQTT – 超圖解系列圖書(shū)
https://www.51cto.com/article/670429.html
通訊協(xié)議介紹&CoAP 協(xié)議解析-CSDN博客
https://www.youtube.com/watch?v=f5oPEVhZFug
后記
七層協(xié)議是寫(xiě)完了。爆肝不易,點(diǎn)個(gè)贊吧。一起體系化的學(xué)習(xí)和積累且輸出。
本文由 @躍曰 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!