{PLC,IOT}>ESP32 WIFI_MQTT

          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组件,提供给应用者一种简易的应用方法。

       

        

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值