• 官方微信

    CA800二维码微平台 大视野

  • 工控头条

    CA800二维码工控头条App

当前位置:自动化网>自动化文库>应用案例>有色冶化企业MES软件开发中数据库设计与应用

有色冶化企业MES软件开发中数据库设计与应用

发布时间:2013-01-23 来源:中国自动化网 类型:应用案例 人浏览
分享到:
关键字:

导读:

1 引言企业制造执行系统(manufacturing execution system,MES)属于生产过程与装备信息化领域,是车间级(分厂级)管控系统,是连接执行层(作业设备、PCS)与管理层(ERP为代表)的桥梁[1]。MES国际联合会(MESA)定义:MES能...

1  引言
企业制造执行系统(manufacturing execution system,MES)属于生产过程与装备信息化领域,是车间级(分厂级)管控系统,是连接执行层(作业设备、PCS)与管理层(ERP为代表)的桥梁[1]。MES国际联合会(MESA)定义:MES能通过信息传递对从订单下达到产品完成的整个生产过程进行优化管理[2]。具体包括资源分配和状态管理、工序详细调度、生产单元分配、文档控制、数据采集、劳动力管理、质量管理、过程管理、维护管理、产品跟踪管理、性能分析等11大基本功能以及运输物流、优化仿真、能源管理、客户订单管理、预先计划功能、数据仓库、无线通信与可移动访问等7大支持功能。依据企业生产实际需求不同,各企业开发功能模块各不相同。
甘肃某企业属于有色冶炼企业,公司致力于稀有金属资源的开发和二次资源的再生利用2010年实现营业收入20亿元,利润1亿元。2009年以前,生产管理自动化现状:各生产车间虽然均已具备先进的PCS层控制系统,但各控制系统相互独立,生产信息分散;电话调度模式,信息传递滞后,生产数据人工核算、抄表统计为主,执行效率质量较低。
企业生产规模的不断扩大、经济效益及行业地位的不断提升,迫切需要采用两化先进技术不断提高劳动生产率,完善规范化扁平化管理,提升企业核心竞争实力。
2009年笔者所在团队着手负责该企业MES整体规划建设项目,该项目通过高速局域网络实现各级生产管理部门对生产过程状态信息的监控。建立生产指挥中心,通过对各车间生产设备生产过程数据的实时采集和历史存储,将使整个公司的生产管理部门能够实时监控生产现状,追溯生产历史,并可通过Internet/Intranet方式实现企业生产的远程监管。同时开发企业生产调度管理软件。建立以生产运行管理为核心,以数据集成平台为支撑,集物料信息管理,设备运行管理,生产运行管理和质量管理等为一体的生产执行系统(MES)。

2  设计要求
●  系统功能满足用户实际需求。涵盖系统管理数据、组织机构、用户管理、物料数据、质量数据、金属平衡数据、库房数据、设备数据、生产过程数据、日志事件数据、产销存数据、客户关系数据、销售数据等基础数据及反映它们各自关系的相关数据。
●  数据存取具备较高的安全性。存储数据为企业核心业务数据,必须具备较高的安全存储及灾难恢复等级。
●  较满意的访问速度。生产数据存储量大,对数据库性能有较高要求。必须从数据库选型与技术手段多方面保证数据存取的访问速度。
●  适当的柔性。用户需求只能随系统运行逐步明确,后期变化可能性较大。同时考虑后期企业EMS、ERP、CRM等系统接入问题,系统应具备一定的柔性及可拓展能力,数据字典定义合理。

