感谢各位对我们规划平台的支持,对于小伙伴们提出的宝贵建议我们会收集起来,整理成改进清单。基于这个清单实现并发布对应的功能。这新发布的具有通用性的功能都会纳入我们的通用版本中。选择了购买通用永久授权版本+订阅服务的小伙伴,新加入的功能都会及时推送给各位,并提供相关的资料辅助使用,也可联系本人提供在线支持。购买了一次性永久使用授权的小伙伴,则可享受永久的缺陷修复服务,若在我们自己的开发、优化过程中发现新的系统缺陷,也会收到我们的推送,并提供免费修复服务。
今天我们发布了首个比较大的功能更新,Excel文件作为数据源的输入待排数据,并以Excel文件作为规划结果输出的功能。以方便我们的小伙伴中一些不参与技术研发的同事们,也能很好地体验我们的规划平台。只要根据我们定义好的格式,把自己企业场景中的规划数据填写进Excel文件,即可使用平台的规划运算服务。
Excel作为数据源进行规划
Excel文件的规划操作
可以按下面的步骤来尝试一下我们这个Excel格式的规划功能。
选择装有待排数据的Excel文件,并点击【启动规划】按钮。
该文件可以从以下路径获取,打开链接里面的MOInput.xlsx即为示例文件:
选择文件如下
点击【启动规划】按钮后,文件将会上传到平台服务器,规划服务程序会读取该文件中的数据,进行数据展开操作,构建规划空间,并启动引擎进行规划运算。在此过程中,会将运算过程中的评分与中间结果返回到页面中。如下:
引擎运算完毕后,会将规划结果生成为Excel文件并自动下载。若你的浏览器下载不成功,可以点击评分信息与甘特之间的【下载规划结果】链接下载,
以上就是进行Excel格式数据的规划操作过程。下面我们来讲解一下,导入的Excel数据文件中的内容及其意义。大家可以基于我们提供的示例数据文件基础上,将自己企业的规划场景的数据填进去测试。
输入数据
输入数据的文件示例文件可以从以下路径下载,所下载的文件可直接用于调用规划接口进行测试,如上一章节的操作。该文件的内容包括以下8个表。
8个表分别包含了以下数据:
规划信息:【0.规划请求信息】表包含了规划过程中的整体参数,包括规划周期、时间粒度等。工单:【工单】包含本次需要规划的工单列表,一个工单来自一个订单的需求信息,和这个订单需要交付产品的工艺信息。工艺路线:【工艺路线】包含了各个产品对应的工艺路线,一个工序与其后续工单的关系构成工序路线信息。在该表中,还包含了各个工序的任务基本时长和静置时间,详情见该表详细说明章节。工序与资源关系:【工序与资源关系】表包含了各个工序与其可用资源的映射关系。提供了每个工序可用的资源列表。在规划运算过程中,对各个任务进行资源分配时,会通过该表中的数据来限制各个任务的可用资源范围。该表中还包含了加工任务时间长等信息,加工任务时间长与【工艺路线】表中对应关系,见工序与资源关系中的具体描述。资源需求组合:【资源需求组合】表中,“资源需求组合”是本系统特有名词,为了解决一个任务需要多个或多种资源同时配合完成的情况,将加工一个任务所需的资源需求列表,组合成一个“资源需求组合”。【资源需求组合】表中包含了当前定义好的各种资源需求组合。资源池:【资源池】表包含了当前可使用的资源列表,【资源需求组合】表中的“资源编号“列对应的即为【资源池】表中的”ID“列。资源可用列表:【资源可用列表】表中的数据,表示了每个资源的可用信息,即表示一个资源在哪个时间段有多少资源量可用。资源日历:【资源日历】表展示的是另外一种表示资源可用性的方式,当大多数资源的工作时间都一致时,使用【资源可用列表】来表示资源的可用性时,会出现大量的冗余数据。通过【资源日历】的数据,令多个具有相同工作时间的资源使用相同的日历信息,从而实现信息精简。
如何规划、规划什么?-【0.规划请求信息】
该表中的数据包含了本次规划的一些总体、概览性的信息,该表中的信息会作为规划对象的参数,用于构建规划空间。在该表中,信息以键值对的方式提供,其中A列为键,B为值,每一行的AB两列构成一个信息,其中C列仅起到说明作用,并非必要,供用户理解或填写一些说明性的内容,引擎并不会读取该列的数据。
规划信息表示例数据如下
表中各行的意义与作用:
规划编号:本次计划的编号,仅用于人工识别。开始时间:本次规划周期的开始时间,所有的资源均按以该时间作为起始可用时间。例如若该时间填写2022-03-0100:00:00,则所有可用资源均在此时间后才可用,任务只能排在该时间点后面。结束时间:同上,表示本次规划周期的结束时间,所有资源仅在该时间前可用。规划时间单位:时间粒度,即规划过程中最细的时间粒度。例如设置该字段为HOUR,则任务的长度、资源的使用时间最小可以表达到小时。因为我们面临的规划场景千差万别,提供了较多选择,可见文后的时间单位表-表1结果接收方式:表示规划运算后,结果的保存方式,共有3种,分别是(WEB_API–调用侦听接口,以JSON格式反馈结果;EXCEL-以规划结果保存到Excel文件中,通用指定接口下载Excel文件;DATABASE–将结果保存到指定的数据库。结果接收WebAPI:若【结果接收方式】填写了WEB_API,则需要在此填写接收API的URL结果接收数据库:若【结果接收方式】填写了DATABASE,则在此填写数据连接串,目前仅支持MySQL数据库。数据库帐号:同上,保存结果的数据库登录帐号数据库密码:同上,保存结果的数据库登录密码规划策略:选择优化目标,暂时不用。均衡字段:暂时不用日期格式:规划的时间格式,可以是yyyy/MM/ddHH:mm:ss等实时规划:暂时不用。
排什么?–【工单】
【工单】表中包含了待排的生产工单信息。一个工单通常是由销售订单的需求和工艺信息。本表的工单信息主要包括了工单生产过程中的主体需求,例如数量、日期等,而不包括资源需求等信息。资源需求信息会在其它表中提供。
工单示例数据如下。
表中各列意义如下:
ID:工单ID,一个工单的唯一识别ID;不可重复,不可为空。工单编号:工单编号,仅起人工识别作用产品ID:当前工单对应的产品ID,一个工单与一个产品对应。产品编号:产品编号,仅起人工识别作用。产品名称:产品名称,仅起人工识别作用。数量:当前工单需要生产的产品数量,通过产品数量与资源需求组合的车速可计算出一个任务的加工时长。优先级:表示当前工单的优先级。在同一资源下,优先级越高的工单,其产生的任务越优先加工。优先级列的值由数字表示,数值越小优先级越高。排程方向:分别有正排,与倒排。当该列为空时,默认为FORWAR正排-是指以工单的就绪时间为起点往后推导工序路线中各个任务的开始、结束时间。倒排–是批以工单的交付时间为为终点往前推导工序路线中各个任务的开始、结束时间。任务开始控制:若一个产品的工序路线存在多个加工路径,除关键路线外,其它路径理论上必然存在至少一个开始、结束时间可移动的任务,当该列为:ASAP-时,表示这类可移动的任务会尽可能靠前加工,即尽早处理。ALSP-,与ASAP相反,若输入此值时,上述可移动的任务会尽可能靠后加工。就绪时间:一个工单的最早可开始时间,通常是一个产品完成工艺设计、资源准备就绪后的最早可开始时间,即第一道工序的最早可开始时间。交付时间:一个工单根据订单的交付时间,推导出来加工生产的最晚完成时间,即最后一道序的最晚完成时间。
工序间有哪些制约关系?-【工艺路线】
在生产制造过程中,我们获得一个工单生产需求并没办法立刻对其进行生产,因为现代工业的加工体系所,一个产品各个加工步骤或组成部件,被分拆成多个工序或半成品,由不同的生产单位专门负责,才能达到最高效率。但这些构成同一产品的加工步骤或部件必须存在前后依赖关系。多个步骤根据工艺设计形成的加工序列,即称为工艺路线。本表中每一行表示一个产品中的一个工序,它们之间存在前后依赖关系,即通常情况下,需要先完成前工序才能开始下一工序。
工序路线表中的示例数据如下?
该表每行表示一个工序,及它其中一个后续工序,及工序的基本时长等信息。
表中各列意义如下:
ID:一行的唯一识别ID;不可重复,不可为空。产品ID:当前工序所属的产品ID,产品ID列相同的数行表示同一产品下的多个工单,例如上中,同一种颜色,其产品ID一样,表示该产品下对应的工序。产品编号:仅起人工识别作用。产品名称:仅起人工识别作用。工序ID:表示一个工序在一个产品中的识别ID,在同一个产品中工序ID具有唯一性,即同一产品中,不能出现重复的工序ID工序编号:仅起到人工识别作用.工序名称:仅起到人工识别作用.后置工序ID:表示当前工序的后置工序ID,工序路线构成的核心结构,需要注意如下:
在生成数据时,一个工序的后置ID,必须存在于当前产品下。例如上中产品-01的“工序-04“,其后置ID是则”产品-01“中必然存在一个ID为6的工序,否则数据不合法。
一个工序可以有一个或多个后置工序,即工序分支的情况。
多个工序可以指向同一个后置工序,即工序合并情况。
任务基本长:表示加工当时任务的基本用时。关于任务的加工时长,平台支持两种计算方法,一种是直接给任务加上时间,适用于任务时长可以直接从ERP、MES中读取的情况。若属于该种情况,可以使用该字段将任务的基本加工时间长提供给平台。另一种是通过工单的生产数量除以资源需求组合的车速来得到加工时间长。静置时间:表示一个工序加工完成后,需要待多长时间才能流入下一工序。体验版中未开放该功能。
使用哪些设备、人工进行生产?-【工序与资源关系】
对于各个设计好的生产任务,必然有相应的机台、设备、物料及人员进行加工,但因为不同的工序所需的加工操作与参数并不相同,每个工序必然有自己的可选机台、设备等。这些机、设备、物料和人力等用于生产加工的因素,在平台上统称资源。在【工序与资源关系】表中,列出具体每个加工任务可使用哪些资源。
而在我们不同场景的任务与资源匹配中,有些任务有可能只需一个,或者一种资源进行加工,而有些场景下则有可能需要使用多种资源同时配合才能完成加工。为了兼容各种场景,我们定义了“资源需求组合“的概念,在英语上称为ResourceRequirementGroup,我们在平台上将该名称的首字母RRG作为资源需求组合,后续讲到资源需求组合,我们都使用RRG简化。
例如,有一个任务加工只需要一台A型机台,那么我们就定义一个RRG-A,这个RRG-A包含了这个A型机台,即使用RRG对资源进行包装。
又如:有一个加工任务需要两人员+一个A型机台+一个B型模具进行加工,那么我们可以定义一个RRG-B,它包括了:人员2个+A型机台1台+B型模型1台,共4个资源。
【工序与资源关系】表,表达了每个【任务-RRG】的映射关系。
该表的示例数据如下:
该表每行表示一个工序可使用的一个RRG。及使用该RRG的加工效率等信息。
该表中各列意义如下:
ID:一个工序与RRG的关系记录ID;不可重复,不可为空。产品ID:表示工序所属的产品的ID工序ID:表示当前【工序-RRG关系】中的工序ID产品-工序编号:表示当前关系的编号,仅起到人工识别作用。资源需求组合ID:当前【工序-RRG】关系中的RRGID,即【资源需求组合】表中的【资源需求组合ID】列关联。效率:当前工序使用该RRGID进行加工时的加工效率,即车速,表示在单位时间内加工的任务数量。任务加工时长:当前任务使用当前RRG时,加工一个任务所需的时长,该字段与【效率:】二选优先级:资源优先级,同一工序引用不同RRG时,表示优先使用哪一个。该列是数值类型,值越小,优先级越高。
各种资源如何配合–【资源需求组合】
如上述关于资源的描述,要表达一个加工与资源之间的匹配,在某些复杂场景下,不可能仅使用“任务-资源“的简单对应关系来实现。因此本平台定义了一个”资源需求组合“的概念,取其英文首字母RRG作为简单称,以下对资源需求组合对象,均称为RRG。
在【资源需求组合】表中,【资源需求组合ID】相同的记录构成一个RR
【资源需求组合】表中的示例数据如下:
表中各列意义详情如下:
ID:RRG记录的唯一ID;不可重复,不可为空。资源需求组合ID:RRG对象的ID,与【工序与资源关系】中的【资源需求组合ID】关联,该列相同的的一行或多行代表一个RRG对象,例如上表中,单元格B2,B3的值同为第3两行表示同一个ID为1的RRG,它包含了两个资源,分别是RES0RES0资源需求组合编号:仅起到人工识别作用资源ID:组成当前RRG的其中一个资源的ID资源编号:仅起人工识别作用资源需求量:当前RRG对当前资源的数量需求
有哪些资源可用?–【资源池】
【资源池】表是资源的主档资料,表示了当前规划中,有哪些资源可以使用,这些资源在哪些时间段,有多少资源量可用。
【资源池】表的示例数据如下:
表中各列意义如下:
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点