C#MQTT编程10--MQTT项目应用--工业数据上云

1、文章回顾 

这个系列文章已经完成了9个内容,由浅入深地分析了MQTT协议的报文结构,并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中,这节继续上马一个项目应用,作为本系列的结束,奉献给伙伴们,真是帅呆了,我也是醉了,特别是第9节内容,那绝对是项目的经典,将技术应用到完美。

C#MQTT编程01--MQTT介绍_mqtt协议c#-CSDN博客

C#MQTT编程02--报文格式-CSDN博客

C#MQTT编程03--连接报文-CSDN博客

C#MQTT编程04--订阅报文_c#mqtt订阅消息-CSDN博客

C#MQTT编程05--发布报文-CSDN博客

C#MQTT编程06--MQTT服务器和客户端(winform版)_c# mqtt服务器-CSDN博客

C#MQTT编程07--MQTT服务器和客户端(wpf版)_c# 开发mqtt 服务器-CSDN博客

C#MQTT编程08--MQTT服务器和客户端(cmd版)_c# 编写mqtt服务端-CSDN博客

 C#MQTT编程09--MQTT项目实战--数据实时采集_利用mqtt 实现性能采集-CSDN博客

2、应用场景

 随着物联网技术的快速发展,工业互联网应运而生,工业互联网是指将互联网和物联网技术应用于工业生产和制造过程中,实现设备、工厂、企业和供应链等各种资源的智能互联,工业互联网云平台是将工业互联网与云计算相结合的平台,旨在为制造业提供全生命周期服务。

在这里需求就是将生产现场的PLC中的实际数据上传到云端,也就是工业数据上云,而数据上云,有多种方案,但MQTT肯定是非常强大的满足这方面要求,从而我们确定了通过MQTT协议实现工业数据上云,其应用模型是:

 在这个应用场景中,云端服务器就是MQTT服务器,上位机软件就是MQTT客户端,两者通过MQTT协议实现internet数据传输,处理,存储,应用,由此我们得到技术模型如下:

在这个应用中,我们的目的就是将现场PLC中的数据上传到internet,然后另一个应用程序从云端服务器获取数据并应用。

3、开始干

有了第9节的项目应用,这个应用的话就可以通俗多了,其实质也是实时数据采集,同样需要将数据发到服务器,但技术原理是一样的,不过这里数据是来自PLC,而PLC数据来自现场实际数据。

1、云端服务器搭建

云端服务器是一个MQTT服务器,具体搭建过程较复杂  

 

2、终端客户机搭建

对PLC不熟悉的可以看另一个系列文章,当然内容有些多,如果是PLC方面的工程师就好说,这里涉及欧姆龙PLC的FINS协议,内容较复杂,需要一些过程来消化。

C#上位机与欧姆龙PLC通信


 终端客户机是一个MQTT客户端,它有两个作用:

1)采集PLC的实时数据,注意是实时的,也就是每隔一定时间读取PLC的生产数据

2)将数据上传到MQTT服务器,这就需要发布主题这个操作

案例是采集欧姆龙PLC的数据,涉及数据有温度,湿度,转速,转角,设备状态,更多的指标数据是一样的,我们都可以将它写在EXCEL文件中

 3、工业客户端搭建

工业客户端其实也是一个MQTT客户端,它从MQTT服务器订阅数据,当服务器收到数据时,主动推送给这个客户端,客户端要怎么显示加载数据,都可以,可以是winform可以是wpf也可以是web网页,或者是手机的微信小程序,总之它是从服务器订阅数据,数据是从云端来的,而不是自己从哪里获取的,本项目中wpf窗体应用程序。

4、本地测试

 可以看到,成功订阅到了数据,加载完美,帅啊。

 5、云端部署

骚等,骚等

----------------

。。。。。。。。。。

4、小结

 随着数字化转型的加快和工业互联网平台的发展,工业企业云设备数据已成为一种趋势,通过云设备数据,工业企业可以更好地实现设备的智能化和自动化运行,提高生产效率和产品质量,也可以将设备数据转化为有价值的信息,为企业数字化转型提供基本的数据支持。

写作不易,图文不易,思路不易,打字不易,分享不易,多多点赞。 

欢迎伙伴们点赞,关注,收藏,抄袭,复制,分享,打赏,共同致富

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/734904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDT+yaml实现数据驱动接口自动化

前言 在之前的文章中我们知道了yaml文件可以进行接口自动化。除了yaml文件,Excel文档也可以用来编写自动化测试用例。 一定很想知道这两者有什么区别吧? 1、Excel使用简单,维护难,多种数据类型转换起来比较复杂 2、yaml学习稍…

Rust教程:How to Rust-变量

本文为第1篇 专栏简介 本专栏是优质Rust技术专栏,推荐精通一门技术栈的蟹友,不建议完全无计算机基础的同学 感谢Rust圣经开源社区的同学,为后来者提供了非常优秀的Rust学习资源 本文使用: 操作系统macOS Sonoma 14 / Apple M…

MySQL通过SQL语句进行递归查询

这里主要是针对于MySQL8.0以下版本,因为MySQL8.0版本出来了一个WITH RECURSIVE函数专门用来进行递归查询的 先看下表格数据,就是很普通的树结构数据,通过parentId关联上下级关系 下面我们先根据上级节点id递归获取所有的下级节点数据&#x…

Jenkins 节点该如何管理?

