系统介绍
我们这里主要使用C#( .Net 6)来实现一个数据采集系统,从0到1搭建数据采集系统,从系统分析,功能拆解,到一一实现
数据采集
数据采集是企业信息化和数字化转型过程中的关键环节,它涉及到从生产设备、传感器、人员等各个环节收集数据,并将这些数据转化为有用的信息,以供分析和决策使用。尽管许多公司已经部署了企业资源规划系统(ERP)和制造执行系统(MES),但如果没有有效的数据采集机制,这些系统可能无法充分发挥其潜力。以下是一些具体的例子来说明数据采集的重要性和实施情况:
- 生产设备数据采集 :
- 工厂中的机器设备通常会配备传感器来监测其运行状态,如温度、压力、速度等。这些数据可以通过数据采集系统实时收集,并传输到MES或ERP系统中。例如,一个注塑机的周期时间、故障率和产量数据可以被实时监控,帮助生产管理人员优化生产计划和维护计划。
- 质量控制数据采集 :
- 在生产线上,质量检测设备可以自动检测产品是否符合标准。这些数据可以被采集并记录,用于后续的质量分析和改进。例如,一个自动化的视觉检测系统可以检测电子产品上的缺陷,并将结果实时反馈给MES系统。
- 物料追踪数据采集 :
- 通过使用RFID(无线射频识别)标签或条形码,可以追踪物料在工厂中的流动。这些数据可以被采集并集成到ERP系统中,以实现库存管理和物料需求计划的自动化。
- 能源消耗数据采集 :
- 工厂的能源管理系统可以收集水、电、气等能源的使用数据,这些数据对于优化能源使用和降低成本至关重要。例如,通过分析不同时间段的能耗数据,可以调整生产计划,以减少能源浪费。
数据采集的实现
几种方式:
- 网关采集:使用智能网关在设备上进行数据采集,通过有线或者无线的方式将数据传回服务器
- 上位机采集:如果设备有上位机系统,上位机压机对数据有采集和监控,可以同上位机进行数据转发
- 服务器采集:在设备车间现场,部署服务器,对一个区域设备进行集中采集
项目
在项目中,我们尝尝会用到采集网关来实现数据采集,通常就是一个小小的网关盒子,配置上设备信息,还有不同采集点位的信息,就可以将采集数据点位和值通过http或者MQTT推送到云端了。
![](https://i-blog.csdnimg.cn/direct/554fd71b75e5458eb60521c21a02e1de.png)
网关的缺点
但是,使用网关,往往有很多限制,而且价格从几百到几千都有,而且有的也有点位限制,便宜的几百可能只有60个点,128个点,无限点位的就可能上千了.
所以在这里,我们实现一个自己的数据采集系统,可以灵活配置,也没有点位限制。
系统说明
我们这里主要使用C#来实现一个简易的数据采集系统,从0到1搭建数据采集系统,从系统分析,功能拆解,到一一实现,然后还有C#进阶的技术讲解。
主要设计到的协议为:ModbusTCP和Mqtt
实现的系统分为三个阶段的版本
- 基础功能实现
- 系统优化:配置和封装
- 需求扩展
![](https://i-blog.csdnimg.cn/direct/2b47d1accbb74f048272e11b848a9267.png)
实现的效果:
![](https://i-blog.csdnimg.cn/direct/6b7785caf1f944f1806809c5d63ac68e.png)
要实现的功能
- PLC采集
- ModbusTcp
- 报文解析-实现
- 字节序分析优化
- 代码优化-反射
- Tcp通信沾包
- 单点循环采集
- 优化-分组采集
- ModbusTcp
- 数据转发
- Mqtt协议
- Mqttnet使用
- 优化Mqtt控制类封装
- 变化发送
- 定时发送
- Mqtt协议
- 系统优化
- 配置文件
- 配置文件化
- 序列化与反序列化
- 服务封装
- 时间(采集周期、推送周期)配置、功能(定时、变化推送)配置
- 多设备采集
- 配置文件
实现的顺序
- ModbusTcp读功能实现
- 代码优化-字节序分析优化、封装
- 代码优化-反射
- 反射详解
- 优化2-Tcp粘包处理
- Mqtt转发-环境配置
- Mqtt使用
- Mqtt控制类封装
- 功能实现-Mqtt实现数据转发
- 系统参数配置文件化
- 服务封装、定时推送
- 变化推送
- 增加需求,时间配置,采集、发送周期
- 多设备采集