文档库 最新最全的文档下载
当前位置:文档库 › APS技术文档

APS技术文档

APS技术文档
APS技术文档

P O E M A P S

高级生产排程系统

技术文档

目录

名词解释 (3)

1 背景 (5)

1.1 APS系统的实施难度 (5)

1.2 制造业企业管理现状 (5)

1.3 现阶段存在的问题 (7)

1.4 APS系统的特点及重要性 (8)

1.5 APS系统期望具备的功能 (8)

1.6 APS系统期望达到的目标 (9)

2 技术方案 (11)

2.1 技术手段 (11)

2.1.1 POEM及NCL语言介绍 (11)

2.1.2 可视化引擎PoemView (12)

2.1.2.1 甘特图 (12)

2.1.2.2 直方图 (12)

2.1.3 基于NCL语言的工程化开发总体架构 (12)

2.1.4 POEM APS系统介绍 (13)

2.2 系统设计 (15)

2.2.1 优化问题分析 (15)

2.2.1.1 问题的描述 (15)

2.2.1.2 问题的主要约束 (15)

2.2.1.3 问题的优化目标 (16)

2.2.2 数据建模 (16)

2.2.2.1 设备资源实体日工作时间段以及工作日历约束 (17)

2.2.2.2 工序加工转移批量的问题 (17)

2.2.2.3 相邻两道工序间开工或完工间隔约束 (18)

2.2.2.4 临下班前尽量不安排新的工序开工问题 (18)

2.2.2.5 工序的加工时间约束 (19)

2.2.2.6 工序对资源的需求约束 (19)

2.2.2.7 产品结构树中的不同零部件的前后继关系问题 (20)

2.2.3 NCL建模 (21)

2.2.3.1 NCL语言建模思想 (22)

2.2.3.2 POEM APS系统中的主要模型 (22)

2.2.4 滚动排程 (27)

2.2.5 可视化结果展示 (29)

2.2.6 动态优化 (30)

2.2.6.1 工艺流程数据调整 (30)

2.2.6.2 工位数据调整 (30)

2.2.6.3 订单数据调整 (31)

2.2.6.4 工位占用信息调整 (31)

2.2.7 生产过程模拟 (31)

2.2.6 界面设计 (34)

2.2.6.1 系统功能结构图 (34)

2.2.6.2 主界面 (35)

2.2.6.3 输入界面 (35)

2.2.6.4 输出界面 (38)

3 系统集成 (44)

3.1运行环境要求 (44)

3.1.1 硬件环境 (44)

3.1.2 软件环境 (44)

3.2 POEM的集成性 (44)

3.2.1 与数据库无缝连接 (44)

3.2.2 与其他程序语言集成方便 (45)

3.3 APS与MES系统的交互 (46)

附录1 —— 数据结构 (48)

1.1 基础信息表 (48)

1.1.1 班次表 (OPT_SHIFT) (48)

1.1.2 资源类型表 (OPT_RESOURCETYPE) (48)

1.1.3 资源表(OPT_RESOURCE) (48)

1.1.4 产品物料表 (49)

1.1.4.1 产品表 (OPT_PRODUCT) (49)

1.1.4.2 物料表 (OPT_MATERIAL) (50)

1.1.5 工艺路径表 (50)

1.1.5.1 工艺路径主表 (OPT_PROCESS) (50)

1.1.5.2 工艺路径辅表 (OPT_CHILDPROCESS) (52)

1.1.6 订单表 (OPT_ORDER) (53)

1.2 优化计算表 (53)

1.2.1 作业表 (OPT_JOB) (53)

1.2.2 工序表(OPT_TASK) (54)

1.2.3 资源占用表(OPT_OCCUPATION) (56)

1.2.4 结果表(OPT_PLAN) (57)

1.3 配置表 (57)

1.3.1 优化参数配置表(OPT_CONFIG) (57)

1.3.2 计算信息表 (OPT_STATE) (57)

名词解释

z NCL:自然约束语言(Natural Constraint Language),2000年在国际权威学术杂志JLP上发表。NCL是一门集逻辑,优化及搜索规则为一体的智能描述型语言,支持业务逻辑建模和复杂问题求解。

