【云原生】设备云之FlexManager对于MQTT通讯的使用

前言

前面好几篇都介绍了很多关于FlexManager方面的知识和应用实例,相信大家都有看了。本篇就设备云的FlexManager进行MQTT通讯的方法步骤逐一做个详解。当然,设备入云得基本掌握一点设备流程图、PLC自动化的一些相关知识,同学们如果有兴趣可以到我PLC编程学习资料的专栏里边去学习一波,此处不做重点讲述。本文重点讲述的是FlexManager对于MQTT通讯的通讯参数配置和数据通道具体部署操作。


提示:以下是本篇文章正文内容,下面案例可供参考

一、通讯简介

FlexManager 支持通过 MQTT 推送第三方服务器接口,第三方服务器需符合FlexManager MQTT 协议接口文档所定义的接口。

1、通讯架构

在这里插入图片描述
如上图,FBox 出厂时,默认链接到繁易云服务器,用户需用 FlexManager 软件配置 FBox 使能 MQTT 推送功能。通过 FlexManager 下发监控条目与数据采集设备驱动,设置需要采样的变量的死区,数据刷新周期,监控推送条件等。同时,用户需要配置 MQTT 推送的服务器地址和端口号,设备号,登录用户名与密码等信息。

FBox 接收到所有条目、信息并使能 MQTT 推送功能后,需重启 FBox 使设置生效。

用户可设置暂停条目推送,将 FBox 与繁易云平台的数据推送暂停。只推送 MQTT 服务器。

2、通讯认证

1.设备 ID

设备 ID 是 FBox 登录 MQTT 服务器时的客户端标识符(Client Identifier),UTF-8 编码格式,长度 1-64。用户需确保每一个硬件设备分配的 ClientID 不重复。

2.用户名与密码

MQTT CONNECT 连接时的用户与密码,如果使能此功能,服务器必须接受检查账户合法性并给出登录成功或失败的 CONNACK 消息。

3.通信加密

FLEXEM MQTT 支持 TLS 加密,可以开启服务器验证模式,也可以开启客户端认证。

服务器验证模式可以藉由预先下载的服务器信息,设备登录 MQTT 服务器时收到的服务器发送过来的凭证做对比,如不符,则设备拒绝登录该服务器,切换服务器链接。

客户端认证模式,藉由提供私钥与凭证,让服务器验证是否可以允许设备联机。

3、通讯心跳

FLEXEM 硬件设备不另外提供 keep alive 的心跳报文,使用 MQTT 协议约定的心跳包文维持服务器的连接。

长连接与上下线判断:FBox 与服务器通过长连接保持通信,及时响应服务器的请求。因此 FBox 需使用 MQTT 的

​ 心跳报文。CONNECT 登录时,保持连接字节可以设置心跳间隔与空闲间隔时间。

在这里插入图片描述

​ 图 2 MQTT 心跳机制

保持连接(Keep Alive)是一个以秒为单位的时间间隔,为一个 16 位的字,它是指在客户端传输完成一个控制报文的时刻到发送下一个报文的时刻,两者之间允许空闲的最大时间间隔。客户 端负责保证控制报文发送的时间间隔不超过保持连接的值。

不管保持连接的值是多少,客户端任何时候都可以发送 PINGREQ 报文,并且使用 PINGRES P 报文判断网络和服务端的活动状态。

如果保持连接的值非零,并且服务端在 1.5 倍的保持连接时间内没有收到客户端的控制报文, 它必须断开客户端的网络连接,认为网络连接已断开。

客户端发送了 PINGREQ 报文之后,如果在合理的时间内仍没有收到 PINGRESP 报文,设备会主动关闭到服务端的网络连接。

FLEXEM MQTT 默认保持连接间隔时间为 60 秒。

二、使用步骤

在FlexManager软件中使用MQTT协议进行数据转发,主要分为3个步骤:

1.连接配置(对接的MQTT服务器参数和MQTT协议参数等);

2.数据配置:

​ Topic主题及功能配置(主题配置并选择MQTT中的sub、pub的功能项);

​ 变量关联(从监控点中选择需要的点进行关联);

3.同步配置(发布执行)。

1、连接配置

在配置连接列表区域中点击图标 “+”,新建MQTT连接配置。

如下图 2- 1所示:
在这里插入图片描述

将弹出连接配置主界面,如下图 2- 2所示:

在这里插入图片描述

主要参数界面中的基本信息说明如下表2- 1:

