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

news2024/11/24 3:26:51

        最近一段时间看到很多关于生产计划中,作齐套检查与分析讨论,正好我们的易排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,在时间精度上的区别,可以从下图理解

图片

        在图中,分别列出两个阶段生成的MRP在物料的要求到位时间上的差异。MPS阶段中针对工单对应产品的工序,通过这些工序获得该工单下所需的物料清单,即生产BOM。而在APS阶段的MRP,因为已经获得了工序的加工计划,则可以将任务作为关注目标,获得各个任务的物料需求,且因任务已存在计划开始时间,也即每个物料的到位时间也与任务计划开始时间相关。

        上图中,工单001生产的产品包含 “去毛/去刺”,“氧化”与“包装” 3个工序,其中“氧化”工序需要使用5000个单位的氧化剂 - “过氧化氢”;“包装”工序需要使用1200个单位的瓦楞纸箱。MPS与APS两个阶段得到的物料需求列表将会如下:

图片

MPS生成的MRP中,所有物料的到位时间只能精确到订单计划开始时间;基于APS生成的MRP,则可精确到每个任务开始赶时间。若一个产品的生产周期较长,较后任务所需物料将会过早到货,造成等待浪费。

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

易排平台的齐套功能实现

下面结合易排平台功能与数据字段,来分享一下我们在设计开发这套齐套检查与分析功能的实现方法。更详细的说明将会在1.5版本的用户操作说明书上提供。本文以Excel格式数据源为例说明。

在易排平台测试示例文件的【2.4.工序资源需求】页上,存在一个名为“资源作用”的字段,它的取值有REQ(Required的缩写)与MRP两种。两者取值分别实现了齐套检查与齐套分析。

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

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

如下图

图片

        上述是工艺层面关于齐套功能的设定,而在实际工作中,很多时间生产环境经常会对工艺进行一定的修订,因此在很多企业的场景中,会产生标准工艺与实际工艺之分。上面【2.4.工序资源需求】页的资源设备仅代表标准工艺方面的设定。当出现实际生产过程中需要进行工艺修订的情况(也即产生实际工艺)时,则可以使用【3.2.任务资源更新】页来实现“实现工艺”中的资源设定。在该表中也存在一个“资源作用”字段,其效果与【2.4.工序资源需求】页相同。仅平台在作数据展开时,会根据平台的规则获取资源需求数据,简而言之就是任务中的资源需求设定最优先,任务中没有设定的,则取任务对应工序的设定。

        此外【3.2.任务资源更新】页作为资源更新作用,其具体的更新规则见示例数据中的批注说明。表中“变更类型”字段的作用较有意义,它的取值如下:

  • APD - (APPEND的缩写)表示当前任务的最终资源需求,是的其来源工序的资源需求基础上追加新的资源需求。例如氧化工序,在工艺中只会设定所使用的设备(氧化池),但具体使用哪种氧化剂,若工艺中不设定,需要在生产时再确定,则可以使用APD的方法添加进来。

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

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

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

        我们的易排平台就是基于OptaPlanner求解器做的一个一定程序上对Job Shop Scheduling场景的泛化,可以最大程度上适配各种复杂的生产计划和车间调度情况。需进一步了解,可以关注公从号【让APS成为可能】获取更详细资料,或添加本人微信 13631823503详细探讨。

【完】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/937937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React笔记(一)初识React

一、React概述 1、什么是react react的官网:React 用于构建用户界面的 JavaScript 库,它也是一个渐进式的用于构建用户界面的javascript框架 2、主要特征 声明式:使用原生JS编写的页面存在着开发效率低下、性能较差的情况,使用react大家就…

JavaWeb 速通JQuery

目录 一、JQuery快速入门 1.基本介绍 : 2.入门案例 : 二、JQuery对象 1.基本介绍 : 2.DOM对象 --> JQuery对象 : 3.JQuery对象 --> DOM对象 : 三、JQuery选择器 1.简介 : 2.基本选择器 : 3.层次选择器 : 4.过滤选择器 : 4.1 基础过滤选择器 4.2 内容过滤选择…

wget方式下载DAAC数据

1. 注册DAAC账号 2. 申请数据,获得含下载链接的txt文件 3. 下载配置wget 4.下载: 4.1 创建目录用来保存数据(如 E:\3CMB) 4.2 在新创建目录下 创建文件 cookies.txt文件 4.3 将含下载链接的txt文件移动到新创建的文件夹中 …

老胡的周刊(第105期)

老胡的信息周刊[1],记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 Piwigo[2] Piwigo 是一个开源的网络照片库软…

01 java 学习 数据类型、基础语法、封装、继承、多态、接口、泛型、异常等

目录 环境搭建和基础知识 什么是JRE: 什么是JDK: 基础数据类型 分支选择if else switch和c一毛一样 for和while循环还有数组基本和c一样 封装 函数调用、传参、命名规范、数组新命名规范 java输入Scanner scanner new Scanner(System.in); 类的创建和使用以及封装修饰符…

【马拉车算法/动态规划】最长回文字串

最长回文字串 1.问题描述2.中心扩展法(O(N^2))3.动态规划4.Manacher(马拉车算法) 1.问题描述 常用有3种算法:中心扩展法、动态规划和Manacher算法 2.中心扩展法(O(N^2)) 解释: 从中心向外扩展。 分为两种…

