冷轧生产执行系统(PES)中间件设计与实现
2017-05-10朱旋吴达源吴第春
朱旋+吴达源+吴第春
摘 要
阐述使用C#开发技术、SQL server数据库技术开发冷轧中间件的总体设计方案,详细分析了柳钢生产计划在内部网络的流向。
【关键词】C#SQL server冷轧中间件
1 前言
柳钢冷轧生产执行系统(Product Execution System,PES)属于柳钢制造执行系统(Manufacturing Execution System,简称MES)的子系统,在柳钢冷轧钢卷生过程中,需要通过MES制定生产计划以报文的形式下发到PES,冷轧厂需要根据公司的生产计划执行生产。因此,需要通过设计中间件进行对公司下发计划存储的数据库跟生产机组二级服务器数据库进行衔接,执行生产计划的下发及实际生产数据上传。
2 需求分析
2.1 业务需求分析
冷轧中间件的开发主要是将公司中间件下发到冷轧Sql数据库中的数据跟生产机组二级服务器数据库中数据实现对接。有效的实现冷轧Sql数据库数据跟生产机组二级服务器数据的互通。
2.2 功能需求分析
冷轧中间件在功能上,首先要实现冷轧Sql数据库跟二级数据服务器数据库进行连接,其次创建时间定时器,对数据库数据进行定时遍历查询,将未下发的生产计划自动按时下发以及二级服务器内未上传的实际生产数据按时上传。实现对上下鞍座实绩、钢卷焊接实绩、钢卷生产实绩、重量更新、酸轧作业命令。
2.3 数据流向分析
冷轧卷生产数据流向,首先由公司通过MMS系统制定总生产计划存储到公司的Oracle数据库中,再通过PES系统访问公司的oracle数据库,对制定的总生产计进行详细分配到各个机组生产,制定详细计划。公司中间件是对公司的Oracle数据库中的冷轧生产计划下发到冷轧Sql数据库中。冷轧中间件是将冷轧Sql数据库中的数据分配到各个相应机组二级服务器数据库中。等到机组按照生产计划完成生产后,二级机组服务器数据库会生成实际生产数据,会通过冷轧中间件传回冷轧Sql数据库中,再由公司中间件传回到公司的Oracle数据库中。
3 中间件功能结构图
中间件功能主要有上下鞍座实绩、钢卷焊接实绩、钢卷生产实绩、重量更新、酸轧作业命令。功能结构图如图1所示。
4 数据库设计
4.1 E-R图
E-R图是一种概念模型。概念模型实际上是现实世界到机器世界的一个中间层次。因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接的表达应该用众的各种语义知识,另一方面他还应该简单、清晰并且易于会员理解。图2是各个数据表的实体图。
4.2 基本表设计
如表1所示。
5 中间件实现
中间件的实现使用了C#程序设计语言程序技术跟SQL server数据库技术相结合。实现了冷轧中间件的内部远程连接服务器功能、上下鞍座实绩、钢卷焊接实绩、钢卷生产实绩、重量更新、酸轧作业命令功能等。
5.1 冷轧中间件界面设计
冷轧中间件界面设计如图3所示。
5.2 冷轧中间件测试服务器连接实现
冷轧中间件测试服务器连接实现代码如下所示:
publicstaticbool TestConnection(string host, int port, int millisecondsTimeout)
{
TcpClient client = newTcpClient();
try { var ar = client.BeginConnect(host, port, null, null);
ar.AsyncWaitHandle.WaitOne(millisecondsTimeout); return client.Connected; }
catch(Exception e) {throw e; }
finally { client.Close(); } }
5.3 冷轧中间件远程连接服务器实现
冷轧中间件远程连接服务器实现代码如下:
privatevoid TestPing_Tick(object sender, EventArgs e)
{ //遠程服务器IP
string ipStr = label5.Text.ToString().Trim();
//构造Ping实例
Ping pingSender = newPing();
//Ping 选项设置
PingOptions options = newPingOptions();
options.DontFragment = true;
//测试数据
string data = "test data abcabc";
byte[] buffer = Encoding.ASCII.GetBytes(data);
//设置超时时间
int timeout = 120;
//调用同步 send 方法发送数据,将返回结果保存至PingReply实例
PingReply reply = pingSender.Send(ipStr, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{ if (textBox4.Text == "" || textBox4.Text == "9999")
{ textBox4.Text = "1"; textBox4.ForeColor = Color.Red; }
else { textBox4.Text = (Convert.ToInt32(textBox4.Text) + 1).ToString(); }
} else { string date = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
if (textBox5.Text == "" || textBox5.Text == "9999")
{ textBox5.Text = "1";
listBox1.Items.Add("网络连接超时,时间: " + date);
AddLog("网络连接超时,时间: " + date);
}
else { textBox5.Text = (Convert.ToInt32(textBox4.Text) + 1).ToString();
listBox1.Items.Add("网络连接超时,时间: " + date);
AddLog("网络连接超时,时间: " + date); } } }
6 结语
在柳钢实际生产应用中,冷轧中间件的设计与实现有效地解决了公司数据跟冷轧厂数据的衔接,运用现代信息化技术投入到实际生产应用当中,进一步加快了柳钢对信息化推进的步伐。目前所开发的冷轧中间件在生产应用当中,针对各个二级机组服务器数据库都需要设计相对应的数据库连接中间件。
参考文献
[1]齐治昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社,2007.