本文回答的问题
文章摘要
工业自动化中的软件在环 (SITL) 测试是指针对设备行为的软件模型而非物理硬件执行 PLC 控制逻辑。在 OLLA Lab 中,可以针对 3D 数字孪生运行梯形图逻辑,以在现场调试前验证顺序时序、联锁、异常状态行为和故障恢复。
语法正确的梯形图逻辑并不等同于可部署的控制逻辑。编译器可以确认指令的有效性、标签的一致性和基本的执行顺序;但它无法告诉你输送机是否会索引到伸出的气缸中、重启顺序是否会重新激活危险动作,或者传感器是否因响应过慢而无法保护机械装置。语法验证成本很低,但调试失误的代价却很高。
“仿真就绪”的一个实用定义是操作性的,而非理想化的:当工程师能够在控制逻辑进入实际生产流程之前,证明、观察、诊断并强化其应对真实过程行为的能力时,他们就达到了仿真就绪状态。
在 Ampergon Vallis 对 OLLA Lab 中 1,200 个模拟调试场景进行的内部分析中,使用 3D 数字孪生验证逻辑的用户在首次物理执行前识别出了 84% 的建模机械竞争条件。方法论:样本量 = 1,200 个跨预设和自定义实验室的场景运行;任务定义 = 检测建模的竞争条件(如重叠动作和索引冲突);基准比较器 = 无数字孪生执行的逻辑审查和编译有效状态;时间窗口 = 2025 年 1 月至 2026 年 2 月。这支持了仿真可以暴露普通语法检查无法发现的故障类别的观点。它并不能证明现场可靠性、操作员能力或安全认证。
SITL 与物理 PLC 调试有何区别?
SITL、HIL 和物理调试回答的是不同的验证问题。将它们视为可互换的,是导致风险被忽视的可靠途径。
根据 VDI 3693 中描述的虚拟调试框架,软件在环 (SITL) 意味着控制器逻辑和工厂行为均由软件表示,无需物理 PLC、现场接线或机器硬件。其目的是在风险受控的环境中验证控制行为与模拟过程响应的匹配度。
硬件在环 (HIL) 向现实迈进了一步。工厂保持模拟状态,但引入了实际的控制器硬件。这可以测试 SITL 无法完全重现的硬件时序、I/O 处理以及某些特定于平台的操作行为。
物理调试是全栈式的:控制逻辑、物理 PLC、接线、仪表、执行器、机器动力学,以及在启动过程中所有这些要素汇聚时出现的各种意外。
比较:SITL vs HIL vs 物理调试
| 验证模式 | 真实部分 | 模拟部分 | 主要目的 | 风险等级 | |---|---|---|---|---| | SITL | 控制逻辑执行环境 | 工厂/设备行为 | 验证顺序逻辑、联锁、时序假设、状态转换、故障处理 | 低 | | HIL | 物理 PLC/控制器硬件 | 工厂/设备行为 | 验证控制器特定执行、I/O 行为、硬件时序、集成假设 | 中 | | 物理调试 | PLC、接线、传感器、执行器、机器/过程 | 几乎没有 | 在实际运行条件下验证已部署的系统 | 高 |
SITL 的优势
- 验证顺序逻辑和允许逻辑 (Permissive Logic)
- 测试报警和跳闸行为
- 演练重启和恢复逻辑
- 暴露命令与反馈之间的竞争条件
- 在不危及设备的情况下演练异常状态
SITL 无法取代的内容
- 现场验收测试 (SAT)
- 回路检查和接线验证
- 功能安全验证
- SIL 定级或合规性证明
- 除非模型范围支持,否则无法进行特定安装资产的操作员培训
这种界限至关重要。数字孪生之所以有用,是因为它缩小了不确定性,而不是因为它消除了不确定性。
为什么语法正确的梯形图逻辑在现场会失败?
梯形图逻辑在现场失败,是因为物理系统不是布尔图。它们具有编译器无法建模的延迟、惯性、摩擦、漂移和故障模式。
一个编译有效的梯级仍然可能发出不可能的顺序指令。它也可能在错误的时间发出可能的顺序指令,这通常更糟糕,因为它会导致间歇性故障。
编译器忽略的三种物理现实
- 机械惯性 停止命令不会产生瞬时停止。电机有惯性滑行,输送机有超程,悬挂负载会继续移动。逻辑在扫描级别可能是正确的,但在机器级别却是错误的。
- 传感器延迟 真实的传感器具有响应时间、安装公差、抖动和滤波。光电开关或限位开关如果比预期晚几毫秒改变状态,就可能使原本优雅的顺序失效。
- 执行器静摩擦和过程延迟 气缸需要压力积聚。阀门在移动前可能会卡住。泵在电机位开启的瞬间无法产生稳定的流量。梯形图不在乎这些,但过程会在乎。
“看起来正确”的谬误
“看起来正确”通常意味着“在理想假设下通过了视觉审查”。这与证明顺序能够经受住现实的时序和故障条件考验不是一回事。
考虑一个带有推料气缸的分类输送机:
- 逻辑命令输送机停止。
- 逻辑命令气缸伸出。
- 逻辑等待伸出确认。
- 逻辑在产品分流后重启输送机。
在纸面上,这很整洁。但在模拟机器中,当气缸进入通道时,输送机可能仍在滑行。如果顺序依赖于瞬时停止,即使每个梯级都是合法的,每个标签名称都是正确的,机械装置也会发生碰撞。编译器不会反对,但物理定律通常会。
如何定义用于 PLC 验证的“数字孪生”?
在本文中,数字孪生不是 3D 图形的品牌同义词。它是一个在确定性验证循环中与控制逻辑交换状态的软件模型。
从操作层面来看,PLC 验证数字孪生是:
> 一种运动学和离散事件软件模型,它消耗 PLC 输出,应用运动延迟、重力、摩擦和状态相关时序等模拟物理约束,并将确定性的传感器和过程输入返回给控制逻辑。
该定义是有意缩小的。它排除了不参与控制状态交换的装饰性可视化。
用于控制工作的实用数字孪生必须具备四项功能
例如:电机运行命令、阀门开启命令、气缸伸出位、模拟量设定点。
- 消耗控制器输出
例如:加速度、减速度、停留时间、行程时间、压力延迟、液位变化或过程滞后。
- 应用建模的设备行为
例如:接近开关、光电开关、限位开关、模拟量 PV、报警状态、证明反馈。
- 将模拟输入返回给逻辑
同一个测试用例应具有足够的可重复性,以便诊断逻辑变更并比较修订版本。
- 保持确定性的测试条件
这就是视频与验证环境的区别。前者是说明性的,后者可以否决错误的控制逻辑。
OLLA Lab 如何将 PLC 标签绑定到 3D 数字孪生?
当梯形图程序和模拟设备共享可观察状态时,OLLA Lab 就具有了操作价值。该平台不仅仅是一个带有场景的梯形图编辑器;其价值在于将逻辑变量绑定到机器行为,然后观察闭环过程。
在 OLLA Lab 中,用户可以在基于 Web 的编辑器中构建梯形图逻辑,在仿真模式下执行它,并通过变量面板检查或操作变量。该平台支持布尔值、模拟量、定时器、比较器、数学运算和 PID 导向的学习工作流,以及 3D/WebXR 仿真场景。在该工作流中,标签可以与模拟设备状态相关联,从而使命令位驱动模型,模型事件将反馈返回到逻辑中。
OLLA Lab 中的实用标签绑定工作流
典型的验证设置如下:
- 在梯形图逻辑中定义命令标签
- `Conveyor_Run_CMD`
- `Cylinder_Extend_CMD`
- `Reset_Fault_CMD`
- 定义反馈和传感器标签
- `Conveyor_At_Speed`
- `Cylinder_Extended_LS`
- `Photoeye_PE1`
- `Jam_Fault`
- 将命令标签绑定到数字孪生行为
- `Conveyor_Run_CMD` 驱动输送机运动状态
- `Cylinder_Extend_CMD` 驱动执行器伸出顺序
- 将模拟设备响应绑定回标签
- 输送机运动更新 `Conveyor_At_Speed`
- 虚拟限位开关更新 `Cylinder_Extended_LS`
- 虚拟射线投射或物体检测更新 `Photoeye_PE1`
- 运行顺序并检查状态转换
- 切换输入
- 暂停、运行或停止仿真
- 观察标签变化、定时器、模拟值和故障状态
这为工程师提供了什么
- 梯级逻辑与机器响应之间可见的因果链
- 测试联锁是否真正充分的场所
- 检查命令与证明之间时序不匹配的方法
- 在不冒现场设备损坏风险的情况下注入故障的安全环境
这就是 OLLA Lab 的可信定位:作为验证和故障排除练习的风险受控演练环境。它不能取代现场调试,但可以让工程师演练那些在实际生产线上过于破坏性、过于昂贵或过于干扰生产的调试环节。
部署前最需要模拟的关键故障场景有哪些?
最有价值的 SITL 测试不是正常顺序测试,而是异常状态测试。当每个传感器都表现正常且每个执行器都按时到位时,几乎任何控制策略看起来都很称职。
强制性 SITL 测试用例
- 危险动作按预期断电,
- 状态存储行为可预测,
- 重启需要操作员刻意操作,
- 不存在隐藏的自动恢复路径。
- 在预期窗口内发生故障检测,
- 动作被安全禁止或停止,
- 报警文本和故障位清晰明确,
- 复位条件是刻意且有边界的。
- 输出返回到安全默认值,
- 启动逻辑不会自动重启危险动作,
- 保留状态不会创建不可能的顺序假设,
- 在适当情况下需要操作员确认。
- 超时逻辑触发,
- 故障正确锁存,
- 下游动作被阻塞,
- 恢复路径明确。
- 互斥动作保持互斥,
- 一个状态在没有必要证明的情况下不能抢占另一个状态,
- 扫描顺序假设不会掩盖顺序缺陷。
- 报警在定义的阈值处激活,
- 控制输出在预期范围内表现,
- 无扰动切换或模式更改处理得当,
- 跳闸和允许条件在模拟量异常下保持一致。
- 负载下的异步紧急停止 在运动激活且机构正在承载或推动物料时触发紧急停止。验证:
- 传感器故障和故障安全验证 在运动过程中强制将常闭或常开限位装置置于故障状态。验证:
- 电源循环恢复 模拟控制电源丢失或执行中断。验证:
- 机械超时和无证明条件 发出移动命令但未收到预期反馈。验证:
- 顺序竞争条件 在相邻机器状态之间引入时序重叠。验证:
- 模拟量偏移和 PID 扰动 注入过程扰动或不切实际的传感器值。验证:
一个值得纠正的实用误区
只测试“快乐路径”(正常运行路径)不是验证,而是演示。真正的调试风险存在于转换、延迟和故障中。
哪种梯形图逻辑模式有助于捕获机械超时故障?
超时模式是最简单的防御结构之一,在 SITL 中具有真正的价值。它将“执行器现在应该已经移动了”转换为可观察的故障条件。
以下是气缸伸出超时的紧凑示例。确切的语法因平台而异,但控制意图是标准的。
语言:梯形图 (Ladder Diagram)
// 气缸动作超时故障逻辑 |---[ ]-----------[/]-----------[/]-----------------(TON)---| CMD_Extend Limit_Retract Limit_Extend Fault_Delay
|---[ ]---------------------------------------------( )-----| Fault_Delay.DN Fault_Cyl_Ext_Timeout
此梯级的作用
- `CMD_Extend` 在发出伸出命令时启动计时条件。
- `Limit_Retract` 未接通表示气缸不再处于安全原位(取决于设备逻辑)。
- `Limit_Extend` 未接通表示尚未收到伸出证明。
- `Fault_Delay` 对允许的行程窗口进行计时。
- 当定时器完成而没有收到伸出证明时,设置 `Fault_Cyl_Ext_Timeout`。
为什么 SITL 在这里很重要
在静态逻辑审查中,这个梯级看起来很简单。在数字孪生中,你可以测试超时设置是否:
- 对于实际的执行器行程来说太短,
- 对于保护机械装置来说太长,
- 被顺序转换错误地复位,
- 对部分运动或卡滞条件视而不见。
这就是编写超时逻辑与验证超时逻辑的区别。
工程师应如何记录仿真证据,而不是仅仅发布截图?
工程证据应展示推理过程,而不仅仅是界面熟悉度。截图库只能证明软件被打开了,除此之外几乎证明不了什么。
如果目标是展示严谨的控制工作,请使用以下结构记录每个模拟练习:
所需证据结构
- 系统描述 定义机器或过程单元、主要执行器、传感器和操作目标。
- “正确”的操作定义 说明顺序被视为正确必须满足的条件。 示例:“在分流气缸完全缩回且产品存在信号清除之前,输送机不得重启。”
- 梯形图逻辑和模拟设备状态 展示相关的梯级、标签定义以及相应的数字孪生状态或反馈。
- 注入的故障案例 明确说明强制或干扰了什么。 示例:“在输送机滑行时间剩余 1.8 秒时发出气缸伸出命令。”
- 所做的修订 记录逻辑变更。 示例:“增加了输送机零速允许条件和伸出超时故障。”
- 经验教训 解释哪个假设失败了,以及修订后的逻辑如何强化了顺序。
这种结构很有用,因为它捕捉到了控制意图、故障模型和纠正推理。这些才是雇主和审查者真正可以审视的材料。仅凭截图大多是装饰性的。
OLLA Lab 对仿真就绪工作流有何贡献?
OLLA Lab 通过在一个基于 Web 的环境中结合梯形图编写、仿真、变量检查、场景上下文和数字孪生交互,支持仿真就绪工作流。其好处不仅仅是为了方便,而是为了在验证过程中减少上下文切换。
在提供的产品事实范围内,OLLA Lab 提供:
- 带有触点、线圈、定时器、计数器、比较器、数学函数、逻辑运算和 PID 指令的基于 Web 的梯形图逻辑编辑器
- 用于在没有物理硬件的情况下运行逻辑、切换输入和观察输出的仿真模式
- 用于监控标签、I/O、模拟值、PID 相关变量和场景状态的变量面板
- 将控制逻辑连接到设备行为的 3D/WebXR/VR 仿真
- 用于针对真实机器模型测试逻辑的数字孪生验证工作流
- 涵盖制造、水/废水处理、暖通空调、化工、制药、仓储、食品饮料和公用事业的基于场景的实验室
- 带有目标、I/O 映射、控制哲学、联锁和验证步骤的引导式构建说明
- 通过 GeniAI 提供的 AI 指导,定位为学习工作流内的实验室辅导和纠正支持
边界声明
OLLA Lab 可以帮助工程师演练在实际系统中难以安全实施的验证任务:
- 追踪 I/O 因果关系,
- 测试联锁,
- 观察故障行为,
- 在异常状态故障后修改逻辑,
- 比较梯形图状态与模拟设备状态。
它不应被视为现场经验、正式功能安全工作或特定现场调试授权的替代品。模拟器可以尽早暴露错误的假设,但它不能签署工厂验收文件。
SITL 与标准、安全和调试风险有何关系?
SITL 可以通过更早地发现缺陷来提高调试质量,但它本身并不能建立安全合规性。这种区别至关重要。
SITL 可以支持的内容
- 更早发现顺序缺陷
- 对异常状态进行更好的测试覆盖
- 更安全地演练故障处理
- 更规范的调试准备
- 改善控制、机械和过程团队之间的沟通
仍需单独处理的内容
- IEC 61508 下的功能安全生命周期活动
- 安全仪表功能 (SIF) 的设计与验证
- 特定现场的风险评估
- 硬件故障容错分析
- 验证测试和已安装系统的验证
关于虚拟调试和信息物理仿真的行业文献通常支持早期行为验证的价值,特别是对于顺序密集型和机电一体化系统。反复出现的结果并不是仿真消除了调试风险,而是仿真将很大一部分缺陷发现工作转移到了项目更廉价、更安全的阶段。这是一个更谦虚的声明,也是更可信的声明。
一个好的首次 SITL 验证练习应该是什么样的?
从一个包含运动、反馈和一个异常状态分支的紧凑顺序开始。如果第一个练习太简单,它教会的是语法而不是判断力。
OLLA Lab 中的一个好的入门案例是输送机与分流器或泵的主/从场景,包含:
- 一个命令路径,
- 一个证明反馈,
- 一个超时,
- 一个报警,
- 一个重启条件,
- 一个注入故障。
这提供了足够的结构来测试因果关系,而不会陷入架构细节中。重点是学习逻辑在接触建模过程时是否能存活,而不是在第一天就构建一个大型系统。
互联链接
References
本文由 Ampergon Vallis Lab 团队编写,旨在为工业自动化工程师提供关于数字孪生验证和 SITL 测试的实用指南。
本文内容基于 OLLA Lab 平台功能及工业自动化验证标准(如 VDI 3693)编写,并参考了 Ampergon Vallis 对 1,200 个模拟场景的内部分析数据。