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