概述
MQTT在物联网领域是十分常见的协议,{PLC,IOT}>ESP32项目主要服务的领域是物联网,{PLC,IOT}>ESP32技术方案的实质是用PLC的形式为工业互联网、数字化工程提供便利的工具,因此MQTT是基本的内置功能,是承载IOT相关功能的基础组件。ESP32似乎为联网而生,内置的WIFI、MQTT client 协议组件,对于熟悉ESP32-IDF的开发者,完成MQTT的消息传输已经和搭积木一样的便利。大多数应用工程不熟悉ESP32-IDF,让尽可能多的应用工程师像搭积木一样使用成熟的技术组件,就是{PLC,IOT}>ESP32要完成的工作。
WIFI-MQTT已经被封装成一个组件。
WIFI_MQTT组件的定义为
FUNCTION_BLOCK WIFI_MQTT
VAR_INPUT
SSID: STRING;
PSW : STRING;
RST : BOOL:= FALSE;
SMART:BOOL:= FALSE;
SVR : STRING;
USR : STRING;
KEY : STRING;
END_VAR
VAR_OUTPUT
LINK : BOOL := FALSE;
CONN : BOOL := FALSE;
EVT : BOOL := FALSE;
ST : STRING;
C : SINT;
END_VAR
LINK := FALSE;
END_FUNCTION_BLOCK
其中,
SSID 是wifi网络的网络名
PSW 是接入wifi网络的密码
RST 是组件的复位输入(默认为 FALSE)
SMART 是启动 smart-config 的触发信号(默认为FALSE)
SVR 是 MQTT 服务器的URL路径
USR 是MQTT的接入用户名
KEY 是MQTT 接入的密码
LINK 是wifi连接成功的指示
CONN 是接入 MQTT服务器的指示
EVT 是事件指示
ST 是事件描述
C 是事件代码
尽管 {PLC,IOT}>ESP32 的硬件集成了100M的以太网,鉴于网络的布线和维护成本较高,而且wifi联网的技术已经很成熟,MQTT对于消息传达有自身的协议保障 我们的MQTT组件默认是通过wifi连接服务器,降低应用项目实施的门槛。
一个设计项目,仅允许存在一个WIFI_MQTT组件。为了高效使用IOT的相关组件,实践中建议将IOT的相关功能集中在一个PLC程序中,通过全局(global)的变量和其他程序连接。
MQTT的消息发送被封装为一个独立组件 MSG_TX。
MSG_TX 组件的定义为:
FUNCTION_BLOCK MSG_TX
VAR_INPUT
TOPIC: STRING;
MSG: STRING;
T : BOOL;
R : BOOL;
END_VAR
VAR_OUTPUT
SUCCESS : BOOL;
END_VAR
SUCCESS := 0;
END_FUNCTION_BLOCK
其中
TOPIC 是消息的主题
MSG 是消息模板(下文详述消息模板)
T 是消息发送触发信号
R 是组件复位信号
MSG_TX 的消息模板就是构造消息的格式(应用者自行定义),由 分隔符 、变量引用 两种元素组成消息模板;分隔符是不随PLC工作状态改变的消息构成部分,例如 LED: ,RPM: ,这些都是分隔符,其作用是方便消息接收端分析处理消息;变量引用 是 形式为 [@MX0] 的消息元素,构造消息的时候,基础程序将获取变量的值,并转成字符串填充到变量引用的位置。可以被引用的变量包括全局变量和程序有定义的变量。两个变量引用之间,一般会需要一个分割符,才能让接收端方便解析消息。
MQTT的消息接收被封装一个独立组件MSG_RX。
MSG_RX的组件定义为:
FUNCTION_BLOCK MSG_RX
VAR_INPUT
TOPIC: STRING;
MSG: STRING;
END_VAR
VAR_OUTPUT
R : BOOL;
SUCCESS : BOOL;
END_VAR
SUCCESS := 0;
END_FUNCTION_BLOCK
其中
TOPIC 是消息主题
MSG 是消息模板
R 是消息接收指示
MSG_RX的消息模板是解析消息的依据,由 分隔符 、变量引用 两种元素组成消息模板; 变量引用 是 形式为 [@UPTR] 的消息元素; 分隔符是变量引用之外的其他内容。消息接收处理程序会自动依照消息模板分析接收到的内容,如果分隔符匹配,则提取分隔符之间的内容,写到被引用的变量。
IOT所需的MQTT消息传输功能,在{PLC,IOT}>ESP32通过 WIFI_MQTT、MSG_TX和MSG_RX组件,提供给应用者一种简易的应用方法。
最后
以上就是超帅小鸽子为你收集整理的{PLC,IOT}>ESP32 WIFI_MQTT的全部内容,希望文章能够帮你解决{PLC,IOT}>ESP32 WIFI_MQTT所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复