一文详解APS能做什么?不能做什么?

2023-11-15

APS(Advanced Planning Scheduling)被翻译成“高级计划排程”,我觉得似乎advance用在这里应该是“进阶”的意思,就是在原来手工作业或者MRP、MRPII基础进了一步。高级,总觉得是高大上,而APS就是一个辅助决策的工具。它能实现什么?不能实现什么?以及如何实现?小编将为大家做具体介绍。

决策层次和运行机制的问题

制造业企业的生产计划和车间调度是不同层级的决策问题。计划和调度的决策目标不同,决策对象不同,需要配置的资源不同,环境和约束条件也不同。通常,生产计划针对的是订单,主要考虑是能不能按时交付,能不能挣钱,即使亏钱是不是符合企业长期利益,需要动用多少库存,哪些外协,哪些自制,刀具模具的准备,车间产能够不够,劳动力情况,供应商能不能及时供货等等。

而车间调度就是把所有的工单按照预定时间,保质保量完成,同时考虑生产效率问题,产能最大发挥,关键设备使用率提升,以及工人的劳动强度,安全和身体健康,以及劳动报酬等。

生产计划和车间调度是不同任务,不同目标,不同约束的两个层面的事情。

局部利益(目标)有时候是相互矛盾的。比如,产能最大化和最短订单生产周期本身相互矛盾就不可能同时兼顾。同一个架构同一个运行机制不可能鱼和熊掌兼得。依靠APS同时做好生产计划和车间调度是强人所难。

假如,一个订单产品的BOM主部件A有两个子部件B和C,C有两个子部件D和E。这些分别在五个车间加工。APS排程一定是从底层子部件往上主部件排程。假如D车间出现异常,D零件无法正常加工,APS就需要重排。

由于各个车间相互关联,这时候各个车间都需要根据新的约束条件重排。这就出现了APS的“牵一发动全身”的整体联动效应。按说,这样做没有错。但是工厂的运作真不是这样的,所以这种安排工厂无法执行。

工厂并不会因为一个车间出点事情,所有的车间重新布置作业计划。当然,APS有一个“冻结”功能,以避免这个尴尬。问题是车间异常变动司空见惯,冻来冻去就失去APS按约束条件排程的初衷了。

APS会按照有限能力资源和各种约束排程。如果有足够订单,APS可以把一个月甚至半年的订单都排进去。然后,把得到的结果切割成日计划、周计划、月计划甚至季度计划。这是用调度的手法做计划。

在实际的工厂,即使你把后几个月的订单都排进去,未来资源和订单也肯定会发生变化。长期排程结果对调度没有意义,但是这种类似仿真的技术手段用于指导生产计划的制定应该是挺好的。可惜,如果调度不好用,企业可能也不会用APS系统这个做计划的方法。

APS算法

模型和算法肯定是绑在一起的。模型的有效性是算法寻优的基础。

大多数APS都是基于规则的算法。现在尚不存在一种全局最优的规则。所以,如果APS是基于规则算法,它仅存在局部优化的可能。制造车间排程寻求最优是极其困难的。APS排程优化运算结果应该是在千千万万可行解中的一个。

鉴别APS是否有优化算法的一个方法就是,以最短生产周期为目标,给APS输入足够多订单并且不设定优先级,然后让Solver分别运算一秒钟、一分钟、一个小时,再观察结果的变化。

实际上,对于管理水平很差的企业,APS的优化能力不重要。重要的是排出来一个企业能够执行的结果。真正的排程优化只有管理水平很高且数字化/自动化环境很好的场景才能体现。

理论上的可行解与实际上的可执行指令是不同的。计算机模型算法可以忽略很多约束和干扰,而实际上这些问题不可忽略。因此,APS常常出现输出的指令可执行率不高的现象。

规则算法就是按照人为制定的排序规则,由计算机依据既定的约束条件把任务的顺序排出来,大部分都是简单地“码”出来而已。即使这样,对于复杂的生产现场管理来说,能够按照规则把生产任务排序做好也远远超过人手操作的能力。所以,规则算法在很多情况下是非常有效的,尤其是对中小企业。

APS的输出指令都是交给人来执行的,因此它有缓冲和协调的条件。事实上,对于管理水平还不是很好的中小企业,不适应精准调度,也没有必要。中小企业如果上线实施APS,不要对APS太苛求,能够比手工作业更好就达到目的了。而APS的实施,客观地提升了企业的数据质量,为下一步的改善提供了数据环境。

APS能做什么,不能做什么

由于APS可以实施局部优化,所以,在很多车间层面可以应用。比如流水线连续生产、生产周期很短的装配生产、电子产品生产、服装生产等。在局部车间生产管理,APS甚至可以做到精准管控。比如,如果确保供应链线边库存充足,APS可以指挥冰箱装配无人自动化生产。

但是,就现在APS的架构很难实施多车间的协同生产,它处理不好局部优化和整体优化的关系。APS排各个车间的工单严丝合缝,可能只要一连起来就无法执行。

大型装备的生产管理也不能用APS,因为大型装备涉及到的系统环境非常复杂,长的生产周期存在很大不确定性,供应链和多车间的协同是主要矛盾。

在一些特殊工艺和设备加工过程,如果物料流动产生很大的非线性,并且排程机制不能近似线性处理,APS也不能用。比如,零部件生产工序是粗加工、热处理、精加工。如果在热处理排程导致一两天时间都误差,排程没有指导意义。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文详解APS能做什么?不能做什么? 的相关文章

  • 创建RAM程序,验证程序在DDR上的运行

    前面我们验证了程序运行在SRAM中 也就是程序运行在L2 cache中 但是对于启动操作系统 这并不够 操作系统要必须要足够大的RAM 所以我们必须要程序运行在RAM中 也就是DDR上 环境 CodeWarriorDevelopmentSt
  • jwt的token自动续约_JWT token过期自动续期解决方案

    access token 用于一般的资源请求的token refresh token access token过期后用于刷续期的token 注意设置refresh token的过期时间需比access token的过期时间长 问题场景与解决
  • 【OpenCV图像处理】1.11 形态学操作 - 开操作、闭操作、顶帽、黑帽

    形态学操作 开操作 闭操作 顶帽 黑帽 开操作 open 先腐蚀后膨胀 d s t o p
  • qml使用数组技巧

    在qml中 使用JS数组 修改里面的值 不发出change信号 my array n value 为了得到数组属性通知 你必须使用下面这个技巧 var tmp my array tmp n value 你可以做多个更改 也可以push sp
  • 设计模式:外观模式

    有些人可能炒过股票 但其实大部分人都不太懂 这种没有足够了解证券知识的情况下做股票是很容易亏钱的 刚开始炒股肯定都会想 如果有个懂行的帮帮手就好 其实基金就是个好帮手 支付宝里就有许多的基金 它将投资者分散的资金集中起来 交由专业的经理人进
  • Redis——认识Redis

    简单介绍 Redis诞生于2009年 全称是Remote Dictionary Server 远程词典服务器 是一个基于内存的键值型NoSQL数据库 特征 键值 Key value 型 value支持多种不同数据结构 功能丰富 单线程 每个
  • Qt简单的异步操作实现方法

    Qt简单的异步操作实现方法 在实际应用中 经常会遇到一些耗时操作 导致了主线程的阻塞 这时候可以使用异步操作来避免阻塞 Qt的异步操作需要使用下面的库 include
  • python写邮箱验证工具_Python编写的Linux邮件发送工具

    之前有用过Linux自带的mail工具来定时发送邮件 但是要装mailx还有配mail rc 这还比较正常 关键是到了ubantu下这工具用起来真是操蛋 如果哪天其他的unix like操作系统也有需求 那就太麻烦了 所以我用自带的pyth
  • QT界面布局和设计

    一 设计 对功能和模块进行分析 然后设计对应的模块 将每个模块都用widget展示作为组件 工程结构示例 二 完成模块 代码分别设计各个组件 合适即可 三 主界面连接 主界面连接各个子模块 在这里插入代码片 include AutoFlaw
  • CAN总线详解及STM32的CAN通信编程指南

    对于CAN通信而言 本人之前也未接触了解过 由于实习的技术要求 因此也花费了一段时间对CAN通信进行学习 并且实现了基于STM32的CAN环回静默模式通信 因此写一遍比较详细的文章对该内容进行总结 本文的参考资料有STM32的中文参考手册

