C#实现数据采集系统-实现功能介绍

系统介绍

我们这里主要使用C#( .Net 6)来实现一个数据采集系统,从0到1搭建数据采集系统,从系统分析,功能拆解,到一一实现

数据采集

数据采集是企业信息化和数字化转型过程中的关键环节,它涉及到从生产设备、传感器、人员等各个环节收集数据,并将这些数据转化为有用的信息,以供分析和决策使用。尽管许多公司已经部署了企业资源规划系统(ERP)和制造执行系统(MES),但如果没有有效的数据采集机制,这些系统可能无法充分发挥其潜力。以下是一些具体的例子来说明数据采集的重要性和实施情况:

  1. 生产设备数据采集
    • 工厂中的机器设备通常会配备传感器来监测其运行状态,如温度、压力、速度等。这些数据可以通过数据采集系统实时收集,并传输到MES或ERP系统中。例如,一个注塑机的周期时间、故障率和产量数据可以被实时监控,帮助生产管理人员优化生产计划和维护计划。
  2. 质量控制数据采集
    • 在生产线上,质量检测设备可以自动检测产品是否符合标准。这些数据可以被采集并记录,用于后续的质量分析和改进。例如,一个自动化的视觉检测系统可以检测电子产品上的缺陷,并将结果实时反馈给MES系统。
  3. 物料追踪数据采集
    • 通过使用RFID(无线射频识别)标签或条形码,可以追踪物料在工厂中的流动。这些数据可以被采集并集成到ERP系统中,以实现库存管理和物料需求计划的自动化。
  4. 能源消耗数据采集
    • 工厂的能源管理系统可以收集水、电、气等能源的使用数据,这些数据对于优化能源使用和降低成本至关重要。例如,通过分析不同时间段的能耗数据,可以调整生产计划,以减少能源浪费。

数据采集的实现

几种方式:

  • 网关采集:使用智能网关在设备上进行数据采集,通过有线或者无线的方式将数据传回服务器
  • 上位机采集:如果设备有上位机系统,上位机压机对数据有采集和监控,可以同上位机进行数据转发
  • 服务器采集:在设备车间现场,部署服务器,对一个区域设备进行集中采集

项目

在项目中,我们尝尝会用到采集网关来实现数据采集,通常就是一个小小的网关盒子,配置上设备信息,还有不同采集点位的信息,就可以将采集数据点位和值通过http或者MQTT推送到云端了。
在这里插入图片描述

在这里插入图片描述

网关的缺点

但是,使用网关,往往有很多限制,而且价格从几百到几千都有,而且有的也有点位限制,便宜的几百可能只有60个点,128个点,无限点位的就可能上千了.

所以在这里,我们实现一个自己的数据采集系统,可以灵活配置,也没有点位限制。

系统说明

我们这里主要使用C#来实现一个简易的数据采集系统,从0到1搭建数据采集系统,从系统分析,功能拆解,到一一实现,然后还有C#进阶的技术讲解。
主要设计到的协议为:ModbusTCP和Mqtt

实现的系统分为三个阶段的版本

  1. 基础功能实现
  2. 系统优化:配置和封装
  3. 需求扩展

在这里插入图片描述

实现的效果:

在这里插入图片描述

要实现的功能

  1. PLC采集
    1. ModbusTcp
      1. 报文解析-实现
      2. 字节序分析优化
      3. 代码优化-反射
      4. Tcp通信沾包
    2. 单点循环采集
    3. 优化-分组采集
  2. 数据转发
    1. Mqtt协议
      1. Mqttnet使用
      2. 优化Mqtt控制类封装
    2. 变化发送
    3. 定时发送
  3. 系统优化
    1. 配置文件
      1. 配置文件化
      2. 序列化与反序列化
    2. 服务封装
    3. 时间(采集周期、推送周期)配置、功能(定时、变化推送)配置
    4. 多设备采集

实现的顺序

  1. ModbusTcp读功能实现
  2. 代码优化-字节序分析优化、封装
  3. 代码优化-反射
  4. 反射详解
  5. 优化2-Tcp粘包处理
  6. Mqtt转发-环境配置
  7. Mqtt使用
  8. Mqtt控制类封装
  9. 功能实现-Mqtt实现数据转发
  10. 系统参数配置文件化
  11. 服务封装、定时推送
  12. 变化推送
  13. 增加需求,时间配置,采集、发送周期
  14. 多设备采集

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

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

相关文章

jupyter_contrib_nbextensions安装失败问题

目录 1.文件路径长度问题 2.jupyter不出现Nbextensions选项 1.文件路径长度问题 问题: could not create build\bdist.win-amd64\wheel\.\jupyter_contrib_nbextensions\nbextensions\contrib_nbextensions_help_item\contrib_nbextensions_help_item.yaml: No su…

【艺术向】【素描创作记录】《如何为你的红颜知己创作一幅画像(之二)》

写在前面 之前分析过类似的创作过程,见博客【艺术向】【素描创作记录】《如何为你的红颜知己创作一幅画像》 本人业余时间修习素描多年,在此撰文记录《如何为你的红颜知己创作一幅画像(之二)》,博得对方好感&#xff…

Tracy 小笔记:微信小程序 mpx 雷达图的实现

使用文档: https://www.kancloud.cn/xchhhh/wx-chart/399337 https://github.com/xiaolin3303/wx-charts https://gitee.com/mirrors/wx-charts/#wx-charts 参数说明: https://github.com/xiaolin3303/wx-charts/issues/56 下载 dist 里的 wx-charts-…

替代JSON

确实存在多种数据存储格式,每种格式都有其特定的优势和适用场景。如果你正在寻找一种更易于人类阅读和编辑的数据格式,以下是一些替代 JSON 的选项: YAML (YAML Aint Markup Language): YAML 是一种直观的数据序列化格式,旨在使人…