3  关键性问题及设计思路
依据项目实际情况,主体数据库采用企业级Oracle9i关系数据库系统,同时用户管理采用基于SQLServer的MicroSoft MemberShip管理机制[3]。系统采用原型开发模式[4],灵活应对变化。
数据库柔性设计;数据操作CRUD及统计在数据库内部完成,系统只负责存取;数据存取访问速度;
1、 数据安全性
①  登陆账号与业务数据分开,分别采用SQLServer和Oracle9i关系型数据库。登录系统采用基于MicroSoft-MembershipProvider的安全存储机制。相关部分的数据库设计参考MemberShip建议规范。
②  系统采用B/S瘦客户端三层架构[5],选用服务器端程序开发语言及工具,同时服务器端程序与数据库系统分开存放在两台服务器上,隔离其他非系统使用访问,用户只能通过服务器端程序访问数据库。
③  数据库访问SQL语句尽量不在网络中传输,数据库操作在数据库内部完成(可封装在PL/SQL程序中)。这样数据库的访问,只是调用相应的存储过程,提高了网络安全性。
2、 访问速度保证
①  CRUD、常用统计、分页语句[6]、视图查询等数据库操作PL/SQL程序封装,降低网络传输量的同时,提高批处理执行能力。
②  为耗时较多的大数据量计算编写触发器及相应PL/SQL程序,选择服务器闲时自动统计的方式。这样用户调用时,就不用再耗费临时计算的时间了。
③  为报表数据建立临时表,需要调用时,将相应数据先存至临时表中,然后再统一发送至报表应用程序中。减少网络交互数据量,提高用户体验。
④  为Oracle数据库配置4G以上内存,改善数据库运行性能[7]。
⑤  在检索数据时,多使用限制条件,明确查询信息,提高命中率,改善存取性能。
3、 适当的柔性
①  数据库模块化设计,层次化,降低耦合性。每个功能做成单一模块,模块内紧耦合,模块间松散耦合[8]。适当的数据冗余,减少表之间过度的关联性。
②  基础常量字段采用Sequence自增序列方式建表,便于自拓展。
③  部分表存在需求不确定性,设计时适当预留数据位,方便以后增加新的功能。
④  使用PowerDesigner[9]、Toad[10]、StarUML[11]等快速建模工具,做好数据库设计思想及建库代码的备份,同时定期备份数据库数据,便于快速恢复及更新数据库。

4  数据库表结构设计
在明确设计思路及方法后,我们严格依据数据库设计一般原则及项目特点,进行了数据库的整体规范化设计。主要分为表结构及其关联,视图、存储过程、触发器等几个主要方面。
仅以基础物料及报表存储的表结构设计为例,核心数据表空间如图1所示。

涉及基础物料的表有Tag(物料编号表)、Unit(物料单位表)、Section(物料阶段表,原料、产品、中间料等)、Category(物料类别表)、State(物料状态表)、Frequency(统计频次表)、Statype(统计类型表)等。涉及化验指标的表有Quatity(指标编码表)、Q_unit(指标单位表)、Quacat(指标类别表)、Specifica(合格标准表)、Operator(操作符号表)等。其他关联表还有Deptaginfo(部门车间物料信息表)、Deptagqua(部门车间指标信息表)、Quarecord(指标数据记录表)、Tagrecord(物料数据记录表)等。Deptaginfo表与Deptagqua表定义特定机构的物料及化验指标数据字典,与基础数据表存在多项关联,方便减少冗余数据,保证数据唯一性。Tagrecord表与Quarecord表读取操作频繁,而且随日积月累数据行数量较大,应尽量较少此类表查询关联,适当增加字段冗余。同时为常用查询功能建立关联视图,提高访问效率。

5  存储过程设计
数据库表空间的CRUD(创建、检索、更新、删除)操作,分页操作,自动统计(年、月、日频次,求和、求平均、最大、最小、方差、盘库等方式)等操作,统一封装在PL/SQL存储过程中,这样不需要在程序中传递SQL语句。客户端调用时,只需要程序传递至Oracle数据库相应的存储过程名及运行参数信息,PL/SQL程序就会自动以批处理的执行速度进行数据库操作,并将操作结果统一发送至应用程序。这样,网络交互次数及数据量大大减少,最大限度降低网络传输冗余信息量。同时对于问题查找和后期维护都带来方便。
仅以通过物料类别ID查找部门物料信息的PL/SQL程序[12]为例说明:

这样,应用程序传递给数据库的参数就只有PL/SQL程序名及p_CAT_ID一个参数,数据库处理后,就可以直接将查询结果返回给应用程序。数据交互变得简单和高效率。笔者在该项目中,共建立了400多个不同功能的PL/SQL存储过程程序。降低了持久化层应用程序与底层数据库之间的耦合关系,使持久化层的编写以及数据访问、调用关系变得明了,简单。其他PL/SQL程序类似,不在赘述。

