物聯(lián)網(wǎng)數(shù)據(jù)接入篇-應(yīng)用層 OPC(8)

0 評(píng)論 1483 瀏覽 2 收藏 16 分鐘

前幾篇文章講述的是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é)議了):

  1. 服務(wù)發(fā)現(xiàn):也叫查找,允許客戶端查找OPC UA服務(wù)器、以及服務(wù)器支持的協(xié)議、安全策略和其他功能。
  2. 定義協(xié)議映射:允許在OPC UA應(yīng)用程序之間建立連接和交換標(biāo)準(zhǔn)化的信息。
  3. 信息訪問(wèn):包括在地址空間公開(kāi)基于對(duì)象的信息模型的方法和訪問(wèn)這些信息的服務(wù)???,是面向服務(wù)的。
  4. 安全性和穩(wěn)健性:將兩者集成到信息傳輸和信息訪問(wèn)當(dāng)中。穩(wěn)健也叫魯棒性。
  5. 信息模型在此基礎(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

圖解TCP/IP (第5版)

探索 OSI 會(huì)話層:建立和管理通信會(huì)話的關(guān)鍵_不同機(jī)器之間用戶會(huì)話的建立與管理-CSDN博客

3、物聯(lián)網(wǎng)的物理層協(xié)議 – 孤情劍客 – 博客園

網(wǎng)絡(luò)工程師教程

【2024軟考】《網(wǎng)絡(luò)工程師》新版精講視頻-希賽網(wǎng)(零基礎(chǔ)系統(tǒng)教程,建議收藏)!_嗶哩嗶哩_bilibili

Modbus通信協(xié)議詳解-CSDN博客

MQTT協(xié)議_mqtt payload一定要字符串嗎-CSDN博客

第一章 – MQTT介紹 · MQTT協(xié)議中文版

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博客

小米IoT文檔與資源中心

5.1 IP 基礎(chǔ)知識(shí)全家桶

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博客

OPC 協(xié)議 | 開(kāi)發(fā)者中心

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ù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!