0 引言
迄今为止,许多软件公司和高校已开发出为数众多的CAPP系统,部分系统在实际中得到了应用,但是也面临着复用性不好、模块化程度较低、扩展性较差等问题。究其原因主要是CAPP系统与应用行业、企业产品对象、企业资源及制造资源因素等息息相关。如果这些因素在企业环境中发生变化,可能会使原有的CAPP系统不能正常发挥应有的作用。因此对于CAPP系统来说,具有良好的复用性和灵活的可扩展性十分必要。
目前,许多CAPP系统都是基于C/S结构的,这类系统不能满足分散网络化制造的需要。构建基于B/S架构的CAPP系统可以更好地支持产品设计、工艺设计、生产管理(MRPⅡ/ERP)、加工制造等多个环节和部门的异地并行协同工作;可以更好地支持远程工艺设计和数据共享,从而使资源和信息的共享达到最大化,此外,B/S架构的CAPP系统也代表了未来CAPP系统的发展方向。
针对上述问题,笔者采用平台/插件体系结构(platform/plug-in architecture)开发基于Web的CAPP系统,并在此基础上研究了该CAPP系统的主要功能及其实现技术。对于大型的Web应用,标准的部署结构存在很大的缺陷,采用平台/插件体系结构开发的CAPP系统可以方便地针对企业及其产品特点迅速调整本身的功能结构。相比传统的软件体系结构和开发方法,开发出的软件在维护阶段所需要投入的人力、物力和财力有较大节省,缩短了软件的开发周期。
1 平台/插件软件架构的基本原理
基于平台/插件体系结构软件的主要思想是将待开发的目标软件分为两部分:程序的主体或主框架(此处定义为平台)、功能扩展或补充模块(可定义为插件,插件的本质是在不修改程序主体的情况下对软件功能进行扩展和加强)。
平台是整个软件系统的基础和主干,其设计必须遵循一种或几种接口规范,从而可以加载多个不同的插件,接受插件提供的服务并提交给用户。平台由内核和插件处理两部分构成。平台内核的设计不受平台/插件软件设计模型的约束限制;插件处理部分提供插件的注册、调用、卸载及管理功能,并遵循接口规范提供标准平台扩展接口,如图1所示。
图1 平台/插件软件架构模型
平台扩展接口完全由平台实现,插件只是调用。在实际的应用中,根据系统扩展需要,可以为平台设计多种类型的扩展接口,以方便各类插件的插入。平台扩展接口可实现插件向平台方向的单向通信,插件通过平台扩展接口可获取主框架的各种资源和数据(包括各种系统句柄、程序内部数据及内存分配等)。平台扩展接口的设计可分别对应命令插件(菜单命令)、界面插件(界面图标)及隐式功能插件(被内核调用而用户不可见的插件)。
插件接口完全由插件实现,平台也只是调用。插件接口实现平台向插件方向的单向通信,平台通过插件接口调用插件所实现的功能,读取插件处理数据等。
2 平台/插件架构的CAPP系统总体方案
基于上述思想,本文构建一个基于Web的平台/插件体系结构的CAPP系统。基于Web的CAPP系统基本结构包括零件信息获取、工艺决策、工艺文件管理与输出、制造工艺资源及系统管理(日志管理、登录IP管理、权限管理等)等功能。针对机械行业的铸造、锻压及机械加工等生产过程的需求,CAPP系统的平台内核负责实现前述通用功能。对于那些并非每个企业、每个部门、每个生产过程都需求的个性化功能,如尺寸链计算、喷涂定额计算、理论毛重计算、工时定额估算等功能,则以插件的方式来实现。各个扩展功能插件之间,以及平台与插件之间,可以很方便地通过可视化的系统配置管理工具集成起来,形成特定的CAPP应用系统,如图2所示。
图2 基于平台/插件体系的CAPP系统结构
为了最大程度地降低系统的开发和维护成本,应该尽量降低插件间的耦合程度,提高复用粒度。增强插件的可复用性不仅需要保证插件内部良好的设计,更需要对CAPP系统的插件业务功能进行合理划分。功能层是CAPP系统架构中最重要的一层,插件库模型通常与平台的需求相关并独立于运行环境。在对插件库模型的功能需求进行分析的基础之上,考虑CAPP系统预期的需求变化、技术发展及客观限制等因素,插件库模型被划分成一组相对独立的子域,如铸造子域、锻压子域、机械加工子域、焊接子域、非金属材料成形子域、特种加工子域等。子域插件库模型是一个反映CAPP系统插件的共性特征和变化性特征的分析模型。独立的子域插件库模型有利于设计出可复用的子域插件。通过精炼各子域插件库模型,子域体现出的插件特征分为共性特征和变化性特征,相对应的插件被分为通用插件和专用插件。通用插件在相同或相似子域中可以在不修改源代码的基础上按插件粒度复用,如工艺模板定制插件、特殊符号输入插件。特殊插件通常只可以在特定的子域中使用,不具备通用性,如铸压子域的铸件成本决策插件、锻压子域的锻件图生成插件、机械加工子域的切削参数优化插件。从子域中归纳出共性特征和变化性特征并提炼出一组子域插件,此过程的质量将直接关系到设计出的插件的复用粒度,上述插件粒度划分的原理及参考框架如图3所示。
图3 插件粒度划分的原理及参考框架
如果企业对CAPP系统有新的要求,则依据平台提供的扩展接口开发新的插件来满足要求,这样可大大增强CAPP系统的可重构性、可扩展性及适应性。
在物理结构上,将基于Web的平台/插件式CAPP系统的平台和插件相分离,保证了平台和应用服务器的无关性,不影响系统平台的整体性能。把物理上相独立的插件资源放置到给定的目录下,通过可视化的系统配置管理,系统启动时就能实现插件的部署及卸载。当插件更新升级时,除需要更新的插件以外,其余插件用户还能照常使用,很好解决了CAPP系统的更新升级的问题,且具有良好的扩展性。
3 平台与插件之间的交互控制
CAPP系统的平台与插件之间的交互控制是通过平台中的插件处理功能来实现的,主要包括对插件的注册、调用、注销、管理等功能。
3.1 插件的注册
基于Web的插件体系结构CAPP系统与标准CAPP系统的不同之处在于系统的根路径下包含一个Plugins文件夹,Plugins文件夹用于放置所有的插件式功能模块。每个插件式功能模块均又被封装在不同的子文件夹中。每个子文件夹的名称应与对应的插件名称一致,如QXCS的子文件夹代表了切削参数优化插件。CAPP系统平台遍历Plugins文件夹,将搜索到的插件依次记录到相应的数据表之中,自动生成并记录相应的调用机制信息(主要包括插件调用路径、菜单选项、按钮激活等),以备调用插件时使用这些信息。
文件处理对象(FSO、Drives、Folder、File、TextStream)及数据集合(Drivers、Folders、Files)可实现对指定目录下的文件夹和文件的查找、创建、删除、复制等操作,与数据库等相关技术结合,可实现插件注册的功能。
3.2 插件的调用
当插件成功注册之后,工艺人员登录系统在插件管理菜单中会看到已注册的插件。如果工艺人员需要调用插件来协助工艺设计,则选择相应的插件复选框,再点击确定按钮,程序经过处理,完成插件的调用过程。由于插件可选择菜单选项和按钮等方式进行注册,所以工艺人员可通过菜单或者按钮等方式来激活使用插件。
3.3 插件的卸载
工艺人员想停止对该插件的使用时,在插件管理界面取消相应的复选框即可,插件会自动在CAPP系统中卸载。
3.4 插件的管理
插件的管理包括对插件的上传、删除。第三方开发人员可以通过网络将新开发的插件打包上传到Web服务器指定的Plugins文件夹下,相关的插件信息均记录到相应的数据表之中,以便插件注册时使用。如果工艺人员决定不再使用某个插件,可以执行删除操作。
4 系统平台主要功能及其实现
4.1 以产品结构树为核心的工艺文件信息模型
产品结构树是产品及其构成(部件、组件、零件、标准件)层次关系的描述,根节点代表产品或部件,中间各个节点分别表示部件或组件,叶节点表示零件和标准件。工艺文件虽然针对具体的零部件,但作为产品的属性之一,工艺文件也应在工艺设计计划的指导下,围绕产品结构展开,这样就可以清晰地描述产品的装配关系。本文基于递归思想,提出控制父节点标识ParentID的递归化配置设计方法,以实现基于B/S结构的产品结构树。本文给出了产品数据表的部分结构(表1)和遍历生成产品结构树的算法(图4)。
表1 产品数据表结构
图4 遍历产品结构树算法
CAD或PDM系统的设计BOM经数据接口可以转换为XML标准的中性文件,CAPP系统可以接收XML文件并将其存储于数据库之中,以便在CAPP系统中重构产品结构树。
4.2 基于XML所见即所得的工艺设计
工艺人员常在同一标准界面下,采用数据定义方式对产品结构树中的某一零部件进行工艺设计,在设计完成后,可以将工艺文件以卡片的形式浏览或打印输出。这种不针对具体工艺卡片格式的设计方式,虽然暂时满足了企业的需求,但是不直观,工艺人员想对工艺数据进行修改时,需要再次返回到工艺设计界面,影响工作效率。当前商品化的CAPP系统虽然实现了所见即所得的工艺设计功能,但是体系结构是基于C/S模式的。
ActiveX是一个开放的集成平台,为开发人员、用户和Web生产商提供了一个快速而简便的基于Internet和Intranet平台创建程序集成和内容的方法。XML起源于Web中半结构化的标记语言,为Oracle、SQL Server、Access等数据库提供了更强的数据存储和分析能力,与相关技术结合,提供了解决异构产品数据网络间集成和共享的有效途径。针对上述问题,本文在B/S模式下,利用ActiveX技术将由报表设计器设计出的工艺模板加载到Web页面,再将基于报表设计器的二次开发技术和Web技术综合运用,结合基于XML描述的工艺数据和基于ADO组件的数据库技术,在B/S模式下实现所见即所得的工艺设计功能,如图5所示。
图5 B/S模式下所见即所得的工艺设计功能
基于上述插件粒度划分策略的插件体系结构开发的CAPP系统有效降低了插件间的耦合度,使各插件间的数据源相对独立,从而在基于XML所见即所得的工艺设计过程中,保证了从各插件提取到的工艺数据的通用性和一致性。
4.3 工艺设计规划
工艺设计规划是CAPP系统的最基本功能。本系统采用工艺向导机制,应用了产生式规则和基于实例推理的方法进行工艺设计,工艺设计时充分发挥了人和计算机各自的优点。派生式工艺设计主要用于指导全局、宏观的过程,如机械加工工艺过程、部件装配过程、铸造工艺过程等。创成式工艺设计主要用于指导具体、微观的工艺设计工程,如确定加工方式、定位方式、切削参数等,通常用决策树或决策表来实现。工艺向导可分三步工作:
(1)确定工艺过程。工艺过程以零件类型分类,工艺人员可方便地从相关零件类型中选取最合适的工艺过程,经过适当的编辑得到适用于实际情况的工艺过程。
(2)确定工序相关信息。系统自动将上一步所确定的工艺过程中所有工序的信息和典型案例数据库中的工序信息进行匹配,工序信息包括工序内容、机床、刀具、工时等信息。
(3)确定工步相关信息。工艺人员在步骤(2)中选定需要生成工序卡的工序号,此步可确定此工序的具体工步内容和相关的工艺参数。用户可以对每道工序的工步内容进行增加、删除、修改等操作。
参照上述基于XML的所见即所得的工艺设计功能的思想,经过修改最终确认的工艺信息可保存于典型案例库中。经过一段时间的使用,用户经常用到的工艺数据很容易从典型案例数据库中提取出来并再次使用,形成知识库的不断更新和扩充,从而提高工艺设计效率。若工艺模板上的工序和工步信息均在同一张卡片上,则工艺向导可以变成两步执行。
4.4 制造工艺资源管理
企业的制造工艺资源是指企业加工一个零件所需的全部物质元素,是面向CIMS、CAPP等系统所需的制造资源,这些元素包括机床、刀具、夹具、材料和标准工艺术语等。笔者在CAPP系统平台中构建基于Web的三维制造工艺资源管理功能模块,并采用基于结构树和框架的管理模式,对工艺设计资源进行有效的分类管理。这不仅可实现三维模型的共享和集中可视化,工艺人员还可及时方便地找到所需要的工艺资源,方便地按照自己的设计思想选择可重用的工艺资源。
为了适应企业制造环境的集成化和资源的动态变化,系统制造工艺资源库采用了开放式的结构。资源库中的资源对象和数据表可以随着企业资源的不断更新而随时扩充,不仅可根据本企业在整个产品生产工艺过程中对所涉及的工艺资源进行定制,而且能够保证不同资源对象之间的关联。制造工艺资源管理能够独立运行,也能作为一个独立的接口系统,被其他系统(PDM、ERP、MIS)所调用。
4.5 系统配置管理
配置管理功能提供可视化的系统管理模式,包括对用户的密码、角色、登录IP、权限、日志等的管理,并可对插件服务进行动态配置、组合、添加和删除等操作,为CAPP应用系统的开发、实施提供快速支持。定制过程由相关界面完成。系统所提供的Web服务保存于服务列表中,每个列表项指向特定Web服务器的URL或IP地址及端口号,客户端通过此地址和端口号即可对系统进行访问。
5 插件功能的实现技术
插件如同一堆各式各样的积木,它们分别实现不同的功能,工艺人员根据需要把实现各种功能的“积木”搭建起来,就构成了应用系统。每个插件的开发应该使用独立的数据库,这样插件与插件、插件与平台之间的运行互不干扰,实现即插即用。在插件的实现过程中,应该避免代码间的耦合,提高复用性。为使插件与平台界面风格一致,插件开发应该选用B/S模式。将Web技术与MATLAB等相关技术融合使用,可以开发优化计算、仿真类插件。
本文以切削参数优化插件为例,介绍具体的实现技术。采用ASP.NET来构建插件的主体框架,同时充分利用MATLAB提供的强大的数值分析、矩阵运算的能力,将其生成的COM组件作为切削参数优化插件的运算模块。在插件主界面中,通过访问平台扩展IServer接口,机床、工件材料、刀具等信息得以在平台内部数据资源中调用;在工艺设计的过程中,系统平台通过访问插件提供的Ipugin接口,读取插件功能信息和优化后的切削参数信息。通过对机床、工件材料、刀具、要达到的表面粗糙度和精度、优化目标及相关参数的选择、输入、调用,实现切削参数的优选。
6 原型系统简介
基于上述方法,笔者开发了基于Web的平台/插件式CAPP原型系统。Web技术采用ASP技术,数据库采用SQL Server 2000。系统平台已经实现了系统管理、工艺设计、制造资源管理等功能。
通过系统管理功能,实现用户访问控制及插件定制服务。当前CAPP系统可调用的通用插件有工艺模板定制插件、特殊符号输入插件、喷涂定额计算插件、理论毛重计算插件、尺寸链计算插件。可调用的专用插件有切削参数优化插件、铸件质量管理插件、锻件图生成插件。在制造资源管理中,资源库来源于SANDVIK、WALTER、SCEO、ISCAR、DMG等主流刀具商和机床生产商的样本手册,并且以AutoVue插件作为制造工艺资源三维模型显示界面。
7 结论
(1)本文从平台/插件架构软件的基本原理出发,构建了CAPP系统的总体结构,分析了平台和插件的主要功能及实现技术,重点研究了插件粒度的划分流程、最终参考框架及平台与插件的通信过程,有效降低了插件间的耦合性,提高了插件复用率。建立了平台/插件式的CAPP原型系统。系统的复用性和扩展性良好,开发和维护成本低,可动态组合、替换和增加功能插件。
(2)建立的基于Web的CAPP系统维护升级简单,实现了所见即所得的工艺设计和即插即用式的动态拼装功能,为CAPP系统向网络化、柔性化、工具化、协同化的发展提供了有益的探索和借鉴。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于Web的平台/插件式CAPP系统研究