📘 Modbus 实战·目录
🎯 30章 从入门到监控
工业自动化
1
Modbus协议概述
起源
Modbus的起源、发展历程、在工业自动化中的地位。
2
物理层与传输模式
RS-485
RS-232、RS-485、TCP/IP,RTU与ASCII模式的区别。
3
Modbus地址模型
寄存器
线圈、离散输入、保持寄存器、输入寄存器的定义与寻址范围。
4
功能码详解(上)
01~04
01读线圈、02读离散输入、03读保持寄存器、04读输入寄存器。
5
功能码详解(下)
写操作
05写单线圈、06写单寄存器、15写多线圈、16写多寄存器。
6
报文结构解析
CRC
RTU帧格式、ASCII帧格式、TCP报文格式,CRC/LRC校验计算。
7
Python环境搭建
Miniconda
安装Miniconda、创建虚拟环境、安装modbus_tk和pymodbus库。
8
第一个Modbus程序
pymodbus
使用pymodbus读取PLC的保持寄存器数据。
9
调试工具准备
Modbus Poll
Modbus Poll、Modbus Slave、QModMaster的安装与基本使用。
10
串口通讯调试
主从站
使用Modbus Poll模拟主站,Modbus Slave模拟从站进行通讯测试。
11
TCP通讯调试
远程连接
通过Modbus Poll连接远程Modbus TCP服务器进行数据交互。
12
异常码解读
错误码
01非法功能码、02非法数据地址、03非法数据值、04从站设备故障。
13
超时与重试机制
策略
为什么需要超时?如何设置合理的超时时间?重试策略设计。
14
常见硬件问题
接线排查
接线错误、终端电阻、地电位差、波特率不匹配的排查方法。
15
常见软件问题
字节序
地址偏移、字节序(Big-Endian/Little-Endian)、数据类型映射错误。
16
日志与抓包
Wireshark
使用Wireshark抓取Modbus TCP报文,分析通讯过程。
17
异常处理框架
try-except
Python中的try-except-finally结构在Modbus通讯中的应用。
18
重连机制设计
心跳
断线自动重连、心跳包检测、状态机管理连接生命周期。
19
多从站轮询
异步IO
使用异步IO或线程池同时管理多个Modbus从站设备。
20
数据解析实战
浮点数
将原始寄存器数据解析为32位浮点数、字符串、位状态。
21
写操作安全
预读校验
写前预读校验、写后回读验证、写操作互斥锁。
22
性能优化
批量读写
批量读写、报文合并、减少通讯次数提升吞吐量。
23
跨平台部署
Win/Linux
Windows与Linux下串口权限、TCP端口配置差异。
24
与SCADA系统集成
InfluxDB
通过Modbus将数据推送到InfluxDB或MongoDB。
25
Web可视化
Flask
使用Flask搭建简易仪表盘,实时显示Modbus数据。
26
报警与通知
微信推送
数据越限检测、微信/邮件报警推送机制。
27
固件升级场景
远程升级
通过Modbus实现远程固件升级的协议设计。
28
安全加固
TLS
Modbus安全漏洞分析、白名单、加密隧道(TLS)方案。
29
综合案例一
温湿度
基于Modbus RTU的温湿度采集系统。
30
综合案例二
电机控制
基于Modbus TCP的电机控制与状态监控系统。