z混合集合规划:Mixed Set Programming,是NCL在运筹学算法方面的最大创新。它支持实数、整数、布尔值、索引及集合类型上的复杂约束,支持一阶逻辑,集合推理,实数域数值分析等。

z APS:高级生产排程(Advanced Production Scheduling)。APS的模型可以分为三类:离散生产排程、流程优化、离散与流程混合排程。

z POEM APS:在POEM平台中,用NCL开发出的APS系统。该系统抽象度高,独立于具体行业;界面友好,操作方便;约束和优化目标封装于数据库,方便用户快速二次开发;底层算法基于精确算法,算法有较强的健壮性;易于学习、维护和变动;易于集成和部署等。

z资源类:指工艺能力相同,加工尺寸范围和精度相同的一类设备、生产设施和技术工人。

z资源个体:独立的加工能力。单台设备、整条生产线、完整的生产单元、每个技术工人可以定义为资源体。

z资源生产能力:同一资源实体在单位时间内加工工序的数量,用OPT_RESOURCE表的capacity字段来反映。

z自有资源:指本厂提供的资源。该类资源按生产能力是否有限,可分为有限能力资源与无限能力资源。

z外协资源:由外协厂家提供的资源,无具体生产能力限制,但有每天累计最大工时限制。

z主要资源:对生产任务完成有重要影响、在计划和控制中受到关注的资源类。

主要资源是随人的关注程度而人为定义的,在一个时期内主要资源是相对稳定的。区分主要资源和非主要资源的目的是将排产优化集中在对输出有重要

影响的资源上。非主要资源的能力可以通过各种方式(如加班或增加人工数量)扩充。

z已占用资源:是在上个计划时段内存留的已经安排、并且已经开工但尚未完工的任务所继续需要的生产资源。

1 背景

1.1 APS系统的实施难度

(1)普遍而言,工业APS的数学问题本身就是非常难的:约束种类多,规模大。对大规模问题进行求解,必须先将大问题按照一定的规则进行分解,把大规模问题转变成若干小规模问题,分别对小规模问题进行求解,然后根据相应的滚动、衔接逻辑,将分解后小规模问题的解进行合并就形成了一个大规模问题的解。

(2)国内制造业的信息化、逻辑化程度低。业务系统(MIS/ERP/MES)与APS系统集成困难。业务需求往往从优化项目开始到结束都是不断变化的,优化问题的需求分析只能循序渐进的进行。

(3)APS系统所需基础数据的分析、整理、校对与修正的工作繁琐;业务系统与APS系统数据接口的设计、开发非常复杂;APS系统所需基础数据到位非常困难。

1.2 制造业企业管理现状

国内大多数制造型企业的生产方式以离散生产为主、流程生产为辅、加工装配为重点。许多生产加工模式是典型的单件、中小批量、多品种混流、混批生产的加工模式,所生产的产品具有物料复杂、工艺多变、加工时间长和生产不确定性大等特点。

产品结构树

例如,某制造型企业现有5个生产制造车间,其中产品的加工装配在2-3个车间进行,物料在这些车间流转。公司一般每月(或每周)做一次计划,确定生产产品的品种和数量。由于每个产品都有给定的交工时间,部分车间因为设备能力不足,需要从预先计划生产的产品中,选择一定量的品种进行加工。工厂级计划订单往往给定了必须完成的产品,需要优先保证,不同的产品优先级不同。计划中心会将确定的公司级生产计划发放到每个车间,供车间调度人员进行具体的生产作业安排。

车间将工厂下达的生产计划按工艺路线展开,生成每个零件每道工序的作业计划。车间调度人员按照作业计划的开工和完工日期进行生产准备,将零件按每个班次的产能派发给工人加工。车间调度人员需要每天做一次生产安排,根据现有的生产计划执行进度和物料流转情况,将每个岗位当日的工作按照时间先后顺序派发到每个岗位人员手中。

1.3 现阶段存在的问题

该公司现有的生产调度大致模式如下:

