企业车间生产调度MES系统的设计与研究
李鑫 夏筱筠 常晓芳 网络
 生产调度是企业车间生产管理的重要组成部分,不仅是企业车间生产运行的指挥中心,也是企业车间产生经济效益的重要来源。而本文研究的面向MES的车间生产调度系统建立了以生产调度管理为中心的辅助车间系统,它将来自企业车间生产调度系统的计划信息转化为指令下发到企业车间的生产过程控制系统,并从生产过程控制系统中获得生产实际数据,向计划管理系统及时地提供生产实际状况信息。可以实现生产计划编制、生产统计和设备能力等管理的一体化,达到车间生产作业的优化调度和制造资源的合理配置,从而为企业缩短制造周期、降低生产成本、提高制造质量提供了有效的信息化手段。

1 车间生产调度系统的设计

1.1 系统的体系结构

目前,企业计算机管理模式正从集中式走向分布式,从孤立的系统走向集成的系统,传统的两级结构C/S(客户/服务器)模式虽然具有良好的交互性,对图形数据具有很强的编辑处理能力等特点,但它不能轻易应用新技术、开发成本较高、不易扩展、不能支持大用户量及大计算量的应用并且维护复杂。为了改善这些缺陷,本文研究的企业车间生产调度系统采用了目前最为流行的B/S(浏览器服务器)模式,它是一种三层或多层结构的分布式系统。其基本思想是将用户界面同企业逻辑分离,把信息系统按功能划分为表示、功能和数据三大块,分别放置在相同或不同的硬件平台上。MES企业车间生产调度系统的三层体系结构如图1所示。

 

 

图1 MES企业车间生产调度系统的三层体系结构

表示层:车间生产调度系统的用户接口部分,即人机界面,是用户与车间生产调度间交互信息的窗口。在Web环境下,客户端只需安装标准的浏览器就可以运行。

功能层:应用的主体,包括了车间生产调度中核心的和易变的业务逻辑,该层的应用服务器专门负责数据库服务器与客户端的连接工作,一方面把客户端请求传给数据库服务器,另一方面将服务器的查询结果回送给客户端。

数据层:由数据库服务器所构成,只用于响应客户端数据请求,负责管理对数据库的读写和维护。

本文采用的三层体系结构将业务逻辑单独剥离出来,放在应用服务器(中间层)上,使整个车间生产调度的逻辑结构更加清晰,也在很大程度上解决了两结构存在的问题。

1.2 系统的需求分析

企业车间生产调度是整个MES的一部分,也就是说它的系统是MES的一个子系统。因此,企业利用信息技术建立的生产调度系统必须在MES的总体框架下进行构建,将计算机作为辅助手段对生产进行有效计划排产和调度控制,以满足MES的理念。这就要求企业车间调度系统具有以下需求:

(1)信息需求

MES系统自身是一个集成的面向车间的实时信息系统,它要求把车间所有的信息能实时反映出来,调度数据以MES系统数据为基础,因此及时、准确地实现信息的共享与集成是企业车间生产调度系统的一个核心。车间调度和控制必须处于一个统一的信息平台下,规范基础信息,系统中的用户都应能共享其权限范围内的数据和文档,如产品/订单信息、作业排产情况、各类资源的实时状态、生产任务的动态进度等,为企业实现MES的持续信息化建设打好基础。

(2)功能需求

一方面,车间根据已经编制好的作业计划以及与生产单元相关的资源信息,利用计算机生成可执行的、合理的排产方法以安排作业的加工顺序和加工设备,在可行的基础上通过人工调整实现一定的优化调度,使得生产操作者按照下达的生产指令进行操作。

另一方面,生产操作者通过计算机录入作业执行信息、设备信息,使得调度员根据反馈的数据信息对生产全程监控,实现作业计划的临时追加与调整。同时相应的功能模块可以完成数据信息的建立和维护、工时统计、备负荷的核算等工作,为动态调度提供依据。这都依赖一个可靠的统一的管理平台和网络运行基础,通过各功能模块的有效集成实现对整个加工过程的“全局掌控”。

