MES项目简单总结(技术篇)

本文本来是写到Word文档里的个人总结,后来想想从06年接触博客园至今,基本每天都要上来学习一下的,却从来没写过什么东东,就贴一篇。

新项目马上要开始,本文先从技术角度对上一MES项目简单总结一下。  

1、程序

主要程序列表:MES产品框架、客制化生产系统、客制化查询系统、测试设备(2种)集成程序、数据采集设备(2种)集成程序、报表数据统计Job框架、报表系统、异常报警信息查询系统、SAP接口、其它程序

1.1MES产品框架:使用WCF进行通信,使用NHibernate 2.2进行持久化,使用AppDomain动态加载/卸载程序集dll并缓存的方式及以Key-Value的属性方式提供客制化处理方案;

1.2、测试设备集成程序:处理测试设备输出的数据(主要格式:txtExcelAccess);

1.3、数据采集设备集成程序:Socket通信、结合PLC进行串口通信等;

1.4、报表数据统计Job框架:Quartz,动态加载Job dll

1.5、报表系统:SQL Server自带的报表系统;

如图:

应用程序架构图示

2、数据库

使用的数据库产品是Microsoft SQL Server 2008 R2英文版

系统数据库主要设计为:生产数据库(Production Database)、历史数据库(History Database)、报表数据库(Report Database)、集成平台数据库(Integration Database)、异常报警信息数据库(Exception Alarm Database)、SAP接口数据库;

2.1、生产数据库(Production Database

1)生产数据库正常情况每周增长量为15GData File + Log File + Index File),保存6~12个月内数据;每天Log备份,每周增量全备份(全备之后Log File会截断) 

2)生产数据库主要给生产系统和产线生产数据查询系统使用;

3)生产数据库中的业务数据定期做归档,主要有2种方式:PurgeArchivePurge是数据可逆方案,主要对象是计算机:删除原始数据前按业务单元把数据以Insert Sql的形式保存到txt文件中,需要恢复时执行相应Insert SqlArchive是数据不可逆方案,主要对象是人:按业务单元把数据以Key-Value的形式保存到txtxml文件中;

2.2、历史数据库(History Database

历史数据库数据由生产数据库数据同步过来,3种方案同时使用:SQL Server的发布/订阅复制(Replication)方案、SQL Server Job方案、SSISSQL Server Integration Service)方案;3种方案同时使用的原因:发布/订阅的复制方案会因为各种原因中断,微软支持人员给出的答案:有些原因在方案重启后可以从中断点继续复制,有些原因必须重新做复制,从头复制(问题就在这里:1是复制需要一定的时间,会影响生产;2是有些数据在生产数据库已经被Purge掉了,无法找到原始数据),所以历史数据库就被拆分成几个小数据库:基础数据或变动比较小的数据采用SQL Server的发布/订阅复制方案,问题发生时就算重新做复制也会比较快恢复;一些逻辑性强的采用SQL Server Job的方式进行复制,可以设置起始点及回退;SSIS不太了解,属于学习和尝试阶段;

2.3、报表数据库(Report Database

基于报表逻辑的复杂性以及客户对效率要求(所有常规报表在30秒内),通过Job将报表数据从历史数据库中统计出来保存到报表数据库来实现。

其它数据不做介绍了。

如图:

数据库架构图示

3、服务器

根据以上程序及数据库设计,规划以下服务器,实际实施时有合并使用。

MES产品框架应用程序服务器(Framework Application Server)、客制化系统应用程序服务器(Custom Application Server)、集成平台应用程序服务器(Integration Application Server)、缓存服务器(Cache Server)、报表查询服务器(Report Query Server)、生产数据库服务器(Production Database Server)、历史数据库服务器(History Database Server)、报表数据库服务器(Report Database Server)、文件服务器(File Server

如图:

服务器架构图示

Application Server一共2台,在服务器群集(Cluster)基础上结合缓存服务器(Cache Server,主要是架设了NCache,保存SessionViewstate)建立网络负载平衡(NLBNetwork Load Balancing),主要运行程序:MES产品框架、客制化生产系统、客制化查询系统;

Integration Server主要运行程序:测试设备(2种)集成程序服务器端、数据采集设备(2种)集成程序服务器端;

4、主要问题

技术上主要的问题在于数据库的同步方面,各种方案都有优点和缺点,搞得很疲惫,不知道是SQL Server太弱还是我们的设计方案有问题(使用SQL Server主要是项目开始之前,客户方已经购买了SQL Server,不愿意再换Oracle)。

原文地址:https://www.cnblogs.com/Leo_wl/p/2800710.html