生产任务订单首先录入计算机辅助管理系统(CAPP),经过技术中心及其他相关的系统生成任务订单的物料、工艺路径(具体到每道工序)及物料的其他技术信息;然后技术中心将这些任务订单的物料信息和工艺路径导入到MIS系统中;接着,车间计划调度人员依照MIS系统中的任务订单信息,根据个人的经验和车间的生产特点,手动指派每个岗位每日的所要完成工序,但是并不具体安排每道工序的开工时间和加工顺序。

现有的计划流程图

现有计划排程方案虽然初步满足了工厂生产信息化的需求,但是随着企业生产自动化程度的进一步提高和生产订单量的加大,现有系统的瓶颈愈发明显,具体体现在以下几个方面:

z缺乏在前期接收订单和任务下达时对生产任务的整体评估手段;

z无法了解某工种在某个时段是否会产生瓶颈,无法为计划安排、外协分流、计划协调提供决策依据;

z手工安排生产无法科学、合理地实现现场多工序、多资源的生产调度;

z生产任务的多样性、复杂性、紧迫性以及订单任务的巨大规模使得手工安排计划生产成为一项艰巨而几乎不可完成的工作。

1.4 APS系统的特点及重要性

APS是基于有限资源能力的优化计划,它需要将企业资源能力、时间、产品、约束条件、逻辑关系等生产中的真实情况同时考虑。资源、物料和时间必须属于某个工序/操作、或工序连接成的工艺路线。许多工序/操作按一定的逻辑和规则连接成工艺路线。有了资源,物料和时间的基础数据后,就有了各种资源和时间相叠形成的数学迷宫问题。再加上市场需求,客户订单产生了驱动破解迷宫的需求,找出最合理的通过迷宫的路径就是我们要求解的优化的排产计划。通常这种解答方法是通过数学方法来找出最佳迷宫路径解,这就是“生产排程优化”的核心问题。基于资源能力,物料和时间约束条件为基础理论的企业管理方法,解决了企业计划不能实时反映物料需求和资源能力动态平衡问题。它可以尽可能利用现有生产能力,尽可能减少库存量,尽可能提高了市场反应速度,解决了企业以最小的投入获取尽可能大利润的关键问题。

当传统的ERP、MES管理系统的业务管理功能和APS的先进排程理论结合时,世界上新的管理系统就在很短的时间内诞生了,这就是APS和传统ERP、MES的结合体,当今世界先进的管理软件公司都按照此方式运作。APS本身是一项相对独立的技术,但其应用的行业却非常多,每个行业的业务都千差万别,这就要求APS的设计和实施者能够做到业务逻辑、软件技术、运筹学和优化理论的融汇贯通。因此与ERP和MES类似,APS系统也同样存在着不同行业应用上的区别和困难。目前,APS在国内电子制造业的应用还基本处于起步阶段,营智优化长期从事运筹学优化在工业领域应用的开发和研究,积累了丰富的行业经验,这将对APS系统的实施有着巨大帮助。

1.5 APS系统期望具备的功能

APS系统能高效的帮助制造企业控制生产计划。它能产生现在与将来的、通过各种规则及需求约束自动产生的、可视化的详细生产计划。生产计划能对延迟定单进行控制及行动、管理控制能力及各种约束,其约束包括资源工时、物料、

加工顺序及自定义约束条件。它能管理整个资源,更重要的是它能快速响应意外的结果。它考虑所有生产过程中因素,包括班次、工具、材料的可用性,已知和未知设备的维护,当前负荷、能力。总之,APS能产生更精确、更接近实际生产的计划。一个成熟、完善的APS系统应具备以下功能:

z生成工厂级的生产计划;

z工厂级的设备利用率管理;

z完善的车间级派工单;

z发生异常情况时,对车间的生产排程进行重新调整;

z可以灵活设定资源的工作日历和工作模式;

z可以考虑订单的优先级;

z可以考虑资源的优先级;

z可以根据生产情形变化生成多种工艺路径;

z可以灵活的考虑具体工序的排产时间窗口;

z可自由设定订单的开工、完工时间窗口;

