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

1、框架实现

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

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

2、Iot传输实现

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

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

  • 创建一个控制台应用程序,取名为thinger.cn.IotDataTransfer,该项目用于和PLC通信,并将数据传输到阿里云服务器中的MySQL数据中,这里为了方便,直接将读取的字节数组转换16进制字符串进行传输。
  • 首先在Nuget服务器中搜索S7netplus,添加到项目中,如下图所示:

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

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

  • 添加完成之后,初始化PLC对象,然后连接PLC,连接成功后,开启一个定时器,编写程序如下所示:【公众号dotNet工控上位机:thinger_swj】

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

  • 运行程序后,结果如下所示:

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

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

3、Iot接收实现

  • 创建一个Windows窗体应用程序,取名为thinger.cn.IotDataReceiver,该项目用于从云服务器的MySQL数据库中查询数据,并将数据解析成需要的数值,然后进行显示。
  • 由于参数类型各种情况都有,因此针对参数创建了一个参数实体类,如下所示:

  • UI界面设计如下图所示:

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

  • 最终运行结果如下所示:

4、整体总结

随着越来越多的设备开始加入IIoT 网络(Industrial Internet of Things,工业物联网简称IIoT),诞生了很多向前发展的机会。IT与OT的融合将为工厂自动化、资产管理和生产制造执行系统提供开箱即用的集成解决方案。按目前的趋势发展下去,IT与OT之间的界限将逐渐消失,直到成为一个或相同的系统为止。本文主要从电气工程师的角度出发,让大家学会使用开源组件来搭建一个简单的物联网平台。

为了便于大家更好地学习, 新阁教育喜科堂将通过免费直播课的方式演示整个项目的部署及开发,通过完整的项目分析及编写,即使你是上位机初学者,也能带你实现项目所有功能,希望能给大家学习带来一些帮助。【公众号dotNet工控上位机:thinger_swj】

【C#上位机必看】你们要的Iot物联网项目来了的更多相关文章

  1. [转载] JAVA面试题和项目面试核心要点精华总结(想进大公司必看)

    JAVA面试题和项目面试核心要点精华总结(想进大公司必看) JAVA面试题和项目面试核心要点精华总结(想进大公司必看)

  2. LPC1768IAP(详解,有上位机)

    之前说了stm32的iap编程,今天天气真好,顺手就来说说lpc1788的iap编程(没看前面的请查看stm笔记下的内容) 首先是flash的算法,lpc1768并没有寄存器来让我们操作flash,他 ...

  3. [自娱自乐] 4、超声波测距模块DIY笔记(四)——终结篇·基于C#上位机软件开发

    前言 上一节我们已经基本上把超声波硬件的发射和接收模块全部做好了,接下来我们着手开发一个软硬结合的基于C#的平面定位软件! 目录 一.整体思路 二.效果提前展示 2-1.软件部分展示 2-2.硬件部分 ...

  4. C++ MFC实现基于RFID读写器的上位机软件

    C++ MFC实现基于RFID读写器的上位机软件 该博客涉及的完整工程托管在https://github.com/Wsine/UpperMonitor,觉得好请给个Star (/▽\=) 运行和测试环 ...

  5. 【资料目录收藏】.NET开发必看资料53个 经典源码77个

    简单描述:为大家整理了下载中心.net资料,都是比较热的,好评率比较高的,做了一个可收藏的下载目录,希望大家喜欢~ 基于.net构架的留言板项目大全源码 http://down.51cto.com/z ...

  6. 快速设计一个简单的WPF串口上位机

    最近一直在学习UWP,其中有的技术参考了WPF,所以又回头再来学习WPF,感觉学的东西很杂,必须记录一下,不然时间长了还得忘掉,于是申请开始写博客,将学习的心得记录一下,以备后用.这次是因为公司内训, ...

  7. Windows Phone开发人员必看资料

    win phone开发必看资料,下载地址收藏啦!收藏后可有选择性的下载,希望大家喜欢! 完整附件下载:http://down.51cto.com/data/414417 附件预览: Windows E ...

  8. .NET开发必看资料53个+经典源码77个

    目录0豆下载:http://down.51cto.com/data/426019 附件预览: 基于.net构架的留言板项目大全源码 http://down.51cto.com/zt/70 ASP.ne ...

  9. STM32_IAP详解(有代码,有上位机)

    Iap,全名为in applacation programming,即在应用编程,与之相对应的叫做isp,in system programming,在系统编程,两者的不同是isp需要依靠烧写器在单片 ...

随机推荐

  1. 构造 IPv6 报文

    #!/usr/bin/python from scapy.all import * a=IPv6(nh=58, src='fe80::214:f2ff:fe07:af0', dst='ff02::1' ...

  2. random模块python

    random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.random()    用于生成一个随机浮点数:range[0.0,1.0) ? 1 2 import ran ...

  3. 操作系统-文件系统(3)Linux目录配置

    文件系统通常采用分层结构实现:文件管理.目录管理.磁盘管理 文件控制块(File Control Block,FCB)是操作系统为每个文件建立的唯一数据结构,包含了全部文件属性. 通常把FCB汇集.组 ...

  4. A Distributional Perspective on Reinforcement Learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1707.06887v1 [cs.LG] 21 Jul 2017 In International Conference on ...

  5. Kafka内部实现原理

    Kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算. 1)Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开 ...

  6. DVWA之文件上传(二)

    <?php if( isset( $_POST[ 'Upload' ] ) ) { // Where are we going to be writing to? $target_path = ...

  7. 远程调试在Linux车机中的应用

    导读 在软件开发过程中,调试是必不可少的环节,嵌入式操作系统的调试与桌面操作系统的调试相比有很大差别,嵌入式系统的可视化调试能力比桌面操作系统要弱一点.对于导航这种业务场景比较复杂的程序开发,可视化调 ...

  8. 也谈基于Web的含工作流项目的一般开发流程

    项目包含的通用模块代码等我有时间一并剥离贡献出来(基于WebSocket的通知引擎,工作流整合模块,自定义表单,基于RBAC权限设计),最近太忙了,Web项目有一段时间没碰,有点生疏的感觉,主要在忙G ...

  9. 【原创】探索云计算容器底层之Cgroup

    一.什么是Cgroup,使用场景? 容器本质上是进程,既然是进程就会消耗掉系统资源,比如:CPU.内存.磁盘.网络带宽等,如果不加以限制,容器在某些情况下就会无限制地吃掉宿主机的系统资源,显然这不是我 ...

  10. 多商铺平台手机电脑自适应宣传展示平台店铺javassh项目代码线上

    部署运行:eclipse 建议使用jdk 1.8 + ,Tomcat 8.0 + 系统介绍: 1.网站后台采用主流的 SSH框架 jsp JSTL,网站前台采用Angular jS框架 2.网站前端采 ...