齐套检查与分配在生产计划中的实现

简介: 最近一段时间看到很多关于生产计划中,作齐套检查与分析讨论,正好我们的易排1.5版添加了类似功能。本文结合易排平台上相应的功能与特征,介绍一下我们在这方面的些许研究结论与看法。

最近一段时间看到很多关于生产计划中,作齐套检查与分析讨论,正好我们的易排1.5版添加了类似功能。本文结合易排平台上相应的功能与特征,介绍一下我们在这方面的些许研究结论与看法。
本文中用到些引用自易排平台的概念,先行给出定义,以便大家后续畅顺阅读。

概念定义

工序 - 易排平台中,工序是一个工艺相关的概念,多个前后关联工序构成一个产品的工序路线,平台的引擎中对工序展开后,结合工单信息会生成任务,即工序是任务的模板,例如一个多个工单中的多个任务均可以来源于同一个工序

任务 - 易排平台中,任务是一个生产相关的概念,任务由工序衍生而来。即任务是工序的实例

齐套检查 - 在定制生产计划过程中,对于有物料需求的订单或工序, 判断其计划开始时间是否存在足够物料,否则开始时间不合理方案不可行,引擎会继续寻找其它可行方案。

齐套分析 - 通过生产计划中各个有物料需求的工单或工序的开始时间,统计出各种物料在各个时刻的最小需求量,即齐套分析结果可作为MRP的原始数据

可再生资源 - 在引擎进行规划运算过程中用于满足任务执行,且不存在时序相关性的资源,例如:设备器材、人员等,一台设备一天的产能是300,第1天无论是否被分配到任务,第2天的产能仍为300。即每一天的产能与其前1天的分配不相关。

非可再生资源 - 在引擎进行规划过程用于满足任务执行,但资源可用量在时间轴的不同时刻上存在相关性的资源。例如:例如一个生产计划中存在一种物料共有两个任务将会使用到,分别需要该物料量为300,而该物料的库存量为500,当第一个任务分配的时间早于第二个任务时,因为第二个任务加工时,第一个任务已使用了300个单位的资源量,则第二个任务会因为该种物料可用量不足,而无法执行,除非在此期存在入库交易,令库存量增加到300或以上。即在时间轴上不同时刻非可再生资源的使用存在相关性。

齐套检查分析功能的来源与实现原理

在之前的版本中,我们的项目较少遇到需要进对物料进行规划,因此,1.4及以前的版本中,易排平台只针对设备、人员等可再生资源进行规划,实现多工序时序制约、多资源匹配等约束排程。对于原料、耗材等物料相关资源,只能过可用性约束来实现的齐套检查,确保在任务拟定的计划开始时刻有足够的物料可用。但对于齐套分析是无法实现的。
在1.5版本中我们增加一个“非可再生资源”的概念将齐套检查与分析关联在一起实现了,在易排平台中,同一个规划数据集中可同时实现齐套检查齐套分析。即对于一些库存常备的通用耗材,可以将其定义为齐套检查对象,引擎会根据该类物料的库存量、入库计划来制约任务的执行时间。对于按单采购的生产加工物料(例如非标部件、半成品),将其定义为齐套分析对象,引擎不会将该类物料的可用量作为制约条件来限制任务的计划开始时间,而是在输出计划时,会统计各个任务所需的物料及计划开始时间,从而得到一个物料需求清单,并以天为单位列出各种物料在每天的需求量。该清单可以作为MRP报表的基础数据。

MPS与APS两个层次均可产生MRP

