Skip to content

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)

逻辑解析:

  1. 监控内容:同时检查变量 R10 是否大于等于 50.5,且 DI5 端口是否为接通状态。
  2. 时限:给系统 2 秒(2000ms)时间去达成上述条件。
  3. 成功:若达成,V1 = 0,程序执行下一行。
  4. 超时:若 2 秒后条件仍不满足,V1 = 1,程序直接跳转到标签 Error_Handle 处执行异常处理。

工作原理

该指令将程序暂停执行,持续监控指定的逻辑表达式。当表达式结果为真时,程序继续向下执行;若在指定时间内条件始终不满足,则根据参数配置进行超时处理。

ESTUN Robotics — ER 系列机器人编程语言指令参考