z可以从不同角度对同一批订单进行多次模拟和优化,选择满意结果;

z可以锁定部分已有结果,以此为基础进行重行排产;

z系统既可以独立运行,也可以集成到MES或ERP系统中作为一个独立的子系统;

z支持通用的数据接口和数据库系统,可以方便的和ERP或MES系统进行数据集成;

z可以方便的导出排产结果,生成一体化的甘特图、统计直方图和派工单;

z可以在甘特图的结果上直觉式的调整已有结果,进行二次排产。

1.6 APS系统期望达到的目标

APS系统的核心是要解决对生产工作的合理安排,也就是说需要知道:“何时做”、“做什么”、“怎么做”。用户期望在APS系统部署后达到以下目标:

z生成合理优化的生产安排计划;

z提供直观的、可视化的结果展示,包括甘特图、派工单和统计图等;z对订单变化做出高效、快速地反应;

z提高生产效率;

z减少生产中的无谓浪费;

z提高合同的履约率。

2 技术方案

2.1 技术手段

POEM APS系统包含优化引擎(NCL)与可视化引擎(PoemView)。

优化模型的建立与求解及可视化结果的展示都在POEM平台中进行实现。POEM APS的优化模型用NCL语言进行建模与求解;排程结果用PoemView进行可视化展示,可以在甘特图、直方图、表格等上面进行展现。

产品POEM的总体C++代码量已突破80万行,成为一个大型的、支持工程化开发优化方案的优化计算平台软件。

2.1.1 POEM及NCL语言介绍

NCL语言是一门以标准的数理逻辑为语法的描述型语言,集逻辑、优化及搜索规则为一体。与国际市场上其他的解算器相比,NCL对复杂大规模问题可以直接在业务逻辑一级上进行建模并求解,而不用像混合整数规划MIP(Mixed Integer Programming)那样需要将非线性问题作复杂的线性转换后再进行求解。

NCL语言的科技创新主要体现在以下两方面:

z在语法分析器(Parser)层面,采用人工智能的模式识别技术进行语法分析及语义识别,使用户在面对极端复杂的工业优化问题时,可以方便

地进行自然的建模;

z在解算器(Solver)层面,采用混合集合规划为算法核心,支持求解布尔值、实数、整数、时间、索引及集合类型上的混合约束,支持一阶逻

辑、集合推理、实数域数值分析等。

POEM是一个基于NCL,可进行优化方案的快速开发、调试、测试、建文档、部署与维护的一个完整平台。

2.1.2 可视化引擎POEMVIEW

PoemView可以实现对地图、甘特图等的管理,将图形界面与优化引擎无缝联接。

2.1.2.1 甘特图

甘特图对象时间轴最大刻度为年,最小刻度为秒,支持对时间轴的放大和缩小。纵轴支持树状多级管理。通过甘特图,可以实现对时间的管理。如下图所示:

2.1.2.2 直方图

用负荷图(直方图)呈现资源的周期利用率,清晰地展现了资源的使用状况:

2.1.3 基于NCL语言的工程化开发总体架构

实际工业应用中的优化排程问题远比学术问题复杂,具体表现在:

z数据逻辑复杂、约束繁琐,个性化程度高;

z问题规模大,往往是上万道工序;

z除了优化模型和算法,还需要相应的结果可视化;

z要求对结果的可视化交互,要求对结果进行二次优化;

z用户在需求分析过程中对问题的理解经常变化;

z实施困难:周期长、见效慢、成本高…

NCL是一门支持工程化开发的运筹学建模语言。NCL中包含丰富的、基础性的、可参数化的优化模块,这些模块往往独立于行业,具有很强的通用性。NCL在需求不断变化时可以进行低成本的系统调整,便于使用者进行开发和维护。此外,NCL中包含各种可视化结果展示,如甘特图、地图、直方图和统计表等,便于开发者进行高效、并行的开发和部署。

基于NCL语言的工程化开发总体架构如下图所示:

2.1.4 POEM APS系统介绍

POEM APS是用NCL语言开发的生产排程的系统,具有以下特点:

