# 模拟plc **Repository Path**: wangjun009xx/simulate-plc ## Basic Information - **Project Name**: 模拟plc - **Description**: 模拟一个PLC,用于上位机对接PLC测试 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 15 - **Created**: 2026-11-06 - **Last Updated**: 2026-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PlcSim 虚拟 PLC 模拟器 Windows 10/11 x64 上的 Modbus RTU/RS-485 与 Modbus TCP 虚拟 PLC 调试工具。 用于在没有真实 PLC 的情况下,联调上位机、串口助手、Modbus 主站和 TCP 客户端。 ![PlcSim 三栏主界面:左侧工程树、中间拓扑画布、右侧属性面板](docs/main-window.png) 主界面分为三栏: - **左侧工程树**:按连接分组显示 PLC,可折叠。 - **中间拓扑画布**:显示上位机、虚拟串口对、本模拟器和每台 PLC。 - **右侧属性面板**:查看/修改当前选中的连接或 PLC。 ## 启动 双击: ```text PlcSim.exe ``` 单文件版本,无需安装 .NET,无需安装 com0com 即可启动。 ## 新建 / 打开工程 ```text 顶部「新建」→ 选择保存位置 → 输入工程名 ``` 或者: ```text 顶部「打开」→ 选择 .plcsim 工程 ``` ## 添加 485 连接 1. 点顶部 `+ RS485`。 2. 编辑连接,填写: - 本程序占用的 PLC 侧串口,例如 `COM2` - 上位机打开的对端串口,例如 `COM1` 3. 点连接卡片右上角 `+ PLC` 添加设备。 4. 添加 PLC 后连接会自动启动,无需手动点启动。 5. 串口助手打开 `COM1`,按从站地址访问 PLC。 ### 虚拟串口 如果没有真实串口对: 1. 点底部状态栏「虚拟串口」。 2. 点「安装驱动」(内置 com0com),按提示允许 UAC。 3. 勾选「自动选择空闲端口」,点「创建串口对」。 4. 创建成功后,程序会自动绑定到工程中的 485 连接。 5. 选中串口对,可点「自检」验证双向收发。 ![虚拟串口窗口:安装 com0com、自动选择空闲端口、创建/删除/自检](docs/virtual-serial.png) 窗口会自动选择下一对空闲端口,例如已有 `COM10 ⇄ COM11` 时,下一个是 `COM12 ⇄ COM13`;如果 `COM12` 被硬件占用,会自动跳到 `COM13 ⇄ COM14`。 说明: - 创建/删除虚拟串口需要管理员权限,会弹 UAC。 - 删除前请关闭占用该端口的串口助手。 - 设备管理器里 com0com 属于 `CNCPorts` 类,不一定显示在「端口 (COM & LPT)」,串口工具能打开即可。 ## 添加 TCP 连接 1. 点顶部 `+ TCP`。 2. 编辑连接,确认监听地址和起始端口。 3. 点 `+ PLC` 或「批量添加」添加设备。 4. 添加 PLC 后每台设备会自动监听自己的 `IP:端口`,无需启动整条连接。 5. 上位机作为 TCP Client 连接卡片下方显示的 `IP:端口`。 每台 TCP PLC 都独立监听自己的端口,互不影响。 ## 常用操作 所有连接默认自动运行,不需要启停整条连接。 - **双击 PLC**:打开 PLC 面板、寄存器和趋势。 ![PLC 面板:X/Y 引脚、模拟量、PWM 和寄存器入口](docs/plc-window.png) - **右侧属性面板**: - 数据模拟 - 故障注入 - 编辑 PLC - 批量添加 - **数据模拟**:可选择 D / X / Y / M / AI / AO,按周期自动变化。 - **故障注入**:可模拟延迟、丢帧、离线、异常码和 CRC 错误。 - **报文发送**:顶部「报文发送」,支持 HEX 收发、CRC/MBAP 自动补齐、循环回放。 - **协议日志**:顶部「协议日志」,查看实时收发帧和解析结果。 - **深色/浅色主题**:顶部右侧切换。 ![485 协议日志:方向、解析、修改内容和 HEX 帧](docs/serial-monitor.png) ![TCP 协议日志:事务号、客户端连接/断开和 HEX 帧](docs/tcp-monitor.png) ## 常见问题 **串口打开失败** 确认串口对已创建,且没有被其他串口工具占用。 **TCP 连接被拒绝** 先在拓扑中启动对应的 TCP 连接,再让上位机连接。 **PLC 数值不变化** 选中 PLC,在右侧「数据模拟」中启用并选择要模拟的区域;PLC 必须为 RUN 状态。 **看不到虚拟串口端口** 重新打开串口工具;必要时重启 Windows。确认 com0com 已安装,且端口没有被其他程序占用。 ## 发布文件 ```text artifacts/release/PlcSim-v1.0.0-win-x64.exe ``` 单文件、自包含 win-x64,内置 com0com 安装包。 更简洁的快速说明见 [使用说明.md](使用说明.md)。