Skip to content

系统架构

止危采用分层架构,将数据采集、传输、存储、计算与展示解耦,方便按需扩展与替换组件。

总体架构

┌─────────────────────────────────────────────────────────────┐
│                        展示层(Presentation)                  │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐        │
│  │   Web 前端    │  │  可视化看板   │  │  告警中心     │        │
│  └──────────────┘  └──────────────┘  └──────────────┘        │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                        应用层(Application)                   │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐        │
│  │  项目管理     │  │  实时计算     │  │  告警引擎     │        │
│  └──────────────┘  └──────────────┘  └──────────────┘        │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                        数据层(Data)                          │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐        │
│  │  PostgreSQL   │  │  时序数据库   │  │   Redis      │        │
│  │  (元数据)     │  │  (采样数据)   │  │  (缓存/消息)  │        │
│  └──────────────┘  └──────────────┘  └──────────────┘        │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                        传输层(Transport)                     │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐        │
│  │    MQTT      │  │    HTTP      │  │   Modbus     │        │
│  └──────────────┘  └──────────────┘  └──────────────┘        │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                        采集层(Acquisition)                   │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐        │
│  │  振弦传感器 │ │  应变传感器 │ │  加速度计  │ │  位移计    │        │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘        │
└─────────────────────────────────────────────────────────────┘

核心模块

模块职责技术栈
shm-frontendWeb 前端、可视化看板、用户交互Vue 3 + TypeScript + Vite
shm-backend业务 API、实时计算、告警引擎待定(如 Go / Node.js / Python)
shm-collector数据采集网关、协议适配待定
shm-docs文档网站VitePress 1.6 + TypeScript

数据流

  1. 采集:传感器或数采仪将原始数据通过 MQTT/HTTP/Modbus 发送到采集网关。
  2. 解析:采集网关按设备协议解析,转换为止危标准数据报文。
  3. 路由:标准报文进入消息队列,按需分发给实时计算与持久化服务。
  4. 计算:实时计算模块提取特征值(最大值、最小值、均值、频谱等)。
  5. 存储:原始采样数据写入时序数据库,元数据与告警事件写入关系型数据库。
  6. 展示:前端通过 RESTful API 查询数据,在图表、看板与 3D 模型中呈现。
  7. 告警:告警引擎持续评估规则,触发后写入告警中心并发送通知。

核心概念

  • 项目:一个独立的管理单元,对应一个工程或合同。
  • 结构物:被监测的物理对象,如桥梁、建筑、风机。
  • 测点:结构物上的具体监测位置,如主跨 1/4 截面。
  • 传感器:实际采集数据的硬件设备。
  • 通道:传感器上的一个物理或逻辑数据通道。
  • 特征值:从原始信号中提取的统计或频域指标。
  • 告警规则:基于特征值或原始值的判断条件。

扩展性

  • 新传感器类型:通过插件机制扩展协议解析器。
  • 新算法:在实时计算层挂载自定义特征值算法。
  • 新可视化组件:前端看板支持自定义图表与 3D 组件。

下一步

基于 MIT 协议开源