第一章 系统概述
IoT 智能监控平台面向工业物联网,支持设备接入、实时遥测、历史查询、规则告警、ISA-95 工厂建模、可视化组态、趋势预测、看板设计及开放 API。
第二章 系统架构
2.1 系统架构图
数据流简述:
- 设备 → MQTT/OPC → 接入网关(协议解析、鉴权、标准化)
- 标准化消息 → Kafka(削峰、解耦、回放)
- 消费端并行:写时序库 + 规则引擎 + 实时聚合 + SignalR 推送
- 元数据(设备、点位、规则、图表)→ PostgreSQL
- 前端通过 REST + SignalR 做实时监控,通过时序 API 做历史查询
2.2 技术架构图
下图展示前端技术栈、YARP 网关、ASP.NET Core 8 微服务、Iot.Infrastructure 共享层及开源中间件的完整技术组成与依赖关系。
后端 (.NET 8)
| 模块 | 推荐技术 | 说明 | | --- | --- | --- | | Web API | ASP.NET Core 8 Minimal API / Controller | 统一网关 + 各微服务 | | 实时通信 | SignalR + Redis Backplane | 多实例推送、订阅点位变化 | | 消息队列 | Apache Kafka(首选)或 RabbitMQ | 海量吞吐、可回放 | | MQTT Broker | EMQX 集群 | 百万连接、规则桥接 Kafka | | 时序数据库 | TDengine 或 TimescaleDB | 海量写入 + 高效聚合查询 | | 关系库 | PostgreSQL 16 | 设备/点位/用户/规则/图表元数据 | | 缓存 | Redis Cluster | 设备在线状态、最新值、规则上下文 | | 对象存储 | MinIO | 报表导出、固件、图表快照 | | 日志检索 | Elasticsearch + Serilog | 告警日志、操作审计 | | 任务调度 | Hangfire 或 Quartz.NET | 定时报表、数据归档 | | 规则引擎 | NRules + 自研 DSL,或 Microsoft RulesEngine | 阈值、组合条件、联动 | | ORM | EF Core 8 + Dapper(时序热点查询) | 元数据用 EF,时序用原生 SQL | | 认证 | IdentityServer / Keycloak + JWT | RBAC、多租户 | | API 文档 | Swagger / OpenAPI | 前后端协作 | | 容器编排 | Kubernetes + Docker | 水平扩展 |
前端 (Vue 2)
| 模块 | 推荐技术 | 说明 | | --- | --- | --- | | 框架 | Vue 2.7 + Vue Router + Vuex | 与你要求一致 | | UI | Element UI 2.x | 管理后台成熟方案 | | 实时 | @microsoft/signalr | 订阅点位实时值 | | 图表 | ECharts 5 + vue-echarts | 实时曲线、历史趋势、大屏 | | 看板设计器 | Grid Layout + JSON Schema | 拖拽式图表/组件定义 | | HTTP | Axios + 请求拦截 | Token、租户头 | | 表格 | vxe-table | 海量点位列表虚拟滚动 | | 构建 | Vue CLI / Webpack 5 | 生产打包 |
海量场景关键选型
| 场景 | 选型 | 原因 | | --- | --- | --- | | 设备接入 | EMQX + 边缘网关 | 单集群百万连接,规则直接转发 Kafka | | 时序写入 | TDengine 超级表 | 按设备/点位自动分表,压缩比高,聚合快 | | 实时推送 | SignalR + Redis | 避免每个 API 实例维护全量 WebSocket | | 规则计算 | Kafka Consumer 独立服务 | 与写入解耦,可单独扩容 | | 历史查询 | 时序库 + 预聚合表 | 原始 1s 数据 + 1min/1h 降采样 |
2.3 微服务端口
| 服务 | 端口 | 职责 | | --- | --- | --- | | Gateway | 5000 | API 网关 | | Device.Api | 5001 | 设备/点位/规则 | | Telemetry.Api | 5002 | 遥测 | | Analytics.Api | 5003 | 分析 | | Alert.Api | 5004 | 告警/预测 | | Dashboard.Api | 5005 | 看板 | | Visual.Api | 5006 | 组态 | | Admin.Api | 5008 | 系统管理 | | Realtime.Hub | 5010 | SignalR | | 前端 | 8080 | Web UI |
第三章 部署说明
3.1 环境要求
- .NET 8 SDK
- Node.js 18+
- PostgreSQL/TimescaleDB
- Redis/Valkey
- Kafka
- Docker(可选)
3.2 一键启动
1. 安装依赖后双击 start-all.bat
2. 自动启动 Docker 基础设施(或本地 PG/Redis/Kafka)
3. 编译并启动全部微服务与前端、遥测模拟器
4. 访问 http://localhost:8080,网关 http://localhost:5000
3.3 一键停止
运行 stop-all.bat 关闭全部服务。
3.4 Docker 全量部署
1. docker compose -f deploy/docker-compose/docker-compose.yml up -d
2. 包含 TimescaleDB、Valkey、Kafka、全部 API 与前端容器
3.5 验证
运行 deploy/scripts/test-all-apis.ps1 进行 API 自动化验证。
第四章 系统登录
4.1 功能说明
账号密码登录,JWT 认证,按角色加载动态菜单。
4.2 操作步骤
1. 访问 http://localhost:8080
2. 输入 admin / admin123
3. 点击登录进入看板
4.3 界面截图
第五章 监控看板
5.1 功能说明
展示设备总数、在线设备、活跃告警、采集点位统计卡片,以及 SignalR 实时遥测折线图。
5.2 操作步骤
登录后默认进入本页;观察统计卡片数值;实时曲线随模拟器上报自动刷新。
5.3 界面截图
监控看板主界面
第六章 实时监控
6.1 功能说明
分页展示全部点位的设备名、点位名、编码、当前值、单位、质量码、更新时间;支持手动刷新与 SignalR 实时推送。
6.2 操作步骤
菜单「实时监控」→ 查看表格;点击「刷新」拉取最新值;开启「SignalR实时」接收推送;底部分页切换。
6.3 界面截图
实时监控列表
第七章 设备管理
7.1 功能说明
设备列表支持搜索、分页;可展开行查看下属点位;支持新增/编辑/删除设备及绑定 ISA-95 工厂节点。
7.2 操作步骤
菜单「设备管理→设备列表」;搜索框输入关键字回车;「新增设备」填写表单;展开行管理点位;「点位管理」跳转专用页。
7.3 界面截图
设备列表
新增设备对话框
第八章 点位管理
8.1 功能说明
按设备筛选点位,支持采集点位与计算点位(公式 avg/max/min 等),提供公式验证与分页。
8.2 操作步骤
菜单「点位管理」;下拉选择设备;「新增点位」配置类型与公式;计算点位点击「验证公式」。
8.3 界面截图
点位管理
第九章 历史查询
9.1 功能说明
多点位、时间范围、粒度(原始/1m/1h/1d)时序查询,ECharts 折线图与表格,支持 CSV 导出。
9.2 操作步骤
菜单「历史查询」;选择点位与时间;选粒度后点「查询」(默认自动加载近24小时);「导出CSV」下载。
9.3 界面截图
历史查询
第十章 规则引擎
10.1 功能说明
阈值/表达式规则,作用域为点位/设备/分组;支持可视化条件、告警级别、持续时间及启停。
10.2 操作步骤
菜单「规则引擎」;「新增规则」配置条件;列表开关启停;编辑或删除规则。
10.3 界面截图
规则列表
新增规则
第十一章 告警中心
11.1 功能说明
按全部/活跃/已确认/已解决 Tab 分页查看告警,支持确认与解决。
11.2 操作步骤
菜单「告警中心」;切换 Tab;对活跃告警「确认」或「解决」。
11.3 界面截图
告警中心
第十二章 物可视
12.1 功能说明
场景列表管理 2D/3D/地图组态;设计器拖拽节点绑定点位;全屏场景监控。
12.2 操作步骤
「场景列表」管理场景;「设计」进入组态;「监控」全屏运行。
12.3 界面截图
场景列表
组态设计
场景监控
第十三章 趋势分析
13.1 功能说明
多点位趋势分析,数据清洗与 Z-Score 异常点标注。
13.2 操作步骤
菜单「趋势分析」;选点位与时间;配置清洗后「分析」。
13.3 界面截图
趋势分析
第十四章 预测分析
14.1 功能说明
SSA 时序预测,可配置预测点数、训练窗口及清洗选项。
14.2 操作步骤
菜单「预测分析」;选点位与参数;「开始预测」等待完成。
14.3 界面截图
预测分析
第十五章 看板设计
15.1 功能说明
拖拽式自定义看板,绑定点位实时数据。
15.2 操作步骤
菜单「看板设计」;选择看板;拖入组件并绑定点位后保存。
15.3 界面截图
看板设计
第十六章 开放 API
16.1 功能说明
管理对外 API 客户端,生成 ApiKey/Secret,配置权限与启停。
16.2 操作步骤
菜单「开放 API」;「新增客户端」;分页管理密钥。
16.3 界面截图
开放API管理
第十七章 工厂建模
17.1 功能说明
ISA-95 树形模型,节点 CRUD 及设备绑定。
17.2 操作步骤
菜单「工厂建模」;维护树节点;「绑定设备」挂接设备。
17.3 界面截图
工厂建模

第十八章 用户管理
18.1 功能说明
用户增删改查、角色分配(admin 不可删)。
18.2 操作步骤
「用户管理」→ 新增/编辑用户;底部分页浏览。
18.3 界面截图
用户管理
第十九章 角色管理
19.1 功能说明
角色维护及菜单权限树勾选。
19.2 操作步骤
「角色管理」→ 编辑角色勾选菜单权限。
19.3 界面截图
角色管理
第二十章 菜单管理
20.1 功能说明
动态菜单配置,影响登录后侧边栏。
20.2 操作步骤
「菜单管理」→ 配置路径与排序;分页管理。
20.3 界面截图
菜单管理
第二十一章 日志查询
21.1 功能说明
服务/操作/API 日志筛选与分页查询。
21.2 操作步骤
「日志查询」→ 设筛选条件 →「查询」。
21.3 界面截图
日志查询
附录 常见问题
502 错误
检查网关与各微服务是否启动,重新运行 start-all.bat。
历史查询无数据
确认时间范围与遥测模拟器/Ingest Worker 正常运行。