连接任何 ERP

SkyPlanner 的开放 REST API 可连接 ERP、MES 和运营系统,包括内部 ERP。您可以自行构建集成,也可以让我们的团队协助。

也可独立运行 — ERP 集成是可选的,非必需的。

讨论集成项目

连接 ERP 和 MES 系统,如

resources

作业车间调度:定义、示例与方法

通过双任务示例理解作业车间调度,比较排程方法,了解 SkyPlanner 如何在共享机器之间重新计算任务。

Jussi Mäntylä SkyPlanner 生产计划专家 已更新 October 4, 2026 4 分钟阅读
Two batches follow opposite routes between shared milling and drilling workstations
在这篇文章中
  1. 作业车间调度要决定什么
  2. 作业车间、流水车间、柔性作业车间与按订单生产
  3. 作业车间调度示例:任务 A 与 B 的工艺路线交叉
  4. 作业车间调度在 SkyPlanner 中的体现
  5. 让作业车间排程可用的输入数据
  6. 将订单数据与排程模型连接起来
  7. 排程方法及其服务的目标
  8. 当 B 变得紧急或某台机器不可用时,会发生什么变化?
  9. 在告别电子表格之前需要检查什么
  10. 常见问题
  11. 什么是作业车间调度?
  12. 作业车间调度与流水车间调度有什么区别?

首页 » 资源 » 作业车间调度:定义、示例与方法

预计阅读时间: 15 分钟

作业车间调度为各生产任务分配开始时间和共享资源,这些任务的工序遵循各自指定的工艺路线。它让每个生产任务的工艺步骤保持先后顺序,并避免相互竞争的工序在同一时间占用同一资源。排程结果会告诉生产团队:哪些工序可以接着开工,哪些必须等待。

要点速览

作业车间排程把每个生产任务的工艺路线与共享工作中心的可用性关联起来,而不只是看它在订单清单中的位置。

不同机器可以并行加工不同的生产任务,而每个生产任务必须遵循自身的工序顺序。

整体完工时间最短,与满足紧急客户的交期,可能需要不同的排程方案。

在 SkyPlanner 中,有序的工序阶段和可用的工作中心构成工艺路线模型;SkyPlanner 的排程引擎 Arcturus 负责重新计算已排程的工作,Gantt 则将其呈现出来。

使用 Reschedule all 之前,请先检查生产任务的排入情况和工艺路线数据:它会对已在 Gantt 上的生产任务重新优化。

作业车间调度要决定什么

在机加工车间,一个订单可能需要先铣削后钻孔,而另一个订单则需要先钻孔后铣削。两个订单争用同一批机器,但各自下一台可用的机器并不相同。仅按交货日期给订单排序,仍然无法告诉铣削操作工哪道工序可以开工。

一份排程要解决三个相互关联的决策:哪道工序已就绪、哪个资源可以加工它、以及它何时可以运行。工序是否就绪取决于前道工序和生产所需的投入。资源是否可用取决于已分配给该资源的其他工作。因此,改动一处分配,可能会影响沿各自工艺路线靠后的多个订单。

作业车间调度是生产排程中的一类特定问题。生产排程也涵盖工艺路线更简单或更重复的场景。作业车间这一区分之所以重要,是因为一份全厂统一的订单顺序,无法完整描述每个工作中心上工序层面的先后顺序。

作业车间、流水车间、柔性作业车间与按订单生产

概念描述的内容实际问题
作业车间各生产任务按各自指定的工序顺序流经共享资源不同的工艺路线如何使用相同的机器而互不冲突?
流水车间各生产任务遵循相同的机器顺序各生产任务应以怎样的顺序通过这条共同的路线?
柔性作业车间一道工序可以在多台符合条件的机器中选择每道工序应分配到哪台符合条件的机器、以何时开工?
按订单生产由客户订单触发生产特定订单应在何时下达生产?

经典的作业车间模型为每道工序指定一台机器。柔性作业车间排程则在时间安排问题之外,增加了机器选择。按订单生产描述的是生产的触发方式,因此一家工厂既可以是按订单生产,同时也可以按作业车间的方式组织。

