本项目计划使用.Net实现一个工厂生产排程管理系统,提供完全部属在Windows上的生产计划排成功能。 本项目并不直接控制生产机床,仅提供生产排程的辅助功能,并提供一定的容错功能。调度系统与任务解耦,提高了系统可用性和稳定性。
计划通过C/S个B/S两个部分实现,以适用于更多的场景。项目的结构初步计划有以下几个部分
- 排程服务器(后端,对应项目TanpopoHost)
- 管理信息系统:存储工艺单、设备信息、人员信息等
- 排程管理系统:录入订单,生成排程计划
- 前端系统
- 客户端软件(对应项目TanpopoClient)
- 网页服务器(对应项目TanpopoWeb)
- 采用时间图的形式对排程信息进行显示。时间图示例如下图:
- 2B的UI设计,力求清晰、高效
- 任务超时视为已完成,如果任务超前、滞后完成且有必要重新进行排程时,可以手动点选任务的完成情况
- 已完成任务提供“任务未开始”操作及“任务已进行__%”操作
- 正在进行中的任务提供“任务已完成”、“任务未开始”操作
- 未开始的任务提供“任务已完成”操作及“任务已进行__%”操作
- 有多种不同的订单形式
- 可能一次性收到大量订单
- 可能有长期订单(需要生产多个月或一年以上)
- 有订单优先级
- 按截止时间
- 按优先级(不限截止时间)
- 生产可能无法按照既定排程进行
- 生产设备可能出现问题(即机器需要暂停生产:转移)
- 生产人员可能出现问题(即人员需要暂停生产:换人)
- 订单材料可能出现问题(即订单需要暂停生产:换单)
- 负责操作排程系统的工作人员会下班,而下班时仍然有工人在岗生产
- 在排程系统下班时,可能出现上述的三个问题
- 出现问题后,上班时排程系统录入上次下班时的生产问题,并重新排程
- 有流转时间
- 工件运输
- 机器维护
- 人员更换
- 可设定时间粒度
(TODO)
- 目标
- 最大机器利用率(最小机器空闲时间)
- 约束
- 顺序约束:同一个订单必须按步骤先后生产
- 机床约束:同一个机床同时只能加工一个订单的一个步骤
- DDL约束:订单必须在截止期限内完成
- 启动约束:机床启动(无故障、有人工)时才能生产
- 作业约束:一个订单的一个步骤只能进行一次
- 流转约束?
- 用于最优化的数据结构 订单号,(步骤号,机床种类,)机床编号,单件工艺时间