Jenkins 拥有分布式构建(在 Jenkins 的配置中叫做节点),分布式构建能够让同一套代码在不同的环境(如:Windows 和 Linux 系统)中编译、测试等 Jenkins 的任务可以分布在不同的节点上运行 节点上需要配置 Java 运行时环境,JDK 版本大于 1.5 节…

代码随想录算法训练营第day16|104.二叉树的最大深度 559.n叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数

104.二叉树的最大深度 559.n叉树的最大深度在 这几道题完全可以用二叉树层序遍历做,具体实现参考上一篇文章代码随想录算法训练营第day15|二叉树层序遍历、 226.翻转二叉树 ●、101.对称二叉树 2-CSDN博客

2024春招算法打卡-腾讯WXG

大数相乘 class Solution {public String multiply(String num1, String num2) {String ZERO_STR "0";String ONE_STR "1";// 其中一个为0直接返回0if(ZERO_STR.equals(num1) || ZERO_STR.equals(num2)){return ZERO_STR;}// 其中一个为1直接返回另一…

JAVA学习-IO.输入输出流

Java的输入输出流(IO)是用于与外部设备(如文件、网络连接等)进行数据交互的机制。IO流是Java中处理输入和输出的一种方式,它以流的方式来读取输入或写入输出。 Java的IO库包括了多个输入输出流类,常见的输入…

C语言-写一个简单的Web服务器(一)

基于TCP的web服务器 概述 C语言可以干大事,我们基于C语言可以完成一个简易的Web服务器。当你能够自行完成web服务器,你会对C语言有更深入的理解。对于网络编程,字符串的使用,文件使用等等都会有很大的提高。 关于网络的TCP协议在…

算法练习第十七天| 110.平衡二叉树 、 257. 二叉树的所有路径、 404.左叶子之和 [主要使用递归的方式]

110.平衡二叉树 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

zookeeper Study

zk介绍;一种分布式协调服务。 分布式锁,集群选举,数据同步 。 zk都能进行操作,redis,kafka,rabbitmq,都能够用zk做协调管理服务。关键时zk简单操作。 应用说明: 简单介绍一下流程 &…

芯片工程系列(2)传统封装(引线键合与裸片贴装)

英文缩写 Die:即为wafer上切割出来的芯片Wire Bonding:引线键合Dicing:晶圆切割Bias voltage:偏压lead frame:引线框架First Bond:一次键合Second Bond:二次键合PCB:印制电路板&…

JMH287亲测【鸣潮】一键内测风景端V1.0.2已整理并录制视频教学

资源介绍: 否需要虚拟机:否 文件大小:压缩包约15G 支持系统:win7、win10、win11 硬件需求:运行内存16G 4核及以上CPU独立显卡 资源截图: 下载地址: JMH287【鸣潮】一键端 [V1.0.2]

给攻击扫站惊喜大礼包,压缩文件空链接直接跳转50G大文件

给攻击扫站惊喜大礼包,压缩文件空链接直接跳转50G大文件 方法一 在 nginx 配置里加了个下载空连接 ZIP/RAR 等链接,直接跳转 50G 的大文件,正常链接不受影响 location ~ /(.*\.7z|.*\.zip|.*\.rar|.*\.tar|.*\.gz|.*\.tar\.gz)$ {if (!-f $re…

题解:CF1929C(Sasha and the Drawing)

题解:CF1929C(Sasha and the Drawing ) 一、 理解题意 CF链接 洛谷链接 大佬syz带着 a a a 元来到赌场,赌场的规则如下: 对于每一轮,假设选手下注 y y y 元钱( y y y 应正整数,并…

Java面试题分享

1、JAVA面试题分享 大家在找工作的的时候总是会看对应专业的面试题,java方面的更是层出不穷。 网络搜寻也很多,不知道看那个好。 我在这里分享我在找工作和平常会复习的一套面试题。 是之前在csdn的一个博主星球下载的。 里面包含了基础,集…

SpringMVC09、Ajax

9、Ajax 9.1、简介 AJAX Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互…

nodejs创建的‘无后缀‘文件Win11无法删除、无法修改后缀、360文件粉碎无法粉碎

版本信息 操作系统版本:win11nodejs:v14.16.0 场景: 接收了base64格式数据字符串(data:*/*;base64,xxxxxx就是这种样式的);要将其存储于本地。将字符串,号后的字符串转二进制写入本地。内容各种的都获取…

Spring Security的API Key实现SpringBoot 接口安全

Spring Security的API Key实现SpringBoot 接口安全 Spring Security 提供了各种机制来保护我们的 REST API。其中之一是 API 密钥。API 密钥是客户端在调用 API 调用时提供的令牌。 在本教程中,我们将讨论如何在Spring Security中实现基于API密钥的身份验证。 API…

CSP初赛备考—汉字与运算

汉字 英文字符 英文字符的编码有两种:①ASCII标准码,7位(128个字符)②ASCII扩展吗,8位(256个字符) 中文字符 汉字分为两级:①一级汉字:3755个,按汉语拼音字母的次序排列。②二级汉字:3008个,按偏旁部首排列。 那么,怎么编码呢?要使用区位码和字形码等等。 区…

Docker环境搭建和监控备份

1. 解释Docker中的容器和镜像的概念,并说明它们在环境搭建中的作用。 Docker中的容器和镜像是Docker最核心的概念,它们在环境搭建中扮演着至关重要的角色。 容器(Container): 容器是Docker环境中用于运行应用的实体…