Google 的 OR-Tools 文档清楚地展示了两条基本约束:一道工序必须在其前道工序之后进行,且一台机器同一时间只能处理一道工序。在实际车间中,工作日历、物料和人员会给这一基本模型增加更多条件。

作业车间调度示例:任务 A 与 B 的工艺路线交叉

以下数字均为假设性示例。两个工作中心——铣削 M 和钻孔 D——从时间 0 起即可使用,各自一次只处理一道工序。为便于说明,本例不含准备时间、日历休息、物料短缺或共用操作工,且每道工序连续运行、不中断。

冲突很简单:A 和 B 以相反的顺序需要相同的机器,因此即使钻孔空闲,B 也必须等待铣削。

生产任务第一道工序第二道工序总加工时间
A铣削 M:2 个时间单位钻孔 D:1 个时间单位3 个时间单位
B钻孔 D:1 个时间单位铣削 M:1 个时间单位2 个时间单位

如果计划员先完成 A 的全部工序再开始 B,则 A 在 0 到 2 使用铣削,在 2 到 3 使用钻孔。随后 B 在 3 到 4 使用钻孔,在 4 到 5 使用铣削。两个生产任务在时间 5 完成,尽管在 A 的首道铣削工序期间,钻孔是空闲可用的。

允许两条工艺路线相互重叠,可得到如下可行的排程:

工作中心时间 0 至 1时间 1 至 2时间 2 至 3
铣削 MA,第一部分A,第二部分B
钻孔 DB空闲A

现在所有工作在时间 3 完成。对这个示例模型而言,这就是最短的完工时间(makespan):铣削需要在一台机器上加工 3 个时间单位的工作量,因此任何可行的排程都不可能更早完成。B 在时间 1 完成钻孔,但要等到 A 在时间 2 释放 M 之后才能开始铣削。钻孔的空闲时段并不意味着计划员遗漏了某道工序:A 仍在铣削,而 B 已经用过钻孔了。

总加工时间为 5 个单位,但它分布在两台机器上。这个总和并不等于工厂实际经过的完工时间。反过来,如果在电子表格里把两个生产任务都放在时间 0,而不检查各道工序,就会掩盖它们之后对铣削的争用。

直到最后一个生产任务完成所经过的时间称为完工时间(makespan)。当目标是尽快完成这一整批工作时,它是一个很有用的衡量指标。但它并不能说明某位客户的订单是否完成得足够及时。当 B 有紧急交期时,这一区别就变得重要了。

作业车间调度在 SkyPlanner 中的体现

在 SkyPlanner 中,A 和 B 的工艺路线会成为带有可用工作中心的有序工序阶段:A 需要先铣削后钻孔,B 需要先钻孔后铣削。请在生产模型中设置工作中心、班次、操作工、优先级和物料,并为生产任务提供工艺路线和工序时长。排程器会遵循已定义的工序阶段顺序,并为每个步骤选择最合适的可用工作中心。SkyPlanner 的生产排程软件会自动为离散制造工作排程,同时综合考虑物料可用性、班次、优先级和交货日期。计划员做决策,AI 按预设优先级执行。

A 和 B 排入 Gantt 之后,点击 Reschedule all(SkyPlanner 的重新计算按钮,也称 King Button)会触发 Arcturus 重新计算已排程的工作;Gantt 随即显示最终的分配结果和先后顺序。Reschedule all 不会把未排程标签页中的生产任务移入排程。在评估重新排程之前,请先完成生产任务的初始排入。想要体验这一流程,可以使用演示数据试用 SkyPlanner,或在 SkyPlanner Assistant 中使用 AI 辅助的快速入门;也可以预约演示,探讨您自己的工艺路线和优先级。

让作业车间排程可用的输入数据

算法可以对它收到的生产模型进行排序。计划员的首要任务,是让这个模型真实反映车间的实际情况。对于 A 和 B,先从工艺路线入手,再检验可用性以及会影响排程的订单信息。

