作为企业上层计划决策系统和底层过程控制系统之间的桥梁,制造执行系统(MES)在车间生产的计划调度、过程管理等方面起到了越来越重要的作用。在当今敏捷制造与网络化制造的模式下,传统的制造执行系统难以满足车间生产管理的需求,主要表现在:a)集成困难。通常是在设计开发完成后,再着手解决与其他企业应用系统集成的问题,由于企业各应用系统没有统一的标准和成熟的技术支持,集成起来格外困难。b)可重构性差。普遍采用的紧耦合、僵硬脆弱的架构往往固化了系统的大部分功能,只余小部分可以进行参数的配置,难以保证企业的敏捷性,无法支持企业快速适应市场和生产环境的变化。c)开发周期长。传统MES普遍存在定制工作量大、成本高、周期长的问题,阻碍了MES应用于不同类型、特点的企业和车间。
面向服务架构(SCA)的制造执行系统基于开放的工业标准,具有语言独立性、松散耦合、跨平台、良好的封装性、位置透明等特点。这些特点使得制造执行系统能够快速地按需应变以满足制造管理的需求。面向服务架构的制造执行系统已经成为研究的热点,目前的研究尚未提出较为完整的面向服务制造执行系统体系架构,对面向服务在MES集成、配置和产品化中的作用分析不足。针对以上问题与现状,本文基于SOA的核心标准,建立了MES的面向服务技术体系,深入研究面向服务的关键技术在MES中的应用。
1 面向服务的制造执行系统
面向服务的制造执行系统体系结构如图1所示。系统表示层主要是MES的人机交互界面,提供Web、无线等多种方式的访问。系统平台层包括企业数据库、车间遗留系统、应用服务器和ISA95领域标准等。在服务构件层,车间业务按照SCA(服务构件体系)规范被封装为一系列粗粒度的服务,这些服务相对独立。自包含、可重用,其接口采用中立的、基于标准的方式。MES服务通过服务总线层进行交互、调用。服务流程层以BPEL(业务流程执行语言)与 BPMN(business process modeling notation,业务流程建模符号)为标准,对MES服务进行复合、编排,以实现端到端的车间业务流程建模与执行。
2 基于SCA的MES服务设计与装配
SCA是OpenSOA组织提出的一种全新的编程模型。服务构件是SOA中的基本构件单位,封装了MES的业务功能与逻辑规则。服务构件具有比面向对象更好的重用效率,使得MES能够以一种搭积木的方式快速地开发实施。服务构件将MES服务分为接口与实现两部分。服务接口使用WSDL(web service description language,Web服务描述语言)描述该服务的所有功能方法和相关信息。服务实现是服务对接口定义功能的具体实现方式,具有跨平台的特点,Java、C++等语言以及EJB、CORBA、.NET等技术体系都可以作为MES服务构件的实现。例如,自动排产算法构件通过服务接口为MES系统提供算法生成的详细作业计划,通过接口引用从其他MES服务得到任务信息、产品信息和加工能力信息等作为算法约束。服务的实现可以是自适应离散粒子群算法、改进的遗传算法、模拟退火算法等,算法代码所采用的语言平台不受限制。
根据SCA规范,多个关联的服务构件装配得到MES服务模块(composite)。服务模块是MES最小的部署单位,能够将模块内构件的部分接口提升作为自身服务。一个服务模块可以作为另一模块内部构件的服务实现进行嵌套式的装配。在MES的设计开发过程中,选择合适的装配对象、设计合理的装配方式,可以对应实现MES层次化的功能模型。
MES通过服务构件的封装与装配,提高了服务的粒度,便于系统的重用。以航天系统的离散制造车间为例,典型的MES服务有:a)多层生产计划服务。依据主生产计划以及产品、资源等基础数据对任务项进行批次分解得到批次生产计划,并进一步手动或自动地制定详细作业计划。b)动态调度服务。按照生产计划向工位或工人实际派发加工任务;针对加工过程中出现的质量超差、紧急任务、设备故障等问题协调质检员、工艺员等角色进行生产异常处理。c)加工状态服务。(工人)接收加工任务,报告加工过程中出现的异常,并在加工完毕后提交;(调度员)在必要时直接修改加工状态,中断或停止当前任务。d)质量管理服务。查询并记录加工任务首件三检、总监、军检的结果,作为计划制订和统计分析的依据。e)条码标志/RFlD服务。对物料、工装等资源的条码号或射频卡进行查询、管理。f)在制品追踪服务。对在制品所处的位置(工位、缓存区、库房)进行精确定位,以缩短周转时间。除此之外,还包括资源管理、基础数据、系统集成、外协生产等服务。
3 基于总线的MES服务集成与系统集成
传统的分布式MES架构中,各项业务功能之间相互依赖、密不可分,导致重构困难,原因在于功能构件之间的调用存在着明确的指向性。功能构件的 URL等位置信息需要修改或者整个构件被删除时,依赖于该构件的其他部分必将出现运行异常。另外,构件通信技术往往也是固定的,新加入的构件传输协议不匹配也会阻碍系统的重构,如EJB只能接收RMI,无法兼容JMS协议的构件。
面向服务的MES系统采用总线模式对系统内各种服务进行集成、注册和管理,并保证系统的扩展性和兼容性。服务总线主要有两个组成部分:一是服务注册表,保存连接在该服务总线上所有服务的注册信息;二是服务路由器,负责消息转发、格式转换、协议映射等功能。服务总线思想的核心是服务消费者和提供者之间松散耦合、彼此透明。尤其是对于跨子系统的MES服务调用,服务消费者能在协议不限(SOAP、EJB、JMS)且无须了解提供者位置的前提下,与特定协议特定位置的服务提供者进行交互。在服务总线的支持下,MES应用可以根据车间的业务需求对系统中的功能进行添加、删除、修改等操作而不会造成系统整体的异常。除了内部的服务集成,服务总线还可以支持MES与ERP、SCM、PDM等企业应用系统的集成。MES通过服务总线提供服务供其他系统调用,并调用其他应用系统的服务,以实现系统间的互操作。
MES与ERP集成的典型场景。服务总线首先为ERP(服务消费者)和MES(服务提供者)分别创建入站和出站端口。MES在服务注册表发布 WSDL描述文件,ERP检索注册表后向服务总线发布请求信息,经路由器中转交给MES。MES收到请求后完成服务内容,并将包含了生产进度的响应信息沿相反路径返回。在该场景中,MES向ERP提供了以下服务:订单进度监控服务负责在ERP系统发出服务请求后,反馈某零件产品的当前生产进度信息;物料消耗反馈服务根据车间物料库存情况与生产计划的对比结果向ERP提出集中配送要求;短期生产计划服务提供车间当前一段时间的任务安排与加工能力状态,作为企业级决策的依据。