1 MES与PDM的集成内容
MES作为车间执行系统与CAPP、ERP、PDM、SCM、SSM等信息系统相互联系、相互依存。PDM作为一个集成平台,MES不仅需要从PDM获取BOM结构、工艺规程、设计图纸等信息,MES本身也需要向PDM提供诸如生产进度等信息。二者之间的集成方式主要分为基于XML中间文件的集成和基于企业服务总线的集成,本文将对这2种集成方式进行描述。
在PDM系统与MES系统的集成过程中,PDM系统负责维护产品数据,是产品数据的惟一来源。MES系统作为产品数据的使用者,其产品数据由PDM系统提供。集成主要包括3个方面的内容:从MES系统发给PDM系统的产品数据请求;PDM系统反馈给MES系统的产品数据;PDM系统定期对MES系统中产品数据进行同步处理,以保证产品数据版本最新和2个系统产品数据的一致性。PDM与MES的主要集成数据包括:产品结构信息即BOM、产品工艺信息和产品物料信息。
本文以某飞机工业集团的复合材料公司MES系统为例。MES系统与PDM集成平台进行BOM信息集成应实现以下功能:
MES系统需要导入该部门产品结构关系所需要的物料清单,即BOM结构,这需要对数据惟一性、字段长度与类型进行验证。BOM导入功能可以从设计部门给出的PBOM按照实际需求,快速得到所需要的MBOM。在MES系统中,BOM表结构采用父子型数据结构,通过零部件的装配关系与被装配关系来描述,主要字段有父物料号、子物料号和装配数量,如图1所示,父子型的数据结构能降低BOM的数据冗余性,提高了BOM数据的一致性。
图1 BOM表结构
2 基于XML的集成方案
2.1 总体框图
XML可以实现异构数据之间的数据转换,由于XML是一种元标记语言,它可以应用于任何平台之上,XML的这种特性为异构数据的交互提供了一种数据交换的标准。它是一种公共的交互平台,一种数据源只要能将它的数据转换成XML格式就能够被另外一种数据源有效地识别,这为数据的迁移以及整合提供了很好的工具。图2是MES与PDM系统集成框架图。
图2 基于XML的集成框图
2.2 MES中MBOM结构的导入
在MES系统中,MBOM是对复合材料产品进行计划编制、物料需求、产品配套、项目跟踪的基础。如果没有有效的集成,靠系统维护人员手工录入大量数据,容易造成各种各样的错误,因此选择一种简单易行、准确的方式实现MBOM结构的集成就显得异常重要,本文利用XML作为数据交换格式,建立规范模板,解决不同数据模型、不同数据格式转换传递的集成问题,实现异构数据间的数据转换。
在XML文档库中,XML通常是分成2个区域来描述MBOM:控制区和数据区,如图3所示。
图3 XML文档结构
要验证XML文档对象结构正确与否还需要通过DTD文档进行结构验证,在此略去DTD文档内容。当上述XML文档上传到Web服务器时,便需要修改Change.xml文档中的内容,以表示该BOM信息出现数据变化。
xml_share/bom</directory>
bom</file>
</changexml>
MES客户端则需定时监视Web服务器的文件目录,即定时下载Change.xml文档,然后将change.xml的内容读取到xmlDOM对象中,DOM定义了一组分析元可以显示的标准指令集,通过程序存取HTML或XML的内容,然后通过程序中的对象集合将其显示出来,可以通过创建Document对象,使得应用程序得到对XML文档进行操作的入口,读取节点change.xml中directory信息和file信息,如果信息不为空,则说明有更新文件需要下载,再利用xmlDOM的get方法获得更新文件的内容以及DTD文档的内容,最后一定要将Change.xml文档内容删除,用put方法再上传到Web服务器中,以便下次PDM系统有新的信息进行更新。
当用XML解析器也就是利用DOM方法提取XML文档中的各个节点后,接着就是把真正需要的节点数据信息存入数据库,更新基础数据。
3 基于ESB的集成方案
在大型的企业中,随着应用系统的不断增加,对信息共享、系统的互操作和软件重用提出了更高的要求,而独立的XML中间文档库已经不能充分满足业务不断拓展的需求,因为不同生产制造部门的MES系统需要从PDM系统获取不同的数据信息,这时便需要PDM系统同各个MES系统进行两两互连,而两两互连势必形成网状拓扑结构。随着MES系统的增加,网状拓扑结构会变得越来越复杂并难以维护。在这种背景下,一种面向服务的企业架构(SOA)出现了,SOA指的是企业的应用系统都以服务方式接入企业服务总线(ESB)。企业服务总线类的中间件其实就是一类星型结构的中间件,由于星型结构的中心节点控制着全部的数据传递,因此可以集中进行消息格式转换,将来自源系统的消息格式主动转换成目标系统能够识别的格式。本文将采用Websphere Message Broker(MB)和Websphere Message Queue(MQ)在应用系统之间通过基于消息的异步方式集成各应用系统。
3.1 集成的总体框图
MB处于系统的中心,起到一个总线的作用,所有应用都直接连接到MB,而不是应用之间直接互联,这样做的好处是可以极大地降低应用之间的耦合性。由此引出MB的2大核心功能:消息路由和数据转换,因为各个应用都插入到MB上,所以应用系统只需把消息丢给MB,MB自动根据消息字段以及业务逻辑,判断要把消息交给谁,有点像路由器,根据数据包的头把包路由到相应地址。MB是由一些组件构成的,代理、路由、转换和补充当前信息,Message Brokers Toolkit是WMB的集成开发环境,在该工具中可以开发消息流、消息集、消息映射、ESQL代码、消息格式(XML)、转换模式(XSL)、Java代码等。开发工具将开发完成的成果打包归档部署到运行环境中,在运行环境中生效。
图4 基于MB的集成架构
3.2 集成过程
消息传送有2种方式:消息从一个应用程序直接发送到另一个应用程序,这称为点到点消息传递;另一种消息传递方式称为发布颀订。发布应用程序将关于一个主题的消息发送到代理,代理将发布的消息传递到已注册的对特定主题感兴趣的应用程序,发布者和订户都不知道对方的存在。基于MB的集成属于发布/预订方式。
MB提供了3种方式与应用系统互相连接:MQ、文件和Web Service。
MQ方式利用MQ将MB与应用互联;文件方式则是指定某个目录,MB会自动监视那个文件目录,一旦文件有改变则认为是新的消息到来,MB自动读取指定文件的内容,利用Web Service进行通讯。MB支持这些互联方式也是为了最大化兼容性,特别是对于那些遗留系统或是不支持主流通讯方式的系统。
在应用企业中,不仅复合材料厂的MES系统需要PDM系统上的信息,其他生产制造部门,即其他相关制造部门的MES系统也需要PDM上的信息,因此PDM系统将其BOM主题信息发送到代理,代理将发布的消息传递到注册了该主题的订户。对于MES系统,具体过程为:PDM系统将其BOM主题信息放入队列BOM_PUBLICATION或者Real-timebomln队列中,其中BOM_PUBLICATION为PDM系统中的E-BOM,当工程更改或版次发生变化时,将更改的信息放入Real-timebomln队列中,根据产品图号条件进行过滤,选择不同的订阅方进行发布。经过过滤后,若订阅方需要对BOM信息进行修改,可用Compute节点通过ESQL代码实现对消息的处理和数据表的操作,再发送到订阅方。Publication节点是按代理订阅表发布消息,过滤和消息处理后可用该节点进行消息发布,图5所示为详细的消息流设计。
图5 消息流的设计
当部署启动时,会编译和封装消息流,并将其发送到配置管理器,配置管理器会解包消息流并做记录,然后将它们路由到相应的代理,在代理中消息流经过消息映射、消息过滤等步骤,将BOM信息转换成MES需要的BOM信息进行发布,在MES系统收到后就可以更新其数据库。
例:PDM系统将所有的BOM信息以XML文档形式放入BOM PUBLICATION队列中,文档结构是如图3所示的结构,而MES系统如果需要产品图号为DD-090514-1-B1的BOM结构,则需要在Filteron productid节点进行如下的ESQL编程:
CREATE FILTER MODULE productid Filter
CREATE FUNCTION Main () RETURNS BOOLEAN
BEGIN
IF Dataarea.productid=‘DD-090514-1-B1’THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;END;
END MODULE;
Publication则将处理后的消息按照订阅表发给MES系统,MES系统便可以更新数据库。在消息过滤后,如需要对BOM信息进行合并或修改,则在compute节点进行ESQL编程,首先遍历各个节点,对物料和层次都相同的物料数量进行合并,形成新的XML节点树,这样便可以得到我们所需要的MBOM。