首页 > 方案案例 > 正文

MES生产报表子系统的优化

2009-06-23 09:23:04  来源:万方数据

摘要:在分析了目前国内企业MES生产报表子系统开发方案的优缺点的基础上,提出了基于VBA、EXCEL和.NET技术的开发方案,很好地实现了表示层、业务层和数据层的分离。系统实际应用的效果表明
关键词: MES

  随着信息化的快速发展,在计划管理层与底层控制之间起着桥梁作用的MES(Manufacturing Execution System)越来越引起企业的关注,很多大中型企业为了更好地控制生产成本,已经在企业内部推广使用了MES系统。

  在MES整体架构中,作为高级应用的生产报表子系统直接为生产决策层提供综合的生产数据信息,因此在实施MES中受到极大的关注。当前集成化的MES产品主要由国外软件商提供,MES软件自带的报表模块的设计以及表格样式都遵从国外企业的应用要求,并不完全适合国内企业,国内企业的生产过程大都较为复杂,因此管理层对生产报表更具有多样性需求。在几十年的生产经营过程中,报表中的内容都是通过精心编制并且在实际使用中经历了长期调整完善的过程,报表中的每个行列都有特定的含义,因此,在MES实施过程如何搭建这类生产报表子系统的技术架构,是一个值得探索和研究的课题。本文以抚顺石化公司石油三厂为例,详细介绍MES中生产报表子系统的开发。

  1 需求分析

  在实施MES以前,石油三厂的调度报表不能自动采集数据,主要是人工获取数据,用Excel生成厂报表后通过邮件再向公司传送数据。显然在信息化高度发展、企业管理13趋精细化的年代,这样的生产报表信息已无法为领导决策提供及时准确的数据支撑,因此,自动化水平已成为生产报表实施的关键。石油三厂对装置和产品调运的职能是由厂调度执行,所依据报表数据分装置生产情况(包括计划、完成量、收率、累积、超欠),产品生产情况(包括计划、缴库量、出库量、库存量),原料情况(收量、消耗量、平衡量、库存量),互供料输送情况(包括其他相关厂供入供出品种的计划量、完成量和累积量)以及质检的检验数据等12大类。生产报表的汇报流程采用车间-厂调度-公司逐级上报的形式。

  2 技术方案

  国内企业MES项目中生产报表的技术方案大多采用基于.NET和Oracle技术进行开发的。这种方案的优点是有统一的操作界面,用户容易熟悉、操作方便;相同的逻辑代码可以重用;所有的应用在服务器端生成,客户端只需要能够上局域网即可,不必须加入域,也不必安装Oracle客户端和PHD客户端;报表发布和管理简单。但在实施过程中,也遇到了很多具体的问题,例如:后期维护不方便,用户很难修改逻辑,任何的改动都需要修改存储过程甚至NET代码;开发过程复杂,所有的逻辑需要在Oracle的存储过程中完成;每一张报表都需要做两遍逻辑,一个用于网页显示,一个用于导出到Excel表格;格式复杂的报表web界面绘制麻烦。另外,这种方案中用.NET进行COM操作也有它致命的缺点:每次COM调用EXCEL会在服务器端创建一个单独的EXCEL进程,当用户数量增加或服务器长期开启时,这种进程会越积越多,最终会导致内存耗尽而使服务器崩溃。

  通过项目组、厂内系统维护人员以及业务人员的综合考虑,最终决定不采用上述方案而改用Excel、VBA和.NET相结合的开发方案进行开发,尽管这种方案在使用时客户端电脑必须加入域,安装Oracle以及PHD客户端;代码重用度低;报表发布和管理困难等缺点,但是相对于.NET来说VBA更容易掌握,也便于系统上线后计算机维护人员以及业务人员的维护和修改,另外,不会在服务器端产生死进程,因此,基于综合考虑,石油三厂MES调度报表子系统在报表部分采用了C/S结构,利用Excel的VBA进行开发,而在数据发布部分以及一些手动录入的数据部分采用B/S结构,利用.net进行开发。基于选定的技术路线以及石油三厂的生产运行管理模式,设计了如图l所示的生产报表子系统技术架构。该技术架构综合了VBA、EXCEL和.NET技术,进行了数据层、应用层、表现层的3层架构设计。

图1 石油三厂MES生产报表子系统技术架构图

  图1 石油三厂MES生产报表子系统技术架构图

  3 具体实施

  (1)首先为在数据来源中那些没有任何来源的数据设计人工录入界面。使用ASP.NET为用户开发WEB录入界面。这一部分要有权限控制,只有那些通过了相应域认证。并且有权限录入的人方可录入。这些数据最终存储在Oracle数据库中。

  (2)准备EXCEL报表的配置页。在EXCEL报表中加入配置隐藏页,这些页面中可以包括对各种报表元素取数逻辑的配置,如侧线D、罐号编码等等。这样的好处是可以使用统一的逻辑代码来处理类似的报表单元格,提高了代码的重用性。而且,当报表元素发生变化时,可以简单的通过修改配置页,就可满足需求的变化,而不用修改代码、重新调试程序。这样对未来的维护人员的要求也大大降低,减少了维护的工作量,使报表更加灵活、健壮。

  (3)准备EXCEL报表的临时页。在EXCEL报表中加入存储临时数据的隐藏页,这些页面用于临时存放VBA代码从后台取到的与报表中数据相关的各项数据。临时页的格式可以与报表页的格式不同,临时页并不关注报表的具体格式和样式。

  (4)完成VBA的取数逻辑。VBA代码基于配置隐藏页的逻辑编码配置,通过Oracle数据库和PHD到各个模块取得数据,并将数据写入临时页中。这一部分是代码的重点,除了要充分利用EXCEL报表的配置页,将代码的逻辑统一便于日后维护之外,还要考虑到随着数据量的增加,报表的取数速度问题。

  (5)以EXCEL公式代替原报表页中的数据。使用内置EXCEL公式,如=、sum等将数据从临时页取到报表页的正确的位置上。报表页不关注数据如何生成,只关注报表的格式和样式。

  (6)报表生成完毕,利用asp.Net设计web方式的报表查询和发布。此功能与数据录入功能,在MES系统中提供统一的调度报表入口。

  4 结 论

  按照以上方案开发的MES生产报表子系统,已在生产实际中得到了应用,系统将有如下特点:

  (1)实现了表示层、业务层和数据层的分离。报表页为表示层,主要负责报表的格式和样式的显示。VBA代码和两种隐藏页负责业务逻辑和数据的存储。当报表格式和样式发生变化的时候,不需要修改VBA代码,只要修改报表页即可,这样的操作,普通的用户就有能力完成。当业务发生简单变化的时候,可以通过修改配置页来实现,也不要求维护人员修改VBA代码。这样大大增强了报表的灵活性,可以适应需求的频繁变化,维护也很容易。当业务发生重大变化的时候,维护人员必须修改VBA代码,但是VBA的学习要比.NET、Oracle存储过程等的学习要容易的多。

  (2)用户使用方便。用户在查看报表时,不必登录到WEB系统中,而是直接在本地打开EXCEL报表,点击菜单,最新的报表数据立刻出现在眼前。既节省了时间操作起来也便于掌握。


第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。