欢迎来到天天文库
浏览记录
ID:21518384
大小:26.00 KB
页数:5页
时间:2018-10-22
《冷轧生产执行系统(pes)中间件设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、冷轧生产执行系统(PES)中间件设计与实现 摘要 阐述使用C#开发技术、SQLserver数据库技术开发冷轧中间件的总体设计方案,详细分析了柳钢生产计划在内部网络的流向。 【关键词】C#SQLserver冷轧中间件 1前言 柳钢冷轧生产执行系统(ProductExecutionSystem,PES)属于柳钢制造执行系统(ManufacturingExecutionSystem,简称MES)的子系统,在柳钢冷轧钢卷生过程中,需要通过MES制定生产计划以报文的形式下发到PES,冷轧厂需要根据公司的生产计划执行生产。因此,需要通过设计中间件进行对公司下发计划存储的数据库跟生产机组二级服
2、务器数据库进行衔接,执行生产计划的下发及实际生产数据上传。 2需求分析 2.1业务需求分析 冷轧中间件的开发主要是将公司中间件下发到冷轧Sql数据库中的数据跟生产机组二级服务器数据库中数据实现对接。有效的实现冷轧Sql数据库数据跟生产机组二级服务器数据的互通。 2.2功能需求分析 冷轧中间件在功能上,首先要实现冷轧Sql数据库跟二级数据服务器数据库进行连接,其次创建时间定时器,对数据库数据进行定时遍历查询,将未下发的生产计划自动按时下发以及二级服务器内未上传的实际生产数据按时上传。实现对上下鞍座实绩、钢卷焊接实绩、钢卷生产实绩、重量更新、酸轧作业命令。 2.3数据流向分析 冷
3、轧卷生产数据流向,首先由公司通过MMS系统制定总生产计划存储到公司的Oracle数据库中,再通过PES系统访问公司的oracle数据库,对制定的总生产计进行详细分配到各个机组生产,制定详细计划。公司中间件是对公司的Oracle数据库中的冷轧生产计划下发到冷轧Sql数据库中。冷轧中间件是将冷轧Sql数据库中的数据分配到各个相应机组二级服务器数据库中。等到机组按照生产计划完成生产后,二级机组服务器数据库会生成实际生产数据,会通过冷轧中间件传回冷轧Sql数据库中,再由公司中间件传回到公司的Oracle数据库中。 3中间件功能结构图 中间件功能主要有上下鞍座实绩、钢卷焊接实绩、钢卷生产实绩、重
4、量更新、酸轧作业命令。功能结构图如图1所示。 4数据库设计 4.1E-R图 E-R图是一种概念模型。概念模型实际上是现实世界到机器世界的一个中间层次。因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接的表达应该用众的各种语义知识,另一方面他还应该简单、清晰并且易于会员理解。图2是各个数据表的实体图。 4.2基本表设计 如表1所示。 5中间件实现 中间件的实现使用了C#程序设计语言程序技术跟SQLserver数据库技术相结合。实现了冷轧中间件的内部远程连接服务器功能、上下鞍座实绩、钢卷焊接实绩、钢卷生产实绩、重量更新、酸轧作业命令功能等。 5.1冷轧中间件界面设计
5、 冷轧中间件界面设计如图3所示。 5.2冷轧中间件测试服务器连接实现 冷轧中间件测试服务器连接实现代码如下所示: publicstaticboolTestConnection(stringhost,intport,intmillisecondsTimeout) { TcpClientclient=newTcpClient(); try{varar=client.BeginConnect(host,port,null,null); ar.AsyncWaitHandle.WaitOne(millisecondsTimeout);returnclient.Connected;}
6、catch(Exceptione){throwe;} finally{client.Close();}} 5.3冷轧中间件远程连接服务器实现 冷轧中间件远程连接服务器实现代码如下: privatevoidTestPing_Tick(objectsender,EventArgse) {//?h程服务器IP stringipStr=label5.Text.ToString().Trim(); //构造Ping实例 PingpingSender=newPing(); //Ping选项设置 PingOptionsoptions=newPingOptions(); option
7、s.DontFragment=true; //测试数据 stringdata="testdataabcabc"; byte[]buffer=Encoding.ASCII.GetBytes(data); //设置超时时间 inttimeout=120; //调用同步send方法发送数据,将返回结果保存至PingReply实例 PingReplyreply=pingSender.Send(ipStr,timeo
此文档下载收益归作者所有