1. 虚拟调试环境搭建与PLC仿真器联调
虚拟调试基础环境的三层结构
虚拟调试环境的核心不是“装一个软件”,而是建立一条可闭环的信号通路:PLC仿真器负责执行控制逻辑,虚拟HMI负责操作与显示,信号映射层负责把两者的变量按地址和数据类型对齐。三者缺一,启停逻辑就无法联合验证。
搭建步骤与关键配置
以下以常见的软 PLC 仿真器 + 虚拟 HMI 组合为例,说明从零搭建到联合验证的完整过程。不同工具的具体菜单名称可能不同,但对象、参数和判断逻辑一致。
- 建立 PLC 仿真项目:新建项目,选择与目标硬件一致的 CPU 型号(如 S7-1200 或兼容软 PLC),设置循环周期为 10 ms,启用仿真运行模式。
- 编写启停控制程序:在 OB1 中编写起保停逻辑,使用三个变量:
Start(%I0.0)、Stop(%I0.1)、Run(%Q0.0)。逻辑为:按下 Start 且未按 Stop 时 Run 置位;按下 Stop 时 Run 复位。 - 配置虚拟 HMI 画面:创建两个按钮(启动、停止)和一个指示灯(运行)。按钮变量分别绑定
HMI_Start和HMI_Stop,指示灯绑定Run_Lamp。 - 建立信号映射表:在仿真器或 HMI 的变量连接界面中,将 HMI 变量与 PLC 地址一一对应。映射方向必须明确:HMI 按钮为写入 PLC,PLC 输出为读取到 HMI。
- 下载并启动仿真:将 PLC 程序下载到仿真器,启动 HMI 运行画面,确认两者均处于在线状态。
- 联合验证:点击 HMI 启动按钮,观察 PLC 中
Run变量是否变为 TRUE,HMI 指示灯是否点亮;点击停止按钮,观察Run是否复位,指示灯是否熄灭。
映射方向判断口诀:HMI 按钮 → PLC 输入(写);PLC 输出 → HMI 指示灯(读)。方向反了,按钮按下去 PLC 收不到,或者指示灯永远不亮。
信号映射表(示例)
| HMI 变量 | PLC 地址 | 数据类型 | 方向 | 说明 |
|---|---|---|---|---|
| HMI_Start | %I0.0 | BOOL | HMI → PLC | 启动按钮,按下写 1 |
| HMI_Stop | %I0.1 | BOOL | HMI → PLC | 停止按钮,按下写 1 |
| Run_Lamp | %Q0.0 | BOOL | PLC → HMI | 运行指示灯,读 PLC 输出 |
PLC 启停逻辑参考(SCL 风格)
// 起保停逻辑,OB1 循环执行
IF "HMI_Start" AND NOT "HMI_Stop" THEN
"Run" := TRUE;
END_IF;
IF "HMI_Stop" THEN
"Run" := FALSE;
END_IF;
// 输出映射到指示灯
"Run_Lamp" := "Run";
联合验证检查点
- 下载成功:仿真器显示 RUN 状态,无红色错误指示。
- 变量可监控:在 PLC 变量表中能实时看到
Start、Stop、Run的值变化。 - 按钮生效:点击 HMI 启动按钮,PLC 中
Start变为 TRUE,Run变为 TRUE。 - 指示灯响应:HMI 运行指示灯随
Run状态点亮/熄灭。 - 停止优先:先按启动再按停止,
Run复位,指示灯熄灭。
常见问题:如果按钮按下后 PLC 变量无变化,优先检查映射方向是否设为“HMI → PLC”;如果指示灯不亮,检查
Run_Lamp 是否绑定到 %Q0.0 且方向为“PLC → HMI”。数据类型不一致(如 HMI 用 INT 映射 BOOL)也会导致通信失败。