C++常见问题

一、C入门基础 1.1、函数重载 函数重载允许在同一作用域内定义多个同名函数,只要这个函数的参数列表(即参数的数量,类型或者顺序不同) 如何支持:程序经过编译后,编译器会对程序中的函数按一定规则进行重…

设计模式-Git-其他

目录 设计模式? 创建型模式 单例模式? 啥情况需要单例模式 实现单例模式的关键点? 常见的单例模式实现? 01、饿汉式如何实现单例? 02、懒汉式如何实现单例? 03、双重检查锁定如何实现单例&#xff…

封装MAVSDK为JAR包并导出给其它Android工程用完整示例

效果: 未解锁状态 已执行解锁指令 已执行起飞指令 飞行中 已执行降落指令 已执行返航指令 实现步骤: 1.准备PX4容器并启动:

ip地址是电脑还是网线决定的

在数字化时代的浪潮中,网络已经成为了我们日常生活和工作不可或缺的一部分。当我们谈论网络时,IP地址无疑是一个核心的概念。然而,关于IP地址的分配和决定因素,很多人可能存在误解。有些人认为IP地址是由电脑决定的,而…

JMeter数据库连接操作及断言

一、数据库操作 应用场景: 接口自动化数据校验:用于验证接口返回的数据与数据库中的数据是否一致。特殊业务:处理一些与数据库相关的特殊业务逻辑。性能测试:测试数据库的性能,如查询、更新等操作的响应时间。 连接数…

springboot nacos的各种注解、手动操作监听配置变化(监听指定DataId/监听任何变化)

文章目录 springboot nacos监听配置变化(监听指定DataId/监听任何变化)监听任何配置变化Nacos注解NacosConfigurationPropertiesNacosValueNacosConfigListenerNacosInjectedNacosConfigServiceNacosNamingService springboot nacos监听配置变化&#xf…

QT--事件(丰富操作,高级功能)

一、事件 1.事件与信号的区别 事件来自外部,是随机发生的。信号来自内部,是主动发生的。有点像外中断和内中断的区别。事件:适用于处理系统级别的输入和状态变化,种类繁多,能够应对复杂的交互需求。信号/槽&#xff…

二分查找 | 绝对差值和

题目&#xff1a;1818. 绝对差值和 给你两个正整数数组 nums1 和 nums2 &#xff0c;数组的长度都是 n 。 数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|&#xff08;0 < i < n&#xff09;的 总和&#xff08;下标从 0 开始&#xff09;。 你…

中国 X86 CPU 技术源自何方

注&#xff1a; 原文发布于 2017 年&#xff0c;两篇合二为一。未与作者沟通&#xff0c;侵权&#xff0c;立删。 导语&#xff1a; Intel 对 X86 的授权有着极为严格的限制&#xff0c;那么上海兆芯的 X86 芯片技术到底从何而来&#xff1f;ZX-C 目前的短板在哪里&#xff1f;…

pytorch 46 将ASpanFormer模型导出onnx运行

ASpanFormer是一个2022年8月份发布的算法,其主要步骤与LoFTR模型类似,因此无法导出为onnx模型。根据ASpanFormer论文中的数据与效果图,可以确定AsPanFormer是可以作为一个比SP+SG更为有效的方案,其在标准数据集上的效果优于SP+SG,在速度上远超SP+SG,与LoFTR接近;在预测点…

k8s安装powerjob

k8s安装powerjob k8s安装powerjob 1、mysql mkdir -p ~/powerjob-ymlkubectl create ns powerjobcat > ~/powerjob-yml/powerjob-mysql.yml << EOF apiVersion: v1 kind: ConfigMap metadata:name: powerjob-mysql-confignamespace: powerjob data:my.cnf: |[mysql…

【深度学习入门项目】多层感知器(MLP)实现手写数字识别

多层感知器&#xff08;MLP&#xff09;实现手写数字识别 导入必要的包获得软件包的版本信息 下载并可视化数据查看一个batch的数据查看图片细节信息设置随机种子 定义模型架构Build model_1Build model_2 Train the Network (30 marks)Train model_1Train model_1Visualize th…

理解Go 语言中读写锁 RWMutex

读写锁是计算机程序并发控制的一种针结互斥锁优化的同步机制,也称 “共享-互斥锁” 、多读单写锁等,用于处理大量读、少量写的场景。读操作之间可并发进行,写操作之间是互斥的,读和写又是互斥的。这意味着多个 goroutine 可以同时读数据,但写数据时需要获得一个独占的锁。…

mac电脑显示隐藏文件

方法一&#xff1a; 第一步&#xff1a;打开「终端」应用程序。 第二步&#xff1a;输入如下命令&#xff1a; defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder 第三步&#xff1a;按下「Return」键确认。 现在你将会在 Finder 窗口中…

AI+X活动开放报名!Datawhale来南京了

Datawhale线下 主办方&#xff1a;讯飞开放平台、Datawhale、GDG南京 AIX 主题活动今年将走进 10 个城市&#xff0c;100 所高校&#xff0c;目前已经走进32所高校&#xff0c;以及北京、深圳、上海、杭州、武汉五个城市&#xff0c;南京是第六个城市&#xff0c;时间7月27号。…

IP-Trunk简介

定义 IP-Trunk是将多个链路层协议为HDLC的POS接口捆绑到一起&#xff0c;形成一条逻辑上的数据链路&#xff0c;以提供更高的连接可靠性和更大的带宽&#xff0c;实现流量负载分担。 目的 POS是一种应用在城域网及广域网中的技术&#xff0c;利用SONET/SDH提供的高速传输通道…