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