AB PLC发布MQTT的功能块_服务器JZGKCHINA工控技术分享平台


要求:

为了使用此代码,控制器必须具有支持套接字的以太网接口。CompactLogix 5370 和 5380 以及 ControlLogix 5580 控制器内置了此功能。其他 ControlLogix 控制器可制成支持 1756-EN2T 。控制器必须具有24或更高版本的固件。所需的开发环境是 Studio 5000 Logix Designer 24版本或更高版本。 AB PLC发布MQTT的功能块_服务器_02

将 MQTT 通信代码添加到项目中

右键单击将执行通信程序的任务,然后选择添加 - 导入程序。选择 mqtt01_comms_Vxx.L5X 文件并开始导入过程。可选项 - 重命名代码仅当为多个连接使用多个代码实例时才需要这样做。单击查找/替换并设置如下对话框。AB PLC发布MQTT的功能块_字符串_03

点击全部替换。 现在单击确定以完成导入过程。 配置通信代码

 AB PLC发布MQTT的功能块_字符串_04

要求:

在通讯程序 MainRoutine 的梯级 0 中,在第二个分支的最后一条指令上,设置 Sockets Capable Network Interface Card 的插槽号。对于 CompactLogix 控制器,它始终为 0。对于 5580 控制器,它是控制器的插槽号。对于其他 ControlLogix 控制器,它是 EN2T 卡的插槽号。在通信程序的参数和本地标签中,展开“Hndl”标签。设置 IP 地址和客户端 ID。AB PLC发布MQTT的功能块_插槽_05

IP 地址是 MQTT 代理或服务器的 IP 地址。客户端 ID 是一个字符串,每个客户端都应该不同。可选项:在下面列出的标签成员中设置所需的值。

AB PLC发布MQTT的功能块_插槽_06

这些是连接到 MQTT 代理或服务器的可选参数。还可选的是更改“mqttKeepAlive”标签的值。这是与 MQTT 服务器建立连接时使用的超时值(以秒为单位)。当此时间过半时,通信代码会自动 ping 服务器。默认值为 256,有效值为 17 到 1024 秒。 


将 MQTT AOI 添加到项目中

 和以前一样,将“mqttTestProgram.L5X”导入任务。此代码有一个例程,用于演示通信代码和附加指令的用法。当不需要或不再需要该代码时,删除该程序。导入的 MQTT AOI 将在项目中保持可用。AB PLC发布MQTT的功能块_服务器_07

AOI mqpt – 发布主题

AB PLC发布MQTT的功能块_插槽_08

mqpt 指令允许发布主题。它可用于梯形图和结构化文本。指令之前不应该有任何逻辑,所以它总是执行。参数mqtp 标签是指令的后备标签。

AB PLC发布MQTT的功能块_服务器_09

当发布成员标签从 0 变为 1 时,该指令发布主题。由用户触发转换。Hndl 是通信程序的公共参数的链接。 par 标签是配置主题的地方。

AB PLC发布MQTT的功能块_服务器_10

可以根据用户对 MQTT 协议的偏好设置 Qos、retain 和 dup。如果需要,用户可以设置 ID。当保留为 0 时,通信程序将自动分配一个递增的 ID。这是推荐的。主题和有效负载是可由用户应用程序代码在触发指令之前填充的字符串。 


AOI mqsu - 订阅和取消订阅主题

AB PLC发布MQTT的功能块_字符串_11

mqsu 指令允许订阅和取消订阅主题。它可用于梯形图和结构化文本。指令之前不应该有任何逻辑,所以它总是执行。参数mqsu 标签是指令的后备标签。

AB PLC发布MQTT的功能块_服务器_12

当订阅或取消订阅标签从 0 转变为 1 时,指令执行。由用户触发转变。Hndl 是通信程序的公共参数的链接。par 标签是配置主题的地方。

AB PLC发布MQTT的功能块_插槽_13

Qos 设置为用户的首选值。主题是标识主题的字符串。由于此字符串未经处理就传递给服务器,因此可以使用任何通配符,只要服务器支持它。 


AOI mqmt – 监控订阅的主题

AB PLC发布MQTT的功能块_插槽_14

mqmt 指令监视来自通信程序的环形缓冲区并查找配置的字符串。当服务器发布指定主题时,将捕获有效负载。它可用于梯形图和结构化文本。指令之前不应该有任何逻辑,所以它总是执行。参数mqmt 标签是指令的后备标签。AB PLC发布MQTT的功能块_服务器_15

当在 ringbuffer 中看到被监控的主题时,更新值增加 1。par标签是配置主题和写入发布信息的地方。主题是一个字符串,由用户代码设置,它是被监控的确切主题。它必须与单个主题完全匹配,因此不能使用通配符。AB PLC发布MQTT的功能块_字符串_16

有效负载在接收到来自服务器的发布后更新。Qos、retain、dup 和 id 由指令更新并包含从服务器接收到的值。

下载链接: https://pan.baidu.com/s/1xdq-gTDVYBLr5C529LRe4A