针对这些需求,车间生产调度系统要求生产操作者或者单元管理员输入如下几项信息:作业完工情况、设备运行/故障记录,突发事件记录等;要求车间生产调度员由系统数据库中索取生产记录情况数据。经过系统运算如进度的完工率、设备利用率、工件合格率等功能,为调度计划的调整提供参考信息。相应模块都是数据输入、保存型的模块,不同的地方在于具体的信息类型的不同、输入信息对应的数据库表格的不同和对输人数据采取的具体校验手段的不同”。

1.3 系统的功能层次框架

本文研究的生产调度系统以车间作业计划来驱动,是作业计划的执行者,对企业日常生产活动进行控制与调节,整个过程是一个闭环、动态管理过程。一方面,车间接收上层计划系统下达的零件加工任务,如零件类型、数量、交货日期等信息来编制车间作业计划,把生产任务具体地、合理地分配到各个生产单元上,要求及时、准确地传递和共享各类生产信息;另一方面根据实际车间生产的执行情况和出现的异常情况,均衡生产,实时修正作业计划的安排,必要时进行重调度,进而对车间作业进行有效的调度排产。

本文采用两层递阶的生产调度策略,使得调度结果能确实符合车间实际的生产活动。企业车间生产调度主要包括两方面的内容:一是作业排序层,二是作业控制层,一般也可以理解为作业的静态调度和动态调度,这两方面是相辅相成的。其实际调度的功能层次框架如图2所示。

 
 
 (1)作业排序层

在作业计划编制的粒度细化到工序后,根据导入的基础数据如工艺路线、设备信息等进行作业排序,即确定所有工件在设备上的加工顺序,以及设备加工每道工序的开始时间和完成时间,最大限度地保证每个工件的交货期。因为它是在加工之前,根据现有的已知生产信息预先确定每个工件加工的先后顺序,我们也称此过程为静态调度,它所考虑的加工对象是由生产作业计划确定的,在既定的时间内需完成的工件。作业计划的安排指导和驱动着整个车间生产活动的开展,是车间作业实际调度的依据。

车间调度人员通过该层的相应模块,将作业任务进行合理排产生成调度表,通过车间计算机网络,单元管理员查询本单元内各设备及工人的作业列表,给出工人和设备当班要完成的任务,最终下发工单,执行加工。

 

 

 (2)作业控制层

 

作业控制层是对企业车间生产调度系统内正在加工和己经排队等待的加工作业进行调度控制。根据收集的底层实时加工信息,跟踪工件的进度,需要及时处理车间异常情况如急件、返工、超期等,必要时进行实时重调度的功能。它是在加工过程中引入了动态事件,如被加工工件交货期的改变而导致零件优先级的改变,由于企业车间生产调度系统内某些设备的故障而延误了正常加工任务等,所有这些扰动都会使原来己优化的静态排序变成非优化的排序,这时需要对工件的加工顺序进行实时地重新安排或其他更改措施,因此我们也称此过程为动态调度,它保证了生产任务顺利完成。

作业控制层面向车间层和加工层,其基本任务是围绕作业生产,对加工情况进行有效的控制,并向其它相关部门反馈生产信息。工单下发后,生产操作者或者单元管理员将生产信息如工件的完工时间、设备故障记录等反馈信息及时地录入到计算机中,以便调度员查询当前有多少工件在哪些设备上加工、工件加工执行到哪道工序,设备的当前负载状况如何等问题,打印统计报表,对工件进度进行跟踪。当有突发事件发生时,查询设备状态、工序状态判断是否进行人工调整,如安排加班,转移工序,还是进行重调度,重新生成调度计划,在调度员的参与下控制层完成对不同事件采取不同处理。