随机推荐

  • 【JAVA】Could not resolve all dependencies for configuration ‘:detachedConfiguration1‘

    build gradle 中添加 id net linguica maven settings version 0 5 plugins id org springframework boot version 2 3 3 RELEASE id
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • centos7 安装jdk17

    默认情况下 yum 仓库中是没有jdk 17 的 只有jdk 11 所以我们不能直接用yum 安装 需要手动下载进行配置工作 下载文件 wget https download oracle com java 17 latest jdk 17
  • 网页与服务器数据库数据交互,网页与ACCESS数据库如何实现数据交互?

    1 打开access 单机菜单栏创建 选择表 单击列 选择下拉菜单中的字段类型 单机列名更改字段名称 2 添加完成后单击保存成test accdb 新建c 窗体程序 3 using System using System Collectio
  • 今日算法中数据结构知识练习 (7-19)【4】

    Date 2019 07 19 1 两个指针 P 和 Q 分别指向单链表的两个元素 P 所指元素是 Q 所指元素前驱的条件是 P gt next Q 2 串是一种特殊的线性表 其特殊性体现在 数组元素是一个字符 3 下列文件中属于逻辑结构文
  • uniapp onHide()和onUnload()的使用

    小程序onHide 和onUnload onHide 触发的场景 导航页1 gt gt 导航页2 会触发导航页1 onHide 导航页 gt gt 子页面 会触发导航页 onHide 子页面1 gt gt 子页面2 会触发子页面1 onHi
  • linux查询mysql内存使用率_MySQL内存使用率无限增长

    背景 收到内存报警的信息以后 从监控中发现MySQL服务器的内存使用率在不断的增长 附图 虽然进行了重启 但是内存占用率依然会不停的增长 大约在半个月左右的时间内又把内存消耗完毕 场景 未搭建场景 数据库版本 5 7 12 分析 PS 时间
  • 精简CUDA教程——CUDA Runtime API

    精简CUDA教程 CUDA Runtime API tensorRT从零起步迈向高性能工业级部署 就业导向 课程笔记 讲师讲的不错 可以去看原视频支持下 Runtime API 概述 环境 图中可以看到 Runtime API 是基于 Dr
  • (C语言)在屏幕上输出对应的图案(* ** *** *****.....)

    在屏幕上输出如下的图案 根据上面图片可以看出来 前7行中下一行的星比前一行多出两个星 第8行到第13行是下一行比前一行少2个星 代码为 include
  • el-select远程搜索:remote-method遇到的坑

    在使用远程搜索的时候 就是每次发请求获取数据然后选择 会出现选择后总是会出现选择紊乱的情况 在使用debugger后排查了很久 发现每次选择内容后 都会触发 remote method这个事件 也就是继续会发请求 然后获取到新的数据重新赋值
  • 什么是值传递,什么是引用传递

    一般认为 java中基础类型数据传递都是值传递 java中实例对象的传递是引用传递 值传递是对基本型变量而言 传递的是该变量的一个副本 不影响该原变量 而引用传递是一般对于对象型变量而言 传递的是该对象地址的副本 并不是原对象本身 1 值传
  • linux bash环境配置文件

    linux bash环境配置文件 你是否会觉得奇怪 怎么我们什么动作都没有进行 但是一进入 bash 就取得一堆有用的变量了 这 是因为系统有一些环境配置文件案的存在 让 bash 在启动时直接读取这些配置文件 以规划好 bash 的操作环
  • ubuntu切换国内镜像源,加速apt-get下载速度

    ubuntu切换国内镜像源 加速apt get下载速度 如题 使用apt get命令安装包时 由于系统自带的下载源在国外服务器上 故下载速度较慢 若切换为国内源 将显著提升下载速度 下列是设置步骤 STEP 1 查找适合自己系统的镜像源配置
  • 深入理解线程的原理和用法

    Java中的线程 程序 进程和线程 1程序是一段静态的代码 它是应用程序执行的蓝本 2进程是程序的一次动态执行过程 它对应了从代码加载 执行到执行完毕的一个完整过程 作为蓝本的程序可以被多次加载到系统的不同内存区域分别执行 形成不同的进程
  • 某某analysis参数算法分析

    作者 TheWeiJun 来源 逆向与爬虫的故事 今天给大家带来一个干货分享 由于想要查看某些APP的详细信息 需要通过APP名称去某麦网站进行搜索查看 而整个过程中涉及到逆向分析 为了方便大家学习 本次完整流程记录如下 目录 一 确定要获
  • java可变参数函数_Java 变参函数的实现

    Java的变参函数实现实际上参数是一个数组 其简单用法如下 public class variableParamTest private static void variableParam Object args for Object v
  • vue实现任务周期cron表达式选择组件

    vue cron表达式 Cron表达式的详细用法 vue cron 基于vue的cron表达式组件 项目开发过程中遇到了需要在from表单输入cron表达式的情况 但对cron表达式没有深刻了解的用户来说 输入一个正确的cron表达式有些困
  • 实现文件上传进度条及解决request.upload.addEventListener in not a function问题

    使用axios上传文件时需要进度条 可通过监听axios的onUploadProgress获取当前文件上传进度 进度条可以用antd的Progress 实现过程中出现问题request upload addEventListener in
  • 关于Hadoop分布式计算:多个Map分布在不同节点上执行

    1 背景 问题 学习Hadoop已经快一年了 也是似懂非懂的样子 由于项目的原因 再次启动Hadoop 一直以为这个很简单就能够实现多个机器一起完成一个任务 其实并不然 在实验过程中 发现Map的数量并不能通过设置 mapreduce jo
  • 一文详解APS能做什么?不能做什么?

    APS Advanced Planning Scheduling 被翻译成 高级计划排程 我觉得似乎advance用在这里应该是 进阶 的意思 就是在原来手工作业或者MRP MRPII基础进了一步 高级 总觉得是高大上 而APS就是一个辅助