背景技术
现有不同厂商的数控加工设备尽管都采用ISO6983标准的代码作为数控程序格式,但在很多编程细节上仍然不尽相同。也就是说适用于某一数控***的数控加工程序代码并不一定能完全适用于另一种数控***,各自的数控程序必须使用自己***专用的解释器才能运行。为了解决不同***数控代码共享的问题,目前采用的基本技术有:
1、由数控代码反求三维模型重新生成新的数控程序
主要技术:
根据已有的加工代码,利用现有的三维造型软件,可以采用反求工程的手段,对已有的数控加工代码进行反求,以重构工件原来的三维实体模型,再由CAM模块生成新的类型的数控***的加工代码,实现不同数控***加工程序之间的转换。
缺点:
(1)存在无法转换的现象。现有的三维造型软件还不能实现现有所有数控加工代码100%的跨平台操作和无缝集成。
(2)这种方法经常会造成重构的三维模型失真,特别是现有的基于ISO6983标准的代码是基于加工过程和机床动作的,缺乏对几何元素拓扑关系的准确描述,因此会产生较大的转换误差。此外,基于STEP或IGES标准的转换接口不能完全兼容,也会产生转换误差。尤其是对于复杂的曲面模型的加工,很难做到完整的转换。
(3)保密性差。因为通过恢复三维实体模型,产品的绝大部分的信息都将暴露出来。
(4)对操作人员的要求高。现场的操作人员,不仅要精通数控加工过程,而且,还要精通主流三维实体建模软件的使用。
2、通用数控代码编译器
主要技术:
按编译器使用范围和处理对象的不同可以分为三类:专用NC代码编译器、通用代码编译器以及介于专用与通用之间的NC代码编译器。它们的优缺点如表1所示。
表1编译器的分类与比较
缺点:
(1)所谓通用性都是针对某种国际标准或者从编译器的实现手段上来说的,并不是真正的“通用”,难免会造成一些相应机床特有信息的丢失。
(2)对数控代码中所包含的信息和知识缺乏有效、统一的表示方式。
(3)通用数控代码编译器大多牵涉到向低级计算机语言转换的问题,例如编译成汇编语言,势必对硬件有所考虑,这更增加了设计***的难度。
(4)缺乏对最新的STEP和STEP-NC标准的数控解释器的考虑,人为造成了另一种形式的专用编译器。
3、STEP-NC标准的数控程序解释器
主要技术:
STEP-NC是一个新的NC编程数据接口国际标准(ISO14649),是STEP在数控领域的扩展,目的是取代现在使用的数控编程接口标准(即ISO6983)。STEP-NC为数控***定义了一个独立的数据输入标准。以此标准实现的数控程序解释器,可根据该标准.CAM路径规划***、CAD/CAM***等能够产生独立的数控控制指令,并把这些指令送到数控机床去加工相应的零件,从而避免了不同***数控代码功能的不同而不能共享数控代码的问题。
缺点:
(1)从上文中可以看出,作为一个标准,STFP-NC还远未完善,基于该标准的数控解释器仍然处在探索阶段,因此,在可见未来的很长一段时间内,主流的数控程序代码仍然是基于ISO6983标准的。
(2)ISO14649与AP238分别是STEP-NC的应用参考模型(ARM)和应用解释模型(AIM),它们的开发工作分别由ISOTC184/SC4和ISOTC184/SC1负责。作为应用参考模型,ISO14649使用EXPRESS语言定义了数控加工领域的信息需求。AP238将ISO14649所定义的信息需求映射成符合STEP标准要求的集成资源,由于这些集成资源具有通用性,所以其它应用协议也可以使用它们。因此,AP238和ISO14649都可作为数控编程接口,目前的研究以前者作为数控编程接口标准的为多。究竟以哪个标准作为编程接口,目前仍有争论。因此,在数控代码转换时应该考虑与STEP-NC之间接口的问题。
发明内容
本发明的目的是提供一种实现不同***的ISO6983标准数控代码的转换,用于不同***数控程序的共享的数控代码的转换方法。
本发明采用如下技术方案:
一种数控代码的转换方法,由机床基本性质的共有特征,建立机床基本性质复合元RMachine_Property,见公式1,
包括以下步骤:
步骤1:获取RMachine_Property中“加工方法”的特征值,判断与源***加工方法相同的类型的机床;
步骤2:获取RMachine_Property中“坐标系”的特征值,判断与源***的坐标系相同的类型的机床;
步骤3:获取RMachine_Property中“轴数和联轴情况”的特征值,计算式(3)、(4)的值,运用式(5)的进行轴和联轴情况的可转换判断;
步骤4:将式(5)的值代入到式(6)中,进行机床类型最优选择;
步骤5:由式(2)获取数控程序中的一个数控代码功能的复合元,通过式(7)进行功能和程序格式相似性判断;
步骤6:由式(8)完成代码功能和格式的最优选择;
步骤7:由式(9)的值进行代码功能的差异性判断,由特征量值的变换方法和功能的分解与组合方法调用核问题解来解决这个差异性;
步骤8:由STEP标准的编码生成算法和由STEP中性文件生成ISO6983标准数控代码的算法实现代码转换;
步骤9:返回到步骤5;
步骤10:代码转换结束;
其中:
其中,符号“^”表示“与”运算,X为机床基本性质复合元中轴和联轴情况值的物元;当KC(x)>0时,代码转换可以进行;当KC(x)<0时,代码转换则不可行;
wp=min(w1,w2,w3,...)(6)
Qi(A,B)=max(Q1(A,B),Q2(A,B),…,Qn(A,B)(8)
本发明的有益效果为,(1)首次提出了直接将源数控代码转换成客户采用的制造***所需要的目标代码以化解制造资源冲突的方案。该方案仅需通过***应用层即可解决代码资源共享的问题,提高了网络化制造环境下的快速敏捷性和资源共享度。
在以往的研究中,代码转换往往被翻译成汇编语言的形式,需要对***的硬件问题作较多的考虑,从某种程度上来讲,人为造成了一种新形式的代码专用编译器,这是与资源共享时所必须遵循的“通”原则相违背的。
(2)提出一个统一、完整的信息描述模型(即RMachine_Property——机床基本性质复合元、RFunction——代码功能复合元、RCode_Format——程序格式复合元、RTool_Path——刀具轨迹物元的集合)。该模型能够统一地、全面地描述不同***数控代码的信息和知识,且能够动态地分析不同***之间代码的差异性。
在前人的研究中,对数控代码所包含信息和知识描述缺乏统一模型,因而信息和知识描述不全、无法动态地包含不同***之间信息的差异性,突出表现在对于机床基本性质、代码功能和程序格式的描述上。由于以上的缺点,以往的研究就不能很好地考察代码之间的统一性和差异性。
(3)创建关联函数来比较、判断不同***在信息模型的特征量值上的不同点和相同点,以解决不同***信息特征量值的差异性。具体做法是:首先分别通过两***机床轴和轴联动情况的运动转换矩阵T、T’之间关联函数的判断矩阵C、机床类型最优选择判断函数wp、加工方法判断关联函数K(x)、坐标系判断关联函数ki(x),实现不同***之间机床基本性质的比较、判断和选择;然后根据相似度值函数Q(A,B)判断两***代码功能之间是否存在差异性,再通过最优选择函数Qi(A,B)来实现代码功能的最优选择;最后用关联函数kij(x)来判断代码功能在哪些量值或参数上需要实现转换。
在以往的研究中,都没有提出对机床基本性质、代码功能差异性进行***比较、判断的理论和方法。前者只是采取了人工判断的方法,后者则必须事先做出设定。因此,以往的研究只能采取“点对点”式的代码互换,缺乏灵活性和可拓展性。
具体实施方式
下面根据实施例对本发明作进一步详细说明。
工艺流程及制造方法过程
(1)基于可拓理论的基元理论及其发散性原理,建立表达数控代码中所包含信息和数据的信息模型。
根据数控代码转换的要求,由机床基本性质的共有特征:***厂商名、机床的***系列名、可适用的加工方法、机床坐标系、轴和轴联动情况、加工精度等,建立它们的信息模型——机床基本性质复合元,见公式1。
其中
“坐标系”取值:
“轴数和联轴情况”取值:
在“轴数和联轴情况”中,“工件分支轴”的取值(v2)可用表2中的矩阵形式的示例来表示。其中,X、Y、Z分别表示为机床的三个坐标轴,α、β、γ表示围绕三个坐标轴的转动;若某个工件分支轴能运动,则取值为1,否则为0。需要注意的是,工件分支轴的排列顺序应是从机床床身出发,一直排列到安装工件的轴为止。
表2工件分支轴的取值示例
在“轴数和联轴情况”中,“工件分支轴”刀具分支轴的取值(v3)可用表3中的矩阵形式的示例来表示。其中,X、Y、Z分别表示为机床的三个坐标轴,α、β、γ表示围绕三个坐标轴的转动;若某个刀具分支轴能够运动,则取值为1,否则为0。需要注意的是,刀具分支轴的排列顺序应是从机床床身出发,一直排列到安装刀具的轴为止。
表3刀具分支轴的取值示例
在“轴数和联轴情况”中,轴联动情况的取值(v4)可以用如表4的有序矩阵表形式的示例来表示。其中,轴1、轴2、...、轴p既可以是工件分支轴、也可以是刀具分支轴。很显然,总轴数p=工件分支轴数m+刀具分支轴数n;若轴数p中有r个轴可以任意联动,则联动情况数
表4轴联动情况的取值示例
根据刀具轨迹类型、刀具轨迹组合,建立它们的信息模型——代码功能复合元,如式2。
其中
“功能类名”取值:
根据数控代码程序格式几个共有特征:程序结构中的位置、程序段中的位置、取值格式、组合格式,建立了其信息模型——代码程序格式复合元,见式(10)。
其中:
“代码取值格式”取值:
“代码组合格式”取值:
根据刀具轨迹的特点,定义了两种类型刀具轨迹的信息模型:单元刀具轨迹物元(见式11)、可组合刀具轨迹复合元(见式12)。
(2)通过动态方法创建包括所有***数控代码特征、量值、功能的数控代码功能全征复合元,其创建流程如图1、图2、图3,从而使不同***的数控代码的特征、量值、功能都成为这些全特征集、全量值集、全功能集的子集。
在全功能集的基础上,解决数控代码转换中的两个核问题:特征量值的转换问题(如图4)和功能的分解组合问题(如图5)。
在全功能集的基础上,实现机床基本性质复合元、基于全功能集的代码功能复合元向STEP标准中性文件映射(如图6),从而将不同***的数控代码包含的信息和数据保存为独立的第三方文件的格式。在STEP中性文件的基础上,提取相关信息,重新生成目标***的ISO6983标准的数控代码,算法流程见图7。
(3)创建关联函数来比较、判断不同***在信息模型的特征量值上的不同点和相同点,以解决不同***信息特征量值的差异性:
根据机床基本性质的中的轴数和联轴情况的取值,通过转换成运动转换矩阵T、T’的方式(见式3),计算的值Cij,并且在计算时,有以下的约定: 那么,由Cij组成的矩阵C为关联函数的判断矩阵:比较源***和目标***的运动转换矩阵元素的商C(见式4)。
其中,符号“^”表示“与”运算,X为机床基本性质复合元中轴和联轴情况值的物元。当KC(x)>0时,代码转换可以进行;当KC(x)<0时,代码转换则不可行。
根据联轴数,通过最优选择函数wp的方式来判定最佳转换的机床类型。设源***机床为联轴数为n0的数控机床,而适合于源***的代码转换的机床的联轴数分别为n1、n2、n3、...,分别求w1=n1-n0,w2=n2-n0,w3=n3-n0,...,wp≥0,则其最优选择判断函数为:
wp=min(w1,w2,w3,...)(6)
则p所对应的机床类型即为可选择的机床中最适合源***机床代码转换的机床。
根据代码功能复合元各特征的取值,计算源***和目标***功能之间的相似度Q(A,B)(见式6)。
其中:m为源***代码功能复合元的特征数(除去“复合元id”特征);n为目标***对应的功能复合元的特征数,k为两者共有的特征数;ui、vi为:若该特征的量值为一个集合的形式,则它们分别为对应的代码功能复合元特征的量值数量;若该特征的量值为一个物元的形式,则分别为物元特征的数量。pi为两***特征中共有的特征量值的数量或共有的物元的特征的数量。dij为权重系数,这里dij=1/p。rij为比例系数,若两***对应的特征量值的集合中的元素相同、或特征的量值相同时,rij取1,不同则取0。
通过一个最优选择函数Qi(A,B)(见式7)来决定目标***中的哪个功能或格式最为匹配源***的功能。
Qi(A,B)=max(Q1(A,B),Q2(A,B),…,Qn(A,B)(8)
即从中找出最大的那个相似度Qi(A,B),则目标***中第i个代码的功能或格式为最优的选择。
通过设置差异性关联函数kij(x)(见式8),来判断源***代码功能的哪个特征、哪个量值需要调用核问题解来解决它们之间的差异性。
当Kij(x)=-1<0时,表示目标***的该量值需要通过核问题的求解,使得Kij(x)>0;
当kij(x)>0时,表示该量值可以直接和源***的量值代换,不需要求解。其中,Ω(vi)表示源***代码功能复合元RFunction第i个特征上的量值集;Xo为源***代码功能复合元R′Function第i个特征的量值集。
(4)基于以上方法,数控代码转换的总体步骤如图8。
Step1:获取RMachine_Property中“加工方法”的特征值,判断哪些类型的机床与源***加工方法相同。
Step2:获取RMachine_Property中“坐标系”的特征值,判断哪些类型的机床与源***的坐标系相同。
Step3:获取RMachine_Property中“轴数和联轴情况”的特征值,计算式(3)、(4)的值,运用式(5)的进行轴和联轴情况的可转换判断。
Step4:将式(5)的值代入到式(6)中,进行机床类型最优选择。
Step5:由式(2)获取数控程序中的一个数控代码功能的复合元,通过式(7)进行功能和程序格式相似性判断。
Step6:由式(8)完成代码功能和格式的最优选择。
Step7:由式(9)的值进行代码功能的差异性判断,由图4和图5的方法调用核问题解来解决这个差异性。
Step8:由图6和图7的算法实现代码转换。
Step9:返回到Step5.
Step10:代码转换结束。
2、产品结构特征以及各个部件名称、毗邻关系
在本专利中,数控代码转换方法的总体结构如图9所示。该方法实现的***可分为五个模块,每个模块用来实现数控代码转换过程中所需要的不同功能:***信息定制模块、核问题求解模块、源***代码输入模块、中间文件生成模块、目标***代码生成模块。
***信息定制模块的功能主要是用于将机床基本性质复合元RMachine_Property、代码功能复合元RFunction、代码程序格式复合元RCombined_Format中的数据分别保存在机床基本性质库、全功能集数据库、程序格式库等三个数据库中,数据的录入通过人机交互的形式来进行。
核问题求解模块是在代码全功能集数据库的基础上,通过人机交互的形式,对核问题进行求解,并将求解结果保持到核问题解数据库中;另外,在代码转换器进行代码转换的过程,如果核问题在核问题数据库没有对应的解,则进入到人机交互核问题求解界面中,对其进行求解,并将结果保持到核问题解数据库中,以便以后遇到类似情况时调用该解。
源***代码输入模块首先根据源***的机床基本性质,通过与机床基本性质库中的数据进行比较,完成机床类型的最有选择;然后采取人机交互的形式输入源***的数控程序的代码,根据已选择的机床类型、全功能集数据库和程序格式库中的数据进行词法、语法分析,以便中间文件生成模块调用。
中间文件生成模块根据源***代码输入模块的分析数据,根据全功能集中的特征以及相应的源***上代码功能复合元特征上的取值,生成STEP标准的中间文件,为代码转换器实现向目标***的代码转换做好准备;同时,把生成的STEP中性文件输出,为STEP-NC解释器留下一个接口。
目标代码生成模块从中间文件生成模块生成STEP文件中,提取代码功能信息的数据,从全功能集中选择目标***的相对应的数控代码,并根据最优选择函数选择最优的代码;同时,将STEP文件中保存的刀具轨迹数据和源***代码功能用户输入的数据相应地写入到相应的目标***代码后面。
以上五个功能模块是相互作用、相互支持的,满足了软件工程中对设计要求模块化且模块独立的要求。其中,全功能集数据库和核问题解数据库是关键。因此,基于可拓理论的数控代码转换***的特点是将人机交互和计算机的应用程序结合起来,既解决了数控代码转换过程中,某些功能无法转换的问题,又解决了人工转换费时费力的缺点,尽量做到了代码转换的准确性。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化和变动。这里无法对所有的实施方式予以穷举。凡是属于本发明的技术方案所引申出的显而易见的变化或变动仍处于本发明的保护范围之列。