【数字孪生】动环设备实时监控之实时数据采集系统设计

数采监控

  • 前言
  • 系统分析
    • 数据采集方式
    • 数据采集流程
    • 实时数据采集
      • 表结构设计
        • 实时采集表(realtime_collection)
        • 历史数据表(historical_data)
    • 数据存储与归档

前言

目前,我参与了一项关于机房数字孪生的项目,这是其系统设计的一部分内容:实时数据采集系统设计(实时数采系统设计)。
实时数采是动环监控系统中的重要组成部分,用于实时获取设备的监测数据并进行处理和展示。

系统分析

数据采集方式

  • 主动采集:系统定时向设备发送请求,获取最新的数据。例如通过动环监控单元 FSU 提供的 WebAPI 去主动获取设备的数据。
  • 被动采集:设备主动将数据推送给系统,从而获取最新的数据。例如利用设备支持的通信协议(如MODBUS、OPC、MQTT等)建立与设备的通信连接,接收设备发送的实时数据或事件。

数据采集流程

当确定好数据采集方式以后,就可以与设备进行通信啦,然后接收数据,其采集流程如下:

数据采集流程
获取设备信息
获取信号信息
实时数据采集
数据存储与归档
数据清理
  1. 获取设备信息:通过设备编码从设备信息表中获取设备的详细信息,包括设备名称、设备类型、设备型号等。
  2. 获取信号信息:根据设备编码从信号信息表中获取该设备的所有信号信息,包括信号编码、信号名称、信号类型等。
  3. 实时数据采集:通过设备编码和信号编码向设备进行数据采集,获取实时的监测值。采集的数据包括设备编码、信号编码、监测值以及采集时间等。
  4. 数据存储与归档:将实时采集的数据存储到实时采集表中。根据归档策略,定期将过时的数据从实时采集表中移动到历史数据表中,以保持实时采集表的数据量较小且查询性能良好。
  5. 数据清理:定期清理历史数据表中的过时数据,以防止数据库存储空间过度占用。

实时数据采集

实时数据采集需要存入到实时采集表中,实时数据可以按设备类型存入相对应的实时采集表中,例如动环设备 UPS 的实时信号采集值可以存入到 UPS 的实时采集表中;按时间存入相对应的实时采集表中,例如2023年06月24号08点00分00秒的所有设备的实时数据就可以存入相关时间段的表中。

系统 采集器 实时采集表 历史数据表 监听数据 收发数据 数据存入 数据读取 数据存入(通过某些逻辑自动存入) 数据读取 系统 采集器 实时采集表 历史数据表

表结构设计

实时采集表用于记录并存储每次采集到的实时数据,包括设备ID、信号ID、采集值、采集时间等字段;历史数据表用于记录过时的实时采集表里面的数据,分担减轻实时采集表的数据压力。

这样的设计可以有效地轻松地存储和查询实时采集的数据,同时与设备和信号的表进行关联。通过将实时采集数据存储在单独的表中,可以更好地管理和分析实时数据,以满足对数据的快速查询和分析需求。

实时采集表(realtime_collection)

字段名 数据类型 描述
id bigint 主键
device_code varchar(36) 设备编码
signal_code varchar(36) 信号编码
value double 监测值
collect_time datetime 采集时间

历史数据表(historical_data)

字段名 数据类型 描述
id bigint 主键
device_code varchar(50) 设备编码
signal_code varchar(50) 信号编码
value double 监测值
collect_time datetime 采集时间

数据存储与归档

  • 定时任务调度:选择一个系统负载较低的时间段来执行数据迁移任务。可以根据系统的访问模式和历史数据分析,确定一个适当的时间窗口。例如,在深夜或非高峰时段执行迁移任务。
  • 数据库锁定和事务管理:在迁移过程中,确保适当的数据库锁定和事务管理,以保证数据的完整性和一致性。避免对实时采集数据表进行写操作,以免影响正在访问的用户。
  • 数据库复制和同步:如果系统需要保持实时采集数据的可用性,并且有大量用户在访问,可以考虑使用数据库复制和同步技术。在迁移过程中,将实时采集数据表复制到目标数据库中,并保持数据的实时同步,然后在较低访问时段将历史数据迁移到历史数据表中。
  • 渐进迁移:为了减少对系统的影响,可以采用渐进迁移的方式。逐步将过时的实时采集数据移动到历史数据表,而不是一次性迁移所有数据。这样可以分散迁移任务的负载,并逐步验证数据迁移的正确性。
  • 监控和回滚机制:在数据迁移过程中,建议设置监控和日志记录机制,以便及时发现异常情况,并具备回滚机制。如果迁移任务出现问题,可以回滚到迁移之前的状态,以避免数据丢失或损坏。

你可能感兴趣的:(PLC,嵌入式实时数据库)