需检查的输入需要确认的内容A 与 B 的检查要点
工序顺序工序顺序反映实际的制造依赖关系A 要求先铣削后钻孔;B 则要求相反
工序时长每道有效工序都有一个为正数且可信的时长在判断 A 的完工日期时,不能让其铣削时长为空
工作中心适用性每个工序阶段至少有一个符合条件的工作中心B 的铣削步骤需要一个能够完成该工序的工作中心
工作可用性班次和资源可用性与可执行的生产时间相匹配在分配给 A 的时间段内,M 必须确实可用
操作人员生产模型体现相关操作人员的可用情况如果 A 和 B 需要同一个人,就不能假定两者可以相互独立地运行
物料体现所需物料的可用情况即使 D 空闲,B 也可能无法开始钻孔
优先级与交货日期记录既定的业务偏好和承诺的日期如果 B 很紧急,这一偏好必须在重新计算之前就清晰可见

在 SkyPlanner 中,只要有任何一道工序没有符合条件的工作中心,该生产任务就无法排程。如果 B 的铣削工序没有符合条件的工作中心,反复重新计算排程也无法修复缺失的工艺路线。请先检查该工序的可用资格。同时也要检查 B 是否仍处于“未排程”(Unscheduled)状态,这与已排程任务的顺序调整是两个不同的问题。

Getting Started 会建立工作中心、产品和流程。流程把有先后顺序的工序、持续时间和工作中心的工艺路线串联起来。一个可进入流程的制造产品,其有效工序需要有大于零的持续时间和相应的工艺路线。在用生成的 Gantt 评估排程质量之前,请先验证这些基础内容。

接下来,请检查有限产能排程:分配的任务需要有可用的产能。一台记录为全天可用的机器,与只在特定班次可用的机器,会给出不同的排程结果。如果操作人员是共用的,那么 A 和 B 的示例并行排程也需要进行这一额外的产能检查。

将订单数据与排程模型连接起来

现有的 ERP 和 MES 系统为订单、产品和生产提供数据背景。SkyPlanner 通过其开放的 REST API 与任何 ERP 或 MES 系统集成。请参考集成路径,确定相关的生产数据将如何传送到排程系统,以及由哪个系统负责维护这些数据。

对于 A 和 B,需要明确约定它们的工艺路线、持续时间、物料信息和交货日期各自来自哪里。如果 ERP 中的交货日期发生了变化,而计划模型仍保留之前的日期,计划员评估的就是另一个生产问题了。在评估排程时,除了看直观的结果,还应关注数据的归属和一致的更新。

排程方法及其服务的目标

不同的排程方法所考虑的问题范围各不相同。局部派工方法按某一准则选出下一道已就绪的工序。数学优化模型则考虑指定的约束条件和一个目标。自动生产排程系统则把排程计算与工厂持续维护的生产模型联系起来。

方法适用的起点需要审视的取舍
先到先服务让到达顺序易于理解先到的长工序可能会延误后到的紧急任务
最早交期优先关注临近的交期紧急的生产任务可能仍在等待前置工序或尚不可用的资源
最短加工时间优先推进已就绪的短工序即使较长的任务涉及重要的客户承诺,也可能被推后
关键比率比较距离交期的剩余时间与剩余加工时间该比率需要持续更新的剩余工作量估计
松弛时间比较距离交期的时间减去剩余加工时间的差值松弛时间小表明紧急,但并不能消除资源冲突
数学优化针对已定义的目标(例如最大完工时间)进行探索结果取决于模型中包含的约束条件和目标
自动生产排程基于持续维护的工艺路线、可用性和优先级重新计算任务分配输入不正确,得到的车间状况图景仍然是不正确的

最短加工时间(SPT)规则在基本的单机模型中有明确的保证:当相互独立的生产任务同时就绪、加工时间已知、作业连续不中断且没有与顺序相关的准备时间时,它能使平均流程时间和平均在制品库存最小。这一保证并不会自动适用于工艺路线相互交叉的作业车间。华盛顿大学的作业车间调度教学讲义解释了单机情形下的结论,以及 SPT 在降低在制品库存方面的作用。

