上位机与PLC的Modbus通信编程实战

📚 共计 30 章节
01
课程导论
Modbus协议概述 · 上位机与PLC通信架构 · 课程目标与学习路径
入门概览
02
Modbus协议基础
Modbus RTU vs TCP · 功能码详解(01-06) · 数据模型(线圈/寄存器)
核心理论
03
开发环境搭建
Python环境配置 · pyModbus库安装 · 虚拟串口工具(VSPD)
工具环境
04
串口通信基础
RS232/RS485物理层 · 串口参数(波特率/数据位/校验位) · Python serial库
硬件串口
05
Modbus RTU主站实现
pyModbus主站初始化 · 读取线圈(功能码01) · 写入线圈(功能码05)
实战RTU
06
Modbus RTU主站进阶
读取保持寄存器(03) · 写入单寄存器(06) · 写入多寄存器(16)
进阶寄存器
07
Modbus RTU从站模拟
pyModbus创建从站 · 模拟PLC寄存器 · 主从联调测试
模拟调试
08
数据解析与处理
字节序(Big/Little-Endian) · 32位拆包组包 · 浮点数转换(struct)
解析struct
09
异常处理与重试机制
Modbus异常码 · 超时重试策略 · 断线重连机制
健壮性异常
10
日志与调试
Python logging配置 · Modbus通信日志 · Wireshark抓包TCP
调试日志
11
Modbus TCP基础
TCP/IP回顾 · Modbus TCP报文(MBAP头) · 与RTU差异对比
TCP协议
12
Modbus TCP主站实现
pyModbus TCP客户端 · 远程PLC连接 · 批量读写操作
主站TCP
13
Modbus TCP从站实现
pyModbus TCP服务器 · 多客户端并发 · 数据同步机制
从站并发
14
多设备轮询架构
设备地址管理 · 轮询周期设计 · 超时与优先级策略
架构轮询
15
数据库集成
SQLite存储采集数据 · 时序数据表设计 · 历史查询接口
数据库SQLite
16
可视化界面(PyQt5)
主窗口布局 · 连接配置面板 · 实时数据显示表格
PyQt5界面
17
可视化进阶
趋势曲线(pyqtgraph) · 报警列表 · 状态指示灯
图表监控
18
配置文件管理
JSON/YAML读写 · 设备参数动态加载 · 多场景配置切换
配置YAML
19
多线程编程
QThread非阻塞通信 · 线程安全数据队列 · 信号槽更新UI
多线程PyQt
20
异步IO (asyncio)
asyncio基础 · 异步Modbus客户端 · 高并发优化
异步高性能
21
PLC仿真器集成
OpenPLC搭建 · 梯形图编写 · Modbus从站配置
仿真OpenPLC
22
西门子S7-1200实战
S7-1200 Modbus TCP设置 · DB块地址映射 · 读写测试
西门子实战
23
三菱FX5U实战
FX5U Modbus RTU配置 · 特殊寄存器说明 · 通信参数调试
三菱RTU
24
施耐德M241实战
M241 Modbus TCP配置 · IO扫描映射 · EcoStruxure设置
施耐德TCP
25
数据校验与安全
CRC16校验原理 · LRC校验 · 通信加密(TLS)简介
安全校验
26
性能优化
批量读写优化 · 缓存策略 · 通信延迟分析
优化性能
27
单元测试
pytest框架 · Mock PLC模拟 · 自动化回归测试
测试pytest
28
项目实战 (上)
需求分析 · 架构设计 · 设备选型 · 通信协议确定
项目设计
29
项目实战 (中)
编码实现 · 模块集成 · 界面开发 · 联调测试
编码集成
30
项目实战 (下)
部署上线 · 运维监控 · 故障排查 · 课程总结
部署总结