一条产线停了一个多小时。
机器人显示 Ready,PLC 条件全通,就是不抓取。现场反复查程序,最后发现是视觉识别结果的时间戳已经超时失效,判断逻辑里没检查这一项。系统认为 Ready 成立,实际视觉条件已经过期。
类似情况不止一次。
机器人 Ready,抓取阶段进不去——安全门许可没成立。下游设备 Ready,搬送交接后立刻等待——对方实际没完成承接准备。MES 显示任务可执行,现场一直 waiting——上游工单数据没真正下发。
表面上看都是“Ready 了为什么不动”,实际原因完全不同。
现场现象
典型现象包括:
- 单体设备 Ready,但系统仍不能启动下一动作。
- PLC 条件满足,但执行机构没有动作。
- 机器人 Ready,但抓取、放置或交接阶段无法进入。
- 下游设备 Ready,但实际承接条件不完整。
- 安全许可、区域许可、上位许可或人工确认未成立,导致动作被阻断。
- 视觉识别结果曾经 OK,但时间戳过期或工件位置已经偏移。
- 所有主要设备都没有报警,但系统仍停在等待状态。
有的问题来自条件不成立,有的来自许可没成立,有的来自执行链接不上,也有的来自信号过期、边界状态或结构定义不完整。
Ready 能说明什么
Ready 通常表示某个设备、机构、程序或模块已经具备局部可运行状态。
例如:
- 机器人控制器处于自动模式;
- 伺服系统已上电;
- 设备无报警;
- 程序处于可执行状态;
- 某个机构回到原点;
- 某个下游设备返回可接收信号;
- 某个通信对象在线。
这些信息非常重要。没有 Ready,系统通常不应进入下一动作。没有这些信号,不该动,这一点没有争议。
但 Ready 的含义通常是局部的。它说明某个对象“自身可以运行”,并不说明整个系统“可以进入目标阶段”。
换句话说,Ready 是必要输入之一,但不是状态迁移成立的充分条件。
Ready 不能覆盖什么
状态迁移是否成立,通常不只取决于某个设备是否 Ready。
还需要确认以下内容:
- 工件是否存在,位置是否正确,姿态是否合格;
- 识别结果是否有效,时间戳是否过期;
- 任务是否存在,参数是否完整;
- 前序阶段是否真正完成;
- 安全门是否关闭,光栅是否未触发;
- 区域进入许可是否成立,资源锁是否释放;
- 上位系统是否放行,人工确认是否完成;
- 机器人路径是否可达,夹爪是否可用;
- 下游是否可承接,返回路径是否存在;
- 异常品是否有排出路径,结果是否能够上传或回写;
- 信号是否过期、冲突、未刷新;
- 位置偏差是否接近补偿边界,识别置信度是否接近阈值;
- 等待窗口是否已经触发,重试次数是否接近上限。
这些问题缺一个,状态迁移都可能卡住。
Ready 成立后仍然不能动作,不一定是程序错误。更常见的情况是,Ready 只覆盖了局部状态,而目标阶段进入前的其他条件没有被显式判定。
状态迁移前还需要判断什么
在进入目标状态之前,系统至少需要回答三个问题。
第一,条件是否成立。
目标对象、现场条件、识别结果、任务信息、参数、前序状态是否满足进入要求。
第二,许可是否成立。
安全许可、区域许可、上位许可、资源许可、人工确认、对方设备许可是否允许进入目标阶段。
第三,执行链是否能够接续。
进入目标阶段后,本体设备、末端执行机构、下游承接、返回路径、异常分流、结果回写是否能够接得住。
把这三个问题逐项确认清楚,现场问题就不容易全部被压缩成“Ready 了为什么还不动”。
用 C / A / E 重新看 Ready
可以把状态迁移前的判断拆成三类状态变量。
C:Condition,条件状态。
用于判断目标阶段进入前的对象条件、识别条件、数据条件、任务条件是否成立。
A:Authority,许可状态。
用于判断系统是否允许进入目标阶段。安全许可、上位许可、资源锁、区域许可、人工确认等都属于这一类。
E:Execution Chain,执行链状态。
用于判断进入目标阶段后,执行链是否能够接续。E 不等同于某个设备 Ready,它还包括下游承接、回退路径、异常排出路径和结果回写链路。
从这个角度看,Ready 更适合作为某个 C、A 或 E 判断中的输入信号,而不应直接作为状态迁移成立的最终结论。
例如:
- 机器人 Ready 可以作为 E 的一个输入;
- 下游 Ready 可以作为 E 的一个输入;
- 安全回路正常可以作为 A 的一个输入;
- 视觉结果 OK 可以作为 C 的一个输入。
但只有这些输入被放到目标状态进入前的结构中,才能判断系统是否真正可以进入下一阶段。
还需要 S / D / B 判定
仅仅把 Ready 放入 C / A / E 还不够。
还需要继续判断相关状态的性质。
S:Structure,结构完整性。
判断进入目标状态所需的信号、接口、许可来源、执行链边界是否已经定义、接入并可观测。
例如,视觉 OK 信号有了,但视觉结果时间戳没有接入;下游 Ready 信号有了,但下游承接完成状态没有定义;机器人 Ready 有了,但异常分流路径没有纳入执行链判断。
D:Dynamics,动态时序有效性。
判断当前信号是否有效、同步、未超时、未冲突、未撤销。
例如,视觉结果曾经 OK,但已经过期;下游 Ready 长时间未刷新;安全许可在动作前被撤销;通信状态恢复了,但数据仍是旧值。
B:Boundary,控制边界。
判断边界状态下系统下一步应等待、重试、重识别、回流、降级、禁止进入、安全锁定还是人工确认。
例如,识别置信度接近边界,位置偏差接近补偿范围,等待时间接近上限,重试次数接近限制。
这样,Ready 才能从一个局部状态信号,进入目标状态入口前的结构化判定。
工程结论
Ready 很重要,但 Ready 不够。
在复杂工程系统中,状态迁移失败往往不是单点 Ready 信号的问题,而是条件、许可、执行链之间没有形成完整、有效、可接续的进入结构。
因此,状态迁移设计不能只停留在 Ready / Not Ready、OK / NG、Interlock 成立 / 不成立。
更合理的做法是在目标状态进入前设置前置判定节点,对多源状态信号进行整理,明确:
- 问题来自条件、许可还是执行链;
- 问题属于结构缺失、动态异常还是控制边界;
- 下一步应允许进入、等待、重识别、回流、下游协调、降级、禁止进入、安全锁定还是人工确认;
- 本次判断过程是否能够记录、追溯和复盘。
这就是 TPCA / CAE-SDB 所关注的基本问题。
进一步阅读
- 为什么 Waiting 越来越难排查?
- 为什么 PLC Ready 仍不能运行?
- 为什么资源锁、区域许可和下游许可比 Ready 更关键?
- 概念库:TPCA / CAE-SDB
- TPCA / CAE-SDB 公开白皮书
文档信息
题目 : 为什么 Ready 不够?
文档类型 : 工程问题
问题类型 : 单元与现场执行问题
版本 : Public Question Version 1.0
发布日期 : 2026-07-04
作者 : 全野南政 / Nansei Zenno
当前 URL : https://zennns.com/zh/questions/why-ready-is-not-enough/