Files
dtm-py-all/PLC模拟模式说明.md

3.5 KiB
Raw Permalink Blame History

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

  1. 添加命令行参数
parser.add_argument('--mock', action='store_true', help="启用 PLC 模拟模式")
  1. 在 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 命令行参数
    • 添加模式切换日志输出