「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹

随着5G时代的来临 , 物联网开始加速盛行 , 慢慢地融入到我们的生活当中 , 万物互联互通将不再只是纸上谈兵 。
现在各大物联网平台层出不穷 , 看似离我们很遥远 , 其实只要我们敢于去研究 , 敢于去发现 , 万物互联 , 近在咫尺之间 。
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
【「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹】今天给大家介绍一下 , 作为一个普通的.NET开发人员 , 如何不借助第三方的物联网平台 , 搭建一个简单实用的物联网平台框架 。
一、物联网框架
此物联网框架是在上位机框架的基础上 , 结合物联网通信协议MQTT实现 。 上位机本身就集成有采集、归档及日志等功能 , 只需要在这个基础上 , 连接MQTT服务器之后 , 并向指定的主题Topic中发布相关的数据 , 相关的WEB、APP只需要订阅相应的主题 , 即可获取到数据 。
整体软件框架如下图示所示:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
从上图可以看出 , 整体软件基于MQTT协议搭建 , 依据此软件框架搭建的MQTT物联网拓扑图如下图所示:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
二、框架实现
为了测试方便 , 这里选择西门子S7-1200 PLC作为下位机 , 采用西门子S7进行通信 , 上位机先与PLC进行通信 , 同时连接MQTT服务器 , 并向指定主题发布数据 。
(1)首先创建一个新的Windows窗体应用 , 从NuGet上下载xktComm.dll:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
(2)开发UI界面开发 , 按照功能设计如下图所示:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
(3)UI界面设计完成之后 , 进行代码的编写 , 这里使用开源的mqtt库mqttnet , 仍然通过NuGet下载安装一下 , 这里选择版本为2.8.2 , 选择不同的版本 , 使用上会有一些区别:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
(4)先实现基本的MQTT连接服务器及断开连接:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
(5)基于委托创建日志处理对象及方法体:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
(6)确定并创建通信变量实体类及集合:
实际开发过程中 , 这里是基于CMSPro实现的 , 本案例用于测试 , 以读取以下四个变量为例(实际应用时变量数据及结构可能要比这复杂) , 如下图所示:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
按照这个结构 , 创建一个实体类 , 如下图所示:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
(7)Nuget添加Newtonsoft.Json , 引入JSON转换类 , 便于后续将对象转换成JSON格式字符串进行传输 。
(8)基于xktComm.dll与西门子PLC之间建立连接:
「新阁教育」面对万物互联的智能世界,你是否也想分一杯羹文章插图
(9)通过定时器定时向指定的主题发布实时数据: