1、1STEP-NC 译码器及其关键技术 (摘要:为了实现与 STEP 兼容的数控数据接口(the STandard for the Exchange of Product model data compliant Numerical Control data interface,STEP-NC)在数控系统中的应用,开发了 STEP-NC 译码器。首先介绍了译码器的工作原理,将译码器按照逻辑关系分为 6个功能模块,阐述了各个模块的功能和实现方法。详细论述了 STEP-NC 译码中的 3 项关键技术:类库设计、刀轨规划参数读取方法以及 STEP-NC 坐标系。最后,结合一个程序实例,利用所开发的 S
2、TEP-NC 译码器规划出该程序实例的完整刀具轨迹,并通过 STEP-NC 铣削仿真系统对刀具轨迹及零件模型进行切削仿真,仿真结果表明:所建立的译码器是正确可行的。关键词:与 STEP 兼容的数控数据接口;译码器;类库;刀轨规划;坐标系0 引言当今,大多数计算机数控(Computer Numerical Control ,CNC)机床都采用ISO6983(G”结束。该模块的功能是建立一个 vector型变量,将所输入的 STEP-NC 程序的每个程序行以“#”开头,以“; ”为间隔符顺序读入 vector 中。全部程序行读取完毕后, vector 中的每个元素均代表 STEP-NC程序的一个程
3、序行。1.2 信息提取模块信息提取模块的功能是将初始化模块得到的所有程序行按统一结构进行分解整理。由于每个程序行均代表一个实体,而每个实体都具有相同的格式,即包括实体 ID、实体名称和实体属性列表三个部分,因此在该模块中设计一个结构对程序行进行分解整理,该结构如下所示:typedef struct string id; / 程序行号,对应实体IDstring name; / 程序行名,对应实体名vector attributes; / 程序行属性列表,对应实体属性列表 PrgLine; / 程序行结构信息提取模块运行时,依次读取每个程序行,对程序行进行扫描分析,依次识别出三个组成部分:ID、名
4、称和属性列表,然后将其存入如上数据结构的对应成员变量中,形成一个程序行结构实体。再建立一个 vector 型变量,将所有程序行结构实体顺序存入 vector中。1.3 实体识别模块实体识别模块的对象是程序行结构实体,目的是按照 STEP-NC 的规定和实体名称将各个程序行结构实体进行识别,加以区分,并对实体的属性进行设置。实体识别具有严格的逻辑顺序,是一个自上而下,层层细化的过程 6。因此在识别过程中,应严格按照逻辑顺序一次识别出所有实体,以保证程序要求的加工顺序和实体数据存储的逻辑性。STEP-NC 实体识别的逻辑顺序如图 2 所示。3工 程 主 工 作 计 划 加 工 工 步加 工 工 步
5、 制 造 特 征 加 工 操 作ID工 件特 征 方 位 深 度 加 工 操 作 加 工 操 作 工 件刀 具 工 艺 机 床 功 能 进 退 刀 策 略加 工 策 略 实 体属 性图 2 STEP-NC 实体识别的逻辑顺序1.4 类库建立模块类库建立模块的功能是将实体识别模块中识别出的所有实体映射成 C+类,以 C+类库的形式表示 STEP-NC 数据模型。在具体实现过程中,采用以下方法:忽略实体 ID;将该实体名直接映射为 C+类名;实体属性映射为类的成员变量或类的成员函数,当属性为另一个实体时,将该属性映射为一个新类。1.5 特征实例化模块特征实例化模块的功能就是根据已建立的 STEP-
6、NC 类库识别出一个程序中所包含的特征,并对特征的参数进行实例化。通过特征实例化模块,数控系统便知道程序执行之后最终的工件形状,亦即知道自己要“做什么” 。1.6 刀轨规划模块STEP-NC 程序一般没有给出明确的刀具轨迹,也没有直接控制刀具运动的指令,因此刀轨规划模块的任务是根据 STEP-NC 程序中给出的工步、特征和操作等信息规划出在加工过程中的刀具轨迹,是译码器中最重要的核心功能模块。刀轨规划模块的功能主要分为以下几个部分:(1)将主工作计划中的每个工步的刀轨规划分为两个部分:加工轨迹规划和进抬刀轨迹规划,根据具体的制造特征、加工策略和刀具等信息规划加工轨迹,根据进退刀策略等信息规划进
7、抬刀轨迹;(2)规划相邻两工步之间的连接刀轨;(3)规划起刀点和第一工步的过渡路径以及最后工步和刀具原点的过渡路径;(4)严格按照工步的顺序,将规划好的各个刀轨进行排列,存入刀轨数据库。2 译码关键技术STEP-NC 类库设计STEP-NC 是一个体系庞大的国际标准,如果按照模型结构建立起严格的一一对应关系,将涉及到非常复杂的引用和参照联系,不但工作量大、效率不高,而且很容易在错综复杂的引用关系中发生错误。因此系统选取了 STEP-NC 中比较常用的、有代表性的特征及其常用操作建立相应的类库和数据结构,保证系统的正常工作。同时,对一些复杂实体进行抽象和简化,提取其中的主要成员,最终达到简化类库
8、的体系结构,减少类库内容和内存占用,提高程序执行效率。为了达到上述目的,实际类库建立过程中主要采用了以下几个原则:(1)简化原则 STEP-NC数据模型中有许多复杂的数据和实体最终可以归结为简单数据或是数据结构。因此在映射过程中,可以用简单的数据类型来代替这些具有复杂关系的数据和实体。通过简化数据类型,首先有效地减少了C+ 类库中类节点的个数,使类库的层次关系简单明晰。其次,增加了译码的运行效率,减少了内存占用。4(2)忽略原则 有些实体或实体属性与译码过程的关系并不紧密,甚至没有起到作用,或是在目前的条件下根本得不到应用,或是只是为了描述特殊情况才会定义,或是属于可选属性,一般情况下不会应用
9、。在这些情况下,就没有必要采用一一对应的类库映射,完全可以将其忽略不进行映射,或者采用其它的简单抽象方法实现译码。最典型的实体是刀具实体。在 STEP-NC 中即使对一个简单的球头刀进行描述,也需要十几个参数。但是译码模块的主要功能是对刀具中心进行路径规划,因此与此过程相关的信息主要有两个:刀具类型和刀具直径,其余的信息则关系不大或是为以后的智能化数控系统提供信息。因此设计刀具类时可以应用忽略原则,只保留这两个信息,而去掉其余的信息。如果需要增加刀具新的属性信息,例如齿数,由于采用面向对象的设计,可以增加刀具类的属性成员,而其他类不用重新设计。(3)特征核心原则 STEP-NC 的本质是面向制
10、造特征对象,程序的结构都是围绕制造特征建立的。因此在 C+类库模型规划过程中,将特征类作为类库模型的核心类。制造特征的层次结构基本保持了在 STEP-NC 数据模型中的完整结构而没有进行简化处理,而其他的实体则在一定程度上都进行了简化和抽象处理。为了体现这个原则,在加工类库模型的构建过程中,将工步的顺序转化为特征的路径规划顺序,同时将工步包含的操作信息作为特征类的属性。这样特征类就包括了位置与几何信息、切削参数、刀具、进退刀及加工策略等信息,完全能够进行路径规划。总而言之,特征类作为整个 C+类库模型的主线类,其他的类作为特征类的辅助类库。这样便于系统的扩展,可以根据实际需要,不断添加新的加工
11、特征类,同时路径规划在特征内完成,具有更高的效率。刀轨规划参数读取方法工程是一个 STEP-NC 程序的入口,程序的执行由这里开始,它有两个重要的属性:主工作计划和从属的工件。一个 STEP-NC 程序中可以包含多个工作计划,其中主工作计划是程序中最顶层的工作计划。一个工作计划中最重要的属性是 its_element(所包含的元素) ,它是一个可执行结构的列表,指出本 STEP-NC 程序中所要执行的内容。可执行结构包括三种子类型:工步、NC功能和程序结构。值得注意的是,工作计划的父类型是程序结构,程序结构又是可执行结构的子类型,而工作计划的属性中又包含可执行结构,因此这是一个回归定义,一个工
12、作计划不能包含自己本身。工作计划中还有一个重要的属性:its_setup (安装) ,这个属性定义了工件的安装位置,确定了安装坐标系,同时确定了该工作计划内的全局安全面。工步是可执行结构中最常用的子类型,它是 STEP-NC 程序的基本结构单元,既可以是快进或探通等独立的操作,也可以是与铣削、车削或钻削等相关的加工操作。工步中应用最多也是最重要的是加工工步,它描述了工件指定区域内的加工过程。与其它工步相反的是,加工工步不能独立于特征存在,它指定了制造特征以及在此特征上所进行的操作 7。刀轨基本信息读取顺序如图 3 所示。 工 程 确 定 主 工 作 计 划主 工 作 计 划 确 定 可 执 行
13、 结 构 的 顺 序 , 确 定全 局 安 全 面工 步 确 定 工 步 安 全 面加 工 工 步 确 定 加 工 工 步 所 对应 的 特 征 和 操 作特 征操 作 确 定 加 工 对 象 确 定 加 工 参 数5图 3 刀轨规划参数读取顺序如图 3 所示,在工作计划和工步中获得的参数仅为可执行结构的顺序和安全面等信息,规划刀轨还需要从特征和操作两个实体中获得更详细的信息。由于制造特征和操作实体等STEP-NC 实体大多都有自己的父类型和子类型,所以 STEP-NC 程序中一个实体的属性按照从最高级别的父类型开始最后到本身的顺序逐次排列。以一个平面特征实体为例,在其程序行中表示为:“#16
14、=PLANAR_FACE(PLANAR_FACE1,#4,(#19),#77, #63, #24, #25,$,() ;”其中“PLANAR_FACE1,#4,(#19)”为最高级别的实体类型“制造特征”所具有的 3 个属性,分别用来表示该平面特征的 ID、所属工件和加工该特征所用的操作;第 4 个属性“#77”为制造特征的子类型“2.5D 制造特征”所具有的属性,表示该平面特征的特征方位;“#63”是 2.5D 制造特征的子类型 “加工特征”所具有的属性,表示该平面特征的深度;最后 4 个属性为平面特征本身所具有的属性,用来表示平面特征本身具体的属性,如线性轮廓、面边界和凸台信息等。以加工特
15、征为例,特征参数和操作参数的读取顺序如图 4 所示;以铣削类型操作为例,操作参数的读取顺序如图 5 所示。制 造 特 征2.5轴 制 造 特 征 型 腔球 冠 加 工 特 征螺 纹柱 顶 凸 台孔轮 廓刀 具 轨 迹 平 面台 阶 1、 ID2、 所 属 工 件 3、 所 用 操 作 5、 深 度 4、 特 征 方 位具 体 特 征的 具 体 参数 , 如 平面 的 线 性轮 廓 、 面边 界 和 是否 有 凸 台等 。操 作加 工 操 作铣 削 加 工 操 作铣 削 类 型 操 作2.5D铣 削 操 作平 面 铣 削 操 作侧 面 铣 削 操 作底 &侧 铣 削 操 作1、 刀 轨2、 刀
16、具 方 向3、 ID4、 退 刀 面5、 开 始 点6、 所 用 刀 具7、 所 用 工 艺8、 机 床 参 数 9、 过 切 长 度 10、 进 刀 策 略、 退 刀 策 略12、 .5D铣 削 策 略具 体 操 作 的具 体 参 数 ,如 切 削 深度 、 加 工 余量 等自 有 曲 面 铣 削 操 作 12、 自 由 曲 面 铣 削 策 略图 4 特征参数读取顺序 图 5 操作参数读取顺序STEP-NC 坐标系在对 STEP-NC 程序进行译码过程中,会涉及到的多个不同层次的坐标系,本文将这些坐标系分为两类:固定坐标系和可变坐标系。固定坐标系包括机床坐标系(Machine Coordin
17、ate System,MCS ) 、安装坐标系(Setup Coordinate System,SCS) 、工件坐标系(Workpiece Coordinate System,WCS ) 、特征坐标系(Feature Coordinate System,FCS)和路径坐标系(Path Coordinate System,PCS ) 。这类坐标系一旦确定之后,在加工过程中就不会发生变化。同时又因为这类坐标系在 STEP-NC 程序中有明确的语句来指定,所以又称为显示坐标系。可变坐标系包括刀具坐标系(Tool Coordinate System,TCS )和局部坐标系(Local Coordina
18、te System,LCS ) 。一般应用在五轴加工过程中,分别表示在刀位点(Cutter Location Point,CL 点)和刀触点( Cutter Contacting Point,CC 点)所建立的坐标系,主要用来确定在五轴加工过程中刀轴的方向,在加工过程中随刀具的移动而不断改变。又因6TCS 和 LCS 在 STEP-NC 程序中没有明确的语句来指定,因此又称为隐式坐标系。本文若无特殊说明,所提到的 STEP-NC 坐标系均为固定坐标系。STEP-NC 坐标系层次结构和参照关系分别如图 6 和图 7 所示。 机 床 坐 标 系安 装 坐 标 系 安 装 坐 标 系安 装 坐 标
19、系工 件 坐 标 系 工 件 坐 标 系工 件 坐 标 系特 征 坐 标 系 特 征 坐 标 系特 征 坐 标 系 特 征 坐 标 系路 径 坐 标 系 刀 具 坐 标 系 局 部 坐 标 系固 定 坐 标 系 可 变 坐 标 系图 6 STEP-NC 坐标系层次结构机 床 坐 标 系 安 装 坐 标 系 工 件 坐 标 系 特 征 坐 标 系 特 征坐 标 系 路 径坐 标 系its_orign( 安 装 ) its_orign( 工 件 位 置 ) featur_placemnt( 特 征 偏 移 ) placemnt( 偏 移 )图 7 STEP-NC 坐标系参照关系由于 STEP-NC
20、 坐标系具有多个层次,而每个层次下都有相应的参数定义,亦即 STEP-NC 中各个参数的定义参照不同的坐标系。而在刀轨规划和实际加工中,需要将所有参数的坐标值统一转化为参照最高层次坐标系(MCS)中的坐标。因此在进行刀轨规划时,需要将 STEP-NC 中的坐标系进行三次或四次的转换,才能正确的表示刀具路径,也就是(1)从 PCS(如果存在)到 FCS 的转换;(2)从 FCS 到 WCS 的转换;(3)从 WCS到 SCS 的转换;(4)从 SCS 到 MCS 的转换3 仿真验证为了验证所开发的STEP-NC译码器的正确性,本文基于Visual C+和OpenGL建立了STEP-NC铣削仿真系
21、统,将所开发的译码器以动态链接库(Dynamic Link Library,DLL )的形式移植到该系统中。在仿真试验中,选取包含5个典型的制造特征(平面特征、型腔特征、槽特征、圆孔的复制特征和Bezier曲面特征)的STEP-NC程序作为输入对象。这些特征组成一个“CIMS”品牌的方形钟表的示意形状,时间指向九点三十分。STEP-NC铣削仿真系统的仿真结果如图8所示。7a) 完整的刀轨 b)工件的三维实体模型图 8 STEP-NC 铣削仿真系统的仿真结果4 结论本文按照STEP-NC面向加工对象的特点及特定的文件结构,开发了模块化的STEP-NC译码器,并以DLL的形式移植到所建立的STEP
22、-NC铣削仿真系统中;仿真试验结果表明:所开发的STEP-NC译码器能够读取STEP-NC程序、提取相关的信息并正确规划出完整的刀具轨迹,是正确可行的;所提出的STEP-NC译码方法对于STEP-NC在数控系统中的应用具有一定的参考价值。参考文献:1 SUH S H, CHEON S U. A Framework for an Intelligent CNC and Data Model J. Int J Adv Manuf Technol, 2002,19(10):727-7352 SUH S H, LEE B E, CHUNG D H, et al. Architecture and im
23、plementation of a shop-floor programming system for STEP-compliant CNCJ. Computer-Aided Design, 2003, 35(12): 1069-1083.3 XU X W, HE Q. Striving for a total integration of CAD, CAPP, CAM and CNCJ. Robotics and Computer-Integrated Manufacturing,2004,20(2):101-109.4 CANG Gonglin, Gui Guisheng, LV Kun.
24、 XML implementation of STEP-NC data model. Computer integrated manufacturing systems,2006,12(3):470-475(in Chinese). 仓公林,桂贵生,吕堃. STEP-NC的可扩展标记语言实现方法研究.计算机集成制造系统,2006,12(3):470-4755 HARDWICK M, LOFFREDO D. STEP into NC. Manufacturing Engineering. 2001, 126(1): 38-50.6 SUH S H, CHO J H, HONG H D. On t
25、he architecture of intelligent STEP-compliant CNCJ, Int J Comput Integrated Manuf, 2002,15(20):168-177.7 ISO14649/FDIS. Data Model for Computerized Numerical Controllers S.2001.Code translator of STEP-NC and its key technologiesAbstract: For the application of STEP-NC(the STandard for the Exchange o
26、f Product model data compliant Numerical Control data interface,STEP-NC) in NC system, an STEP-NC code translator is exploited. Firstly, introduces the operating principle of the STEP-NC code translator. According to inner logical relation, the code translator is composed by six functional modules,
27、function and realizing method of every module is expatiated. The three key technologies of code translation that includes design of class library, reading method of parameters in toolpath planning and STEP-NC coordinate system is disserted on. At last, exampled with a program, planning the whole too
28、lpath of the program by the exploited STEP-NC code translator. A cutting simulation is 8made to the toolpath and the workpiece model by STEP-NC milling machining simulation system. The result proves the feasibility of the STEP-NC code translator.Key words: STEP-NC;code translator ;class library ;toolpath planning;coordinate system