轻松用C#+S7-1200+阿里云实现工业数据采集与监控「附源码」
写在前面(文中链接仅在文末的扩展链接有效)
前面我们分享了:
[智能制造]未来,我们需要什么样的自动化工程师?
现在各大物联网平台层出不穷,看似离我们很遥远,其实只要我们敢于去研究,敢于去发现,万物互联,近在咫尺之间。
今天给大家介绍一下,作为一个普通的.NET开发人员,如何不借助第三方的物联网平台,搭建一个简单实用的物联网平台框架。
一
物联网框架
此物联网框架是在上位机框架的基础上,结合物联网通信协议MQTT实现。上位机本身就集成有采集、归档及日志等功能,只需要在这个基础上,连接MQTT服务器之后,并向指定的主题Topic中发布相关的数据,相关的WEB、APP只需要订阅相应的主题,即可获取到数据。
整体软件框架如下图示所示:
图表 1 整体软件框架实现
从上图可以看出,整体软件基于MQTT协议搭建,依据此软件框架搭建的MQTT物联网拓扑图如下图所示:
图表 2 MQTT物联网平台拓扑图
二
框架实现
为了测试方便,这里选择西门子S7-1200 PLC作为下位机,采用西门子S7进行通信,上位机先与PLC进行通信,同时连接MQTT服务器,并向指定主题发布数据。
(1)首先创建一个新的Windows窗体应用,从NuGet上下载xktComm.dll:
图表 3 xktComm下载
(2)开发UI界面开发,按照功能设计如下图所示:
图表 4 MQTT客户端UI界面
(3)UI界面设计完成之后,进行代码的编写,这里使用开源的mqtt库mqttnet,仍然通过NuGet下载安装一下,这里选择版本为2.8.2,选择不同的版本,使用上会有一些区别:
图表 5 MQTTnet下载
(4)先实现基本的MQTT连接服务器及断开连接:
(5)基于委托创建日志处理对象及方法体:
(6)确定并创建通信变量实体类及集合:
实际开发过程中,这里是基于CMSPro实现的,本案例用于测试,以读取以下四个变量为例(实际应用时变量数据及结构可能要比这复杂),如下图所示:
表格 1通信变量列表
序号
变量名称
变量地址
变量类型
1
出口压力
DB100.DBD0
Float
2
入口压力
DB100.DBD4
Float
3
出口温度
DB100.DBD8
Float
4
入口温度
DB100.DBD12
Float
按照这个结构,创建一个实体类,如下图所示:
(7)Nuget添加Newtonsoft.Json,引入JSON转换类,便于后续将对象转换成JSON格式字符串进行传输。
(8)基于xktComm.dll与西门子PLC之间建立连接:
(9)通过定时器定时向指定的主题发布实时数据:
(10)在云服务器端开启MQTT服务器:
图表 6 MQTT服务器开启
(11)运行MQTT客户端,连接服务器,并点击开始定时:
图表 7 运行MQTT客户端
(12)连接成功后,可以观察到MQTT服务器中收到了来自MQTT客户端发来的信息:
图表 8 MQTT服务器接收消息
三
框架应用
当数据已经上传到MQTT服务器后,那么如果需要获取这些数据,只需要开发一个MQTT,并订阅那个主题,这样,MQTT服务器就会自动将相关的信息推送到客户端软件中,可以先用MQTT.fx测试一下,MQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端工具,支持通过Topic订阅和发布消息。打开MQTT.fx,输入正确的服务器地址、端口号、用户及密码,并订阅主题thinger后,就可以实时收到服务器发送过来的数据了,如下图所示:
图表 9 MQTT.fx应用
与此同时,我们也可以通过开发相关的WEB网页或者APP来获取数据,下面是一个简易APP的数据展示:
图表 10 TIA博途数据
图表 11 APP数据展示
四
整体总结
本文主要是基于MQTT协议实现了本地PLC控制器数据上传的过程。基于阿里云服务器,你可以在任意地方访问到本地PLC的实时数据,实现数据的远程上传。本文主要针对的是电气和工控人员,物联网必然是未来发展的趋势,建议所有的PLC工程师及电气工程师,都应该掌握一门编程语言,也许现在用不到,但未来总会用得到。
本文来源:dotNet工控上位机
往期推荐
斗地主、扫雷、贪吃蛇、潜水艇...盘点那些PLC“不务正业”骚操作[附代码]
哈工大被禁Matlab,美国用工业软件卡死中国制造?这只是开始...
西门子WinCC OA的冗余、分布式及混合模式浅析:从软件架构到实例应用
本田汽车遭工业型勒索软件攻击,致生产系统中断,工业安全任重道远
一份MES系统整体解决方案
从零开始基于西门子PLC用C#通过OPC编写一套简易车间能源信息系统(附代码)
西门子工业软件+Mendix,低代码让普通员工秒变技术员,你会被取代吗?
当西门子遇上施耐德:S7-1200&1500与M241的Ethernet通讯
从传统PLC、机器人、工艺编程过度转型到仿真与虚拟调试
写在面前(文中链接仅在文末扩展链接有效)
前面我们介绍了西门子,罗克韦尔,达索等的仿真体系:
一文带你全面了解各工业巨头的虚拟调试与仿真
罗克韦尔的虚拟调试与仿真最全合集
说说达索的数字化全家桶-达索工业软件一览
虚拟调试作为数字孪生的重要一环,在传统的PLC,机器人与工艺等领域都有它的诸多应用,比如前面所介绍的:
一文带你了解西门子整个虚拟调试与仿真软硬件体系
TIA配合Amesim、MCD、PDPS、Plant Simulation,这里有你想看的虚拟调试
当然,虚拟调试技术目前仅在汽车等少部分行业应用较广,不锅随着数字孪生技术的不断进步与自动化行业的不断发展,会越来越受到大家的关注与重视,毕竟这是Future~
来源:工业机器人培训
免责申明:本公众号所载文章为本公众号原创或根据网络搜索编辑整理,文章版权归原作者所有。因转载众多,无法找到真正来源,如标错来源,或对于文中所使用的图片,资料,下载链接中所包含的软件,资料等,如有侵权,请跟我们联系协商或删除,谢谢!
往期推荐
技术解读PROFINET、Ethernet/IP等7种主流工业以太网
数字化双胞胎-Plant Simulation工厂仿真高级应用
斗地主、扫雷、贪吃蛇、潜水艇...盘点那些PLC“不务正业”骚操作[附代码]
西门子WinCC OA的冗余、分布式及混合模式浅析:从软件架构到实例应用
哈工大被禁Matlab,美国用工业软件卡死中国制造?这只是开始...
本田汽车遭工业型勒索软件攻击,致生产系统中断,工业安全任重道远
一份MES系统整体解决方案
从零开始基于西门子PLC用C#通过OPC编写一套简易车间能源信息系统(附代码)
当西门子遇上施耐德:S7-1200&1500与M241的Ethernet通讯
相关问答
大佬们 给推荐推荐:专业SEW编码器连接线可以订制吗,SEW编...
[回答]一、打开鼠标地狱狂蛇的固定螺丝只有一个,在后面的大脚垫下。这样到挺方便,揭开脚垫,拧下螺丝就可以打开上盖了。打开上盖后,分离上盖灯和主板上的...