1)易于集成和部署;

通过PoemServer优化计算服务器和可视化引擎ComView可以方便的实现POEM APS系统和其他各种业务管理系统(MIS/ERP/MES等)的集成。

2)模块化的优化系统支持跨行业、跨领域、各种类型的生产排程;

模块化搭建的系统抽象度高,独立于行业和领域,支持离散、流程、离散和流程混合型以及项目等各种类型的排程。

3)支持大规模(十万工序级以上)、复杂业务逻辑的生产排程;

工业生产排程中,涉及几十类,上百种复杂的业务上的约束条件,而且参与优化计算的工序数量巨大,POEM APS采用分组、滚动衔接的思想来解决大规模复杂的工业生产排程问题。

4)提供丰富的可视化结果展示;

包括:甘特图、直方图等。

5)支持生产过程模拟;

车间设备布局一目了然,设备加工情况尽收眼底,便于审视全局生产过程。

6)支持动态排程;

实际生产中,随着各种作业不断进入系统接受加工、同时完成加工的作业又不断离开,而且生产环境中不断出现动态干扰:如作业的加工超时、设备损坏等。POEM APS通过信息系统提供的业务变动数据再次调用优化引擎进行动态排程。

7)个性化开发周期短;

优化模型采用基于智能计算机语言NCL的POEM优化计算平台建立,具有代码量小、可读性强、易于管理、维护和升级等特点。

8)拥有强大、专业的本土化技术支持团队。

其中博士、博士后占40%,硕士占60%,核心技术团队均是具备十年以上工业优化经验的国际专家。

优化引擎在和业务系统集成时提供以下两种方式:

1)采用基于COM技术的ActiveX组件实现

集成方便,快捷。用户的集成不受开发语言的限制,POEM可以与C++,VB,Java,C#等多种开发语言集成。

2)采用计算服务器PoemServer实现

可以方便实现在B/S和C/S结构下的系统集成。用户直接通过浏览器就可以在网页上上调用优化引擎进行计算,通过集成可视化引擎

PoemView进行优化结果的可视化展示及交互操作。

2.2 系统设计

2.2.1 优化问题分析

2.2.1.1 问题的描述

生产排程优化是在满足订单优先级约束、设备生产能力约束、工序候选资源约束、零部件各工序次序约束、各工序同步约束、订单最早开工时间以及最晚交付时间约束、每日工作时间窗口约束等的情况下,按照主要设备最大利用率、订单延迟数量最小、主要设备最小加工时间跨度等优化目标,在最近的下一个周期内,对各个设备上加工的工序进行优化排序。

2.2.1.2 问题的主要约束

资源约束:

资源生产能力

资源并行加工能力

资源使用方式

资源工作日历和日工作模式

日工作时间段(多班次)...

外协资源约束

z对于任意工序,其候选资源若有外协资源,则优先选择外协资源;

z对于任意外协资源,其每天累计工时不超过某上限(单位:小时);

z对于任意订单,该订单的所有工序可由本地与若干外协厂家协同生产,但尽量让同一厂家生产,且不允许某一外协厂家交替多次

出现...

订单级约束:

最早开工时间

最晚完工时间

订单相互间的次序关系

订单的优先级...

零部件级约束:

与上周期零部件工序的衔接

不同零部件的资源耦合

零部件间前、后继关系

零部件的调度次序

工序级约束:

工序的资源需求

工序的工艺流程

工序的时序控制(如转移批量)

工序的加工时间

工序的加工时间窗口...

繁杂的个性化约束:

下班前不开工

小批量遗留工序当班完成...

2.2.1.3 问题的优化目标

最小化主要资源总加工时间跨度

最小化订单延迟数量…

2.2.2 数据建模

采用面向对象的方法,以数据类为基础,建立数据模型。着重研究数据流逻辑,数据接口逻辑。

NCL中的数据库设计采用面向对象的方法,每个表即一个对象。设计NCL 使用的数据库必须遵守最小冗余度、封装性和继承性3原则。在分析业务逻辑的基础上,建立生产排程优化的数据库。

