3.5 KiB
3.5 KiB
PLC 模拟模式使用说明
概述
程序现在支持两种 PLC 运行模式:
- 真实 PLC 模式(默认):连接到真实的 PLC 硬件设备
- 模拟模式:使用软件模拟 PLC 行为,用于开发和测试
使用方法
1. 默认模式(真实 PLC)
直接运行程序,不带任何参数:
python dtmgtApp.py
输出日志:
使用真实 PLC 设备
2. 模拟模式
使用 --mock 参数启动程序:
python dtmgtApp.py --mock
输出日志:
启用 PLC 模拟模式
模拟模式特性
在模拟模式下,程序会:
✅ 模拟 PLC 寄存器:
- 自动初始化模拟寄存器
- 支持读写寄存器操作
- 支持线圈(Coil)和保持寄存器(Holding Register)
✅ 模拟测试流程:
- 自动模拟通道测试过程
- 支持多方向跌落测试
- 自动生成测试结果数据
✅ 无需硬件:
- 不需要真实的 PLC 设备
- 不需要串口连接
- 适合开发和调试
其他命令行参数
程序支持以下命令行参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--mock |
flag | False | 启用 PLC 模拟模式 |
--startModbusServer |
flag | True | 启动 Modbus 服务器 |
--modbusServer |
string | "127.0.0.1" | Modbus 服务器地址 |
--modbusServerPort |
int | 5020 | Modbus 服务器端口 |
--no-ui |
flag | False | 不启动 PyQt5 前端界面 |
--port |
int | 5050 | HTTP 服务端口 |
完整示例
示例 1:模拟模式 + 自定义端口
python dtmgtApp.py --mock --port 8080
示例 2:真实 PLC + 不启动 UI
python dtmgtApp.py --no-ui
示例 3:模拟模式 + 自定义 Modbus 端口
python dtmgtApp.py --mock --modbusServerPort 5021
代码修改说明
modbus_plc.py
MOCK_MODE = False # 默认使用真实 PLC,通过命令行参数 --mock 启用模拟模式
dtmgtApp.py
- 添加命令行参数:
parser.add_argument('--mock', action='store_true', help="启用 PLC 模拟模式")
- 在 main() 函数中设置模式:
if hasattr(args, 'mock') and args.mock:
import modbus_plc
modbus_plc.MOCK_MODE = True
print_with_timestamp("启用 PLC 模拟模式", color='yellow')
else:
print_with_timestamp("使用真实 PLC 设备", color='green')
注意事项
⚠️ 生产环境:
- 生产环境必须使用真实 PLC 模式
- 不要在生产环境中使用
--mock参数
⚠️ 测试环境:
- 开发测试时可以使用模拟模式
- 模拟模式下的数据仅供测试,不代表真实测试结果
⚠️ 参数检查:
- 程序启动时会在日志中明确显示当前使用的模式
- 请仔细检查日志确认运行模式正确
常见问题
Q1: 如何确认当前是什么模式?
A: 查看程序启动时的日志输出:
启用 PLC 模拟模式→ 模拟模式使用真实 PLC 设备→ 真实模式
Q2: 模拟模式下还需要 PLC 硬件吗?
A: 不需要。模拟模式完全在软件中运行,无需任何 PLC 硬件或串口连接。
Q3: 如何在代码中检查当前模式?
A: 检查 modbus_plc.MOCK_MODE 变量:
import modbus_plc
if modbus_plc.MOCK_MODE:
print("当前是模拟模式")
else:
print("当前是真实 PLC 模式")
更新历史
- 2025-12-08: 初始版本
- 将 MOCK_MODE 默认值改为 False
- 添加 --mock 命令行参数
- 添加模式切换日志输出