Please use ‘App‘ component instead.报错问题解决

今天我在用 antd 组件库编写项目发生了如下报错 这个警告是关于 antd 组件库中的一个问题,提示在静态函数中无法像动态主题一样使用上下文(context)。建议使用 App 组件来解决此问题。 具体解决方法如下: 确保你的应用程序包含一…

深入解析Java中的位运算符:<<、>>和>>>

当谈到位运算符时&#xff0c;Java中的<<、>>和>>>运算符在源码中无疑是经常出现的。这些运算符在处理整数类型的数据时发挥着重要作用。它们主要用于对二进制位进行操作&#xff0c;是一种高效处理位级信息的方式。让我们深入探讨一下这些运算符的工作原…

数据库的类型

一说到数据库&#xff0c;大多数人可能像我一样&#xff0c;首先想到的就是 MySQL、Oracle 这样的关系型数据库。因为我们平时接触的最多&#xff0c;而且大学课程中有关于数据库的&#xff0c;也是以关系型数据库为主的。 其实&#xff0c;除了关系型数据库外&#xff0c;还有…

八大排序算法 (python版本)

八大排序算法 个人学习笔记 如有问题欢迎指正交流快速排序经常考&#xff0c; 如果只掌握一个排序算法的话&#xff0c;首选快速排序算法 八大排序算法通常指的是以下八种经典排序算法&#xff1a; 1. 冒泡排序 (Bubble Sort) 使用场景&#xff1a;适用于小规模数据的排序&a…

openCV实战-系列教程9:傅里叶变换(傅里叶概述/频域变换结果/低通与高通滤波)、原理解析、源码解读

OpenCV实战系列总目录 打印图像直接用这个函数&#xff1a; def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()1、傅里叶变换 在生活中&#xff0c;我们的大部分事情都是以时间为参照的&#xff0c;用时间为参照的为时域分析&#xff0c;在频…

【C语言基础】数据输入输出

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

视觉语言多模态预训练综述

论文: https://arxiv.org/pdf/2207.01772 预训练数据集 预训练任务 模型结构 本文根据特征在进行视觉和语言模态融合处理之前是否进行处理,将VLP 模型按结构分为单流式(single-stream) 和双流式( cross-stream) 单流模型将视觉特征和语言特征直接输入融合模块,进行模型训练,…

【小沐学Unity3d】3ds Max 骨骼动画制作(Physique 修改器)

文章目录 1、简介2、Physique 工作流程3、Physique 对象类型4、Physique 增加骨骼5、Physique 应用和初始化6、Physique 顶点子对象7、Physique 封套子对象8、设置关键点和自动关键点模式的区别8.1 自动关键点8.2 设置关键点 结语 1、简介 官方网址&#xff1a; https://help.…

Nacos 注册中心的使用(单体)

环境 springboot springcloud Nacos注册中心服务端 下载windows版或Linux版&#xff1a;https://nacos.io/zh-cn 目录结构&#xff1a; 配置文件./config/application.properties 启动文件./bin/startup.cmd&#xff1a; cmd命令启动单机服务startup.cmd -m standalone 父…

小马识途谈明星艺人的百科怎么创建

明星艺人们的知名度对于其事业的成功至关重要&#xff0c;而作为国内最大的中文百科全书网站&#xff0c;百度百科成为了人们获取信息的重要来源。一线明星当然百科不用自己操心&#xff0c;平台和网友就给维护了&#xff0c;但是刚刚走红的明星艺人应提早布局百科词条&#xf…

【JZ65 不用加减乘除做加法】题解

题目 写一个函数&#xff0c;求两个整数之和&#xff0c;要求在函数体内不得使用、-、*、/四则运算符号。 数据范围&#xff1a;两个数都满足 −10≤n≤1000 进阶&#xff1a;空间复杂度 O(1)&#xff0c;时间复杂度 O(1&#xff09; 难度&#xff1a;简单 题目链接&#xff1a…

第七周第七天学习总结 | MySQL入门及练习学习第二天

实操练习&#xff1a; 1.创建一个名为 cesh的数据库 2.在这个数据库内 创建一个名为 xinxi 的表要求该表可以包含&#xff1a;编号&#xff0c;姓名&#xff0c;备注的信息 3.为 ceshi 表 添加数据 4.为xinxi 表的数据设置中文别名 5.查询 在 xinxi 表中编号 为2 的全部…

【力扣周赛】第 111 场双周赛(状态机数位DP)⭐

文章目录 比赛链接Q1&#xff1a;6954. 统计和小于目标的下标对数目解法1—— O ( n 2 ) O(n^2) O(n2)暴力解法2——排序双指针 O ( n log ⁡ n ) O(n\log{n}) O(nlogn) Q2&#xff1a;8014. 循环增长使字符串子序列等于另一个字符串双指针相似题目——392. 判断子序列 Q3&…

数据结构--树4.1

目录 一、树的定义 二、结点的分类 三、结点间的关系 四、结点的层次 五、树的存储结构 一、树的定义 树&#xff08;Tree&#xff09;是n&#xff08;n>0&#xff09;个结点的有限集。当n0时称为空树&#xff0c;在任意一个非空树中&#xff1a; ——有且仅有一个特定的…