虹科IIoT虹科案例之AGV
—— HiveMQ助力AGV小車與控制系統(tǒng)之間實(shí)現(xiàn)通信
前言
本案例主要描述AGV小車和控制系統(tǒng)之間的通信過程,通過VDA 5050標(biāo)準(zhǔn)接口、MQTT通信協(xié)議和虹科HiveMQ實(shí)現(xiàn)AGV小車和控制系統(tǒng)之間指令和狀態(tài)信息的通信。
VDA 5050是一種AGV小車與控制系統(tǒng)之間的標(biāo)準(zhǔn)通信接口,旨在簡化AGV小車與現(xiàn)有控制系統(tǒng)的連接,以及允許在同一工作環(huán)境中并行操作來自不同制造商的AGV小車。
虹 科 方 案
挑戰(zhàn)
01 虹科 · MQTT Broker 案例
應(yīng)用挑戰(zhàn)
MQTT已成為連接設(shè)備和AGV小車的物聯(lián)網(wǎng)標(biāo)準(zhǔn),而且市場上已經(jīng)有許多MQTT解決方案。除了支持MQTT協(xié)議之外,運(yùn)行安全穩(wěn)定的系統(tǒng)還需要其他關(guān)鍵功能。在實(shí)現(xiàn)AGV小車與控制系統(tǒng)之間的通信時(shí),面臨的挑戰(zhàn)主要有以下幾點(diǎn):
(1)MQTT解決方案支持所有MQTT 5功能,VDA規(guī)范中描述的幾個(gè)與數(shù)據(jù)相關(guān)的特性可以通過MQTT 5完美描述。
(2)MQTT解決方案支持適合大多數(shù)應(yīng)用場景的安全機(jī)制。
(3)為了在不停機(jī)的情況下支持系統(tǒng)更改,MQTT解決方案需要高度可用,并支持滾動(dòng)升級和遷移場景。
(4)MQTT解決方案具有伸縮性,能夠支持越來越多的AGV小車。
(5)MQTT Broker必須可擴(kuò)展,可以通過“即插即用”集成其他系統(tǒng)或添加業(yè)務(wù)功能。
(6)數(shù)據(jù)格式由VDA指定,并應(yīng)在發(fā)布前進(jìn)行驗(yàn)證,以使解決方案更加強(qiáng)大和安全。
(7)在生產(chǎn)環(huán)境中,MQTT解決方案能夠集中監(jiān)控和跟蹤特定客戶端、主題或消息。
虹科 · MQTT Broker 案例
方案介紹
系統(tǒng)框架
下圖所示是本案例的系統(tǒng)框架。在外部,HiveMQ Broker作為一個(gè)邏輯單元運(yùn)行,在內(nèi)部,則作為集群節(jié)點(diǎn)運(yùn)行。HiveMQ Broker 使用用于身份驗(yàn)證和授權(quán)的安全擴(kuò)展、用于JSON有效負(fù)載驗(yàn)證的擴(kuò)展以及用于跟蹤和監(jiān)控的擴(kuò)展。指標(biāo)、事件日志以及其他日志信息以 JMX 格式提供,可以集中監(jiān)控。
作為主要用例,控制系統(tǒng)(CS)客戶端向AGV小車發(fā)送信息,并消費(fèi)AGV小車的相關(guān)狀態(tài)或可能的錯(cuò)誤信息??刂葡到y(tǒng)(CS)的數(shù)據(jù)以基本配置和每輛AGV小車的設(shè)備配置形式提供,而且使用的JSON格式可以在JSON Scheme中定義。
方案簡介
HiveMQ是一個(gè)企業(yè)級的MQTT Broker,專門為物聯(lián)網(wǎng)應(yīng)用場景的業(yè)務(wù)需求量身定制。HiveMQ企業(yè)版能夠保證數(shù)據(jù)在物聯(lián)網(wǎng)設(shè)備之間快速、高效和可靠的傳輸。此外,HiveMQ支持MQTT 3和MQTT 5,也支持混合版本的應(yīng)用場景。同時(shí),HiveMQ提供了一個(gè)免費(fèi)的開源擴(kuò)展SDK。
HiveMQ擴(kuò)展框架提供了一個(gè)開放的API,開發(fā)人員可以創(chuàng)建適合其特定基礎(chǔ)設(shè)施的自定義擴(kuò)展,而且擴(kuò)展框架可用于使用自定義業(yè)務(wù)邏輯來擴(kuò)展HiveMQ,而且?guī)缀蹩梢詫⑷魏蜗到y(tǒng)集成到HiveMQ。其主要性能如下:
穩(wěn)定性:
HiveMQ中集群的設(shè)置使來自客戶端的消息和數(shù)據(jù)均勻分布在所有節(jié)點(diǎn)上,集群中數(shù)據(jù)的復(fù)制應(yīng)根據(jù)節(jié)點(diǎn)數(shù)量進(jìn)行配置,而且所有數(shù)據(jù)至少復(fù)制一次。
可擴(kuò)展性:
HiveMQ MQTT Broker集群由幾個(gè)單獨(dú)的HiveMQ節(jié)點(diǎn)組成。由于要處理的MQTT消息數(shù)量、保留消息、客戶端連接率、排隊(duì)消息以及其他可能導(dǎo)致單個(gè)代理過載的操作,每個(gè)節(jié)點(diǎn)在任何給定時(shí)間都可能經(jīng)歷不同的壓力水平。
HiveMQ提供內(nèi)置的集群過載保護(hù),每個(gè)HiveMQ集群節(jié)點(diǎn)都能夠降低來自MQTT客戶端傳入消息的速率,防止出現(xiàn)集群過載。這種機(jī)制顯著提高了HiveMQ集群的彈性,如果HiveMQ集群遇到過載情況,單個(gè)MQTT客戶端可能會(huì)受到限制。如果使用集群過載保護(hù)機(jī)制,HiveMQ能夠從壓力情況(行為不良的客戶端或DDOS攻擊)中恢復(fù),而不會(huì)導(dǎo)致所有其他MQTT客戶端的服務(wù)明顯下降。
高性能:
HiveMQ是一個(gè)高度可擴(kuò)展的企業(yè)級MQTT Broker,旨在實(shí)現(xiàn)最低的延遲和非常高的吞吐量。
兼容性:
HiveMQ可以安裝在任何環(huán)境中,例如虛擬機(jī),虛擬機(jī)上的Docker,亞馬遜、Azure或谷歌等云環(huán)境,以及Linux系統(tǒng)的裸機(jī)。同時(shí),它能夠與Kubernetes等集群管理系統(tǒng)或 OpenShift等應(yīng)用平臺(tái)完美配合。
監(jiān)控、日志記錄、MQTT 跟蹤:
HiveMQ提供一個(gè)控制中心來監(jiān)控MQTT Broker行為并提供了一組基本指標(biāo)。操作員還可以查看特定MQTT客戶端的狀態(tài),并在特定客戶端和Broker之間設(shè)置消息的跟蹤記錄,能夠有效地對已部署的系統(tǒng)進(jìn)行故障排除。
HiveMQ日志系統(tǒng)使用標(biāo)準(zhǔn)日志框架,能夠以細(xì)粒度的方式配置日志文件。所有與客戶端相關(guān)的MQTT事件都記錄在對應(yīng)的事件日志文件中,而且HiveMQ日志可以流式傳輸?shù)街醒肴罩鞠到y(tǒng)。
HiveMQ控制中心主要用于人工監(jiān)控系統(tǒng),尤其是MQTT消息吞吐量、MQTT消息丟失的特定錯(cuò)誤類型和跟蹤日志。同時(shí),控制中心只能從受信任的IP訪問,用戶可以在企業(yè)安全擴(kuò)展的使用范圍內(nèi)定義特定的訪問角色。
企業(yè)安全擴(kuò)展:
HiveMQ企業(yè)安全擴(kuò)展可用于身份驗(yàn)證和授權(quán),使用不同來源的外部身份驗(yàn)證和授權(quán)數(shù)據(jù)來對MQTT客戶端進(jìn)行身份驗(yàn)證和授權(quán)。
在 HiveMQ企業(yè)安全擴(kuò)展中,用戶可以定義領(lǐng)域以將其服務(wù)器劃分為受保護(hù)的區(qū)域,每個(gè)區(qū)域可以擁有自己的身份驗(yàn)證和授權(quán)方案。主要功能如下:
①為用戶名和密碼、OAUTH 2.0 (JWT)、LDAP、SQL 數(shù)據(jù)庫和 x.509 客戶端證書提供了安全集成模式;
②可用于RBAC到HiveMQ控制中心;
③容易切換身份驗(yàn)證變體,因?yàn)椴煌目蛻舳说牟煌凅w可以同時(shí)使用;
④身份驗(yàn)證機(jī)制可以不同于授權(quán)機(jī)制,例如,可以使用LDAP進(jìn)行身份驗(yàn)證,并使用外部RBAC系統(tǒng)進(jìn)行授權(quán)。
通信過程
在AGV小車指令和狀態(tài)信息交換的應(yīng)用場景下,主題結(jié)構(gòu)如下所示??刂葡到y(tǒng)客戶端使用“+”通配符模式訂閱占位符,并且可以發(fā)布到每個(gè)AGV小車客戶端的指令主題。AGV小車客戶端只有自己主題路徑的發(fā)布/訂閱權(quán)限,該路徑由接口名稱、版本、制造商和序列號等關(guān)鍵信息指定。
在指令和狀態(tài)信息通信過程中,每個(gè)主題都從一個(gè)子主題開始,用動(dòng)態(tài)占位符分隔不同的通信設(shè)備。子主題order和orderState用于信息交換,主題deviceState用于當(dāng)AGV小車處于在線和離線狀態(tài)時(shí)獲取信息,以處理錯(cuò)誤情況并在特定情況下初始化設(shè)備。
每個(gè)AGV小車訂閱他們各自的指令主題,并發(fā)布信息到對應(yīng)的指令狀態(tài)主題,當(dāng)AGV小車客戶端消費(fèi)指令信息并處理指令或部分指令后,必須將相應(yīng)的指令狀態(tài)發(fā)布到orderState主題上。同時(shí),控制系統(tǒng)可以訂閱所有AGV小車指令狀態(tài)和設(shè)備狀態(tài)主題以此獲取AGV小車的相關(guān)信息。
AGV小車客戶端可以通過Broker或者客戶端操作來斷開連接。如果AGV小車客戶端通過斷開自身而脫機(jī),該狀態(tài)也應(yīng)在控制系統(tǒng)中確定,而且AGV小車都應(yīng)將狀態(tài)為“OFF”的保留消息發(fā)送到deviceState主題。
為了從AGV小車獲取設(shè)備狀態(tài),每個(gè)AGV小車客戶端可以定義一個(gè)最后的遺囑保留消息,并在連接期間設(shè)置“Will Publish”。如果AGV小車客戶端下線,則向指定主題發(fā)送“Will”消息。同時(shí),每個(gè)AGV小車客戶端都可以向deviceState主題發(fā)布消息以此表明其在線狀態(tài)。此外,使用MQTT 5可以在發(fā)送遺囑消息時(shí)配置延遲,適用于設(shè)備短暫中斷且沒有影響的情況。而且也可以在Broker和客戶端上配置Keepalive。
總結(jié)
03 虹科 · MQTT Broker 案例
案例總結(jié)
實(shí)現(xiàn)AGV小車和控制系統(tǒng)之間的通訊所面臨的挑戰(zhàn)可以通過MQTT 5和HiveMQ來實(shí)現(xiàn)。HiveMQ能夠提供運(yùn)行安全穩(wěn)定系統(tǒng)所需的關(guān)鍵功能,MQTT 5可以完美地描述特定格式及其驗(yàn)證等數(shù)據(jù)相關(guān)功能以及元數(shù)據(jù)的使用,而且HiveMQ支持混合場景中MQTT 5和MQTT 3客戶端。
此外,安全性是一個(gè)非常重要的關(guān)鍵特性,如果要將不同的制造商集成到一個(gè)控制系統(tǒng)中,則需要使用支持不同變體安全性的解決方案。HiveMQ企業(yè)安全擴(kuò)展可以使用不同來源的外部身份驗(yàn)證和授權(quán)數(shù)據(jù)來對MQTT客戶端進(jìn)行身份驗(yàn)證和授權(quán)。
如果需要在不停機(jī)的情況下進(jìn)行系統(tǒng)更改,則解決方案必須具有高度可用性,而且支持滾動(dòng)升級和遷移方案。HiveMQ具有高度可擴(kuò)展性,能夠支持越來越多的AGV小車。同時(shí),HiveMQ 能夠提供一個(gè)控制中心,用于監(jiān)視和跟蹤生產(chǎn)環(huán)境中特定客戶端、主題或消息。
為了集成其他系統(tǒng),例如中央日志系統(tǒng)或添加任何業(yè)務(wù)功能,可以通過擴(kuò)展系統(tǒng)來擴(kuò)展 HiveMQ,而且大量的開源解決方案和標(biāo)準(zhǔn)解決方案已經(jīng)可用。在Open HiveMQ擴(kuò)展API的幫助下,每個(gè)特定業(yè)務(wù)的解決方案都可以實(shí)現(xiàn)。將HiveMQ和MQTT 5結(jié)合起來實(shí)現(xiàn)VDA 5050用例將是一個(gè)完美的解決方案。
?
-
工業(yè)物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
25文章
2357瀏覽量
63598 -
IOT
+關(guān)注
關(guān)注
186文章
4162瀏覽量
195984
發(fā)布評論請先 登錄
相關(guān)推薦
評論