2. 虚拟调试中PLC变量与模型IO的映射配置
映射表是虚拟调试的“接线图”
在数字孪生虚拟调试中,PLC 程序里的变量名(如 I_StartBtn、Q_CylExtend)与三维模型上的信号端口(如 Sensor_Start、Actuator_Cylinder)是两套独立命名体系。映射配置就是建立它们之间的对应关系,相当于把物理世界中的接线端子图搬到了软件里。映射错位会导致“PLC 有输出但模型不动”或“模型动作与逻辑相反”等典型故障。
映射方向与信号类型
映射必须区分方向,否则会出现信号冲突:
- PLC → 模型(输出映射):PLC 的
Q变量驱动模型执行器,如Q_CylExtend→ 气缸伸出动作。 - 模型 → PLC(输入映射):模型传感器状态回传给 PLC 的
I变量,如Sensor_CylExtended→I_CylExtended。 - 数据类型:布尔量用于按钮、限位开关;整型/浮点用于位置、速度等模拟量。
映射表核心字段:PLC 变量名、方向、模型端口名、数据类型、初始值、强制值、备注。
映射配置实操:以气缸单元为例
假设三维模型中有一个气缸单元,包含两个执行器端口和两个传感器端口。PLC 侧已定义好变量。在数字孪生平台的映射配置界面中,按以下步骤建立映射表:
- 打开信号映射配置面板,选择目标模型节点
Cylinder_Unit_01。 - 添加输出映射行:PLC 变量
Q_CylExtend,方向PLC→模型,模型端口Actuator_Extend,类型BOOL。 - 添加输出映射行:PLC 变量
Q_CylRetract,方向PLC→模型,模型端口Actuator_Retract,类型BOOL。 - 添加输入映射行:模型端口
Sensor_Extended,方向模型→PLC,PLC 变量I_CylExtended,类型BOOL。 - 添加输入映射行:模型端口
Sensor_Retracted,方向模型→PLC,PLC 变量I_CylRetracted,类型BOOL。 - 保存映射表并激活,使映射生效。
强制变量观察模型响应
映射建立后,不要急于运行完整程序。先在 PLC 仿真器中强制输出变量,观察模型是否按预期动作:
- 强制
Q_CylExtend = TRUE,观察气缸是否伸出,且Sensor_Extended是否变为 TRUE。 - 强制
Q_CylExtend = FALSE并强制Q_CylRetract = TRUE,观察气缸是否缩回,Sensor_Retracted是否变为 TRUE。 - 若模型动作相反,检查执行器端口是否映射颠倒;若传感器无反馈,检查输入映射方向或端口名是否拼写错误。
强制变量时务必确认当前处于仿真模式,且强制值不会与程序逻辑冲突。排查完成后及时取消强制,避免影响后续联调。
映射错位排查路径
当出现“PLC 有输出但模型不动”或“传感器信号不更新”时,按以下顺序排查:
- 检查映射表中该变量是否存在且已激活。
- 核对 PLC 变量名与模型端口名是否完全一致(大小写敏感)。
- 确认方向是否正确:输出映射写成了输入映射会导致信号无法到达模型。
- 检查数据类型是否匹配:BOOL 端口映射了 INT 变量会导致解析失败。
- 在平台信号监视器中查看该映射的实时值,判断信号是否在映射层被阻断。
映射表交付示例
以下是一份可直接参考的映射表结构,按气缸单元填写完成后的样子:
| PLC 变量 | 方向 | 模型端口 | 数据类型 | 初始值 | 备注 |
|---|---|---|---|---|---|
| Q_CylExtend | PLC→模型 | Actuator_Extend | BOOL | FALSE | 气缸伸出指令 |
| Q_CylRetract | PLC→模型 | Actuator_Retract | BOOL | FALSE | 气缸缩回指令 |
| I_CylExtended | 模型→PLC | Sensor_Extended | BOOL | FALSE | 伸出到位传感器 |
| I_CylRetracted | 模型→PLC | Sensor_Retracted | BOOL | TRUE | 缩回到位传感器 |
建议在映射表中增加“强制值”和“实时值”两列,排查时可直接在表中观察信号变化,无需频繁切换窗口。映射命名尽量保持 PLC 变量名与模型端口名有可读的对应关系,降低后期维护成本。