用开源Scada-LTS搭建工业监控与数据采集平台:从零上手的完整指南
用开源Scada-LTS搭建工业监控与数据采集平台:从零上手的完整指南
【免费下载链接】Scada-LTSScada-LTS is an Open Source, web-based, multi-platform solution for building your own SCADA (Supervisory Control and Data Acquisition) system.项目地址: https://gitcode.com/gh_mirrors/sc/Scada-LTS
Scada-LTS 是一款基于 Web 的开源、跨平台 SCADA(数据采集与监控)系统,用来把分散的设备数据汇聚到同一个浏览器界面里,统一监视和控制。这篇文章不堆术语,按"先理解、再上手、后实战"的顺序,带你把这套系统从代码变成真正在跑的监控平台。
工厂里那些没人看的监控数据,问题出在哪
许多中小型工厂、仓库和园区,其实并不缺数据——PLC、仪表、传感器每天都在产生数值,真正的难题是这些数据各自为政:A 设备的数据留在工控屏上,B 设备的记录躺在 Excel 里,值班员想统一看一遍,得跑好几个地方。SCADA 系统解决的就是这件事:把不同协议、不同位置的设备数据集中采集,再做统一展示和异常提醒。
Scada-LTS 是什么,和商业 SCADA 有什么区别
你可以把 Scada-LTS 理解为"开源的商业级 SCADA 底座"。它把最常见的监控需求——数据采集、界面组态、报警通知、历史存储——都做成了开箱即用的功能,而且:
- 纯 Web 架构:无需安装客户端,任何带浏览器的电脑都能打开监控画面;
- 多平台运行:Linux、Windows、服务器或开发机都能部署;
- 协议覆盖广:内置 Modbus、SNMP、MQTT、OPC 等常见工业协议驱动;
- 开源免费:没有按点数收费的许可费用,适合预算有限又需要真实监控能力的团队。
和商业 SCADA 相比,它用"学习成本"换掉了"采购成本":你需要自己部署和维护,但换来的是完全可控的二次开发空间,甚至可以修改源码,定制出贴合自己业务的版本。
什么人适合用它
- 工厂自动化工程师:想给现有产线快速加一套集中监控界面;
- 系统集成商:需要一个可定制、可交付源码的项目底座;
- 高校与实验室:教学演示、课题研究需要一套真实可用的数据采集平台;
- 个人开发者:自学工业物联网,需要一个能跑通的完整样例。
一句话:只要你的场景是"把一堆设备的数值统一收起来、画出来、管起来",它就值得一试。💡
从下载到看见登录页,最快只需一杯咖啡的时间
这一阶段的目标只有一个:让系统先跑起来,亲眼看到登录页,再谈其他。别急着研究细节,先获得"看得见摸得着"的正反馈。
提前准备好这两样东西
- Docker 与 Docker Compose:最省心的部署方式,项目已内置编排文件,省去手工配置数据库和 Tomcat 的麻烦;
- 一台能联网的电脑:2GB 以上可用内存即可,跑测试环境绰绰有余。
想从源码编译的话,备好 JDK 11 和 Gradle 6.8.1 也行,但第一次跑通,用 Docker 最不容易卡壳。
一条命令拉起全套服务
把仓库代码克隆到本地,然后直接启动:
# 拉取项目代码 git clone https://gitcode.com/gh_mirrors/sc/Scada-LTS cd Scada-LTS # 后台启动数据库、应用和 MQTT 服务 docker-compose up -d # 查看启动日志,等 tomcat 就绪 docker-compose logs -f scadalts项目根目录的docker-compose.yml里定义了三个服务:MySQL 8 数据库、Scada-LTS 应用本身,以及一个 MQTT 消息服务(供物联网设备接入)。等日志里出现 Tomcat 启动完成的信息,打开浏览器访问http://localhost:8080/ScadaBR就能看到登录页。
第一次登录后的三个必看位置
默认账号密码都是admin(生产环境务必改掉)。登录后建议先逛三个地方,形成整体印象:
- 数据源列表:今后所有设备接入都在这里登记;
- 监控视图:最终呈现给操作员看的画面;
- 系统设置:全局参数所在,其中数据库连接配置集中在
webapp-resources/env.properties,改地址、账号密码都在这个文件里。
把这三个入口的位置记住,后面的操作全都围绕它们展开。
把设备数据变成看得懂的界面:核心能力逐个拆解
跑通之后,我们顺着数据流动的方向,依次过一遍四大核心能力:接入、呈现、告警、留存。每部分都采用"先讲你得到什么,再讲怎么配"的方式。
第一步:让数据进来——数据源与数据点怎么配
SCADA 里有两个容易混淆的概念,先分清它们:数据源(Data Source)代表"一条采集通道",比如一台 Modbus 网关、一个 MQTT 主题;数据点(Data Point)则是通道里的"具体参数",比如温度、电压、开关状态。一个数据源下可以挂几十上百个数据点。
新建数据源时,系统会列出所有可用驱动类型,选好后填写连接参数(IP、端口、轮询周期等)。前端界面的完整实现位于scadalts-ui/src/views/DataObjects/DataSources/,配置流程对应下图:先建数据源,再在数据源下逐个创建数据点,每个点都能单独设置数据类型、单位、采集频率和报警阈值。
新手没有真实设备也不用担心:系统内置了"虚拟数据源",可以模拟产生随机或正弦波数值,是学习数据接入流程的最佳练习场。
第二步:把数字画出来——监控界面与实时图表
数据接进来只是第一步,值班人员要看的是"一眼就能读懂的界面"。Scada-LTS 的监控视图提供了一套可视化组件库:折线图、柱状图、仪表盘、指示灯、开关按钮等,都能通过配置方式组装成页面,再把组件绑定到具体数据点。
多个关键参数(比如同一台设备的温度、压力、流量)可以放进同一张图表叠加对比,帮助值班员快速发现参数之间的联动关系;需要看细节时,还可以对图表做时间范围的缩放。
第三步:异常时有人管——告警规则与通知
监控系统真正的价值,在于"异常时第一时间被发现"。给数据点设置上下限阈值后,数值越界就会产生告警事件,并按你配置的方式通知出去:Web 界面弹提醒、发送邮件、或者推送到 MQTT 主题。还可以区分多个报警级别(信息、紧急、严重),不同级别走不同的通知渠道,避免关键告警被淹没在普通提示里。
第四步:历史数据去哪了——存储与查询
实时画面是"现在",历史数据是"证据"。系统会把采集到的数值写入数据库(默认 MySQL),你可以按时间范围回查任意数据点的历史曲线,也可以导出分析。如果要把数据对接给其他系统,doc/RESTAPI/目录下提供了基于 OpenAPI 3 规范的接口说明(ScadaLTS_API_OAS3.yaml),用 Postman 之类的工具可以直接导入调试,获取实时值、历史数据和事件信息都有现成接口。
实战:给冷链仓储做一套温湿度监控看板
前面的能力单独看都简单,真正有价值的是把它们串起来。下面用一个完整案例演示:假设你管理一个冷链仓库,需要持续监视库内温度和湿度,超限时报警。整个过程不需要任何真实硬件,用虚拟数据源即可完成。
搭建虚拟数据源模拟传感器
在数据源页面新建一个"虚拟数据源",命名为"冷库环境"。然后创建两个数据点:
- 冷库温度:数值型,取值范围 0~30,模拟正弦波动;
- 冷库湿度:数值型,取值范围 30%~90%,同样用模拟波形。
这样系统就会像真实传感器一样,每隔几秒产出新的数值。
绑定数据点并设置告警
为温度点设置报警阈值:低于 2℃ 或高于 10℃ 时触发"紧急"级告警(冷链温控的典型区间);湿度点阈值设为低于 35% 或高于 75%。配置好邮件通知后,一旦数值越界,责任人就能收到提醒,不必等到巡检时才发现问题。
组装监控界面
新建一个监控视图,拖入两块图表组件分别绑定温度点和湿度点;再放一个状态指示灯绑定温度点,让颜色直观反映当前是否在安全区间。保存后刷新页面,你得到的就是一个能实时刷新、带状态颜色、超限会告警的冷库监控看板。
这套流程里,接入、可视化、告警、存储四个能力全部用上了,换到任何真实场景(车间、机房、养殖场),只是换数据源类型和阈值参数的区别。界面组态相关的可复用配置示例,还可以参考doc/components/cmp/下的 JSON 文件。
新手最容易踩的坑,以及踩完之后怎么走
最后把大家高频遇到的问题集中说一遍,省得你卡在同样的地方。⚠️
高频问题速查
- 容器起来了但页面打不开:多半是数据库还没就绪、应用启动失败。用
docker-compose logs -f scadalts看日志,等 MySQL 完全启动后再刷新页面。 - 改数据库配置不生效:连接参数在
webapp-resources/env.properties里改完后,需要重启应用才会重新读取。 - 告警邮件发不出去:优先检查邮件服务器地址、端口和账号授权码,很多邮箱需要开启第三方客户端授权。
- 界面加载慢:先看是不是同一页面绑定了过多数据点,图表太多时优先缩小历史加载范围,而不是急着怀疑服务器性能。
从这里继续深入
- 想验证系统稳定性?项目自带一套单元测试,运行
gradle test即可,测试代码在test/目录,也是学习数据流逻辑的好教材; - 想对接自己的协议?查看现有驱动实现,仿照新增一个数据源类型即可;
- 想给前端加功能?
scadalts-ui/是独立的 Vue 工程,接口对接后可以自由扩展页面。
总结:从"看数据"到"用数据"
Scada-LTS 的价值在于,它把商业 SCADA 最核心的能力——数据采集、界面组态、异常告警、历史留存——用开源的方式完整呈现出来,让中小团队和个人开发者也能拥有专业级的监控底座。只要你的场景对上"多设备、要集中监控、预算有限、想自己掌控"中的任意两条,就值得花一个下午把它跑起来。
接下来按这个顺序行动:
- 用 Docker 跑通默认环境,完成第一次登录;
- 用虚拟数据源创建 2~3 个数据点,体验数据流动;
- 组一个简单监控视图,把数据画成图表;
- 给一个数据点设置告警,测试通知是否送达;
- 浏览
doc/RESTAPI/的接口文档,尝试调一次历史数据查询。🚀
延伸资源
- 官方说明与构建任务:
README.md - 部署与示例配置:
docker-compose.yml、webapp-resources/env.properties - 数据源前端实现:
scadalts-ui/src/views/DataObjects/DataSources/ - REST API 文档:
doc/RESTAPI/ScadaLTS_API_OAS3.yaml - 后端测试用例:
test/
【免费下载链接】Scada-LTSScada-LTS is an Open Source, web-based, multi-platform solution for building your own SCADA (Supervisory Control and Data Acquisition) system.项目地址: https://gitcode.com/gh_mirrors/sc/Scada-LTS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考