广告招募

当前位置:全球装备网 > 技术中心 > 所有分类

用低成本方式实现西门子PLC数据上云案例

2025年02月11日 15:04:48      来源:云南昌晖仪表制造有限公司 >> 进入该公司展台      阅读量:22

分享:

不得不说,是个比较奇怪的圈子,各种各样的项目需求都有,有的人就希望价格低,功能实现即可,有的人又不在乎价格,就要界面好看。最近有一个小伙伴又提出了这样的需求,用的方式,的成本,最少的代码,实现本地的PLC数据上云。如果想实现这种需求,大家就要站在巨人的肩膀上,用现成的轮子,将它们进行组装,变成自己的东西。那么这次,昌晖仪表就采用S7.NET+Log4Net+SQLSugar+MySQL来实现一个西门子PLC数据上云的案例。

1、框架实现

关于这4个组件,有一个共同点,那就是开源免费,这样大家就不用担心价格和的问题了,昌晖仪表先对这4个组件做一个简单的介绍:

组件名称          功能说明
S7.NET            西门子PLC的开源通信库
Log4Net         一款.NET下免费的日志工具
SQLSugar       一款轻量级、强大的ORM
MySQL           一款开源的关系型数据库

这个实现过程分为两部分,首先在阿里云服务器中部署一个MySQL数据库,一侧通过S7.NET采集西门子PLC,然后使用Log4Net直接插入到阿里云服务器中,另一侧通过SQLSugar从数据库进行查询解析,再进行显示。
在阿里云服务器中部署一个MySQL数据库

2、Iot传输实现

首先在PLC中准备好需要传输的数据,提前都数据到放到同一个存储区中,并且是连续的N个字节,这里以一个结构体为例,里面包含25个浮点数,占100个字节,如下图所示:
在PLC中准备好需要传输的数据

然后创建一个DB块,取名为IotDB,DB号为DB1,添加一个Iot结构体变量,如下图所示:



创建一个控制台应用程序,取名为.IotDataTransfer,该项目用于和PLC通信,并将数据传输到阿里云服务器中的MySQL数据中,这里为了方便,直接将读取的字节数组转换16进制字符串进行传输。


首先在Nuget服务器中搜索S7netplus,添加到项目中,如下图所示:

Nuget服务器添加项目S7netplus

接着搜索log4net,添加到项目中,如下图所示:

Nuget服务器中添加项目log4net

最后再搜索mysql,添加到项目中,如下图所示:

Nuget服务器中添加项目mysql

添加完成之后,初始化PLC对象,然后连接PLC,连接成功后,开启一个定时器,编写程序如下所示:

编写程序
定时器定时读取PLC数据,然后通过Log4Net直接存储到数据中,如下图所示:

定时器定时读取PLC数据,然后通过Log4Net直接存储到数据中
运行程序后,结果如下所示:

程序运行结果

使用SQLyog查看服务器数据库数据, 如下所示:

使用SQLyog查看服务器数据库数据

通过这种方式,我们可以很轻松实现PLC数据读取并存储到云端数据库中,初步实现了数据上云,接下来我们可以通过创建一个上位机程序,实现数据的查询、解析及显示。


3、Iot接收实现

创建一个Windows窗体应用程序,取名为.IotDataReceiver,该项目用于从云服务器的MySQL数据库中查询数据,并将数据解析成需要的数值,然后进行显示。

由于参数类型各种情况都有,因此针对参数创建了一个参数实体类,如下所示:

针对参数创建了一个参数实体类

UI界面设计如下图所示:

UI界面设计

这里采用多线程的方式,持续从数据库中进行数据查询,如果查询到数据,进行解析赋值,否则进行状态显示,代码如下所示:

持续从数据库中进行数据查询
最终运行结果如下所示:

最终运行结果

4、整体总结

随着越来越多的设备开始加入(Industrial Internet of Things,工业物联网简称IIoT),诞生了很多向前发展的机会。IT与OT的融合将为工厂自动化、资产管理和生产制造执行系统提供开箱即用的集成解决方案。按目前的趋势发展下去,IT与OT之间的界限将逐渐消失,直到成为一个或相同的系统为止。本文主要从仪表工程师的角度出发,让大家学会使用开源组件来搭建一个简单的物联网平台。
版权与免责声明:
1.凡本网注明"来源:全球装备网"的所有作品,版权均属于全球装备网,转载请必须注明全球装备网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。