通过上述的分析可知,在初始状态下,根据新加入的生产计划分解成工序级车间作业,发布到车间。车间的作业在调度策略、当前生产信息的指导下进行,即作业排序层将工序加工顺序下达给作业控制层,由它执行当前的日程作业计划。在加工过程中,作业控制层根据执行情况的反馈信息,处理和调整作业的执行。如果无法按正常顺序继续加工,将向作业排序层请求重调度,进行下一轮的计划/执行/控制过程,以此解决由于各种动态多变因素影响而造成生产过程紊乱的状况。作业排序和作业控制两个层次的有效集成,是形成面向生产过程的企业车间生产调度系统的重要内容。

这种两层式框架体现了MES要求“计划”和“生产”密切配合的理念,即在最短的时间内掌握生产现场的变化,做出准确的判断和快速的调度措施,保证生产计划得到合理而快速修正。

2 车间生产调度系统的实现

2.1 系统的开发工具

本文研究的MES车间生产调度系统的前端应用程序采用,NET开发工具编程实现。NET语言是面向Internet和企业分布式应用的新一代编程语言,几乎综合了目前所有高级语言的优点。与Windows 2000操作系统紧密的结合,充分发挥了其强大的基于可视化界面和面向对象的编程方法,满足系统较快的运行速度、良好的操作性能以及较强的图形界面等功能。

本文的数据库选择关系型数据SQL Server 2000作为后台数据库,SQL Server 2000是一个优秀的数据库管理系统,内置数据复制功能和强大的管理功能,提供了面向网络的开发工具、应用服务器和数据服务器的综合平台,具有可移植性、可兼容性、可连接性、高性能的事务处理、支持分布式数据库和分布式处理、良好的安全性控制和完整性控制等优点。

2.2 系统关键技术的解决

(1)工序开始和结束时间

当企业车间生产调度系统数据库连接好后,接下来就是获取其中的数据。企业车间生产的工序开始和结束时间是关键数据,下面列出了不同生产订单的每道工序开始时间(S[i][j])和结束时间(e[i][j])的关键代码:
For(int i=1;i<6;i++)
{
For(int j=1;j s[i][j]=Math.Max(s[i-1][j]+t[i-1][j],s[i][j-1]+t[i][j-1]
c[i][j]=Math.Max(e[i-1][j],e[i][j])+t[i][j]
//Math.Max方法返同两个十进制数中较大的一个}}

(2)甘特图的连续绘制

由于企业车间生产的连续性,这就要求在绘制甘特图时必须能在0-24时之间连续绘制,下面列出绘制连续甘特图的关键代码:
Float y=600//y表示先定义的一个获取矩形起点的纵坐标值
Float z=50//z表示绘制矩形的宽度值
For(int i=1;i<6;i++)
...
If((float)(40+(x+el[i][j])*40)<1000)
{//绘制矩形
g.DrawRectangle(blackpen,(float)(40+(x+s1[i][j])*40),(float)(y-i*105),(float)(t[i][j]*40,z);
//填充矩形
g.FillRectangle(colorarray[j-1],(float)(40+(x+al[i][j]*40),(float)(Y-i*105),(float)(t[i][j]*40),z);}j])*40,z);
...

下面代码实现当企业车间生产增加一个调度时,增加小矩形图列,而且不同的调度颜色是不同的,这里实现了自动设置颜色,绘制不同颜色的调度小矩形。
//定义一个一维颜色数组colorarray
Brush[]colorarray= new Brush[100];
//数组大小为100,也就是限定调度总数不能超过100个
For(int i=0;i Rows.Count;i++)
{
Colorarray[i]=new SolidBrush(Color.FromArgb(150,255
-15*i,15*i,15*i));
//Color.FromAgrb方法从指定的8位颜色值创建Color结构,alpha值默认为255

创建图例,通过绘制小矩形上不同的颜色和标签来表示不同的调度过程。

3 结束语

总之,企业产品与车间生产调度息息相关,在一个完整的制造系统管理框架中,产品质量与生产调度是不可分割的,在实际的企业管理中往往是生产计划与调度部门进行有效的协调和沟通。寻找有效的调度方法,建立有效的生产调度模型,来改进和提高企业的车间生产调度方案,可大大提高生产效率和资源利用率,增强企业的竞争能力。

CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