王德权,黄成海
(大连工业大学机械工程与自动化学院,辽宁大连 116034)
汽车发动机装配线MES中的订单管理系统
王德权,黄成海
(大连工业大学机械工程与自动化学院,辽宁大连 116034)
通过对某汽车发动机制造企业的生产订单管理制度和业务流程的分析和研究,开发了一套生产订单管理软件。在基于ERP/MES/PCS三层体系结构的制造企业信息系统中,位于制造执行系统内部顶层的生产订单管理系统负责ERP和MES之间的信息交互,在ERP和MES中起着信息桥梁的关键作用。采用Oracle透明网关技术,使Oracle数据库访问SQL Server2008数据库,基于SQL Server 2008中的CLR集成技术、UDP协议的网络通信等关键技术实现了SQL Server 2008数据库主动与订单管理系统通讯。运行结果表明该系统性能稳定,满足生产需要。
生产订单管理系统;MES;汽车发动机装配线
20世纪90年代初,工业界开始认识到需要一个可以将业务系统和控制系统集成在一起的中间层[1-3]。同时,企业信息化建设的过程又是变革管理思想、改进管理模式、优化管理流程、提高员工素质的过程,是提升企业经营管理水平、缩小企业目标与资源能力之间缺口的有力手段。在基于ERP/MES/PCS的三层体系结构中,ERP完成从销售订单到生产订单的转化,而从生产订单投入到产品完成的整个生产过程中生产订单信息在各级系统中流动,经各级系统的不同处理,直到产品完成的整个订单在制造执行阶段的管理任务由MES实现[4]。MES介于ERP与底层控制和自动化系统之间,起着承上启下的作用,是ERP系统数据基础和保证[5-6]。本文介绍的生产订单管理系统是汽车发动机生产线制造执行系统(MES)的一个子系统。该系统承担MES所赋予的生产订单管理业务,同时MES实现与ERP系统集成的关键,是MES正常运行的前提和基础。
本系统运用Visual C#编程语言编写,采用SQL Server 2008作为后台数据库。目前,本系统正在某汽车发动机生产线投入使用,运行稳定。
本系统主要由订单信息导入,订单信息下达,计划调度,查看订单状态等部分组成。
订单信息导入模块是负责把SAP生成的生产订单信息(包括发动机订单计划、发动机装配指南、操作指导等信息)自动导入到SQL Server 2008数据库。通过订单信息下达模块把生产订单信息自动下达到各个工控机的MES中。查看订单信息模块可以查询和维护订单信息并且可以查询历史订单的执行状况,如果发现订单执行出现异常可以手动管理这些订单信息。通过计划调度调模块调整生产订单的执行顺序。
根据现场的设备情况和要求,网络结构采用图1所示的结构。本信息系统服务器和SAP服务器放置在不同的地理位置,通过光纤进行连接。所有装配线上的工控机通过100M以太网卡与交换机连接,与本信息系统服务器实时通讯。
图1 系统结构
该企业信息系统中存在着异构数据库。异构数据库系统是指异构的多数据库系统,即组成它的成员数据库的硬件、系统软件(如操作系统)不同,或成员数据库具有不同数据库管理系统(DBMS)[7]。例如该企业SAP系统的后台Oracle数据库与MES系统的后台SQL Server2008数据库。那么在进行系统之间的数据整合过程中,将不可避免的涉及到异构数据库之间的无逢的数据访问。因此在导入订单信息之前先解决不同数据库之间数据交互问题是实现整个系统的第一步。
在Oracle数据库访问SQL Server2008数据库中需要利用Oracle中提供的透明网关技术。针对Oracle与其他异构平台之间的数据访问,Oracle通过异构服务实现对异种数据源的连接,根据代理程序的不同,分为透明网关和普通连接2种技术。普通连接是一种使用ODBC或者OLEDB驱动程序访问任何ODBC或OLEDB兼容的非Oracle系统的通用解决方案。透明网关是一种为非Oracle系统特别编码、量身定制的解决方案,它提供一种比普通连接拥有更多功能和更好性能的优化解决方案。普通连接依赖于业界标准,而透明网关使用它的本地接口访问非Oracle系统[8]。其关键配置如下:
(1)安装Oracle中提供的透明网关组件。
(2)配置网关初始参数文件。
(3)为透明网关配置网络监听器。
(4)配置tnsname.ora配置文件。
SQL Server2008引入了MicrosoftWindows的.NET Framework的公共语言运行库 (CLR)Common LanguageRuntime 组件的集成[9]。CLR 是 Microsoft.NET Framework的核心,为所有.NET Framework代码提供执行环境。这意味着可以使用任意.NET Framework语言编写存储过程、触发器、用户定义类型、用户定义函数、用户定义聚合函数以及流处理表值函数。
用户数据报协议(UDP)是ISO参考模型中一种无连接的传输层协议,提供面向操作的简单非可靠信息传送服务[10]。UDP协议在数据传输之前,通信双方不需要建立连接,因此不需要维护连接状态,UDP信息包的标题很短,只有8个字节,相对于TCP的建立连接并20个字节信息包的额外开销很小,因此本系统采用UDP协议来实现通讯。c#中UDP的编程有两种方式:直接使用Socket类和使用UDP类。UDPClient类对基础的Socket进行了封装、发送和接受数据时不必考虑底层套接字收发时必须处理的一些细节问题,开发简单、效率较高。因此本系统利用.NET中的UDPClient类对UDP协议进行编程,实现网络通讯。
建立SQL Server2008数据库与Oracle数据库之间的连接后,本系统会监测到Oracle数据库中的新生成的订单信息并把订单信息自动导入到本系统的后台SQL Server2008数据库中,订单信息导入到本系统的SQL Server2008数据库时,需要检测该订单在本系统数据库中的合法性(包括订单计划是否已经存在,发动机号是否存在,工位号是否存在,装配指南的订单号是否有重号,发动机类型是否正确等),因此并没有实际导入到实际表中,而存储在数据库所在的计算机内存中的临时表里,此过程由数据库来负责检测。如果检测成功数据库把订单信息导入到实际表中,同时把订单导入成功结果反馈给Oracle数据库。如果检测失败则把导入失败信息反馈给Oracle数据库以便于SAP计划员根据此信息维护订单信息。如图2所示。
图2 生产订单流程图
为了实现自动化,SQL Server2008数据库成功导入订单信息后,需要主动通知生产订单管理系统。此功能通过SQL Server 2008中的CLR集成技术和基于UDP协议的网络通信技术来实现的。主要步骤如下。
(1)编写客户端UDPclient通讯类并生成一个动态链接库。主要代码如下:
(2)把通讯类生成为动态链接库后,需要在SQL Server2008数据库上注册程序集。
(3)在数据库SQL Server2008中建立自定义函数准备调用程序集。代码如下:
(4)在数据库SQL Server2008中定义触发器来自动调用已经写好的自定义函数,把通讯信号发送给订单管理系统。
订单管理系统接收到SQL Server2008数据库的导入成功信号后,自动把生产订单信息通过UDP通信协议下达到各个工控机的MES中。各个工位的工控机接收订单信息后,把收到信息结果写入到数据库中,以便管理员查出订单下达的执行情况。
系统在自动导入并下达订单时,不可避免出现异常,导致自动订单导入失败、订单下达失败,因此需要管理员查询订单的执行状态,并手动管理订单信息。
管理员可以查询历史生产订单导入状态,订单导入状态分别为导入成功,导入失败,可以导入。
导入成功:订单信息成功导入到本系统的SQL Server2008数据库。
导入失败:订单信息没有成功导入到本系统得SQL Server2008数据库。
可以导入:SAP系统根据本系统反馈的导入失败信息,修改相应的错误信息后把导入状态从导入失败改成可以导入,本系统管理员根据此状态手动导入。
单击界面上的SAP导入按钮把SAP中的订单信息显示在界面上。管理员查看订单状态,如果其中订单状态为【可以导入】,就说明此订单可以从SAP系统的Oracle数据库手动导入到本系统的后台SQL Server2008数据库中。
管理员根据订单号查询各个工位的订单下达情况,该界面可以查询哪个工位下达成功,哪个工位下达失败。如果有下达失败的工位,选择要下达的订单信息和工位号后单击下达按钮,把订单信息重新下达到各个工控机中。下达过程中界面上实时显示订单下达状态信息。订单下达界面如图3所示。
图3 订单下达界面
此外此模块可以查询和维护已经导入的订单信息,包括订单号、发动机号、装配指南等信息。
计划调度模块主要功能是通过时间和订单下达状态进行筛选订单,选定订单后调整生产订单的执行顺序。订单下达状态分别为未下达,已下达,已完成。
未下达:表示生产订单信息没有下达到各个工控机当中。
已下达:表示生产订单信息已经下达到各个工控机当中。
已完成:表示已经下达的订单号正常完成生产。
当订单状态为未下达时这个订单没有下达到各个工控机只在本系统的数据库中,因此只需调数据库上的订单顺序即可,不需要计划同步到各个工控机。当订单状态为已下达时这个订单已经下达到各个工控机当中,因此调整完订单顺序后必须同步到各个工控机中。计划调度界面如图4所示。
此外此模块可以工位订单管理功能,工位订单管理是对生产订单中的每台发动机生产顺序进行管理。
图4 计划调度界面
生产订单管理是制造业信息化的重要组成部分,是提升制造企业生产管理水平和制造效率的重要途径。订单管理系统使MES系统与SAP系统进行信息交互的功能,其运行状况直接影响到两个信息系统的集成和整体运行效果。尽管本文主要以汽车发动机生产线为背景,但是其内容对其他类型的制造业MES的生产订单管理系统开发与应用也有一定的参考和借鉴作用。
[1]汤洪博.钢铁企业MES中的生产计划管理模式[J].控制工程,2005,12(6):577 -579,582.
[2]檀长松.硅钢MES系统中的生产订单管理[J].安徽冶金,2010(3):41-44.
[3]张志檩.国内外制造执行系统(MES)的应用与发展[J].自动化博览,2004(5):5-4.
[4]刘明周,方叶祥.CIMS下面向订单的动态生产计划解决方法[J].合肥工业大学学报(自然科学版),2004,27(4):414-417.
[5]高远飙,刘仁金.ERP与MES集成技术及其应用研究[J].计算机应用与软件,2009,26(9):69 -71,74.
[6]丛培勇,范玉青.ERP与MES集成关系研究[J].制造业自动化,2007,29(8):1 -5.
[7]马德云,俞时权,胡浩民.异构数据库的集成[J].计算机工程,2002,28(10):283 -284.
[8]苏淑文,翁敬农.Oracle系统异构环境下的信息集成[J].微机发展,2004,14(10):1 -3.
[9]德莱尼,著,陈宝国,译.深入解析SQL Server 2008(第1版)[M].北京:人民邮电出版社,2009.
[10]赵飞,叶震.UDP协议与TCP协议的对比分析与可靠性改进[J].微机发展,2006,16(9):219-221.
(编辑 李秀敏)
Order Management System of Manufacturing Execution System for Automobile Engine Assembly Line
WANG De-quan ,HUANG Cheng-hai
(School of Mechanical Engineering and Automation,Dalian Polytechnic University,Dalian Liaoning 116034,China)
By analyzing and researching themanagement and business process ofmanufacturing company’s production order,developing a set of production order management software;In the information system based on SAP/MES/PCS three-level architlecture formanufacturing company.the production ordermanagement system located in the top of layer w ithin MES is responsible for providers data interfaces,and plays a role as information brige link between SAP and MES.The system using ORACLE transparent gateways technology,Make the Oracle Database access Sql Server Database,Based on the SQL Server 2008 CLR integration technology,UDP protocol network communication technology to realize Sql Server 2008 actively communicate w ith ordermnangement system.The Running result shows that the system is very stable,and can fully meet the needs of production.
production ordermanagement information system;MES;automobile engine assembly line
TH16;TG65
A
1001-2265(2013)03-0127-03
2012-08-27
王德权(1964—),男,辽宁大连人,大连工业大学机械工程与自动化学院教授,工学硕士,主要研究方向为企业信息化,(E-mail)wangdq@dlpu.edu.cn。