在 A/B 示例中,先安排 B 较短的钻孔工序,只是决策的一部分。当 B 到达铣削时,A 仍可能占用着铣削设备。计划员必须向前看下一个共享资源,而不能只根据第一道工序的完成时间来判断顺序的优劣。

对于稳定而简单的工作负荷,透明的派工方法可能很有用。而当工艺路线相互交叉且变动频繁时,计划员需要一种能够反复评估下游影响的手段。

在比较各个结果之前,请先明确说明目标。除了最大完工时间之外,目标还包括拖期(生产任务在交期之后多晚完成)和流程时间(从下达到完成所经历的时间,包括等待)。你是想尽快完成这一整批任务、保障 B 的客户交期,还是想找出现有产能能够支持哪一项承诺?请在相同的目标和生产输入下比较各个排程。仅凭更好的最大完工时间,无法回答这三个问题。

当 B 变得紧急或某台机器不可用时,会发生什么变化?

假设在同一个假设示例中,B 的交期是时间 2。在上面的重叠排程中,B 在时间 3 完成。为了满足更早的交期,计划员可以让 B 先于 A 进行铣削:

生产任务第一道工序第二道工序完成
B钻孔 D:0 至 1铣削 M:1 至 2时间 2
A铣削 M:2 至 4钻孔 D:4 至 5时间 5

铣削有意在 0 至 1 期间等待,以便在 B 完成钻孔时可以立即使用。B 满足了示例中的交期,但整批任务的完成时间更晚。因此,对于紧急订单来说,让每台机器在最早的时刻就开始忙碌,并不总是正确的决定。

这是一种优先级上的取舍。由计划员决定哪项承诺更重要,并检查对 A 的影响。在 SkyPlanner 中,预设优先级为自动排程提供方向;随后计划员对照生产目标和可用资源来审查 Gantt。

现在假设 M 在 A 计划的铣削时间段内变得不可用。更新可用性后,即使两条工艺路线都没有变化,A 和 B 的可行方案也都会随之改变。如果确实存在另一台符合条件的机器,机器选择就变得有意义;如果没有符合条件的机器,则必须先解决铣削产能缺失的问题,两个生产任务才能走完各自的工艺路线。

限制性资源也可能随订单组合而变化。在这个示例中,铣削限制了两个任务的重叠,但如果加入以钻孔为主的任务,D 的负荷就会发生变化。请结合当前的工作负荷来审视生产瓶颈,不要仅凭上周排程中最繁忙的机器来推断下一个瓶颈。

在审查更新后的排程时,请沿着受影响的生产任务,逐一追踪其剩余的工序。对于 B,钻孔提前完成只有在铣削能够接续进行时才有帮助。对于 A,钻孔时段空出来,只有在铣削完成之后才有意义。

在告别电子表格之前需要检查什么

电子表格可以表示 A 和 B 的工序顺序、持续时间以及工作中心的占用情况。在模型较小且稳定时,计划员可以直接检查冲突。但当一处变动需要重新审视许多相互依赖的工序、资源日历和客户优先级时,这项工作就变得更难维护。

请用一个有代表性的生产场景来评估下一个工具。其中应包含像 A 和 B 这样相互交叉的工艺路线、一个紧急交期以及一次可用性变化。先检查输入模型,再检查排程结果。一张精美的时间线,无法弥补缺失的铣削工艺路线或错误的班次。

一个有用的评估顺序如下:

1. 将每道工序与其前置工序、持续时间和符合条件的工作中心对应起来。

2. 确认预定生产期间的物料和资源可用性。

3. 确认新生产任务如何进入已排程状态,并与对现有任务的重新计算区分开来。

4. 设定决定本次决策的优先级和交货日期。

5. 在 Gantt 中查看每个生产任务的进展以及共享资源上的工作负荷。

6. 更改一项输入,并检查它对紧急订单和其他任务造成的后果。

已发布的 Eskomatic 受托加工案例给出了一个有价值的运营观察:手工维护的任务队列只是困难的一部分。物料可见性有限,使得物料短缺更难预见。Eskomatic 提到,更清晰的 Gantt 任务队列和自动负荷排程有助于确定交货日期。在它的案例中,既能看到即将进行的工作,又能看到执行这些工作所需的条件,两者缺一不可。

在做自己的评估时,请把这两方面结合起来:团队能否看懂队列,队列是否反映了实际可用的物料和产能?就 A 和 B 而言,这意味着既要解释 B 为什么要等待 M,也要说明这两个生产任务能否用现有物料开工。

开始 SkyPlanner 试用,体验演示数据或 AI 辅助的入门引导。预约演示,带上具有代表性的工艺路线、工作中心可用时间和一次优先级变更,了解排程流程如何适用于您的生产。

常见问题

什么是作业车间调度?

作业车间调度用于确定每道工序在共享资源上何时运行,同时保证每个生产任务按其工艺路线的顺序进行。它的特殊难点在于不同工艺路线之间的相互影响:在示例中,B 可以完成钻孔,却仍要等待铣削,因为 A 占用了铣削资源。评估时应看工序层面的时间安排,而不只是订单层面的日期。

作业车间调度与流水车间调度有什么区别?

流水车间模型让所有生产任务采用相同的机器顺序;作业车间模型则让每个生产任务拥有各自指定的顺序。如果 A 和 B 都需要先铣削再钻孔,它们就共用同一条流水车间路线。而本文中 A 和 B 的工艺路线方向相反,这才在铣削工作中心造成了作业车间调度冲突。

什么是柔性作业车间调度?

柔性作业车间调度允许一道工序在多台符合条件的机器中选择一台运行。决策既包括机器分配,也包括时间安排。如果 B 可以使用第二个合适的铣削工作中心,就多了一个排程选项。所谓“符合条件”,必须指确实能够完成该工序的机器,而不仅仅是有空闲时间的机器。

作业车间生产就是按订单生产吗?

不是。按订单生产指的是由客户订单触发的生产,而作业车间指的是围绕不同的工序路线和共享资源来组织的工作。针对客户定制的 A 和 B 可以是采用作业车间工艺路线的按订单生产任务。按订单生产的工厂也可能采用共同的工艺路线,因此订单触发方式并不能决定排程的路线结构。

作业车间排程需要哪些数据?

先从有先后顺序的工序、大于零的时长和符合条件的工作中心入手,再加入工作可用时间、操作人员、物料、优先级和交货日期。在 SkyPlanner 中,如果某道工序没有符合条件的工作中心,该生产任务就无法被排程。如果 Gantt 中看不到 B,请先检查工艺路线和初始排入情况,再评估重新排程的结果。

生产计划员应选用哪种作业车间排程方法?

应根据目标和变化频率来选择方法。简单的派工方法可以支撑稳定的决策;而存在相互影响的工艺路线,则需要关注下游资源冲突。对 A 和 B 来说,最大完工时间更短的排程,与保障 B 较早交货期限的排程并不相同。比较各种方法时,应使用相同的输入数据和客户优先级。

能用 Excel 做作业车间排程吗?

可以,电子表格能够表示工艺路线、时长和工作中心占用情况,但它必须检查工序顺序和资源冲突,而不只是订单日期是否重叠。当变更反复影响相互依赖的工序时,请评估该模型需要多少人工核对,以及计划员能否可靠地解释更新后的资源分配和完工日期。

Reschedule all 会排程“未排程”标签页中的生产任务吗?

不会。Reschedule all 会重新计算已经排在 Gantt 上的生产任务,不会排入“未排程”标签页中的任务。对于 A 和 B,请先检查排入情况:您能在 Gantt 上看到这两个生产任务吗?如果 B 仍处于未排程状态,请先解决其初始排入问题,再比较两条工艺路线。这样可以把“任务缺失”与“顺序问题”区分开来,让计划员评估的是真正纳入重新计算的工作。

Jussi Mäntylä

SkyPlanner 生产计划专家

使用 SkyPlanner 制定更清晰的生产计划

连接您的数据,审查第一个计划,并让规划人员控制每个上线的时间表。