Skip to content

WaitDI8421 等待8421码数字量输入

WaitDI8421

该指令用于在指定时长内监控一组连续的数字量输入(DI)端口。它会将这些端口的二进制状态组合转换成一个十进制数,并与设定的目标值进行比对。这种方式常用于读取拨码开关状态、从 PLC 获取多位编码信号或传感器阵列的组合逻辑。

指令格式

WaitDI8421 (T, BEGINPORT, ENDPORT, VALUE, INTERENABLE, RET, [Goto])

WaitDI8421(超时时间, 起始端口, 结束端口, 目标十进制值, 打断使能, 结果变量, [跳转行号])

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


参数详细说明

参数类型说明默认值/备注
Tint 或 INT 变量等待限时,单位 ms(0:强制等待直到信号满足)必填
BEGINPORTint连续 DI 端口段的起始编号必填
ENDPORTint连续 DI 端口段的结束编号必填
VALUEint 或 INT 变量目标十进制数值,端口状态组合与此值比较必填
INTERENABLEint程序暂停恢复后的计时逻辑(0:继续计时,1:重新计时)必填
RETINT 变量返回指令执行结束后的状态(0:成功,1:超时)必填
[Goto]label超时后程序指针跳转到的指定标签名可选

应用示例

示例 1:

estun
WaitDI8421 (1000, 9, 16, 255, 1, INT1)

逻辑解析:

  1. 监控范围:监控从 9 号16 号 的连续 8 个 DI 端口。
  2. 判断条件:目标值为 255。在二进制中,8 位全为 1(即 1111 1111)时,十进制恰好为 255。这意味着要求 9 到 16 号端口必须全部为高电平
  3. 等待机制:最长等待 1000ms
  4. 中断逻辑:由于 INTERENABLE1,若等待过程中程序暂停,恢复后计时器将重置并重新开始 1000ms 的计时。
  5. 结果处理:若 1000ms 内条件满足,程序继续;若超时未满足,则将 INT1 置为 1

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