机器人执行的数控程序的制作方法

文档序号:6266000阅读:1122来源:国知局
专利名称:机器人执行的数控程序的制作方法
技术领域
本发明涉及通过机器人执行数控程序来操作机床(machine tool)。
背景技术
众所周知,通过“数控”(NC)方法来自动操作机床是利用连接到机床的编程数字计算机或可编程逻辑控制器(PLC)来形成计算机数控(CNC)机床。以NC编程语言(G代码程序)来提供用户程序(部分程序),以操作CNC机床来实行生产过程。编程通常是以基于标准的编程语言来完成的,例如FBD (功能方块图),LD (梯形图),ST (结构化文本,类似于Pascal编程语言),IL(指令表,类似于汇编语言),以及SFC(顺序功能图)。但是,I/O寻址、存储器组织和指令集的差异,意味着程序永远不会在不同机床制造商之间完全可交换。通过机器人来操作机床也是众所周知的。通常地,通过计算机执行机器人制造商专有的软件程序来控制机器人。NC编程语言和机器人编程语言之间的不同妨碍了机器人控制器执行为CNC机床编写NC语言程序。通常地,CNC机床比机器人机床需要更昂贵的机械结构以实现期望的功能。对于多种机床应用,由于NC语言已被传统地使用,所以用户要求NC编程语言来为机床编程。不幸的是机器人不能在这样的市场中使用,因为机器人控制器不能解释和执行这种NC程序中的命令。另一方面,由于机器人控制的特殊性(例如,复杂的运动学算法等),NC控制器不能容易地控制机器人。存在一些离线转换系统,其可以从NC程序来创建机器人程序。但是,这样的转换系统一般只能转换机械结构的运动,而不能转换“M代码”(杂项代码)以维护机器专用的应用处理。由于M代码是由用户(机床构建者)为他们构建的具体机床而定义的,所以机器人控制器将不能在不知道应该如何处理M代码的情况下来执行M代码。

发明内容
根据本发明,通过使用机器人臂,可以利用较不昂贵的机械结构来制造机器。利用下面的方法,机器人控制器可以执行以NC编程语言编写的部分程序。步骤I)机器人控制器将NC程序转换为机器人语言,并将该NC程序作为内在地存储在机器人控制器内的数据存储器系统中的伪程序数据来使用。步骤2)每个M代码(杂项代码)均被作为使用机器人语言的子程序调用来执行。子程序的内容可以由用户(系统集成商)自由地定义和编程,并因此可以为具体的应用而定制该子程序的内容。步骤3) —些M代码被附属于运动,其中在运动完成的时候执行M代码。在这种情况下,当运动已经完成时机器人控制器以机器人语言调用相应子程序。步骤4) I/O接口必须能够选择和运行程序,并监控程序运行的状态。由于在原始NC程序和伪机器人程序之间的行号是一一对应的,因此使得易于创建用户界面来示出当前被执行的程序行。用于控制机器人的方法包括以下步骤:将数控语言程序存储在与中央处理单元连接的大容量存储设备中,数控语言程序适于由计算机数控机床来执行以便实行生产过程;操作中央处理单元以便基于预先定义的转换配置表将数控语言程序转换为机器人语言程序,所述预先定义的转换配置表具有离散配置指令,所述离散配置指令用来将每个数控语言位置命令转换为机器人语言位置命令,并将每个数控语言杂项代码命令转换为机器人语言子程序;将机器人语言位置命令和机器人语言子程序作为机器人语言程序存储在大容量存储设备中;并在机器人的运行时间利用与大容量存储设备和机器人连接的机器人控制器来执行机器人语言程序以实行生产过程。


