Appearance
WaitDI8421 等待8421码数字量输入
WaitDI8421
该指令用于在指定时长内监控一组连续的数字量输入(DI)端口。它会将这些端口的二进制状态组合转换成一个十进制数,并与设定的目标值进行比对。这种方式常用于读取拨码开关状态、从 PLC 获取多位编码信号或传感器阵列的组合逻辑。
指令格式
WaitDI8421 (T, BEGINPORT, ENDPORT, VALUE, INTERENABLE, RET, [Goto])
WaitDI8421(超时时间, 起始端口, 结束端口, 目标十进制值, 打断使能, 结果变量, [跳转行号])
(备注:带 [] 参数为可选参数)
参数详细说明
| 参数 | 类型 | 说明 | 默认值/备注 |
|---|---|---|---|
| T | int 或 INT 变量 | 等待限时,单位 ms(0:强制等待直到信号满足) | 必填 |
| BEGINPORT | int | 连续 DI 端口段的起始编号 | 必填 |
| ENDPORT | int | 连续 DI 端口段的结束编号 | 必填 |
| VALUE | int 或 INT 变量 | 目标十进制数值,端口状态组合与此值比较 | 必填 |
| INTERENABLE | int | 程序暂停恢复后的计时逻辑(0:继续计时,1:重新计时) | 必填 |
| RET | INT 变量 | 返回指令执行结束后的状态(0:成功,1:超时) | 必填 |
| [Goto] | label | 超时后程序指针跳转到的指定标签名 | 可选 |
应用示例
示例 1:
estun
WaitDI8421 (1000, 9, 16, 255, 1, INT1)逻辑解析:
- 监控范围:监控从 9 号 到 16 号 的连续 8 个 DI 端口。
- 判断条件:目标值为 255。在二进制中,8 位全为 1(即
1111 1111)时,十进制恰好为 255。这意味着要求 9 到 16 号端口必须全部为高电平。 - 等待机制:最长等待 1000ms。
- 中断逻辑:由于
INTERENABLE为 1,若等待过程中程序暂停,恢复后计时器将重置并重新开始 1000ms 的计时。 - 结果处理:若 1000ms 内条件满足,程序继续;若超时未满足,则将 INT1 置为 1。