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.rhkb.cn/news/380992.html

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

相关文章

数据结构之细说链表

1.1顺序表的问题以及思考 经过上一篇顺序表的学习,我们知道顺序表还是有很多缺点 顺序表的缺点: 1.中间/头部的插入删除,实际复杂度为O(N) 2.增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗 3.扩容一般…

实战打靶集锦-31-monitoring

文章目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 ssh服务4.2 smtp服务4.3 http/https服务 5. 系统提权5.1 枚举系统信息5.2 枚举passwd文件5.3 枚举定时任务5.4 linpeas提权 6. 获取flag 靶机地址:https://download.vulnhub.com/monitoring/Monitoring.o…

【BUG】已解决:python setup.py bdist_wheel did not run successfully.

已解决:python setup.py bdist_wheel did not run successfully. 目录 已解决:python setup.py bdist_wheel did not run successfully. 【常见模块错误】 解决办法: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主…

(二)原生js案例之数码时钟计时

原生js实现的数字时间上下切换显示时间的效果&#xff0c;有参考相关设计&#xff0c;思路比较难&#xff0c;代码其实很简单 效果 代码实现 必要的样式 <style>* {padding: 0;margin: 0;}.content{/* text-align: center; */display: flex;align-items: center;justif…

NOIP2015 推销员

这里如果按照距离来考虑就太复杂了&#xff0c;于是转化对象&#xff0c;考虑客户 证明&#xff1a; 假设我们选的疲劳值最大的前X个的最远的一个的距离为 S 1 S_{1} S1​&#xff0c;那么可以知道&#xff0c;一定不会存在一个更优的方案&#xff0c;使得这个方案的最远的距离…

(一)万字长文系列,redolog看这篇就够了 —— redolog的作用?写入方式是什么?什么是日志文件组?redolog的写入策略是怎样的?

导语 MySQL是一种广泛使用的开源关系型数据库管理系统&#xff0c;由瑞典公司MySQL AB开发&#xff0c;现由Oracle公司维护。它以其高性能、可靠性和易用性而著称&#xff0c;广泛应用于各种Web应用程序。MySQL支持多种操作系统&#xff0c;包括Windows、Linux和macOS&#xf…

Kafka Producer发送消息流程之分区器和数据收集器

文章目录 1. Partitioner分区器2. 自定义分区器3. RecordAccumulator数据收集器 1. Partitioner分区器 clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java&#xff0c;中doSend方法&#xff0c;记录了生产者将消息发送的流程&#xff0c;其中有一步…

【自动化测试】几种常见的自动化测试框架

在软件测试领域&#xff0c;自动化测试框架有很多&#xff0c;这里主要介绍几种常用的自动化测试框架。 1.pytest pytest 是 Python 的一种单元测试框架&#xff0c;与 Python 自带的 unittest 测试框架类似&#xff0c;但是比 unittest 框架使用起来更简洁&#xff0c;效率更高…

UDP详细总结

UDP协议特点 UDP是无连接的传输层协议&#xff1b; UDP使用尽最大努力交付&#xff0c;不保证可靠交付&#xff1b; UDP是面向报文的&#xff0c;对应用层交下来的报文&#xff0c;不合并&#xff0c;不拆分&#xff0c;保留原报文的边界&#xff1b; UDP没有拥塞控制&#…

[集成学习]基于python的Stacking分类模型的客户购买意愿分类预测

1 导入必要的库 import pandas as pd import numpy as np import missingno as msno import matplotlib.pyplot as plt from matplotlib import rcParams import seaborn as sns from sklearn.metrics import roc_curve, auc from sklearn.linear_model import LogisticRegres…

【C#】计算两条直线的交点坐标

问题描述 计算两条直线的交点坐标&#xff0c;可以理解为给定坐标P1、P2、P3、P4&#xff0c;形成两条线&#xff0c;返回这两条直线的交点坐标&#xff1f; 注意区分&#xff1a;这两条线是否垂直、是否平行。 代码实现 斜率解释 斜率是数学中的一个概念&#xff0c;特别是…