6  触发器设计(上图、上代码)
对于某些耗时较多的大数据量处理任务,各自采用具备针对性的技术手段。例如大数据量报表检索交互处理采用临时表空间的方式,而大数据量计算统计处理,在项目中采用设计触发器程序,并设定服务器闲时自动执行计算的方式进行处理。这样,客户端访问较为频繁的时候,尽量使数据库服务器资源仅供数据交互使用,降低服务器负载。而在基本无用户访问需求的时间段(比如凌晨),数据库服务器在进行相应的自计算、自统计处理,合理高效利用服务器资源。
仅以库房自动盘点程序为例,首先将相应分操作设计为不同的PL/SQL程序。例如DAILY_CLEAR_STORE(V_DATE)负责进行每日库存增量计算,MONTH_CLEAR_STORE(V_DATE,V_STARTDAY)负责进行每月库存净增量计算,MONTHTONOW_CLEAR_STORE(V_DATE,V_STARTDAY)负责进行月初至今库增量计算,YART_CLEAR_CLEAR_STORE(V_DATE,V_STARTDAY),STORE_BALANCE(V_DATE,V_STARTDAY)负责将最终库存盘点的结果写会数据库指定位置,供用户调用。然后指定一段存储过程统领这些PL/SQL程序段执行数据及参变量。
CREATE OR REPLACE PROCEDURE DailyJob (V_DATE in date,V_STARTDAY in number) IS   BEGIN
DAILY_CLEAR_STORE(V_DATE);     
MONTH_CLEAR_STORE(V_DATE,V_STARTDAY);
MONTHTONOW_CLEAR_STORE(V_DATE,V_STARTDAY);
YEAR_CLEAR_STORE(V_DATE,V_STARTDAY);
DAILY_STORE_BALANCE(V_DATE,V_STARTDAY);
MONTH_SUM_BALANCE(V_DATE,V_STARTDAY);
YEAR_SUM_BALANCE(V_DATE,V_STARTDAY);
………………
END DailyJob
然后就可以设定触发器JOB程序定时调用DailyJob存储过程程序。

这样,每日凌晨四点,触发器便可以自行调用相应的存储过程,在用户早晨上班前,将需要处理的大量统计数据计算生成完毕,供用户快速调用查看,从而满足用户对于较快人机交互体验的需求。
 7  实施效果
在该系统研发过程中,数据库结构合理,各模块分工明确,有较好的可拓展性,满足了原型化开发过程中,用户需求的易变性与系统开发的连续性、稳定性,收到较好效果。目前该项目已通过验收,在数据安全性、系统稳定性、访问速度等方面用户使用效果良好,项目团队正在就进一步的推广应用总结经验,以期更好的贴合用户实际需求,最大限度满足企业用户的需求。

8  结束语
当今企业越来越多的意识到企业制造执行系统MES实施对于企业发展、扁平管理和效益提升的重要性与必要性。本文以实际MES项目为例,着重阐述了相关项目中关系数据库设计的若干思路及解决办法。存在较好的通用性和行业推广价值,有着一定的实施借鉴意义。

参考文献:
[1] 孙彦广,陈靖平著.流程工业制造执行系统[M].北京:化学工业出版社,2006.
[2] MESA White Paper No.6,1997.http://www.mesa.org/
[3] Andrew Troelsen.Pro C# 2008 and the.NET 3.5 Platform 4th edtion.Apress 2008,(9).
[4] POGER S.Pressman(美).Software Engineering:A Practitioner’s Approach,2009,(9).
[5] 伊乐斯,克里普斯(英)著.蔡黄辉译.架构实战-软件架构设计的过程[M].北京:机械工业出版社,2010,(4).
[6] 凯特(美)著.苏金国等译.Oracle Database 9i/10g/11g编程艺术[M].人民邮电出版社,2011,(1).
[7] 谭怀远著.让Oracle跑得更快2-基于海量数据的数据库设计与优化[M].北京:电子工业出版社,2011,(7).
[8] BRIAND L,DALY J,WUST J.An Unified Framework for Coupling Measurement in OO Systems[J].IEEE Trans.Software Eng.1999,25(1):91-121.
[9] http://www.sybase.com/products/modelingdevelopment/powerdesigner.
[10] "Welcome To TodeWorld".http://toadworld.com.
[11] StarUML-UML-TUTORIAL.http://www.staruml.com.
[12] 罗森维格(美)等著.龚波等译.Oracle PL/SQL实例精解[M].北京:机械工业出版社,2009.

作者简介:吕苏环(1979-),男,工学硕士,系统分析师,研究方向:企业信息化,MES。

本文地址:本文地址: http://www.ca800.com/apply/d_1nrutga2l2fcl_1.html

拷贝地址

上一篇:模糊自适应PID控制在注塑机料筒温度控制中的应用*

下一篇:MOONS’(鸣志)三相步进电机在激光雕刻机上的应用

免责声明:本文仅代表作者个人观点,与中国自动化网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容!