Skip to content

WaitDI 等待数字量输入

数字量输入等待指令用于在程序运行过程中挂起,直到指定的数字量输入(DI)端口达到预设状态(高电平或低电平)。该指令通常用于同步外部设备信号,例如等待传感器到位、气缸动作完成或 PLC 的允许运行信号。

指令格式

WaitDI(DIN, VALUE, T, INTERENABLE, RET, [Goto])

WaitDI(数字输入端口, 目标状态, 超时时间, 打断使能, 结果变量, [跳转行号])

(备注:带 [] 参数为可选参数)


参数详细说明

参数类型说明默认值/备注
DINDI需要监控的目标数字量输入端口必填
VALUEint 或 INT 变量期望等待的状态值(0 或 1)必填
Tint 或 INT 变量等待限时,单位 ms(0:强制等待直到信号满足)必填
INTERENABLEint (0 或 1)程序暂停恢复后的计时逻辑(0:累计计时,1:重置计时)必填
RETINT 变量存储执行结果(0:成功,1:超时)必填
[Goto]label超时后跳转的标签名可选

应用示例

示例 1:基础限时等待

等待 DI1 变为高电平,时限 1 秒,断点后继续计时。

estun
WaitDI(DI1, 1, 1000, 0, INT1)
/* 若 1000ms 内 DI1 未置 1,则 INT1 被赋值为 1 */

示例 2:超时跳转逻辑

等待进料传感器信号,若超时则跳转到错误处理标签。

estun
WaitDI(DI2, 1, 5000, 0, INT2, Alarm_Label)
MovL(P1, V100, "FINE")  // 正常运行指令
...
Label Alarm_Label:
SetDO(DO_Alarm, 1)      // 超时后的报错逻辑

💡 WaitCondition 与 WaitDI 的区别

指令监控对象适用场景
WaitDI特定 DI 端口简单的硬件信号同步(传感器、开关)
WaitCondition复杂的逻辑表达式多信号组合判断或变量数值比较(如 DI1==1 AND INT0>5

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