基于Modbus的PLC数据采集与SCADA集成实战
📚 30章 · 从入门到部署
友好版
01
工业通信概览:从RS232到OPC UA,为什么Modbus依然是工业现场的王牌协议?
通信协议演进 · Modbus不可替代
02
Modbus协议原理:Modbus RTU vs Modbus TCP,数据帧结构深度解析。
RTU / TCP 帧结构 · 区别
03
PLC基础与选型:主流PLC品牌(西门子、三菱、罗克韦尔)的Modbus支持情况。
西门子 · 三菱 · 罗克韦尔
04
Python环境搭建:安装Miniconda、创建虚拟环境、安装pymodbus库。
Miniconda · pymodbus
05
第一个Modbus程序:使用pymodbus读取PLC的线圈状态(Coil)。
读取线圈 · 入门实例
06
数据类型与寄存器:Coil、Discrete Input、Input Register、Holding Register的区别与实战。
寄存器类型 · 区别
07
批量读写操作:使用pymodbus一次性读取多个寄存器,提升采集效率。
批量读写 · 效率提升
08
异常处理与重连机制:工业场景下网络闪断怎么办?编写健壮的采集脚本。
异常重连 · 健壮脚本
09
数据解析与转换:从原始字节到工程值(温度、压力、流量)的转换技巧。
字节→工程值 · 转换
10
日志系统搭建:使用Python logging模块记录采集日志,方便故障排查。
logging · 日志排查
11
配置文件管理:使用YAML/JSON配置文件管理PLC地址和采集参数。
YAML / JSON 配置
12
多线程采集:同时采集多台PLC,避免采集任务互相阻塞。
多线程 · 并发采集
13
异步IO与高性能采集:使用asyncio + pymodbus实现高并发采集。
asyncio · 高性能
14
数据库入门:SQLite vs InfluxDB,时序数据库在工业场景中的优势。
SQLite · InfluxDB · 时序
15
数据持久化:将采集到的PLC数据写入SQLite数据库。
SQLite 存储
16
数据持久化进阶:使用InfluxDB存储高频时序数据。
InfluxDB · 高频写入
17
SCADA系统概述:什么是SCADA?传统SCADA与现代基于Web的SCADA对比。
SCADA概念 · Web对比
18
Web框架选型:Flask vs FastAPI,为什么我选择FastAPI做SCADA后端。
Flask · FastAPI · 选型
19
RESTful API设计:设计一套标准的SCADA数据接口(获取实时值、历史数据)。
RESTful · 实时/历史
20
WebSocket实时推送:将PLC数据变化实时推送到前端页面。
WebSocket · 实时推送
21
前端框架入门:使用Vue.js搭建SCADA监控面板。
Vue.js · 监控面板
22
数据可视化:使用ECharts绘制实时趋势曲线和历史曲线。
ECharts · 趋势曲线
23
报警系统设计:阈值报警、变化率报警,以及报警确认机制。
阈值报警 · 确认机制
24
用户权限管理:基于JWT的登录认证,不同角色不同权限。
JWT · 角色权限
25
系统部署:使用Docker容器化部署SCADA系统。
Docker · 容器化
26
边缘计算:在树莓派上部署轻量级采集网关。
树莓派 · 边缘网关
27
MQTT桥接:将Modbus数据通过MQTT协议上云。
MQTT · 桥接上云
28
安全加固:Modbus协议本身不安全,如何通过VPN和防火墙加固系统?
VPN · 防火墙 · 安全
29
案例实战:从零搭建一条生产线的数据采集与监控系统。
生产线 · 完整实战
30
课程总结与展望:工业4.0、OPC UA over TSN,下一步学什么?
工业4.0 · OPC UA · TSN