MES 中已经有任务,WCS 中也能看到对应的搬送任务。

但有任务,不代表现场就能马上执行。

任务生成以后,还要确认目标工位能不能接、资源有没有被占用、必要许可有没有成立,以及现场状态是否已经变化。

因此需要把两个状态分开看:

任务存在:系统已经生成了要执行的任务。

任务可执行:当前现场条件已经允许这个任务真正开始执行。

前者说明“有没有任务”,后者说明“现在能不能做”。


1. 任务存在,只说明“有一件事需要执行”

MES 生成生产任务、WCS 创建搬送任务、PLC 收到启动请求,都说明系统中已经形成了一个需要处理的对象。

例如:

MES:生产任务已生成
WCS:搬送任务已创建
PLC:启动请求已收到

这些信息说明系统下一步需要处理什么。但任务生成以后,现场设备、资源、许可和下游承接状态仍然按照各自的运行状态变化。

因此:

Task Exists ≠ Execution Ready

任务已经形成,不能直接说明当前已经可以执行。


2. 任务生成以后,现场还在继续变化

任务形成以后,真正执行通常发生在稍后的时间点。

在这段时间里,现场状态仍然会变化。

例如,一个搬送任务生成时,目标站点可能可以接收;等到车辆真正准备开始搬送时,共享资源可能已经被其他任务占用,下游状态可能发生变化,原本成立的许可也可能已经撤销。

所以,任务只是已经形成的执行要求,是否允许进入执行还要根据当前状态判断。

系统中常见的:

Pending
Waiting
Queued
Blocked

只能说明任务还没有进入执行,具体卡在哪里,仍然要结合当前任务、资源、许可、设备和下游状态判断。

如果每次都需要工程师回到 MES、WCS、PLC 和设备状态中逐项核对,说明“任务已经存在”和“当前可以执行”之间的判断关系还没有被完整组织起来。


3. 先明确任务下一步要进入什么状态

一个任务从生成到完成,会经过多个状态。

同一个任务,在不同阶段需要确认的内容也不同。

例如,任务已经生成,并不等于车辆现在就可以开始搬送。判断之前,先要明确当前是在判断“能不能开始搬送”,还是在判断“能不能进入目标站点”,或者“能不能完成交接”。

目标状态明确以后,相关的车辆状态、资源占用、区域许可和目标站点状态才有具体的判断意义。

所以,任务是否可以继续,需要结合它当前准备进入的下一状态来判断。

TPCA / PCN 就是围绕这个明确的目标状态入口,组织本次进入所需要的状态和前置判断。

具体应用参见:

MES / WCS 协同停滞诊断模块案例


工程结论

任务生成以后,系统已经知道“要做什么”。

真正开始执行前,还需要确认当前现场是否已经具备进入下一状态的条件。

因此,同一个任务需要分别看:

任务有没有生成,当前能不能进入下一执行状态。

TPCA / PCN 将后一个问题放到具体的目标状态入口中处理,把相关任务状态、现场状态、许可和执行条件放在同一次状态迁移中判断。


进一步阅读


文档信息

题目:“为什么任务存在,不代表任务可以执行?”
文档类型:工程问题
问题类型:多系统联动问题
版本:Public Question Version 1.2
首次发布日期:2026-07-04
最后更新:2026-09-18
作者:全野南政 / Nansei Zenno
当前 URL:https://zennns.com/zh/questions/why-task-exists-but-cannot-execute/