条件等待
WAIT_FOR_SIGNAL · V4.23入口为“变量与流程 → 条件等待”。两个比较量及下拉选项与条件跳转相同,没有目标标记或目标行。必须选择数据字典中已定义的用户错误码 128 至 255;即使超时为 0,也要选择。系统错误码不可选,不能用一个通用“条件等待超时”代替不同现场故障。
编号、索引、模式和哨兵值在适用时使用十六进制;脉冲、毫秒及脉冲/秒等物理量仍使用原单位。仅标示固件中实际定义的宏名称。
输入参数
| 参数 | 初始值 | 说明 |
|---|---|---|
输入值 1 / 传感器input_index | X0 | 第一个量:按下拉选项选择输入、变量、输出或当前任务的定时器值/状态。 |
输入值 2compare_source | XSTATE_CLOSE | 第二个量或手动数值;手动值为无符号 32 位整数。 |
比较条件condition | = | =、<>、<、>、<=、>=;比较结果为真才进入下一行。 |
超时时间timeout_ms | 0 | 0 至 2147483647 毫秒;0 表示无限等待,不产生超时报警。 |
超时输出timeout_output | 0x04U (Y4) | 可选无输出;32Y 可选 Y4-Y31,24Y 可选 Y4-Y23。无输出仍记录超时并暂停任务,不改变 Y 输出。 MTGM_SIGNAL_WAIT_NO_OUTPUT = 0xFFU. |
超时用户错误码timeout_error_code | 必选 / 待填写 | 只选字典已定义的用户码 128-255;超时为 0 仍必选。 |
初始值是新插入指令时的编辑器值,使用前请按实际机器设置。
固件宏定义
以下为固件宏定义的十六进制等值写法,数值含义保持一致。
#define MTGM_SIGNAL_WAIT_NO_OUTPUT 0xFFU执行行为与使用说明
- 条件为真立即前进;条件为假且未超时,仅当前任务停留本行,其他任务及通信仍可调度。到达超时边界时若条件已满足,优先按满足处理。
- 超时时 MCU 暂停全部正在运行的任务并保留等待行,记录所选用户错误码。选择 Y 输出时保持其有效,外接喇叭或灯由外设决定;选“无输出”则不改变任何 Y 输出。Host 按数据字典显示错误码和说明,提供“保持暂停”和“继续”;回车、Esc 或关闭提示均保持暂停。没有 Host 时同样暂停并记录,只有选了 Y 输出才有外部报警。
- 继续会清除此类超时错误及其持有的输出,恢复本次暂停影响的任务,在本行重新检测并重新计时,不跳过比较,也不启动原来停止或完成的任务。没有 Host 时,处理原因后按已配置的外部继续按钮。MCU 根据内部故障类型决定是否允许继续,用户填写的码值不改变故障处理等级;其他阻塞故障须先处理,共用输出仍被其他超时持有时保持有效。
- Host 在相关任务或整机写入前检查指令支持,包含函数内指令。“无输出”和用户错误码分别需要配套固件能力;不支持时先升级。旧条件等待记录未选择有效用户错误码时,重新保存前须明确选择。条件等待不占用 T0 至 T3。摘要省略重复的“超时”“报警”标签,例如“变量1 送片标志 == 0 不限时 无输出 128 来料超时”。
- 条件等待参数示例:5000 毫秒、Y4、用户错误码 128 来料超时。截图说明列经加宽便于阅读,实际值按现场设置。