易排平台目前主要提供的是针对工单层面的最细层次的排程,即APS,而后续我们还会添加MPS(主生产计划),这一更高层次的规划模块。这两个层次的计划其实是针对供应链的不同阶段而备的,MPS用于在销售订单确认后,生产细节未落实阶段(例如订单已确定但产品工艺设计未确定时)进行的企业级排程,以企业的整体产能为制约基础,着重于订单的交期回复与产能的预估。APS则需要在工单生成后,基于产品的工艺信息,形成具体的生产加工任务,获得各个任务的具体开始时间,计划占用资源等详细信息。
从上述MPS与APS的区别可以看出,在时间上MPS可以较早获得,但其粒度较粗,只能针对订单级别,无法细化到具体的工序。APS阶段则已形成了具体的生产任务,并对任务作出了时、空两个维度的安排。即一个任务计划在什么时间开始、什么时间完成、使用哪些资源。因此,若基于MPS(主生产计划)生成MRP,则需要通过产品的生产BOM获得该产品的物料需求清单,以订单在MPS上的计划开始时间作为所有物料的到位时间。此外,在大多数情况下生产BOM所列的物料需求,与实际生产工艺中定义的物料,在种类与数量上往往存在差异,从而导致物料需求与实现生产过程存在一定程度的失真。
因此,从上述两种MRP的来源数据可以得知,在MPS阶段生成的MRP无论从物料需求准确度还是时间精确度上,均与APS阶段存在一定的差异。但事实上这两个阶段生成的MRP并非此消彼长关系,而是从粗到细的关系。因为,对于一个长期计划来说,MPS阶段的MRP作为未来较长时间(例如未来三个月、半年)的需求计划,其精度已经足够,因为未来的环境因素存在太多的不确定性,过分精准的需求计划价值并不太大,且会因为过分“紧凑精确”失去松驰空间,从而难以作出合理的调整。两个阶段的MRP,前者应该作为高层次的“方向性指导”作用,后者用于精细的作业过程起到“作业指示”作用。

两种MRP的差异示例

关于两个阶段的MRP,在时间精度上的区别,可以从下图理解
640.png
图片在图中,分别列出两个阶段生成的MRP在物料的要求到位时间上的差异。MPS阶段中针对工单对应产品的工序,通过这些工序获得该工单下所需的物料清单,即生产BOM。而在APS阶段的MRP,因为已经获得了工序的加工计划,则可以将任务作为关注目标,获得各个任务的物料需求,且因任务已存在计划开始时间,也即每个物料的到位时间也与任务计划开始时间相关。
上图中,工单001生产的产品包含 “去毛/去刺”,“氧化”与“包装” 3个工序,其中“氧化”工序需要使用5000个单位的氧化剂 - “过氧化氢”;“包装”工序需要使用1200个单位的瓦楞纸箱。MPS与APS两个阶段得到的物料需求列表将会如下:
640 (1).png
MPS生成的MRP中,所有物料的到位时间只能精确到订单计划开始时间;基于APS生成的MRP,则可精确到每个任务开始赶时间。若一个产品的生产周期较长,较后任务所需物料将会过早到货,造成等待浪费。

那么,在易排平台上如何实现齐套检查与分析呢?以下内容与易排平台具体功能相关,只想了解MRP相关内容的可略过。

易排平台的齐套功能实现

下面结合易排平台功能与数据字段,来分享一下我们在设计开发这套齐套检查与分析功能的实现方法。更详细的说明将会在1.5版本的用户操作说明书上提供。本文以Excel格式数据源为例说明。
在易排平台测试示例文件的【2.4.工序资源需求】页上,存在一个名为“资源作用”的字段,它的取值有REQ(Required的缩写)与MRP两种。两者取值分别实现了齐套检查与齐套分析。

取值REQ时 - 在规划运算过程中,该资源将会与可再生资源一样,需要进行资源可用量约束判断,确保在一个计划周期内不会出现资源使用量超过可用量(物料的资源可用量用库存量表示)的情况。

取值MRP时 - 在规划运算过程中,该资源并不起起任务可用量制约作用(但任务还会受其它约束制约),在输出的生产计划中,每个任务所使用的设定为MRP的物料,将会被按天统计需求量,作为MRP的原始数据。

如下图

640 (2).png

