资源目录
压缩包内文档预览:
编号:79709793
类型:共享资源
大小:1.60MB
格式:RAR
上传时间:2020-05-18
上传人:加Q294****549海量...
认证信息
个人认证
乐**(实名认证)
湖南
IP属地:湖南
39
积分
- 关 键 词:
-
1494
燃油
喷射
装置
设计
- 资源描述:
-
1494-燃油喷射装置设计,1494,燃油,喷射,装置,设计
- 内容简介:
-
机械类外文翻译之-基于构架/构件复用的开放式数控系统研究摘要通过对开放式数控系统和构架/构件复用技术当前形势发展的分析, 本文主要研究基于这一技术的开放式数控系统。 采用域工程方法,数控系统通常通过起着关键作用的数据通信组织起来。 此外,构件也被引以为例到可以再度使用的数据通信组件中,这不同于一般的构件。推出了数控系统的刻面模块分拣、表达、存储和检索系统。 结合上述各种有用信息,综合开发,构建出开放式数控系统平台。 支持这个平台的开放式数控系统的开发流程包括两个相关课程: 数控重用组件开发、这些重用组件与应用系统的建设。 此外,数控应用系统在MS-Windows上的实时应用能力可以通过这个平台检验。关键词: 数控, 开放式, 组件, 软件重用, 域工程 1.简介由于硬件技术的双快速发展, 电脑数值控制(CNC)系统的复杂性提高,与第三方软件提高的要求相适应, 开发商频繁的跳槽,及技工兄弟间割喉式的竞争等原因,数控系统的制造商不得不尽力去不断提高自己系统的质量和缩短该产品的开发时间,因此,开放架构正成为数控技术当前的发展趋势,且其主要目标是要建立一个统一的识别系统平台。与开放式平台的发展相比,CNC应用系统将更加模块化和灵活化,因此,这一系统的使用者将可以选择功能模块,甚至整合、修改、拓展系统功能,以满足不同的应用要求。关于开放式数控系统一系列意见可以总结如下1-4:(1)开放式数控系统具有灵活的硬件和软件。 因此,它不仅允许硬件改变其基本配置而且也允许软件修改各级控制。(2)一个开放式数控系统提供了即插即用兼容的真正意义。(3)一个开放式数控系统的标准化,允许第三方开发能满足其要求的新的硬件和软件。(4)开放式数控系统有能力融入与这个标准相同水平的其他成分, 还可以共享数据中的主要成分。(5)开放式数控系统可以同其他系统在系统水平上一致。鉴于上述原因, 我们把为专用数控域建立开放式数控系统模型作为可行的方法视为自然,但在另一方面,软件重用是应用软件开发过程中, 特别是在同一领域更深程度的应用,因为新的制度一向与前一期关系非常紧密5。它逐渐确信整个体系结构的设计和规格比软件系统的规模和复杂性日益升级的公司内的选择算法和数据结构更为重要。所以软件构架的重要性正在得到承认。近年来建筑/组件技术在众多的软件重用技术中发展迅速6,7。基于上述观点,本文主要对开放式数控系统及软件构架/构件复用技术, 开放式数控系统的结构和开发的数控系统的集成平台进行研究。2. 基于构架/构件的软件复用技术的开放式数控系统2.1. 软件重用和构件/组件技术软件架构是指总体结构设计和抽象的系统说明的划定。这是一个对软件系统的组成,结构和工作方式的宏观描述。简而言之,软件构架描述了组件及系统中组件间的的内在联系。软件开发基于构架把其重点从典线转向较大粒度的建筑元素(例如, 组件),以及整体结构相互之间的这些元素。发展的基调是构筑重用的软件体系结构; 它强调分析与设计的重用,而不是限制代码的重用。组件是一个功能上相对独立的单位。它可以清晰分辨, 在软件系统中可重复使用。这可能是一类,一类树、框架、或普通舱。 随着对软件重用概念的嵌入式理解,组件成分已不再局限于代码组件 ,而是扩展到需求、结构、文件、测试计划、测试用例和数据, 以及其他有关开发激活的有用信息。基于构架/构件技术的软件重用包括两个相关过程:可重用组件的开发和包含可重用组件的应用系统的开发。软件体系结构/组件技术在发展的过程的功能可以表示成图1。首先,通过域工程方法可以分析特殊领域,并且能得到这个特殊域的软件架构。然后组件开发的进程、 分拣和存储,都可用这个架构来引导。当一个新的应用系统需要发展的时候, 一些相关组件被从领域构件库或其他一般组件库中搜出和提取出来,紧接着那些合适的组件将通过挑选和改良以适应系统,最后,这些组件被组装在一个新的应用系统中。2.2.特殊领域的软件复用技术需要数控系统的开放开放系统技术的第一条原则是在系统开发过程中应用接口标准, 在此时按接口标准去实现。这为系统开发的设计决策和系统演化提供了一个稳定的基础, 同时还保证了系统间的相互操作8。从20世纪80年代起,开放式数控系统的研究项目已在世界各国纷纷展开研究,其中一些还具有很大的影响力,美国的OMAC,欧洲的OSACA和日本的OSEC。OSACA通过通信系统实现工作领域间的数据通信,其系统模型是基于分层结构, ,每一个功能模块的应用系统和内部运行机制的所有数据结构的基础上, 该模块的这些数据结构必须定义彻底 它需要复杂的配置系统,以建立并维持松散的应用系统的拓扑结构。应用系统开发图1.软件构件/组件在开发过程中的功能组件开发者装配域分析软件构件基于组件的域基于组件的其他管理分类,贮存参考搜索并吸取搜索并吸取适应性修正 现在,软件复用技术能最好的支持开放式体系, 尤其是符合接口标准的部件,可以利用“插头发挥”法容易地集成到系统,这是一个重新利用的黑匣子。 这样,元件可以独立发展,根据接口标准。这就是有名的实现数控系统的开放即基于构架/构件技术的软件重用的潜在途径。数控系统的开放与软件的重新利用出现的偶然性可见如下三个方面:(1)在旧版本的基础上, 加入了新功能,产生了新的数控系统的版本,适应了一些新的要求。 (2)修正部分以适应运行平台,让软件可以在另一个系统平台上运行 (3)将数控系统的软件(或其组成部分)应用到另一个数控应用系统,使旧系统演变成具有不同的功能和用途的新系统。3. 基于域工程的数控系统结构的分析和建模 为设计系统得到正确的结构是非常重要的。而域工程的方法9-12必须采取对数控系统进行分析,以便获得正确的系统结构。领域指一套被具有类似的要求的应用系统覆盖的功能区。领域工程包含三个主要阶段:领域分析,领域设计和领域实现。 在域分析和建模这一进程中,主要的问题是要实现开放式数控系统的关键环节。3.1. 数据通信在组织开放式数控系统中起关键作用 通过用领域工程方法分析典型数控系统,我们可以发现数控系统的进程和线程可以和在一些功能部件起关键作用的数据通信组织起来 。这种组织形式的优点如下所示:(1) 鉴于组件集成软件的发展方向,数据通讯模块可作为骨架去组织系统; 这使得系统的组织较前者容易。(2) 以数据通信作为关键环节的该系统已不再是一个层次结构。 每一个模块都有一个只与数据通信模块连接的接口。 开发商只需要注意这个接口,而不需考虑其他模块的组织模式。(3)为一个系统详细的定义数据通信模块的接口是足够的,与接口相一致,开发商需要做的,是发展其中有没有必要界定的内部数据结构和建立有效的完全基于这些数据结构的内部运行机制的个体模块。 (4)如果系统的数据通讯是确定的,整个系统的拓扑关系将严格界定。它确保了软件零件间的互互操作性。 我们强调系统中每模块的自主性。所谓自主意思是每一个模块都是一个独立的个体, 每个单元的目标和目标值都是独立的,甚至可以自己做出决定,制定计划, 采取行动去实现本身的目标,以及应付任何意外,因为它的行为是可控的。自治模块间毫无功能联系和记忆分享。所有信息通信都通过数据通信模块实现。 每个模块只能处于可选择状态:运行或睡眠。模块本身控制这两个状态。 关键环节-数据通信模块-具有相同的特性。数据/控制数据/控制数控组件1数控组件2数控系统内在的通信处理机制数控组件m数控组件n数据/控制数据/控制.图2. 有起关键作用的数据沟通的 CNC 领域功能的模型将数据通信模块作为关键环节的数控系统的功能型号如图2所示。数据通信的功能模块有几个组件接口. 这些接口,可与其他功能部件,如G代码译员组成 刀具补偿元件和插补元件等相联系。每个部件的输入和输出数据都通过其接口以交换关键环节来实现;数据通信模块从每一个接口读取数据,并自主送回。只有两种基于功能模式的域行为: (1)传送/接收数据信息和控制信息; (2)配套活动,如PLC编程,G代码档案的管理和编辑, 参数设定等。3.2.从数据通信模块中提取系统建筑 通过对部件实现的系统功能和组件必须自主化的强调,我们可以从开放数控系统的关键环节-数据通信模块开始分析数控系统的结构。划分组件的原则是实现最少功能耦合和组件间最可能独立, 要努力使部件功能的业务数据流独立。组件的设计应遵循领域的普通技术标准。例如,基于MS-Windows2000的数控系统的结构和高性能运动控制卡的分析如下。整个系统通过数据通信模块组织起来。建筑描述了全球系统组织,该系统的控制了部件的结构、部件间的通信及其部件间的协议、 元件的同步化、元件的功能分配元件的实物分配、元件的集成、 整个系统的伸缩性等等。首先,对域和接口的关系如经营环境和数据要求进行分析。变异也将进行鉴定。在领域范围被确定之后,跨社区和不同领域的应用将予以分析,它包括域特点,要求在领域中实现应用的领域知识信息和资料的需求信息, 数据和控制流的操作。在此基础上,后续工作就是对并行进程和单位域对象,定义过程,这些进程和模块的后天分布特征,功能和数据对象进行识别,为在领域中应用提供解决软件,最后开发出域的建筑模型。被提取的开放式数控系统的结构见 图3。数控系统软件可分为两部分:在电脑CPU上运行的上部和在高表现运动控制卡的DSP上运行的下部。它是一个多程序和多线的多任务系统。该系统的结构可以分为四种类型:设备驱动组件,基本组件,数控领域的普通组件及特殊应用组件。数控系统硬件的设备驱动程序被标准化到组件,这样使用者可以像操作其他一般组件一样选择和安装设备驱动组件。基本组件就是那些实现计算机系统共同的功能的组件,例如多媒体通信组件,档案管理组件和奇异硬件测试组件。域的共性成分就是那些有条件实现数控系统的域通用功能的成分。这些成分就是数控系统中通过域工程分析所获得的最重要的成就。通常,它包含了数据通信组件、人机界面组成、任务调度组件、G代码编译组件、插补组件、刀具补偿元件、运动控制组件、诊断组件、PLC程序解读和编辑组成、PLC的执行组件、参数设定组成、数据库操作组件、实时误差补偿元件等。特殊应用构件就是为某些特殊应用开发的组件,如螺旋圆锥齿轮的计算组件。Windows 2000PLC程序解读和编辑外部网络数据通信系统检测系统设定误差处理档案管理G代码编译人机交接刀具补偿数据库操作.高性能运动控制卡设备驱动程序任务调度运动轴控制终端输入/输出端口PLC逻辑运动控制误差补偿差补 数 据 通 信图3. 基于windows 2000 和运动控制的 CNC 系统的构件3.3.对数据通信组件的开放式数控系统的构件的例示目前,世界上有四种描述和表示软件体系的类型:(1)绘画矩形定向线段的数字表达; (2)模块中连接传统的编程语言模块的路径语言;(3) 结合面向对象技术与传统程序设计语言的发展经验的特殊软件构架描述语言(SADL); (4)基于组件的系统描述语言。 第一类是通常采用的方法。但这种方法的“图案和注释”始终是随机的并没有正式确定的,就是不严格的。弥补了其他种类的缺点并不是偶然的。通过我们对每种有关的系统数据通信组件的构件的例示,致使软件构件不再是抽象意义上的概念模型,但是程序代码按照宇宙法能被其他组件所重复使用。 由于开发环境的不同,每个系统结构都最少符合一个数据通信元件,而每个数据通信组件仅符合一个独特系统抽象体系结构。4.数控系统组件的类和检索4.1.数控系统组件的分类 4.1.1. 组件的关节分类模型组件分类是构建和维护组件的目录信息的活动,且构件检索方法取决于元件的表达和分类,因此构件的分类将有利于部件的管理,存储,检索和理解。组件分类有大量的分类方式,其中刻面分类方法有广泛的应用13,14。面分类模式是由一套描述组件的基本特征的面组成。组件库中根据不同的方面划分成各个面组件。通常所说的面是由一套基本的术语(即关键词)组成的术语空间。每个组件能被一或者较多术语用每个面 (面术语是一确定的聚集) 描述,而且每个面反映一个方法在库中分类成份。为何, 使用者能够直觉地指定成份被从不同的视野取回。 结果,这一个程序也将会促进使用者了解组件。据组合可知刻面分类具有以下特征:(1)一个面必须充分肯定的表达组件库中的所有组件,也就是每个组件可以通过面来区分。(2)每个面都有与之相关联的术语空间。任何两个术语空间间都是正交的,这就意味着其中一面术语的改变不会影响其他面中的术语空间。(3)刻面的术语空间是一个有限而模糊的空间,术语可以被动的增加或删除。(4)每个组件的所有刻面必须预先被定义,它不允许当区别组件的时候,那里存在不确定的刻面。但是当质疑的时候,使用者可根据刻面的随机数质疑。(5)当一位组件库经理对组件进行分类的时候,他应该瞄准每个刻面选择来自术语空间的适当的 (一个或者更多) 术语, 如此同样地完成组件的封包工作。(6)术语空间中的术语按照从一般到特别的关系呈树状阶层结构分布。每个术语都有着不定数目的同义词。 4.1.2用刻面模式给数控系统组件分类根据上述的刻面分类方法,将其运用于数控系统中,本文提出以下的刻面分类,用BNF巴科斯范式表示如下: :=(组件标识,组件类别,组件实现,组件信息,组件运行环境,组件版本关系)。(1)组件标识:用于惟一标识某一数控组件,主要包含以下属性:组件号:区别其他的数控性同组件。组件名字:相同的类型的 CNC组件无法拥有相同的名字,但是不同类型的能拥有相同的名字。组件实体类型:用于标识组件的实体类型,即源代码文件、目标文件、库文件等类型。(2) 组件功能性: 组件功能性是由在它的最初而可能软件系统种组件提供的软件功能聚集。组件库中的任何组件一定具备一个或多个功能。功能刻面的术语大部分由从组件的制作者/提供者提供的组件功能关键字组成。由于术语的一致,功能术语应该试着使来自一个比较高的抽象水平的组件用法具体化。 数控系统根据功能划分可分为G代码编译组件、刀补半径组件、速度预处理组件、插补组件、位置控制组件、人机交互组件、故障诊断处理组件等等。那么,“功能”就可以作为一个刻面。关于插补组件,依照不同的运算法则,他们能采用直线插补、圆弧插补、以符合高的精密需求抛物线插补、椭圆插补等等。 不同的组件能采用一种或多种的运算法则。(3) 组件应用环境: 组件应用环境是当使用 (包括了解/集合/修正) 组件时所必须提供的硬件和软件平台。只有当依赖特定的应用环境的时候, 组件库中的每个组件才能被重复使用。甚至原始码水平的通用组件也必须仰赖特别的编译系统。应用环境大概包含以下属性::(i) 组件硬件环境。 (ii) 组件操作系统环境。 (iii) 数据库平台。(iv) 网络环境。 (v) 编译而且连接环境(4)组件实现:描述CNC组件的功能及与实现有关的一些信息,主要包含以下属性:()开发语言:实现CNC组件所用的程序设计语言。()组件参数类型:描述CNC组件参数的类型是否可选,接口参数及引用方法的具体描述。()上下文环境: 即如果组件被装配从系统中得到的程序水平上的上下文环境。()形式:组件的合成和他们的相互关系, 像是类别、类别树、框架、模块。()表示法: 它是过去一直描述组件内容, 像是轮廓、本文、中文、英语的形式。(5) 组件阶级体系: 组件阶级体系是与软件发展程序联系紧密的处于抽象水平的组件。因为阶级体系刻面的术语比较简单, 组件库经理通常列举它们。目前的阶级体系术语包括: (i) 分析; (ii) 设计; (iii) 编码; (iv) 测试(6)组件信息:组件信息描述了数控组件的一些特定历史信息,如当它们被产生的时候,且这个数据大体包含以下属性:(i) 关于组件的资讯开发者和发展部门。 (ii) 组件生产数据。 (iii) 成份储入仓库资料。 (iv)组件尺寸。(7)组件版本关系:描述功能相似的同一系列CNC组件之间的关系,主要包含以下属性:(i)相关版本。 (ii) 提倡版本。上述的刻面完全地与彼此分开,因此,他们完全具体表达了与重新利用相关联的组件特性,而且是能适应开放 CNC 系统的组件库的发展。被包含在每个刻面的属性是他们的第一个水平术语; 术语和他们的下级术语之间的关系是一个从一般到特别的树形结构。举个例子来说,“开发语言”的术语在组件实现刻面是第一水平术语(概要),归纳开发数控组件所用的语言,可以是C、C+、Java、Foaran、ASM 等,这些要素构成了“开发语言”属性的值。对于这样一个主题:“用C+语言开发的有抛物线插补算法的插补组件”。通过对它的分析,可提取它在功能刻面内的元素:采用抛物线算法的插补组件,在组件实现刻面内的元素:C+语言。4.2. 组件恢复在组件重用的过程中,首先我们应当吸取来自所给定需要的功能的规格的一组关键字。然后按照这些关键字从已有组件中搜寻所需的候选组件。如果只发现一个组件符合所有的需求, 那么就选择它。但是通常有不止一个候选组件,而且每个备用组件只有一部分符合使用者的需求。在这情况下,存在多个候选组件,但每个候选组件都只能部分地满足用户要求。在这样的情况下,就要对候选组件满足用户的要求程度和为满足要求而需做的适应性修改的工作量进行评价,并以此对候选组件进行排序。有了排好序的组件清单后,用户即可选定需最少工作量即可完成修改并重用的组件。下列的运算法则解释重复使用的过程:开始在一个相配方法的组件库中搜寻归还满足配对要求的一组组件计算与每个组件相配的水平选择最佳组件为适应性修正挑选的组件 结束当检索组件的时候(包括在组件库中搜索,计算匹配水平),我们可用由Zaremski 和 Wing首次提出的签名匹配方法来对组件进行匹配:把从组件中抽取出的特征信息称为签名,检索时把用户的检索要求和组件的签名相匹配。签名匹配定义如下:签名匹配给定一个签名查询q,匹配谓词M,组件库C,经签名匹配处理返回满足匹配谓词条件的组件集合。适应性修正就是修正不与使用需求一致的经挑选的组件,比如原始码组件的修正,二进位组件接口的修正,组件的再包装等等。5. 基于建筑/组件重复使用技术的整合发展平台和开放式 CNC 系统的工作流程发展开放式数控系统的工作流程如图4所示。整个的流程包括两个有相互联系的过程:可以再度使用的 CNC 系统组件的发展和可再用组件的应用系统的构造。应用系统的即时能力能被由整合的发展平台所提供的 Cnc 视野软件检测。5.1. 可以再度使用 CNC 系统组件发展的过程第一, CNC 领域采用领域工程方法分析,而且 CNC 系统建筑被萃取。然后, CNC 系统的建筑将会被作为数据通信组件的例示。这一个过程将详细地定义数据通信组件的接口和它的内部运行控制运算法则。数据通信组件能被要求约束、文件、原始码、二进位的密码 等等来表达。数据通信组件的详细被定义的接口担任了主要的技术规格并产生其他的组件, 同时被文件、原始码和数据结构等来表达。在这个过程中形成的所有的建筑和组件被分类而且被储存在组件库中。系统常规管理和维护包括组件的疑问、划除、修正,购买, 创造新的组件。5.2.含有可以再度使用组件的数控应用系统的发展应用上述的 CNC 系统整合的发展平台去发展一个 CNC 应用系统的过程能被区分为二个阶段:第一个阶段是框架产生,也就是说,依照新的系统的要求最适当的系统构件被选择和被组件库支持的系统构件选择,而且数据通讯组件被吸取。如果需要,构件和对应的数据通信组件必须被修正。过程可见如下所示:NC域分析231组件提取新系统要求构件/组件库NC域分析新组件仓库储存新构件仓库储存组件提取构件提取分类,储存分类,储存储存用作为规格的数据通信组件的指导构件例示起关键作用的数据通信NC系统构架数据通信组件其他组件开发选择系统构件通信组件的获得构件适应性修正通信组件适应性修正其他组件的获得基于当前管理和维持的构件/构架(组件质疑、删除、修正、购买、创造新的组件等等)新组件仓库储存4其他组件适应性修正结合、装配、成形新系统1.重用组件的开发过程2.有重用组件的应用系统的开发过程3.框架产生阶段 4.结合装配阶段图4.开放式数控系统的结合开发平台和工作流程(1) 分析新的系统要求,获得关键字且用组件库的对应术语更换。(2) 根据从第一步骤获得的期限聚集,从组件库中搜寻和取回适当的构件。(3) 如果构件集中只有一种元素,就选择它,而且如果有不止一种元素,每种元素必须被评估, 并能获得最好的一个。(4) 如果从第二步骤获得的构件集是无效的,新的构件将会被产生,而且将加入组件库。(5) 依照术语集检索, 一笔数控系统的数据通信组件集就能被得到。(6) 如果数据通讯构件集中只有一种元素,就选择它,而且如果有不止一种元素,每种元素必须被评估, 并能获得最好的一个。(7) 如果从第五步骤获得的数据通信构件集是无效的,新的数据通信构件将会被产生,而且将加入组件库。(8) 依照适应性构件和组件被修正,而且新的被修正的构件和新的组件也将会被增加到构件/组件库。第二个阶段是整合和装配。 将所获得的通信组件的接口需求作为规格, 其他的功能组件能被检索而且可以被从构件/组件库中吸取。除此之外,一些组件可能被发展或者为如此的一个应用被购买。 在所有获得的组件被修正后,他们被整合和装配。最后,获得一个新的系统。这个过程可以表示如下:开始为每个接口提供所需的数据通信组件吸取从接口聚集中取回的术语取回与术语聚集一致的功能组件获得功能成份聚集如果那聚集是无效的发展或者购买新组件新的组件存入仓库另外评估功能聚集吸取唯一的功能元素结束如果修正挑选的组件以适应新要求结束整合,集合, 配置。 然后获得一个新的应用系统结束从上述的运算法则中,可以发现CNC应用系统的发展课程包括CNC组件的发展的一些工作。5.3. CNC应用系统的即时能力分析CNC系统的组件之间存在严格时间的关系。 一些模块一定定期地运行,当其他的模块一定“及时”运行的时候为其他的模块提供数据或者接受来自其他的模块的数据。运行序列在单一工作操作系统环境之下一定被预先定义,但是现代的CNC应用系统通常是一个多工作系统,它的即时能力被工作优先购买和同步控制确定。通常,一个 CNC 系统的组件被定义为一项工作。 举例来说,在窗口 2000 操作系统下面的一个简单的 CNC 系统能被分为位置控制工作、可设计的工作母机控制 (PMC) 工作、数据通信工作、插补工作、刀具补偿工作、G代码编译工作、 使用者接口 (UI) 等等的工作。 这些工作包括两方面:周期的工作和无周期的工作。像是位置控制和 PMC 这样的工作通常被设计如周期的工作。另一方面,根据回应时间的需求,工作能被分为即时的工作和非即时的工作,进一步说,即时的工作包括硬的即时和软的即时。一项难的即时工作时常有比较高的优先, 而且需要比较短运行时间。一件不能够被打断的工作能受到使用工作优先锁定的保护。一件非即时的工作能被即时者优先占有。在那上述的CNC 系统中,位置控制、插补和 PMC工作属于难的即时; 数据通信、刀具补偿和 G代码编译工作属于软的即时; 而且 UI工作能被看作非即时的。在开放式 CNC 系统的整合发展平台中,我们了解了在MS窗口下核心物体技术工作运行状态的监视功能,藉此检测一个 CNC 系统是否能达成即时的需求。这个软件叫做 “CncView”. 上述 CNC 系统的结果如图5所示。工作从上到下根据优先权排列,其 空转 表示 CNC 系统的所有工作没有运行,和图像同步的时间是毫秒。一项在运行状态下的工作用纯粹的水平线表示,优先锁定的工作周期用一条正方形的线表示,一件悬而未决的工作用跨线表示,而三角形标记表示工作给予了信号。数控系统使用一个附加的硬件定时器引起难的即时工作。空转编译通信刀具补偿插补PLC状态控制 图5. 使用 CncView 软件检测 CNC 系统的即时能力UI6. 结束语随着数控技术朝着开放性不断发展和组件技术的成熟,两者的结合成为当今数控系统发展的趋势。组件重用技术大大减少了开发人员的工作量,使得数控系统的开发周期缩短,效率提高,稳定性增强。应用领域工程方法分析 CNC 系统,本文首先提出数据通信是连接整个数控系统得关键,随后吸取来自数据通信的开放式数控系统的构件,最后例示对数据通信组件的构件。此外组件正在分类;表达、储藏和检索被深深地分析。基于这个基础上,开发出开放式数控系统的整合发展平台。了解了诸如产生且维持组件目录的信息,质疑情况的建筑等一些视觉功能。有刻面分类模态、相配的签字的检索,组件提取, 即时的能力监控等方面的组件储藏的功能目前受平台的支持。参考文献1 Paul Wright, Everybodys open-the view from academia: no compromise on plug-and play, Manufacturing Engineering 121 (1998) 8485.2 Jean V. Owen, Tomorrows machines in Paris, Manufacturing Engineering 123 (1999) 118129.3 Patrick Waurzyniak, Machine controls opening up, Manufacturing Engineering 129 (2002) 7180.4 Robert Hillaire, Whatever happened to open controls? A manufacturing research engineer looks at todays open controls and suggests new directions for controls makers, Manufacturing Engineering 124 (2000) 8089.5 Hafedh Mili, Fatma Mili, Aili Mili, Reusing software: issues and research directions, IEEE Transactions on Software Engineering 21 (6) (1995) 528562.6 D. Garlan,M. Shaw, An Introduction to Software Architecture: Advances in Software Engineering and Knowledge Engineering, World Scientific Publishing Company, Pittsburgh, 1993.7 P.A.V. Hall, Architecture-driven component reuse, Information and Software Technology 41 (1999) 963968.8 Yang Fuqing, Mei Hong, Software reuse and software component technology, Electronics Acta (P.R. China) 27 (1999) 6875.9 Gregory W. Hislop, Analyzing existing software for software reuse, Journal of Systems and Software 41 (1998) 3340.10 Alistair Sutcliffe, Domain analysis for software reuse, Journal of Systems and Software 50 (2000) 175199.11 Karma Sherif, Ajay Vinze, Domain engineering for developing software repositories: a case study, Decision Support System 33 (2002) 5569.12 G.L. Kovacs, S. Kopacsi, J. Nacsa et al., Application of software reuse and object-oriented methodologies for the modelling and control of manufacturing systems, Computers in Industry 39 (1999) 177189.13 Ruben Prieto-Diaz, Peter Freeman, Classifying software for reusability, IEEE Software 4 (1987) 616.14 A.M. Zaremski, J.M. Wing, Signature matching: a tool for using software libraries, ACM Transaction of Software Engineering and Methodology 4 (1995) 146170.15 A.M. Zaremski, J.M. Wing, Signature matching: a key to reuse, ACM Sigsoft Software Engineering Notes 18 (1993) 182190.16 J. Richter, Programming Applications for Microsoft Windows,Microsoft Press, Washington, 1999.17 W. Oney, Programming the Microsoft Windows Driver Model, second ed., Microsoft Press, Washington, 2002.19A research on open CNC system based onarchitecture/component software reuse technologyLi Bin*, Zhou Yun-fei, Tang Xiao-qiNational Research Center of NC System Engineering & Technology, Huazhong University of Science & Technology, 430074 Wuhan City, PR ChinaReceived 12 February 2003; received in revised form 25 October 2003; accepted 25 October 2003Available online 9 June 2004AbstractBy analyzing the current development situation of open computer numerical control (CNC) system and architecture/component software reuse technology, this paper researches on open CNC system based on this technology. Adopting domain engineering method, a CNC system is always organized with its data communication, which plays a role of key link. Furthermore, from which the reusable architecture of an open CNC system is extracted. Also the architecture is instanced to reusable data communication components, which differs from general architecture. The facet modal sorting, expression, storage and retrieval of CNC system components are introduced. Combined with all useful information as above, the integrated development platform of open CNC system is constructed. Supported by this platform, the workflow of developing open CNC systems includes two correlated courses: the development of reusable CNC components, and the construction of an application system with these reusable components. Furthermore, the real-time capability of a CNC application system on MS-Windows can be tested by this platform.Keywords: CNC; Open architecture; Component; Software reuse; Domain engineering1. IntroductionOwing to the double-quick development of hardware technology, the enhancement of computer numerical control (CNC) systems complexity, the increase of the compatible requests with third party software, the frequent job-hopping of developer, and the cut-throat competition among craft brothers, the CNC system manufacturers are compelled to do their best to continually improve their systems quality and shorten the periods of the products development. Hence, the open architecture is becoming the current trend of CNC technology, and its main goal is to build a uniform and recognizable system platform. Developed with the open architecture platform, the CNC application system would become more modular and flexible, thus users of this system will be allowed to choose function modules, even to integrate, modify, and expand systematic functions in order to meet different application demands.The up-to-date opinions on open CNC system can be concluded as follows 14:(1) An open CNC system is flexible in both hardware and software, so it does not only allow the hardware to change its basic configuration, but also allows the software to alter at all levels of control.(2) An open CNC system is provided with the plug-and-play compatibility in a real sense.(3) An open CNC system is standardized to let the third party develop new hardware and software that can meet its requirements.(4) An open CNC system has the capability of integration of other components at the level of parts with this standard, and can also share data among the components.(5) An open CNC system can cooperate with other systems at systematic level. In view of the above-mentioned causes, we take it as natural that establishing an open NC system model for the special NC domain may be a feasible method. On the other hand, the software reuse is in deep degree applied in the process of software development, especially in the same domain because a new system always has very intimate relation with the previous one 5. It is gradually convinced that the design and specification of the whole system architecture is more important than the selection of algorithm and data structure in company with the increasingly upgrading of software systems size and complexity. So the significance of software architecture is being recognized on the background. The architecture/component technology has been developing promptly among numerous software reuse technologies in recent years 6,7. Based on the above-mentioned viewpoints about open CNC and the software architecture/component reuse technology, the architecture of open CNC system and the integrated platform of developing CNC system are researched in this paper.2. Open CNC system based on architecture/component software reuse technology2.1. Software reuse and architecture/component technologySoftware architecture means the delineation of the overall structure design and the abstract specification of a system. It is a macroscopical description for software systems composition, architecture, and work mode. In short, the software architecture describes the components and the inner relation among these components in a system. The software development based on architecture diverts its emphasis from code lines to larger granularity architecture elements (for instance, components), as well as the holistic interlinkage structure among these elements. The development keynote is to construct reusable software architecture; it emphasizes the reusability of analyses and design instead of the restriction of code reuse.Component is a unit that is relatively independent in function. It can be identified clearly, and can be reused in a software system. It may be a class, a class tree, a frame, or a general module. Along with embedded comprehension to software reuse, the concept of components is no longer restricted to code components, but extended to demand, architecture, document, test plan, test cases and data, as well as other useful information to development activation. The software reuse based on architecture/component technology includes two correlative processes: The development of reusable components and the development of application system with reusable components. The functions of the software architecture/component technology in the process of development can be shown as Fig. 1. Firstly, special domain is analyzed with domain engineering method, and the software architecture of this special domain can be gained. Then the process of component development, sorting and storage can be guided with this architecture. When a new application system needs to be developed, some relevant components are searched and extracted from a domain component library and/or other general component libraries, following that the appropriate components will be selected and modified for adaptation, finally, these components will be assembled in a new application system.2.2. CNC system openness is the requirement for software reuse technology in a special domainThe first principle of open system technology is to apply interface standards in the process of system development and to use the realization according to interface standards in the meantime. This provides a stable foundation for the design decision of system development and the system evolution, also the guarantee for inter operation among systems (subsystems) at the same time 8. From 1980s, research projects on open NC system has been set out in the world one after another, some of which have great influence, such as OMAC of America, OSACA of Europe and OSEC of Japan. The OSACA realized data communication among task domains by the communication system, its system model is based on hierarchical structure, all data structures of each functional module of the application system and internal running mechanism based on these data structures of the module must be defined thoroughly, and it needs complicated configure system to establish and maintain the incompact topological structure of the application system.Now, the software reuse technology can ideally support the open architecture system, especially the components that are in accord with interface standards can be easily integrated to the system in plug and play method, which is a black box reuse. In this way, components can be developed independently according to interface standards.It is reputed that the potential way of realizing CNC system openness is software reuse based on architecture/component technology. The openness of CNC system is coincident with software reuse on three hands as follows:(1) On the base of the previous edition, joining new functions to produce a new CNC system edition in order to adapt some new requirements.(2) Modifying the parts associated with the running platform, to enable the software can run on another system platform.(3) Applying some software (or its components) of a CNC system to another CNC application system, evolving an old system to a new system with different functions and purposes.3. Analyzing and modeling of CNC systems architecture based on domain engineeringIt is very important to obtain a correct architecture for the system design. And the method of domain engineering 912 must be adopted to analyze the CNC system in order to get the correct system architecture. Domain means a suite of functional areas covered by the application systems with similar demands. Domain engineering includes three major stages: domain analysis, domain design, and domain realization. In the process of domain analyzing and modeling, the vital issue is to achieve the key link of an open CNC system.3.1. Acting the data communication as a key link to organize open CNC systemBy analyzing typical CNC systems with domain engineering method, we can discover that the processes and the threads of a CNC system can be organized with data communication that acts as key links of some functional components. The advantages of this kind of organization are shown as follows:(1) Owing to the developing direction of software integrated by components, a data communication module can be used as a skeleton to organize the system; this makes system organization easier than the former.(2) Acting data communication as the key link, the system is no longer a hierarchical structure. Every other module has an interface only to connect with the data communication module. The developers only need to pay attention to this interface without considering the organization mode of other modules.(3) It is sufficient to define the interface of data communication module in detail for one system. According to the interface, what the developers need to do is to develop individual module, in which there is no need to define the internal data structure and establish the internal running mechanism based on these data structures thoroughly.(4) The topology relationship of the whole system will be defined strictly if data communication of this system is ascertained. It ensures the inter-operability of software parts.We emphasize the autonomy of every module in the system. The so-called autonomy means that every module is an independent individual, which can ascertain its target and the target value independently, even make a decision, a plan, a action by itself to achieve the target, and can respond to any accident because its behavior is controllable. There is no functions call and memory share among autonomous modules. All information communication is carried out through the data communication module. Each module can only be on alternative state: running or sleeping. The module itself supervises the two states. The key linkdata communication modulehas the same characteristics too.The functional model of the CNC system that acts the data communication module as its key link is showed in Fig. 2. The functional module of data communication has several component interfaces. These interfaces can connect with other functional components, such as G-code interpreter component, tool compensation component and interpolation component etc. Inputting and outputting data of each component are realized by exchanging with the key link through its interface; the data communication module reads data from each interface and sends back autonomously.There are only two kinds of domanial behaviors based on the functional model: (1) sending/receiving data information and control information; (2) supporting activities, such as PLC programming, G-code file management and edit, parameter setting etc.3.2. Extracting systemic architecture from data communication moduleEmphasizing that the system function be realized by components and the components must be autonomous, we can analyze the architecture of CNC system by starting with open CNC systems key linkthe data communication module. The principle of components partition is to make the least coupling of function and the most independence among components, to make a great effort to let component function independent of its operational data stream. Components design should follow the universal technical standard in the field.As an example, the architecture of a CNC system based on MS Windows 2000 and a high performance motion control card will be analyzed in the following. The whole system is organized with the data communication module. The architecture describes the global system organization, the system control structure, the communication and its protocol among components, the components synchronization, the components function assignment, the components physical distribution, the components integration, the whole system retractility and so on.First of all, the relation between the domain and external elements will be analyzed, such as the operating environment and the data requirement. The variability will be evaluated too. The application inter-community and difference of the domain will be analyzed after the domain scope is ascertained, it includes the domain features, the domain knowledge information and the data requirement information that are requested to realize the application in the domain, the operation to data and control stream. On the basis of that, the follow-up works are identifying concurrent processes and common modules of domain-oriented, defining processes, distributing acquired feature, function and data object of these processes and modules, offering software solution for application in the domain, finally developing architecture model of the domain.The architecture of the open CNC system that is extracted is shown as Fig. 3. The CNC system software can be divided into two parts: the upper part that runs on computers CPU and the lower part that runs on the DSP of the high performance motion control card. It is a multi-task system of multiprocesses and multi-threads. The system components can be divided into four types: the device driver components, the basic components, the common components of CNC domain, and the special application components.The device driver programs of CNC system hardware are standardized to components. So the users can select and setup device driver components as operating other general components. The basic components are those ones that realize computer system common functions, such as internet-work communication component, file management component and singular hardware test component.Domain commonness components are those ones that realize domain common functions of CNC system. These components are the most important achievements acquired by domain engineering analysis to CNC system. Usually, it includes data communication component, human-machine interface component, task scheduler component, G-code interpretation component, interpolation component, tool compensation component, motion control component, diagnosis component, PLC procedure interpretation and compilation component, PLC execution component, parameter setting component, database operation component, real-time error compensation component and so on.The special application components are those developed for some special application, such as the calculation component of helical bevel gear.3.3. Instantiating the architecture of open CNC system to data communication componentsCurrently, there are four types of describing and expressing software architecture: (1) figure expression drawing with rectangles and directed line segments; (2) path language in module that links traditional programming language module; (3) special software architecture description language (SADL) combining object-oriented technology with the development experience of traditional program design language; (4) system description language based on components.The first type is often adopted, but the approach of figure + letter annotation is always random and not formalized, namely not strict. The shortcoming of the other types is not intuitionistic. We instantiate each kind of architecture to relevant system data communication component(s), which result that software architecture become no more conceptual model of abstract meaning, but program code which can be reused cosmically by other components. Owing to the difference of development environments, each abstract system architecture corresponds to one data communication component at least, and each data communication component corresponds to only a unique system abstract architecture.4. The classification and retrieval of the CNC system components4.1. The classification of the CNC system components4.1.1. Facet classification model of componentsComponent classification is the activity of constructing and maintaining catalog information of components, and component retrieval methodology depends on the component expression and classification, therefore component classification will facilitate management, storage, retrieval and comprehension of components. Therere a great deal classification modes, and it is facet classification that is applied widely 13,14.Facet classification mode is composed of a set of facets describing the essential characteristics of components. Each facet classifies components in the component library by its different aspects. The socalled facet is a term space made up of a set of basic terminology (namely keyword). Each component can be delineated by one or more terms with each facet (facet term is a determinate gather), and each facet reflects a method to classify components in the library. Wherefore, users are able to intuitively designate the components to be retrieved from different views. As a result, this process will also facilitate users to understand components.Facet classification has characteristics as follows according to combinatorics:(1) A facet must express all components in the component library fully and definitely, namely it is each component that can be classified by the facet.(2) Each facet is correlated with a term space. Any two term spaces are orthogonal, which means changes of terms in one facet will not influence the term space in any other facet.(3) The term space of a facet is a finite and indefinite space. Terms can be added or deleted dynamically.(4) All facets of each component must be predefined; it is not allowed that there exist undefined facets when classifying components. But when querying, users can query by random number of facets.(5) When a component library manager classifies components, he should aim at each facet to choose proper (one or more) terms from the term space, so as to finish components encapsulation work.(6) Terms in a term space present a dendriform hierarchical structure according to general-special relation. Each term is accompanied with indefinite number of synonyms.4.1.2. Classification of the CNC system components with facet mode According to the above-mentioned facet classification method, a facet classification for CNC system components is proposed, and can be expressed by BNF as follows: (component identification, component functionality, component application environment, component realization, component hierarchy, component information, component edition relation).(1) Component identification: Component identification uniquely marks a CNC component, and mainly contains following attributes: (i) Component ID number: distinguishing a CNC component from others. (ii) Component name: CNC components of the same type could not own the same name, but those of different type can own the same name. (iii) Entity type of components: Identifying the entity type of a component, such as source code file, object file, library file and so on; (iv) The version number: The relevant version number of a component in the component evolution series. (v) Applied machine tool style: Including the lathe, milling machine and so on.(2) Component functionality: The component functionality is a gather of software functions offered by the component in its original and possible software system. Any component in the component library must offer one or more functions. The terms of function facet are mostly composed of the component function keywords offered by the components fabricator/provider. For the accordance of the terms, the function terms should try to incarnate the component usages from a higher abstract level.According to the functional partition, CNC system components can be divided into G-code interpreter component, tool compensation component, velocity pretreatment component, interpolation component, position control component, human-computer interface component, diagnosis component and so on. Thus, function can be taken as a facet. As for interpolation components, according to different algorithms, they can adopt linear interpolation, circular interpolation, parabolic interpolation to meet high precision requirements, ellipse interpolation and so on. Different components can adopt one or more algorithms.(3) Component application environment: Component application environment is the hardware and software platform that must be offered when using (includes comprehending/assembling/modifying) components. Only when depending on a certain application environment, can each component in the component library be reused. Even the universal components of source code level also have to depend on special compiling system. The application environment mostly contains following attributes: (i) Component hardware environment. (ii) Component operating system environment. (iii) Database platform. (iv) Network environment. (v) Compiling and linking environment.(4) Component realization: Component realization describes some information related to realization, and mostly contains following attributes: (i) Development language/software tool. (ii) Component parameter type: Describing whether the parametric style of CNC components is optional, the interface parameters and the quote methodology in detail. (iii) Context environment: Namely the context environment on program level that must be offered by system if the component is assembled. (iv) Form: The composition of the components and their correlation, such as class, class tree, frame, module. (v) Representation: It is the form used to describe component content, such as figure, text, Chinese, English.(5) Component hierarchy: Component hierarchy is an abstract level of component that relatives to the software development process. Because relative simpleness of the terms of hierarchy facet, the component library manager usually enumerates them. The current hierarchy terms include: (i) analysis; (ii) design; (iii) coding; (iv) testing.(6) Component information: Component information depicts some specific historical information of CNC components, such as when they are created, and this information mostly contains following attributes: (i) Information about component developers and developing department. (ii) Component production date. (iii) Component warehousing date. (iv) Component size. (v) Component style, including device driver component, basic component, domain commonness component, special application component and so on.(7) Component edition relation: The edition relation of the components shows the relation among a serial of components that have similar functions, and mostly contains following attributes: (i) Correlate edition. (ii) Pioneer edition. The aforesaid facets are isolated from one another completely, so they fully embody component characteristics correlative to reuse, and are adaptable to the development of the component library of open CNC system.Attributes contained in each facet are their first-level term; the relation between terms and their junior terms is a general-special tree type. For instance, term of development language in component realization facet is the first-level term (general), whereas development language could be C, C+, Java, Fortran, ASM, etc, which are the further explanation to the term development language (specific).Toward such a subject: Interpolation component developed by C+ language adopting parabolic interpolation algorithm. By analyzing, we can extract the element in the component function facet: interpolation parabola algorithm; and the element in the component realization facet: developing language C+.4.2. Component retrievalIn the course of components reuse, firstly we should extract a set of keywords from the specification of given required functions, and then search candidate components that meet the requirements from existing component gather according to these keywords. If theres only a component meets all the requirements was found, then choose it. But usually there are more than one candidate components, and each candidate only partly meet users requirements. In this case, we should do some evaluations, such as to what degree the candidate component meet users requirements, the workload to modify it and so on. According to the evaluation, we can list candidate components, and users can select the component that needs least workload to complete the modification and reuse it.The following algorithm explained the course of reuse:BeginSearch in the component library by a matching methodReturn a set of components which satisfies the match predicateCompute the degree of match for each componentSelect the best componentModify the selected component for adaptabilityEndSignature matching method that presented by Zaremski and Wing 15 firstly can be used to match components when retrieving components (including searching in component library, matching degree computing): Attributive information extracted from components is called signature, when retrieving, the users match their retrieval requirements with componentssignatures.Signature match is defined as follows:Given a signature query q, match predication M, component library C, by signature match, return component gather c that meet matching predication conditions.Adaptability modification is to modify the selected component that not accord with the using requirement, for example the modification of source code component, the interface modification of binary component, the re-packaging of component and so on.5. Integrated development platform and workflow of open CNC system based on architecture/component reuse technologyThe workflow of developing open CNC systems is shown as Fig. 4. The whole flow includes two correlated courses: development of reusable CNC system components, and construction of an application system with the reusable components. The real-time capability of an application system can be monitored by the CncView software provided by the integrated development platform.5.1. The course of reusable CNC system components DevelopmentFirstly, CNC domain is analyzed with domain engineering method, and CNC system architecture is extracted. Then, the CNC systems architecture will be instantiated as the data communication component. This process is to define the interface of the data communication component and its interior running control algorithm in detail. The data communication component can be expressed by demand stipulation, document, source code, binary code, etc.Detailed defined interface of data communication component can acted as the major technology speci-fication to create other components, at the same time expressed by document, source code and data structure,etc.All the architectures and components formed in the course are sorted and stored in an architecture/component library.System routine management and maintenance includes components query, deletion, modification, purchase, creating new one and so on.5.2. Development of CNC application system with reusable componentsThe course that applies the aforementioned CNC system integrated development platform to develop a CNC application system can be divided into two stages:The first stage is frame generating, that is to say, the most suitable system architecture is selected according to new systems demand and system architecture supported by the architecture/component library, and the data communication component is extracted. If required, architecture and corresponding data communication components have to be modified. The process is shown as follows:(1) Analyzing the new system demands, obtaining the keywords and replacing the keywords with corresponding terms of the architecture/component library.(2) According to the gather of terms obtained by step 1, search and retrieve the suitable architecture gather from the architecture/component library.(3) If the architecture gather has only one element, it is chosen, and if has more than one element, every element has to be evaluated, and the best one can be obtained.(4) If the architecture gather obtained by step 2 is null, a new architecture will be created, and will be joined into the architecture/component library.(5) Retrieving according to the terms gather, a data communicate component gather of CNC system can be got.(6) If the data communicate component gather has only one element, it is chosen, and if has more than one element, every element has to be evaluated, and the best one can be obtained.(7) If the data communicate component gather obtained by step 5 is null, a new data communicate component will be created or purchased, and will be joined into the architecture/component library.(8) The architecture and components are modified according to the adaptability, and a new modified architecture and new components will be added to architecture/component library too.The second stage is integration and assembly. Taking the obtained communicate components interface requirement as the specification, other function components could be retrieved and extracted from the architecture/component library. In addition, some components may be developed or purchased for such an application. After all of obtained components are modified, they are integrated and assembled. Finally, a new system is obtained. The process can be expressed as follows:BeginFor each interface required by the data communicate componentExtract retrieval term gather from the interfaceRetrieve function components according to the term gatherObtain the function components gatherIf the gather is nullDevelop or purchase new componentNew component is warehousedElseEvaluate the function gatherExtract the only function elementEndifModify the selected components adapted to new requirementEnd forIntegrate, assemble, configure. Then obtain a new application systemEndFrom the above algorithm, it could be found that the development course of CNC application system involves some work of CNC components development.5.3. The real-time capability analysis of CNC application systemThere are strict time relationships among CNC systems modules. Some modules must execute periodically, while other modules must run in time to provide data for other modules or receive data from other modules. The executing sequence must be defined in advance under single task OS environment, but modern CNC application system is a multi-task system generally, its real-time capability is ensured by task priority preemption and synchronization control.Generally, a module of CNC system is defined as a task. For example, a simple CNC system under Windows 2000 OS can be divided into position control task, programmable machine tool control (PMC) task, data communication task, interpolation task, tool compensate task, G code interpret task, user interface (UI) task and so on. These tasks include two types: periodic task and aperiodic task. The tasks such as the position control and the PMC are generally designed as periodic task. On the other hand, according with the requirement of response time, the tasks ca
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。