当根据附图考虑时,从下面优选实施例的详细描述,本发明的上述以及其他优势对于本领域的技术人员来说将变得容易显而易见,在附图中:图1是现有技术的CNC机床的透视图,所述CNC机床利用NC程序来实行对飞机机身的部分的焊接;图2是机器人控制的机床的透视图,所述机器人控制的机床用来实行图1中所示的对飞机机身的部分的焊接;图3是图2中所示的机器人的控制系统的方框图;图4是在上电时从NC编程语言至机器人编程语言的程序转换的第一阶段的流程图;图5-7是用于将原始NC程序转换为内部机器人程序的每个程序转换处的程序转换的第二阶段的流程图;以及图8是控制系统的方框图,所述控制系统用于如图1所示的CNC机床,其被修改以便操作如图2所示的机器人控制的机床。
具体实施例方式下面详细的描述和附图描述并图示本发明的各种示例性实施例。描述和附图用来使本领域技术人员能够制造和使用本发明,并且不意在以任何方式来限制本发明的范围。就所公开的方法而言,所给出的步骤在本质上都是示例性的,并且因此步骤的顺序不是必要或关键的。2011年12月22日提交的美国临时专利申请序号为61/579.288的申请通过引用并入此处。利用CNC机床来实行广泛的各种各样的生产过程,包括组装操作。例如,在图1中示出了 CNC机床10,所述机床10用于组装飞机机身的部分12。机身部分12具有半圆形的横截面,并通常通过铆接、焊接或粘接由附接到直纵梁和弓形框架的网格的多个外壳板(skin sheets)或面板制成。机床10具有分别位于机身部分12的内侧和外侧上的一对臂14,16。机床10可沿着与机身部分12的纵向轴平行的“X”轴17移动,以将外壳面板附接在沿着在机身部分12的相对端之间延伸的纵梁中的一个的任意所选位置上。机身部分12由框架18支撑,所述框架18可在方向19上关于水平轴旋转。框架18安装在一对支柱20之间。因此,机身部分12和框架18可以关于水平轴旋转,以允许机床10在纵梁之间移动,并沿框架中的任一个附接外壳面板。然而,CNC机床10需要大且昂贵的结构,所述结构可以支撑和旋转机身部分12以便实行必要的外壳附接操作。在图2中,图1的CNC机床10由机器人30替换来实行相同的外壳附接操作。机身部分12面对机器人30以通常的垂直定向附接到夹具32。机器人30可以在与机身部分12的纵向轴平行的移动方向17上沿着夹具移动。此外,机器人30的臂34是铰接地以沿着机身部分12在沿着弓形框架并且位于纵梁之间的弓形路线来移动。因此,机器人控制的机床30可以被实施为作为CNC机床10的替代的较小且较不昂贵的结构。但是,如上所解释的那样,CNC机床10的用户不愿意转变为机器人控制的机床30,因为机器人控制36不能执行CNC机床10所使用的NC编程语言。根据本发明,图3以方框图的形式示出了用来将NC编程语言转换为机器人编程语言的系统40。CPU(中央处理单元)42通过总线线路44访问系统的每个设备。CPU42根据存储在控制程序存储器(ROM) 46中的控制程序来操作,所述控制程序存储器是连接到总线44的非易失性存储器。连接到总线44的工作存储器(RAM) 48是为系统40提供工作区域以进行处理的存储器系统。显示器和键盘50被连接到总线44,使得操作者能够与系统40交互。系统通过通信端口 52和总线44与离线编程系统54相连接,所述离线编程系统54与端口 52相连接。在离线编程系统54上,用户或操作者以NC编程语言来创建“部分程序”。然后通过通信端口 52将NC程序下载到系统40中,并使用已建立的方法(例如,文件传输协议,等等)将NC程序复制到大容量存储设备56中。大容量存储设备56被连接到总线44并提供位置来存储原始部分程序(处于NC语言)58、部分程序的XML(可扩展标记语言)文件60、经过转换的部分程序(处于机器人语言)62、和用于M代码的子程序64。基于机器人程序62中的运动命令,机器人臂34由连接到总线44的伺服放大器66驱动。从NC编程语言到机器人编程语言的程序转换基于转换配置数据表,所述转换配置数据表源于XML文件60。该表定义NC程序58的语言元素。该表甚至可以重新定义与通常使用的语言不同的语言。该表的组成部分中的一些是:双字母命令(Two letter Command)--是否允许两个字母命令(默认:是的)X-前缀(X-prefix)——X位置数据的前缀字符(默认:X)X-后缀(X-suffix)—X位置数据的后缀字符(默认:〈无>)配置-前缀(Config-prefix)——配置字符串的前缀字符(默认:0)F-前缀(F-prefix)——进给速率值的前缀字符(默认:F)杂项代码-前缀(Misc-prefix)——杂项代码的列表和他们的管理(默认:M)联接motype (Joint motype)-用于指定联接motype的M代码值(默认:〈无>)用户巾贞数(Uframe num)-用于指定用户巾贞数的M代码值(默认:〈无>)等等。

