Appearance
WaitCondition 条件等待
该指令用于根据逻辑表达式的结果进行程序阻塞等待。它是最灵活的等待指令,不仅限于 IO 信号,还可以对变量值、数学运算结果或多个条件的组合进行综合判定。
指令格式
WaitCondition(C, T, IE, TV, [Goto]) WaitCondition(判别条件, 时长, 中断使能, 超时判断值, [跳转标签]) (备注:带 [] 参数为可选参数)
参数详细说明
| 参数 | 类型 | 说明 | 默认值/备注 |
|---|---|---|---|
| C(判别条件) | string 表达式 | 逻辑表达式(如 "R1 > 10" 或 "B1 == TRUE && DI1 == ON"),结果为真时程序才向下运行 | 无 |
| T(时长) | int / INT | 等待时间,单位 ms(毫秒)。0 表示永久等待直到条件成立;>0 表示最长等待毫秒数 | 0 |
| IE(中断使能) | 0 或 1 | 定义程序暂停后的计时策略。0:恢复后从暂停时刻继续累加;1:恢复后重新从 0 开始计时 | 无 |
| TV(超时判断值) | INT 变量(如 V 变量) | 反馈指令完成状态。0:条件满足成功通过;1:等待超时 | 无 |
| [Goto](跳转标签) | Label | 可选参数。若超时,程序不执行下一行,直接跳转到指定标签位置 | 无 |
应用示例
示例 1:复杂逻辑判定
estun
WaitCondition("R10 >= 50.5 && DI5 == ON", 2000, 0, V1, Error_Handle)逻辑解析:
- 监控内容:同时检查变量 R10 是否大于等于 50.5,且 DI5 端口是否为接通状态。
- 时限:给系统 2 秒(2000ms)时间去达成上述条件。
- 成功:若达成,V1 = 0,程序执行下一行。
- 超时:若 2 秒后条件仍不满足,V1 = 1,程序直接跳转到标签
Error_Handle处执行异常处理。
工作原理
该指令将程序暂停执行,持续监控指定的逻辑表达式。当表达式结果为真时,程序继续向下执行;若在指定时间内条件始终不满足,则根据参数配置进行超时处理。