上述是工艺层面关于齐套功能的设定,而在实际工作中,很多时间生产环境经常会对工艺进行一定的修订,因此在很多企业的场景中,会产生标准工艺与实际工艺之分。上面【2.4.工序资源需求】页的资源设备仅代表标准工艺方面的设定。当出现实际生产过程中需要进行工艺修订的情况(也即产生实际工艺)时,则可以使用【3.2.任务资源更新】页来实现“实现工艺”中的资源设定。在该表中也存在一个“资源作用”字段,其效果与【2.4.工序资源需求】页相同。仅平台在作数据展开时,会根据平台的规则获取资源需求数据,简而言之就是任务中的资源需求设定最优先,任务中没有设定的,则取任务对应工序的设定。
此外【3.2.任务资源更新】页作为资源更新作用,其具体的更新规则见示例数据中的批注说明。表中“变更类型”字段的作用较有意义,它的取值如下:
APD - (APPEND的缩写)表示当前任务的最终资源需求,是的其来源工序的资源需求基础上追加新的资源需求。例如氧化工序,在工艺中只会设定所使用的设备(氧化池),但具体使用哪种氧化剂,若工艺中不设定,需要在生产时再确定,则可以使用APD的方法添加进来。

RPL - (REPLACE的缩写)表示当前任务将不再使用其来源工序的资源需求,而使用当前设定的资源需求替代之。

CLR - (CLEAR的缩写)表示当前任务不使用任务资源,若任务来源工序设置了资源需求,则清空。

1.5版除了实现双链(其实是1链+1图)模型,其中最大的改进就是在资源上,详情请关注后续说明资料与讲解视频。
【完】

目录
相关文章
|
算法 Java 决策智能
运筹优化工具库介绍(一)
运筹优化问题有时候极其复杂,我们可以使用运筹优化工具库帮助数学建模,解决复杂的最优化问题,本文介绍几个常见的运筹优化工具库。
2592 0
|
存储 开发者
GitHub CLI - 将GitHub带入命令行
本文介绍了 GitHub CLI(命令行界面)的基本概念及其主要功能,重点讲解如何通过命令行管理 GitHub 上的问题和拉取请求。文章详细列出了与问题和拉取请求相关的常用命令,包括列出、查看、创建和检查状态等操作,旨在帮助开发者提高工作效率,优化日常开发流程。
523 2
GitHub CLI - 将GitHub带入命令行
|
数据可视化 uml
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
UML图讲解,关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系。
6510 0
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
|
机器学习/深度学习 PyTorch 算法框架/工具
数据平衡与采样:使用 DataLoader 解决类别不平衡问题
【8月更文第29天】在机器学习项目中,类别不平衡问题非常常见,特别是在二分类或多分类任务中。当数据集中某个类别的样本远少于其他类别时,模型可能会偏向于预测样本数较多的类别,导致少数类别的预测性能较差。为了解决这个问题,可以采用不同的策略来平衡数据集,包括过采样(oversampling)、欠采样(undersampling)以及合成样本生成等方法。本文将介绍如何利用 PyTorch 的 `DataLoader` 来处理类别不平衡问题,并给出具体的代码示例。
3056 2
|
人工智能 JSON Serverless
AI “黏土画风”轻松拿捏,手把手带你云端部署 ComfyUI
ComfyUI 是一款基于节点工作流稳定扩散算法的全新 WebUI,相对于传统的 WebUI,ComfyUI 的部署和学习曲线较陡峭,函数计算基于 Serverless 应用中心开发“ComfyUI 应用模版”,简化开发者的部署流程,帮助简单、快捷实现全新而精致的绘画体验,点击本文查看一键部署 ComfyUI 的方法。
20390 7
|
运维
面试运维的具体流程
面试运维的具体流程
438 2
|
算法 Java Maven
关于OptaPlanner的使用(三)——运行代码案例
关于OptaPlanner的使用(三)——运行代码案例
622 0
100万电脑配置——详情表(附价格)
100万电脑配置——详情表(附价格)
794 0
100万电脑配置——详情表(附价格)
|
安全 算法 搜索推荐
【SSL】ssl证书简介、ssl证书生成工具与ssl证书生成步骤
【SSL】ssl证书简介、ssl证书生成工具与ssl证书生成步骤
943 0
|
机器学习/深度学习 存储 人工智能
搜广推模型构建及应用-AI架构师成长计划(二)|学习笔记
快速学习搜广推模型构建及应用-AI 架构师成长计划(二)。
2443 0
搜广推模型构建及应用-AI架构师成长计划(二)|学习笔记