一条产线停了一个多小时。

机器人显示 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 所关注的基本问题。


进一步阅读


文档信息

题目 : 为什么 Ready 不够? 文档类型 : 工程问题
问题类型 : 单元与现场执行问题
版本 : Public Question Version 1.0
发布日期 : 2026-07-04
作者 : 全野南政 / Nansei Zenno
当前 URL : https://zennns.com/zh/questions/why-ready-is-not-enough/