程序转换发生在处理的两个阶段中,如下:1)在上电时,系统40读取XML文件60,并在工作存储器RAM48中建立转换配置表;以及2)在每次程序转换时,系统40根据转换配置表将原始NC程序58转换为内部机器人程序62。NC部分程序58的每个元素是一个字母表字母。这个步骤将基于XML文件60定义NC程序58中的每个程序元素的意义。这个转换表是必要的,因为元素的意义可能与通常使用的典型定义不同。换句话说,例如C代码可以具有与C代码在NC程序语言58中通常意味着什么所不同的意义。在这个步骤中,系统40读取XML文件60,并根据文件中的XML属性创建转换配置表。该转换配置表包含用于转换的规则。例如,在这个表中定义用于位置数据的“X”组成部分的字母。表被存储在工作存储器RAM48中,并保持直到系统40关闭,或直到加载新的XML文件。因此,这个过程通常在上电后完成一次。图4中示出的这个处理方法的流程图70,并包括以下步骤:步骤71-开始步骤72-打开XML数据文件60步骤73-在RAM48中为转换配置表分配区域步骤74-读取一行XML数据步骤75-为该行识别XML属性判定点76- “有效? ”,如果它是有效的XML属性,则在“是”处分支到步骤77 ;并如果不是有效的XML属性,则在“否”处分支到步骤78步骤77-将XML属性存储在转换配置表中步骤78-宣布错误,并且处理通过步骤80在步骤81处中止判定点79-如果存在另一行,则在“是”处分支并返回到步骤74 ;并且如果不存在更多的行,则在“否”处分支到步骤80步骤80-关闭XML文件步骤81-结束根据转换配置表,系统40将原始NC程序58转换为内部机器人程序62。图5_7中将从给定的NC部分程序(用户程序)58转换成机器人程序62的实际处理示出为流程图90,该流程图90具有以下步骤:步骤91-开始步骤92-打开原始NC程序文件58判定点93-如果打开不成功,则在“否”处分支到步骤94 ;如果成功,则在“是”处分支到步骤96步骤94-宣布错误步骤95-退出步骤96-为逻辑语句分配输出区域判定点97-如果分配不成功,则在“否”处分支,在步骤94宣布错误并在步骤95退出;如果成功,则在“是”处分支到步骤98步骤98-为位置分配输出区域判定点99-如果分配不成功,则在“否”处分支,在步骤94宣布错误,并在步骤95退出;如果成功,则在“是”处分支到步骤100
步骤100-从NC程序文件58读取一命令行步骤101-在逻辑输出区域中创建条目步骤102-从命令行提取一个令牌,和跟随令牌的变量(argument)(数字或字符串)步骤103-在转换配置表中搜索令牌字母,并基于表数据来确定命令的类型判定点104-如果在表中找不到令牌字母,则在“否”处分支,在步骤94宣布错误并在步骤95退出;如果找到令牌字母,则在“是”处分支到判定点105判定点105-如果命令是“预备”类型命令(通常是“G”代码),则分支到步骤106 ;如果命令是“位置”类型命令(X,Y,Z,W,P,R,E或C)之一,则分支到判定点107 ;如果命令是基于转换配置表的“另外的”有效命令,则分支到步骤111步骤106-基于命令变量存储运动特性,并转到判定点112判定点107-如果在位置输出区域中不存在条目,则在“否”处分支到步骤108 ;如果条目存在,则在“是”处分支到步骤109步骤108-将条目分配到位置输出区域中步骤109-将位置值存储在位置输出区域中的位置条目中步骤110-将运动命令存储在逻辑输出区域中的逻辑条目中步骤111-将“另外的”命令存储在逻辑输出区域中的逻辑条目中判定点112-如果在命令行中还存在更多命令令牌,那么在“是”处分支到步骤102 ;如果不是,则在“否”处分支到判定点113判定点113-如果在程序文件中还存在更多命令行,那么在“是”处分支到步骤100 ;如果不是,则在“否”处分支到步骤114步骤114-关闭原始NC程序文件58步骤115-创建输出机器人程序文件62并打开它步骤116-编写针对逻辑语句的报头指示步骤117-将所有逻辑输出条目写入到文件中步骤118-编写针对位置输出的报头指示步骤119-将所有位置输出条目写入到文件中步骡120-关闭输出文件步骤121-解除所有逻辑和位置输出条目的分配步骤122-结束关于位置表示,这样的NC程序通常是在离线编程系统上创建的。传统上,在NC程序中的位置以在每个移动节点/轴中的绝对位置值的形式给出。在典型的机床上,移动节点根据笛卡尔坐标对齐,并且每个这样的节点的值以X、Y、Z等等给出。由于轴配置的复杂性,对于离线编程系统,计算机器人轴的节点角度有时比计算笛卡尔坐标系中的位置值更难。除了节点表示之外,所提出的方法可以在NC程序58中使用XYZWPR位置表示。利用XYZWPR位置表示,除了位置值,有必要指定配置值“Config”。有必要为给定的XYZWPR位置识别唯一的节点值。在提出的方法中,“Config”值被表示为注释字符串,该注释字符串由“C”(config)代码指示。例如,处于XYZWPR表示的位置值可以以如下形式给出:
X123.00Y-234.562345.03W179.34Ρ-178.34R0234C(N, L,0,1,-1)。由于位置被定义为具有XYZWPR位置表示的机器人30的工具中心点(TCP)的位置,所以有必要为每个位置指定参考系。在提出的方法中,这通过程序中的特定的M代码来实现,所述M代码选择用户坐标系或用户工具坐标系。例子:M23T01-要设置用户坐标系为#1M24T02-要设置用户工具坐标系为#2一些M代码(杂项代码)被定义用于特定的应用需求的特定机床。其往往伴随着由T代码指定的变量。为了实现这种特定处理的灵活性,提出的方法为每个指定的M代码产生对子程序64的调用。例如,NC程序58具有“M08T02”代码,并经过转换的机器人程序62具有“调用(CALL) ”命令,例如“CALLM08 (2) ”。还要注意变量T02被作为整数参数传递给子程序“M08”。杂项代码可以被指定为与运动相关。在这种情况下,在经过转换的机器人程序62中“CALL”命令被附接到运动,所述命令发生在机器人到达指定的目的地点的时候,通过指定定时偏移(以毫秒计),利用偏移定时可以被调整为早点或晚点。图8示出了控制系统130的方框图,所述控制系统130用于如图1所示的CNC机床10,其被修改以操作如图2所示的机器人控制的机床。CNC机床10通过专用的PLC(可编程逻辑控制器)131控制,所述PLC连接到显示设备132,该显示设备132用来显示操作者程序和状态信息。PLC131表示有能力运行用来操作CNC机床10的NC程序的任何设备。此外,如果CNC机床可以运行NC程序,则PLC131是可选的。机器人控制的机床30连接到机器人控制器36,以便根据经过转换的用户程序62来进行控制(图3)。PLC131通过现场总线134连接到机器人控制器36中的PLC接口 133,用来交换信号以提供程序控制和状态监控。NC程序被从PLC131下载到机器人控制器36中的MD驱动56 (图3)。机器人控制器36将NC程序转换为处于TP语言的经过转换的用户程序62,并产生用于M代码的TP子程序64 (图3)。然后机器人控制器36准备操作机器人控制的机床30以实行以NC程序具体化的生产过程。示教盒135连接到机器人控制器36,使得操作者可以实行通常与控制机器人相关的所有功能。根据专利法规的规定,本发明已经描述了被认为是代表其优选实施例的那些。但是,应该指出的是,在不脱离其精神或范围的情况下,本发明可以以不同于特定示出和描述的情况实施。
权利要求
1.一种用于控制机器人的方法,包括以下步骤: 将数控语言程序存储在连接到中央处理单元的大容量存储设备中,所述数控语言程序适于由计算机数控机床执行以实行生产过程; 操作中央处理单元以便基于预先定义的转换配置表将数控语言程序转换为机器人语言程序,所述预先定义的转换配置表具有离散配置指令,所述离散配置指令用来将每个数控语言位置命令转换为机器人语言位置命令,并将每个数控语言杂项代码命令转换为机器人语言子程序; 将机器人语言位置命令和机器人语言子程序作为机器人语言程序存储在大容量存储设备中;以及 在机器人的运行时间利用与大容量存储设备和机器人相连接的机器人控制器来执行机器人语言程序以实行生产过程。
2.如权利要求1所述的方法,包括将控制程序存储在机器人控制器的控制程序存储器中,并利用所述控制程序实行转换步骤。
3.如权利要求1所述的方法,包括在大容量存储设备中提供转换规则的XML文件,以及操作中央处理单元以从XML文件创建转换配置表,所述转换配置表包含用于将数控语言程序转换为机器人语言程序的规则。
4.如权利要求1所述的方法,包括实行转换步骤以便提供在机器人语言程序的指令行和数控语言程序的指令行之间的一一对应。
5.如权利要求1所述的方法,其中操作步骤包括: 打开存储在大容量存储设 备中的数控语言程序; 为逻辑语句分配大容量存储设备的输出区域; 为位置分配大容量存储设备的输出区域; 从数控语言程序读取命令行; 在逻辑输出区域中为命令行创建条目; 从命令行提取令牌和跟随该令牌的变量字符串; 在转换配置表中搜索与该令牌相关联的令牌字母; 基于转换配置表中的数据来确定命令行的类型。
6.如权利要求5所述的方法,其中如果命令行是预备类型命令,则存储基于命令行变量字符串的运动特性。
7.如权利要求5所述的方法,其中如果命令行是位置类型命令,则将条目分配到位置输出区域中。
8.如权利要求5所述的方法,其中如果命令行是不同于预备类型命令或位置类型命令的有效的另外的类型命令,则将该另外的类型命令作为条目存储在逻辑输出区域中。
9.如权利要求1所述的方法,其中操作步骤包括: 打开存储在大容量存储设备中的数控语言程序; 确定数控语言程序中的每个命令行的类型; 基于命令行的类型将条目分配到逻辑输出区域或位置输出区域中;以及 关闭数控语言程序。
10.如权利要求9所述的方法,包括:创建机器人程序文件; 将逻辑条目的报头指示写入到机器人程序文件中; 将来自逻辑输出区域的所有逻辑条目写到机器人程序文件; 将位置条目的报头指示写入到机器人程序文件中; 将来自位置输出区域的所有位置条目写到机器人程序文件; 关闭机器人程序文件;以及 解除所有逻辑和位置条目的分配。
11.如权利要求1所述的方法,包括向以数控语言程序描述的XYZWPR位置表示添加唯一的位置值,以产生相应的机器人语言位置命令。
12.如权利要求11所述的方法,其中位置表示中的唯一的配置值被表示为注释字符串O
13.如权利要求1所述的方法,包括与杂项代码之一相关联的定时偏移与机器人到达目的地点相关。
14.如权利要求1所述的方法,包括在机器人语言位置命令之一之前插入特定的杂项代码,以选择用户坐标系和用户工具坐标系中的一个。
15.如权利要求1所述的方法,包括在机器人语言位置命令之一之前插入特定的杂项代码,以选择机器人运动类型。
16.—种基于数控语言程序来 控制机器人的系统,包括: 机器人; 机器人控制器,其与机器人相连接用于根据机器人语言程序来控制机器人; 大容量存储设备,其与机器人控制器相连接用于存储数控语言程序;以及控制程序,机器人控制器执行所述控制程序以用于基于预先定义的转换配置表将数控语言程序转换为机器人语言程序,所述预先定义的转换配置表具有离散配置指令,所述离散配置指令用来将每个数控语言位置命令转换为机器人语言位置命令并将每个数控语言杂项代码命令转换为机器人语言子程序。
17.如权利要求16所述的系统,其中所述大容量存储设备存储机器人程序文件中的机器人语言程序,并存储从机器人语言程序分开的机器人语言子程序。
18.如权利要求16所述的系统,其中所述大容量存储设备存储用于创建转换配置表的转换规则的XML文件,其包含用于将数控语言程序转换为机器人语言程序的规则。
19.如权利要求16所述的系统,包括显示设备,所述显示设备与机器人控制器相连接用于显示数控语言程序和机器人语言程序的指令行。
20.如权利要求16所述的系统,其中所述机器人控制器包括PLC接口,所述PLC接口用于与可编程逻辑控制器通信。
全文摘要
本发明涉及机器人执行的数控程序。一种用于转换处于NC编程语言的机床程序以允许机器人控制器执行程序的系统和方法。根据转换配置表,机器人控制器将NC程序转换为机器人语言,并将经转换的语言作为内在地存储在机器人控制器内的数据存储器中的伪程序数据使用。NC程序中的每个M代码(杂项代码)被作为使用机器人语言的子程序调用来执行。子程序的内容可以由用户自由地定义和编程,并因此可以为具体的应用而定制。
文档编号G05B19/408GK103176427SQ20121059915
公开日2013年6月26日 申请日期2012年12月24日 优先权日2011年12月22日
发明者A·亚纳吉塔, E·李, H·D·麦吉, J·蔡 申请人:范努克机器人技术美国有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1