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