📡 Modbus 实战 传感器 · 上位机

⚡ 30章 完整目录
01
Modbus协议概述 起源
Modbus协议起源、发展历程、应用领域、协议特点(主从架构、寻址方式)
02
物理层与通信模式 RS-232/485/TCP
RS-232、RS-485、TCP/IP三种物理层对比,单播与广播模式
03
Modbus数据模型 寄存器映射
离散量输入、线圈、输入寄存器、保持寄存器的定义与地址映射
04
功能码详解 (上) 01-04
01读线圈、02读离散量输入、03读保持寄存器、04读输入寄存器
05
功能码详解 (下) 05/06/15/16
05写单个线圈、06写单个寄存器、15写多个线圈、16写多个寄存器
06
Modbus报文结构 RTU/ASCII
ADU与PDU格式,RTU与ASCII模式区别,CRC校验原理
07
Modbus TCP协议 MBAP
MBAP报文头结构,TCP端口502,与RTU模式的区别
08
Python环境搭建 Anaconda
Anaconda安装、虚拟环境创建、VS Code配置、minimalmodbus库安装
09
pymodbus库入门 同步客户端
安装pymodbus,同步客户端创建,连接与断开操作
10
pymodbus读取操作 read_*
read_coils、read_discrete_inputs、read_holding_registers、read_input_registers
11
pymodbus写入操作 write_*
write_coil、write_register、write_coils、write_registers
12
异常处理与调试 异常码
Modbus异常码解析,Python异常捕获,日志记录配置
13
传感器选型与接口 PT100/DS18B20
温度传感器(PT100、DS18B20)、压力传感器、流量计,Modbus接口参数
14
传感器数据手册解读 寄存器/缩放
寄存器地址、数据类型(16位/32位)、缩放因子、单位转换
15
实战:读取温湿度传感器 温湿度变送器
连接温湿度变送器,解析温度与湿度寄存器,数据校验
16
实战:读取压力变送器 4-20mA转Modbus
4-20mA转Modbus,压力值计算,量程配置
17
实战:控制继电器模块 05/15功能码
使用05功能码控制单路继电器,使用15功能码控制多路
18
数据采集频率控制 轮询策略
time.sleep与定时器,轮询策略,避免总线冲突
19
数据存储方案 CSV / SQLite / InfluxDB
CSV文件存储、SQLite数据库存储、InfluxDB时序数据库简介
20
CSV存储实战 csv模块
使用csv模块写入数据,文件名按日期命名,追加模式
21
SQLite存储实战 表结构/查询
创建表结构,插入数据,查询最近N条记录
22
上位机UI设计概述 PyQt5 vs Tkinter
PyQt5 vs Tkinter vs Web前端,选择建议
23
PyQt5基础 信号与槽
安装PyQt5,主窗口创建,信号与槽机制,布局管理
24
PyQt5控件实战 QPushButton/Table
QPushButton、QLabel、QLineEdit、QComboBox、QTableWidget
25
PyQt5图表显示 pyqtgraph
安装pyqtgraph,实时曲线绘制,历史数据回放
26
多线程编程 QThread
QThread实现后台数据采集,避免UI卡顿,线程安全队列
27
完整上位机开发 (上) 需求/封装
需求分析,界面布局设计,Modbus通信模块封装
28
完整上位机开发 (中) 采集/存储
数据采集线程实现,实时显示与存储联动
29
完整上位机开发 (下) 报警/导出
报警阈值设置,历史数据查询,导出Excel
30
项目部署与优化 PyInstaller
打包为exe(PyInstaller),配置文件管理,日志轮转,常见问题排查