界面字段 描述 必填
名称 MQTT连接配置名称,支持32个字符,包括09,az,汉字等字符。
代理平台 使用提供MQTT服务平台
服务地址 MQTT推送的服务器地址,支持128个字符
服务端口 MQTT推送的服务器地址的端口号
设备ID 设备ID是FBox登录MQTT服务器时的客户端标识符

注:在MQTT功能配置连接列表中最多可新建10个MQTT连接配置,同时只支持一个MQTT连接配置执行,后续版本将支持多个MQTT连接配置执行。

常规配置:配置MQTT连接的常规参数,如下图 2- 3所示:

在这里插入图片描述

界面中的基本信息说明如下表2- 2:

界面字段 描述 必填
MQTT版本 目前FlexManager支持,3.1.1和3.1的MQTT标准协议
KeepAlive 保活时间(Keep Alive)是一个以秒为单位的时间间隔,为一个16位的字,它是指在客户端传输完成一个控制报文的时刻到发送下一个报文的时刻,两者之间允许空闲的最大时间间隔
上传方式 设置数据上传推送方式,支持周期推送和变化推送
周期 设置数据周期推送时间

​ 表2- 2

用户验证:配置MQTT登录服务器的验证信息,如下图 2- 4所示:

在这里插入图片描述

用户验证界面中的基本信息说明如下表2- 3:

界面字段 描述 必填
用户验证 是FBox登录MQTT服务器所需要的用户信息验证
用户名 登录MQTT服务器用户名
密码 登录MQTT服务器密码

连接模式:配置MQTT登录服务器的验证信息,如下图 2- 5所示:

在这里插入图片描述

连接模式界面中的基本信息说明如下表2- 4:

界面字段 描述 必填
连接方式 TCP的MQTT连接,并提供了两种连接方式:TCP连接、TCP加密连接(与MQTT服务器使用TLS(SSL)进行通讯)
客户端证书 客户端证书文件
CA证书 根证书,单击ca.crt链接下载文件。
客户端密钥 客户端密钥文件

其他配置:配置MQTT登录服务器的验证信息,如下图 2- 6所示:

在这里插入图片描述

其他配置界面中的基本信息说明如下表2- 5:

界面字段 描述 必填
离线缓存 允许在MQTT离线的状态下,将推送的消息缓存到SD卡U盘或本地,当FBox重新上线后会将缓存数据重新上传
存储方式 存储到本地最大存储条数为1000条,SD卡和U盘根据容量大小不同来判断数据存储量。说明:本地保存数据最大1000条,超过1000条时会自动覆盖前面数据

2、 数据配置

在 数据配置列表 区域中点击“添加”按钮,添加MQTT数据配置。如下图 2- 7:

在这里插入图片描述

2.1主题及功能配置

将弹出MQTT数据配置的界面,我们用Pub操作权限下的发布监控点数据来做一个示范,如下图 2- 8所示:

在这里插入图片描述

界面中的基本信息说明如下表2- 6:

界面字段 描述 必填
主题 主题(Topic)是UTF-8字符串,是发布/订阅(Pub/Sub)消息的传输中介,MQTT是通过主题对消息进行分类。注:主题名称可自定义配置(与MQTT服务器中的主题相匹配),但在同一配置协议中不支持配置相同的主题信息,一个主题只能对应一个功能
描述 当前数据配置的描述信息
操作权限 sub表示需要订阅的主题,pub表示需要发布的主题,pub_sub表示该主题既可以订阅也可以发布
功能 为当前FlexManager软件通过MQTT所支持的功能,功能详情介绍请查看功能描述

2.2 MQTT数据关联

  1. 如需自定义JSON数据层级,选择“添加“。

在这里插入图片描述

点击“添加”按钮,表格中新增一条MQTT变量数据。

当属性类型选择int,long,uint,float,double,string,boolean时,需要点击关联变量按钮,选择关联某一个内部变量或者监控点。

当属性类型中选择array或者object时,可以选择添加子项或者批量导入监控点。如下图 2- 8所示:

在这里插入图片描述

在这里插入图片描述

界面中的基本信息说明如下表2- 6:

界面字段 描述 必填
MQTT变量 可自定义MQTT变量名称,与服务器名称保持一致
熟悉类型 变量数据支持多种类型。注意:选择“array”、“obiect”时,可执行添加子项、批量导入功能,不能执行关联
变量名称 关联数据的变量名称。注意:同一层级中,变量名称不允许相同
删除 删除选择的数据条目
关联 关联变量。注意:只有选择非“array”、“obiect”时,才能关联
添加子项 在当前数据条目下级,添加子项MQTT变量
批量导入 在当前数据条目下级,批量关联变量

