1200和1500 MQTT CLIENT轻松实现连接MQTT 消息服务器一、MQTT协议简介
MQTT 全称为Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的“轻量级”消息协议,由IBM 发布。
MQTT 可以被解释为一种低开销,低带宽占用的即时通讯协议,可以用极少的代码和带宽的为连接远程设备提供实时可靠的消息服务,它适用于硬件性能低下的远程设备以及网络状况糟糕的环境下,因此MQTT 协议在IoT(Internet of things,物联网),小型设备应用,移动应用等方面有较广泛的应用。
IoT 设备要运作,就必须连接到互联网,设备才能相互协作,以及与后端服务协同工作。而互联网的基础网络协议是TCP/IP,MQTT 协议是基于TCP/IP 协议栈而构建的,因此它已经慢慢的已经成为了IoT 通讯的标准。
MQTT基本特点
1、MQTT是一种发布/订阅传输协议,基本原理和实现如下:
MQTT 协议提供一对多的消息发布,可以解除应用程序耦合,信息冗余小。该协议需要客户端和服务端,而协议中主要有三种身份:发布者(Publisher)、代理(Broker,服务器)、订阅者(Subscriber)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,而消息发布者可以同时是订阅者,实现了生产者与消费者的脱耦。
2、使用TCP/IP 提供网络连接,提供有序、无损、双向连接;
MQTT 是一种连接协议,它指定了如何组织数据字节并通过TCP/IP 网络传输它们。设备联网,也需要连接到互联网中,在大万维的世界中,TCP 如同汽车,有轮子就能用来运输数据,MQTT 就像是交通规则。在网络模型中,TCP是传输层协议,而MQTT是在应用层,在TCP 的上层,因此MQTT 也是基于这个而构建的,提高了可靠性。
3、对负载内容屏蔽的消息传输;可以对消息订阅者所接受到的内容有所屏蔽。
4、具体有三种消息发布的服务质量:
至多一次,消息发布完全依赖底层TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
至少一次,确保消息到达,但消息重复可能会发生。
只有一次,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
5、小型传输,开销小,固定长度的头部是2 字节,协议交换最小化,以降低网络流量;整体上协议可拆
分为:固定头部+可变头部+消息体。
6、使用Last Will和Testament特性通知有关各方客户端异常中断的机制;
二、西门子的MQTT CLIENT库介绍
西门子的LMQTT_CLIENT使用的时MQTT3.1.1协议,“LMQTT_Client”库是实现SIMATIC S7控制器的MQTT协议通信的功能块,可以用在SIMATIC S7-1500和SIMATIC S7-1200中。函数块
“LMQTT_Client”集成了MQTT客户机所有功能,允许您将MQTT消息传输到代理(发布者角)和创建订阅(订阅者角)。同时可以通过TLS来保证安全通信。
实现步骤:
1、确定MQTT代理的CA证书。
2、将第三方证书导入STEP 7 (TIA Portal),该证书现在位于STEP 7的全局证书管理器中。
3、您必须将导入的证书分配给S7 CPU。要确认证书有效,S7-CPU的时间必须是当前的。
4 .函数块“LMQTT_Client”承担以下角:
发布者向MQTT代理发送MQTT消息
订阅方可以订阅MQTT消息或最终订阅
MQTT消息通过安全连接(通过TLS的MQTT)加密。
三、“LMQTT_Client”测试
测试需求软硬件需求:
1、emqx-centos7-v3.2.2  Linux版本
2、1500PLC
3、TIA Portal V15.1
测试步骤:
1、安装MQTT的服务器。MQTT服务器的搭建有很多种方法,本次测试选择的emqx-centos7-v3.2.2的
服务器。搭建步骤请参照以下的网站链接,这里不做过多的介绍。
安装完成后使用命名行启动emqx的MQTT服务器,如下图所示。
2、搭建完成后可以使用客户端软件测试连接是否正常。本次测试使用的客户端为MQTTBox,MQTTBox
下载和使用请参考链接,这里不做过多的描述。
3、下载“LMQTT_Client”库文件,库文件的网址如下:
4、创建新的SETP 7项目,导入“LMQTT_Client”库文件。
5、将库里的功能块和数据类型拷贝到项目中。
6、创建用户数据块,添加“LMQTT_Client”功能块的接口数据。同时将“LMQTT_Client”添加到OB1中。如下图所示:
7、建立安全通信,具体步骤如下:
a)  激活"Use global security settings for certificate manager"
b)  启用项目保护,操作如下图所示。保护项目后每次进入项目都要输入密码,所以密码一定要记住。
c)  添加服务器证书。选择"Certificate manager",并在"Trusted certificates and root certification authorities"中添加emqx CA证书。
开源mqtt服务器
d)  Emqx的CA证书在/emqx/etc/certs/目录下,文件名为cacert.pem。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。