Appearance
WaitDI 等待数字量输入
数字量输入等待指令用于在程序运行过程中挂起,直到指定的数字量输入(DI)端口达到预设状态(高电平或低电平)。该指令通常用于同步外部设备信号,例如等待传感器到位、气缸动作完成或 PLC 的允许运行信号。
指令格式
WaitDI(DIN, VALUE, T, INTERENABLE, RET, [Goto])
WaitDI(数字输入端口, 目标状态, 超时时间, 打断使能, 结果变量, [跳转行号])
(备注:带 [] 参数为可选参数)
参数详细说明
| 参数 | 类型 | 说明 | 默认值/备注 |
|---|---|---|---|
| DIN | DI | 需要监控的目标数字量输入端口 | 必填 |
| VALUE | int 或 INT 变量 | 期望等待的状态值(0 或 1) | 必填 |
| T | int 或 INT 变量 | 等待限时,单位 ms(0:强制等待直到信号满足) | 必填 |
| INTERENABLE | int (0 或 1) | 程序暂停恢复后的计时逻辑(0:累计计时,1:重置计时) | 必填 |
| RET | INT 变量 | 存储执行结果(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) |