如需快速导入监控点,选择“批量导入”。选择批量导入后,会弹窗出现关联变量界面。如下图 2- 9所示:

在这里插入图片描述

界面中的基本信息说明如下表2- 7:

界面字段 描述 必填
内部变量 FBox当前支持MQTT执行的内部功能变量。详情可查看内部变量参数规范
监控点 监控点变量数据
名称 内部变量名称
数据类型 内部变量数据类型
描述 当前变量数据的描述信息
默认生成MQTT变量名称 勾选此功能点击“确认”按钮,可将关联变量名称的自动生成到MQTT变量名称中,替换原来的MQTT变量名称

点击“监控点”按钮,会切换到监控点变量页中,如下图 2- 10所示:

在这里插入图片描述

界面中的基本信息说明如下表2- 8:

界面字段 描述 必填
名称 监控点名称。注:监控点名称只能在“监控点”管理页面修改
数据类型 监控点数据类型。注:监控点数据类型只能在“监控点”管理页面修改
读写类型 监控点的类型
描述 当前监控点数据的描述信息
组合方式 JSON KV 和JSON NV 是两种点位上报类型,用来适配不同格式的上报方式;其中,KV表示{“temprature”:37}这种Json格式类型, NV 表示{“name”:”temprature”,”value”:37}这种数据格式类型;

3、 配置同步

配置完成保存之后在“数据配置列表”页点击“配置同步”按钮,将已配置的数据下发到FBox中进行执行,如下所示:

在这里插入图片描述

界面中的基本信息说明如下表2- 9:

界面字段 描述 必填
添加 添加多条MQTT主题功能数据。说明:同一主题(Topic)只能配置一个功能
配置同步 将当前MQTT连接配置文件(包含主题功能数据)打包下发到FBox中进行执行
导入配置 可以将其他FBox中的MQTT连接配置文件,导入至当前连接配置列表中。说明:导入文件和当前FBox中的监控点不一致时,会自动去掉不一致的MQTT变量数据
导出配置 当前MQTT连接配置文件(包含主题功能数据)打包生成.cfg格式导出,方便查看连接配置数据格式
批量删除 多选批量删除数据配置列表数据
搜索 可搜索“主题”“描述”字段

4、 配置连接列表

在“配置连接列表”区域中页点击按钮,可对当前MQTT连接配置文件进行操作,如下图 2- 12所示:

在这里插入图片描述

界面中的基本信息说明如下表2- 10:

界面字段 描述 必填
图标 当前配置连接的状态。说明:灰色表示未执行,绿色表示已下发执行
名称 当前配置连接名称。说明:在当前配置连接列表中,不允许存在相同的名称
编辑 对当前配置连接进行修改
复制 可将当前MQTT配置连接数据(包含主题功能数据)复制给当前FBox和客户拥有的其他FBox。说明:复制给其他FBox时,一次最多只能复制给10个FBox
删除 删除当前MQTT配置连接数据(包含主题功能数据)

三、实例概览

云到设备消息:
2022/09/22 23:21:58.747
内容
Text (UTF-8)
{“code”:200,“data”:{},“id”:“132546”,“message”:“success”,“method”:“thing.event.property.post”,“version”:“1.0”}

设备到云消息:
2022/09/22 23:21:58.746
内容
Text (UTF-8)
{“id”:“132546”,“method”:“thing.event.property.post”,“params”:{“EDI产水流量”:{“value”:226.4},“EDI产水温度”:{“value”:29.1},“EDI产水电阻”:{“value”:15.84},“EDI水箱液位”:{“value”:117},“EDI进水压力”:{“value”:0.05},“一级产水流量”:{“value”:0.0},“一级产水电导”:{“value”:0.6},“一级浓水流量”:{“value”:0.0},“一级膜前压力1”:{“value”:-0.01},“一级膜前压力2”:{“value”:-0.01},“原水电导”:{“value”:89.0},“手动状态”:{“value”:0},“自动状态”:{“value”:1},“设备手动”:{“value”:0},“设备自动”:{“value”:1},“超滤产水流量”:{“value”:0.0},“超滤进水压力”:{“value”:0.28},“超滤进水温度”:{“value”:25.7},“输送压力”:{“value”:0.43},“输送回水电阻”:{“value”:4.78}},“version”:“1.0”}

总结

以上就是今天要讲的内容,本文仅仅简单介绍了FlexManager的MQTT通讯,而FlexManager提供了大量能使我们快速转发设备云数据的方法和通讯方式,同学们可以多深入了解一下FlexManager。

猜你喜欢

转载自blog.csdn.net/weixin_41729677/article/details/127001576
今日推荐