与优化相关的数据表的数据结构参见附录——“数据结构”。

2.2.2.1 设备资源实体日工作时间段以及工作日历约束

用OPT_RESOURCE表的idShift和Calendar字段来分别反映资源实体的日工作时间段以及工作日历约束,Calendar字段是一个日期集合类型的字段。

idShift字段标识了该资源每日工作的班次情况

如:一班制工作时间段对应OPT_SHIFT表的id是1,对应的工作时间

段是08:00-12:00和13:30-17:30

Calendar字段标识了该资源在优化时间段的工作日历

如:计划周期为2007-05-01-2007-06-01,周六、周日不工作,则该资源

在周期内的工作日历的值设为

{20070501..20070504,20070507..20070511,20070514..20070518,20070521.

.20070525,20070528..20070601}

2.2.2.2 工序加工转移批量的问题

在实际加工中,某些工序是对加工的零件批量处理的。对于这种情况来说,在数据建模的时候需要将批量加工后的等待时间也算为该工序的加工时间。

50个零件在80工序和85工序上进行加工,85工序为80工序的下道工序,加工时序如上图所示,图中的空白部分表示85工序的等待时间。假设零件在80工序上连续加工,每加工完10件后即转入85工序进行加工。10件零件在80工序上的加工时间远远大于在85工序上的加工时间,这样会在85工序上产生等待时间。为了解决85工序必须在80工序完成后才能完成的问题,把这个等待时间也算为零件在85工序的加工时间。

2.2.2.3 相邻两道工序间开工或完工间隔约束

用OPT_TASK表的typeSync,gap1Succ和gap2Succ字段来反映相邻两道工序间开工或完工间隔约束。

typeSync字段标识了相邻两道工序间隔类型:

a)typeSync = 0(rear-head)下道工序开工时间减去本道工序完工时间

的值在gap之间

b)typeSync = 1(head-head)下道工序开工时间减去本道工序开工时

间的值在gap之间

c)typeSync = 2(rear-rear)下道工序完工时间减去本道工序完工时间

的值在gap之间

gap1Succ和gap2Succ字段标识了下道工序开工间隔的上限和下限,以件数为单位,如gap1Succ为6,gap2Succ为空,则说明下道工序在本道工

序加工大于等于6件后开工。

2.2.2.4 临下班前尽量不安排新的工序开工问题

在实际加工过程中,在临近下班的时候不希望新开始一个加工工序。为了反映这一约束条件,用户可以在TASK表中增加一个SlotT1字段来标识每道工序

希望的开工时间段。如某道工序只能在08:00-11:40和13:30-17:10时间段内开工,则对应的该字段在数据库中的值为{08:00..11:40, 13:30..17:10}。

2.2.2.5 工序的加工时间约束

目前所有的工序的加工都是依赖资源的,也就是说在OPT_TASK表中不存在IdResource空集({})的数据。

工序的lowDuration、uppDuration计算公式如下:

lowDuration = preTime + (unitTime * quantity /capacityResource resourceTask)* parameter – delta

uppDuration = preTime + (unitTime * quantity / capacityResource resourceTask)* parameter + delta

注意:

①:工序的备料时间。

preTime

② capacityResource resourceTask表示该工序用到的资源实体的能力,比如capacityResource resourceTask =5时,说明该资源实体可以同时供5道有相同资源需求的工序加工使用。

③ parameter:加工时间系数,默认为1。目前对加工时间的计算不起作用。

2.2.2.6 工序对资源的需求约束

用OPT_TASK表的IdResource和PreferredIdResource字段来分别反映资源实体需求约束和首选资源实体的需求约束。每道工序的加工必须依赖于一个资源实体,所以约定在TASK表中不存在IdResource空集({})的数据。

IdResource和PreferredIdResource字段都是一个集合类型的字段

IdResource字段标识了该工序加工需要的资源实体以及可替换的资源实体的集合

如某一工序加工需要用到的资源实体和可替换资源实体为数控立车

0006-1, 数控立车0006-2和数控卧车0007-1,则对应的该字段在数据库

相关文档