wuxuedaifu / TanpopoAPS

本项目计划使用.Net实现一个工厂生产排程管理系统,提供完全部属在Windows上的生产计划排成功能。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tanpopo APS 蒲公英生产排程系统

简介

本项目计划使用.Net实现一个工厂生产排程管理系统,提供完全部属在Windows上的生产计划排成功能。 本项目并不直接控制生产机床,仅提供生产排程的辅助功能,并提供一定的容错功能。调度系统与任务解耦,提高了系统可用性和稳定性。

软件结构

计划通过C/S个B/S两个部分实现,以适用于更多的场景。项目的结构初步计划有以下几个部分

  1. 排程服务器(后端,对应项目TanpopoHost)
    1. 管理信息系统:存储工艺单、设备信息、人员信息等
    2. 排程管理系统:录入订单,生成排程计划
  2. 前端系统
    1. 客户端软件(对应项目TanpopoClient)
    2. 网页服务器(对应项目TanpopoWeb)

UI设计理念

  1. 采用时间图的形式对排程信息进行显示。时间图示例如下图:

image-20200830141851715

  1. 2B的UI设计,力求清晰、高效
  2. 任务超时视为已完成,如果任务超前、滞后完成且有必要重新进行排程时,可以手动点选任务的完成情况
    1. 已完成任务提供“任务未开始”操作及“任务已进行__%”操作
    2. 正在进行中的任务提供“任务已完成”、“任务未开始”操作
    3. 未开始的任务提供“任务已完成”操作及“任务已进行__%”操作

工厂假设

  1. 有多种不同的订单形式
    1. 可能一次性收到大量订单
    2. 可能有长期订单(需要生产多个月或一年以上)
  2. 有订单优先级
    1. 按截止时间
    2. 按优先级(不限截止时间)
  3. 生产可能无法按照既定排程进行
    1. 生产设备可能出现问题(即机器需要暂停生产:转移)
    2. 生产人员可能出现问题(即人员需要暂停生产:换人)
    3. 订单材料可能出现问题(即订单需要暂停生产:换单)
  4. 负责操作排程系统的工作人员会下班,而下班时仍然有工人在岗生产
    1. 在排程系统下班时,可能出现上述的三个问题
    2. 出现问题后,上班时排程系统录入上次下班时的生产问题,并重新排程
  5. 有流转时间
    1. 工件运输
    2. 机器维护
    3. 人员更换
  6. 可设定时间粒度

报表需求

(TODO)

排程算法构思

  1. 目标
    1. 最大机器利用率(最小机器空闲时间)
  2. 约束
    1. 顺序约束:同一个订单必须按步骤先后生产
    2. 机床约束:同一个机床同时只能加工一个订单的一个步骤
    3. DDL约束:订单必须在截止期限内完成
    4. 启动约束:机床启动(无故障、有人工)时才能生产
    5. 作业约束:一个订单的一个步骤只能进行一次
    6. 流转约束?
  3. 用于最优化的数据结构 订单号,(步骤号,机床种类,)机床编号,单件工艺时间

参考的流程图

生产排程生成流程

image-20200830142019490

部分操作流程

image-20200830142234356

About

本项目计划使用.Net实现一个工厂生产排程管理系统,提供完全部属在Windows上的生产计划排成功能。

License:GNU General Public License v3.0


Languages

Language:C# 80.1%Language:HTML 12.7%Language:CSS 7.2%