改变你对文本生成程序的误解!用C++标准库,MinGW情况下,写一个文本生成器(一种AI)

声明:我这个不是那种“文本生成器” 我之前见过那种“自动写作文”的程序,无非就是这样的文章: 文章写的只有主题,没有内容 我曾多次向我的朋友提问他们看没看过那种AI写作的代码,而给我的回复很简单:你弄那玩楞干哈?装*?那玩楞我见过,写的文章空有其表,没有其实;…

Java并发04之线程同步机制

文章目录 1 线程安全1.1 线程安全的变量1.2 Spring Bean1.3 如果保证线程安全 2 synchronized关键字2.1 Java对象头2.1.1 对象组成部分2.1.2 锁类型2.1.3 锁对象 2.2 synchronized底层实现2.2.1 无锁状态2.2.2 偏向锁状态2.2.3 轻量级锁状态2.2.4 重量级锁2.2.5 锁类型总结2.2.…

windows USB 设备驱动开发-编写 UCSI 客户端驱动程序

编写 UCSI 客户端驱动程序 USB Type-C 连接or 系统软件接口&#xff08;UCSI&#xff09;驱动程序充当带有嵌入式控制器&#xff08;EC&#xff09;的 USB Type-C 系统的控制器驱动程序。 如果实现平台策略管理器&#xff08;PPM&#xff09;的系统&#xff0c;如 UCSI 规范中…

国产化低功耗HDMI转VGA方案,大量出货产品,广泛应用在显示器以及广告机产品

芯片描述&#xff1a; 兼具高性能和低成本效益的优点&#xff0c;是一款可以将高清视频 HDMI1.4 数字信号转换成 VGA 模拟信号输出的芯片。不需要提供外部电源&#xff0c;ICNM7301 就可以在正常模式下使用&#xff1b;ICNM7301 广 泛适用于各种市场系统和显示应用体系&#x…

LabVIEW异步和同步通信详细分析及比较

1. 基本原理 异步通信&#xff1a; 原理&#xff1a;异步通信&#xff08;Asynchronous Communication&#xff09;是一种数据传输方式&#xff0c;其中数据发送和接收操作在独立的时间进行&#xff0c;不需要在特定时刻对齐。发送方在任何时刻可以发送数据&#xff0c;而接收…

2024年广东省安全员B证第四批(项目负责人)证模拟考试题库及广东省安全员B证第四批(项目负责人)理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年广东省安全员B证第四批&#xff08;项目负责人&#xff09;证模拟考试题库及广东省安全员B证第四批&#xff08;项目负责人&#xff09;理论考试试题是由安全生产模拟考试一点通提供&#xff0c;广东省安全员B证…

手持式气象站:便携科技,掌握微观气象的利器

手持式气象站&#xff0c;顾名思义&#xff0c;是一种可以随身携带的气象监测设备。它小巧轻便&#xff0c;通常配备有温度、湿度、风速、风向、气压等多种传感器&#xff0c;能够实时测量并显示各种气象参数。不仅如此&#xff0c;它还具有数据存储、数据传输、远程控制等多种…

kafka开启kerberos和ACL

作者&#xff1a;恩慈 一、部署kafka-KB包 1&#xff0e;上传软件包 依次点击 部署中心----部署组件----上传软件包 选择需要升级的kafka版本并点击确定 2&#xff0e;部署kafka 依次点击部署中心----部署组件----物理/虚拟机部署----选择集群----下一步 选择手动部署-…

MongoDB自学笔记(四)

一、前文回顾 上一篇文章中我们学习了MongoDB中的更新方法&#xff0c;也学了一部分操作符。今天我们将学习最后一个操作“删除”。 二、删除 原始数据如下&#xff1a; 1、deleteOne 语法&#xff1a;db.collection.deleteOne(< query >,< options >) 具体参…