为了使用此代码,控制器必须具有支持套接字的以太网接口。CompactLogix 5370 和 5380 以及 ControlLogix 5580 控制器内置了此功能。其他 ControlLogix 控制器可制成支持 1756-EN2T 。控制器必须具有24或更高版本的固件。所需的开发环境是 Studio 5000 Logix Designer 24版本或更高版本。
右键单击将执行通信程序的任务,然后选择添加 – 导入程序。
选择 mqtt01_comms_Vxx.L5X 文件并开始导入过程。
在通讯程序 MainRoutine 的梯级 0 中,在第二个分支的最后一条指令上,设置 Sockets Capable Network Interface Card 的插槽号。
对于 CompactLogix 控制器,它始终为 0。对于 5580 控制器,它是控制器的插槽号。对于其他 ControlLogix 控制器,它是 EN2T 卡的插槽号。
在通信程序的参数和本地标签中,展开“Hndl”标签。
IP 地址是 MQTT 代理或服务器的 IP 地址。
客户端 ID 是一个字符串,每个客户端都应该不同。
还可选的是更改“mqttKeepAlive”标签的值。这是与 MQTT 服务器建立连接时使用的超时值(以秒为单位)。当此时间过半时,通信代码会自动 ping 服务器。默认值为 256,有效值为 17 到 1024 秒。
和以前一样,将“mqttTestProgram.L5X”导入任务。
此代码有一个例程,用于演示通信代码和附加指令的用法。
当不需要或不再需要该代码时,删除该程序。导入的 MQTT AOI 将在项目中保持可用。
mqpt 指令允许发布主题。它可用于梯形图和结构化文本。指令之前不应该有任何逻辑,所以它总是执行。
当发布成员标签从 0 变为 1 时,该指令发布主题。由用户触发转换。
可以根据用户对 MQTT 协议的偏好设置 Qos、retain 和 dup。
如果需要,用户可以设置 ID。当保留为 0 时,通信程序将自动分配一个递增的 ID。这是推荐的。
主题和有效负载是可由用户应用程序代码在触发指令之前填充的字符串。
mqsu 指令允许订阅和取消订阅主题。它可用于梯形图和结构化文本。指令之前不应该有任何逻辑,所以它总是执行。
当订阅或取消订阅标签从 0 转变为 1 时,指令执行。由用户触发转变。
主题是标识主题的字符串。由于此字符串未经处理就传递给服务器,因此可以使用任何通配符,只要服务器支持它。
mqmt 指令监视来自通信程序的环形缓冲区并查找配置的字符串。当服务器发布指定主题时,将捕获有效负载。它可用于梯形图和结构化文本。指令之前不应该有任何逻辑,所以它总是执行。
当在 ringbuffer 中看到被监控的主题时,更新值增加 1。
主题是一个字符串,由用户代码设置,它是被监控的确切主题。它必须与单个主题完全匹配,因此不能使用通配符。
Qos、retain、dup 和 id 由指令更新并包含从服务器接收到的值。
下载链接: https://pan.baidu.com/s/1xdq-gTDVYBLr5C529LRe4A
提取码联系美女管理员
1.Smart200&V90伺服系统:已更新15课
原文始发于微信公众号(剑指工控):AB PLC发布MQTT的功能块