MQTT代理助力AGV小车与控制系统之间实现通信

电子说

1.2w人已加入

描述

前言

本案例主要描述AGV小车和控制系统之间的通信过程,通过VDA 5050标准接口、MQTT通信协议和虹科HiveMQ实现AGV小车和控制系统之间指令和状态信息的通信。

VDA 5050是一种AGV小车与控制系统之间的标准通信接口,旨在简化AGV小车与现有控制系统的连接,以及允许在同一工作环境中并行操作来自不同制造商的AGV小车。

一、应用挑战

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解决方案能够集中监控和跟踪特定客户端、主题或消息。

二、方案介绍

1.系统框架

下图所示是本案例的系统框架。在外部,HiveMQ Broker作为一个逻辑单元运行,在内部,则作为集群节点运行。HiveMQ Broker 使用用于身份验证和授权的安全扩展、用于JSON有效负载验证的扩展以及用于跟踪和监控的扩展。指标、事件日志以及其他日志信息以 JMX 格式提供,可以集中监控。

MQTT

作为主要用例,控制系统(CS)客户端向AGV小车发送信息,并消费AGV小车的相关状态或可能的错误信息。控制系统(CS)的数据以基本配置和每辆AGV小车的设备配置形式提供,而且使用的JSON格式可以在JSON Scheme中定义。

2. 方案简介

虹科HiveMQ是一个企业级的MQTT Broker,专门为物联网应用场景的业务需求量身定制。HiveMQ企业版能够保证数据在物联网设备之间快速、高效和可靠的传输。此外,HiveMQ支持MQTT 3和MQTT 5,也支持混合版本的应用场景。同时,HiveMQ提供了一个免费的开源扩展SDK。

MQTT

虹科HiveMQ扩展框架提供了一个开放的API,开发人员可以创建适合其特定基础设施的自定义扩展,而且扩展框架可用于使用自定义业务逻辑来扩展HiveMQ,而且几乎可以将任何系统集成到HiveMQ。其主要性能有:稳定性、可扩展性、高性能、兼容性、监控、日志记录、MQTT 跟踪、企业安全扩展等。

3. 通信过程

在AGV小车指令和状态信息交换的应用场景下,主题结构如下所示。控制系统客户端使用“+”通配符模式订阅占位符,并且可以发布到每个AGV小车客户端的指令主题。AGV小车客户端只有自己主题路径的发布/订阅权限,该路径由接口名称、版本、制造商和序列号等关键信息指定。

MQTT

在指令和状态信息通信过程中,每个主题都从一个子主题开始,用动态占位符分隔不同的通信设备。子主题order和orderState用于信息交换,主题deviceState用于当AGV小车处于在线和离线状态时获取信息,以处理错误情况并在特定情况下初始化设备。

每个AGV小车订阅他们各自的指令主题,并发布信息到对应的指令状态主题,当AGV小车客户端消费指令信息并处理指令或部分指令后,必须将相应的指令状态发布到orderState主题上。同时,控制系统可以订阅所有AGV小车指令状态和设备状态主题以此获取AGV小车的相关信息。

MQTT

AGV小车客户端可以通过Broker或者客户端操作来断开连接。如果AGV小车客户端通过断开自身而脱机,该状态也应在控制系统中确定,而且AGV小车都应将状态为“OFF”的保留消息发送到deviceState主题。

为了从AGV小车获取设备状态,每个AGV小车客户端可以定义一个最后的遗嘱保留消息,并在连接期间设置“Will Publish”。如果AGV小车客户端下线,则向指定主题发送“Will”消息。同时,每个AGV小车客户端都可以向deviceState主题发布消息以此表明其在线状态。此外,使用MQTT 5可以在发送遗嘱消息时配置延迟,适用于设备短暂中断且没有影响的情况。而且也可以在Broker和客户端上配置Keepalive。

三、案例总结

实现AGV小车和控制系统之间的通讯所面临的挑战可以通过MQTT 5和HiveMQ来实现。虹科HiveMQ能够提供运行安全稳定系统所需的关键功能,MQTT 5可以完美地描述特定格式及其验证等数据相关功能以及元数据的使用,而且虹科HiveMQ支持混合场景中MQTT 5和MQTT 3客户端。

MQTT

此外,安全性是一个非常重要的关键特性,如果要将不同的制造商集成到一个控制系统中,则需要使用支持不同变体安全性的解决方案。虹科HiveMQ企业安全扩展可以使用不同来源的外部身份验证和授权数据来对MQTT客户端进行身份验证和授权。

如果需要在不停机的情况下进行系统更改,则解决方案必须具有高度可用性,而且支持滚动升级和迁移方案。虹科HiveMQ具有高度可扩展性,能够支持越来越多的AGV小车。同时,虹科HiveMQ 能够提供一个控制中心,用于监视和跟踪生产环境中特定客户端、主题或消息。

MQTT

为了集成其他系统,例如中央日志系统或添加任何业务功能,可以通过扩展系统来扩展虹科HiveMQ,而且大量的开源解决方案和标准解决方案已经可用。在Open HiveMQ扩展API的帮助下,每个特定业务的解决方案都可以实现。将虹科HiveMQ和MQTT 5结合起来实现VDA 5050用例将是一个完美的解决方案。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分