1、ICS 2504030J 07 蝠宦中华人民共和国国家标准化指导性技术文件GBZ 20869-2007工业机器人 用于机器人的中间代码Industrial robot-Intermediate Code for Robot(ICR)(ISOTR 10562:1995,Manipulating industrial robotsIntermediate Code for Robots(ICR),MOD)20070118发布丰瞀粥鬻瓣管矬瞥星发布中国国家标准化管理委员会仅1”GBZ 20869-2007前言-1范围-2规范性引用文件-3术语和定义4本指导性技术文件的约定-5基本概念-6数据类型-7
2、指令-8数据列表定义-附录A(资料性附录) 机器人系统状态变量附录B(资料性附录)实施指南附录c(资料性附录) ICR的代码数表目 次,00M舛弱卯鹊刖 盖本指导性技术文件修改采用ISOTR 10562(英文版)。本指导性技术文件等同翻译ISOTR 10562性修改:GBZ 20869-20071995操作型机器人用于机器人中间代码(ICR)1995。为便于使用,本指导性技术文件作了下列编辑“本技术报告”改为“本指导性技术文件”;为了与现有的工业机器人系列标准一致,本指导性技术文件名称中删除了“操作型”三个字删除了国际技术报告的前言;一一删去了原文中不符合我国标准编写的字句;一删去了原文中的附
3、录C,将附录D作为本指导性技术文件的附录c。本指导性技术文件的附录A、附录B和附录c为资料性附录。本指导性技术文件由中国机械工业联合会提出。本指导性技术文件由全国工业自动化系统与集成标准化技术委员会归口。本指导性技术文件起草单位:北京机械工业自动化研究所。本指导性技术文件主要起草人:聂尔来、郝淑芬、许碡、董瑞翔、贾永君、贾沛、于括。本指导性技术文件首次发布。工业机器人用于机器人的中间代码GBZ 20869-20071范围本指导性技术文件规定的中间代码是面向用户的编程系统和工业机器人控制系统的中间界面。它定义了数据列表(包括中间代码有关的数据)的结构和访问结构。2规范性引用文件下列文件中的条款通
4、过本指导性技术文件的引用而成为本指导性技术文件的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本指导性技术文件,然而,鼓励根据本指导性技术文件达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本指导性技术文件。GBT 126431997工业机器人词汇(eqv ISO 8373:1994)GBT 152731 1994 信息处理 八位单字节编码图形字符集 第一部分:拉丁字母一(idt ISO 88591:1987)GBT 167203 1996 工业自动化系统 制造报文规范 第3部分:机器人伴同标准(eqv ISOIEC
5、 95063:1991)3术语和定义GBT 12643确定的及下列术语和定义适用于本指导性技术文件。按照GBT 152731(8位字符集)规定的对所有代码和数据元素将作出描述。ICR是面向机器和解释器的,而不是面向用户的。31ICR程序ICR program用ICR写的机器人指令和数据集合。32数据列表date list用ICR代码写的位置、位姿和其他数据结构的集合。33机器人控制器robot control unit 接收指令代码,并向操作机每个关节发送伺服信号的控制装置。4本指导性技术文件的约定如果某个程序码仅用本指导性技术文件所定义的代码特征,并且它不依赖于任何专用的解释器,则认为该程序
6、代码遵循了本指导性技术文件。本指导性技术文件的单条语句可分成两组,第一组(A组)语句与工业机器人控制器及其所控制的机器人类型无关。第二组(B组)语句依赖于特定的工业机器人类型及控制器。A组分成八个相关层次。基本层(1evel 0)包含:存储和数据管理;程序流程控制;1GBZ 20869-2007布尔和算术运算;语句:CNFGCHAN、0PENcHAN、CLOSECHAN、RESETCHAN、STATCHAN、数据交换语句DIN和DOUT;除了符号寻址外的其他寻址模式。作为基本层的扩展,产生了七个彼此独立的相关层次:符号寻址模式。除了基本层所列语句之外的其他数据交换语句。CNFGCHAN、OPE
7、NCHAN、CLOSECHAN、RESETCHAN、STATCHAN、DIN和DOUT。数据列表管理。传感器函数。调试纠错函数。用户扩展语句。备用扩展语句。B组分成核心语句和扩展语句。核心语句包括:ACCEL、VEL和MOVTIM语句。JMOVE和LMOVE语句。CALIB、CURPOS、GOHOME、MOVSTP、MOVCONT和MovcANCEL语句。末端执行器语句描述。扩展语句包括:不包括在核心语句中的技术规范。不包括在核心语句中的每个运动和执行器的控制。机器人设备的描述。在本指导性技术文件中,ICR处理器定义为“接受ICR代码作为输入,并按照标准定义语义执行ICR代码的系统或机构”。如
8、果处理器至少满足A组中的基本层和B组中的核心部分,那么认为它遵从了本指导性技术文件,除非处理器明确指出不接受B组中核心部分的函数。ICR可用两种不同形式表达,在第一种形式中,所有操作数仅由ASCII码数字组成,第二种形式允许用助记符表示操作数。下面两条语句的效果完全相同。220,5450;和220,MOVEND;在语句中操作符用数字表示,而语句中操作符采用助记符的形式。由于1CR代码有两种不同的表示方法,所以有两种不同的ICR解释器。第一种较简单,它用数值作操作数,而第二种允许使用助记符。第二种解释器称为MNEMONICAL ICR解释器,也可以看作是一种预处理器,它先将助记符转换成数值,再由
9、第一种较简单的ICR解释器处理。5基本概念51 引言本指导性技术文件是涉及工业机器人需求的系列标准的一部分,其他标准包括诸如安全、性能规范及其测试方法、术语和机械接口等。可以看出这些标准是相互关联的,而且也是与其他标准相关的。本指导性技术文件是一个二级委员会对离线编程和不同机器人控制器之间的中间代码(ICR)的草案。机器人编程语言的表示有多个层次。ICR也允许技术和几何数据在机器人控制器之间相互交换,但这并不意味着要使用中间代码的其他层次,这也不是要取消ICR和机器人控制器之间的其他中间代码。然而,ICR应被作为机器人编程和控制器之间的中间接口。2GBZ 20869-2007本指导性技术文件附
10、录A中给出机器人系统状态变量的指南,作为ICR的参考,这些状态变量定义在GBT 167203。本指导性技术文件附录B阐述了在应用中如何使用和实现ICR,如何把机器人编程语言转变成ICR代码。一台工业机器人需要完成多种任务,这组用来定义机器人将要完成规定人的运动和辅助功能的指令由一个任务程序来规定。一个特定的应用是通过任务描述或用面向用户的编程语言写的程序来说明的。这个面向用户的高级编程语言的文法和语义取决于系统编程的类型(例如是陈述性编程还是面向CAD的交互式编程)。程序必须翻译成机器人低级程序代码,然后装入机器人控制器去执行。从各种机器人控制器的数量和面向用户的高级编程系统的演变来说,很有必
11、要在这两者之间建立一座桥梁。ICR就是为此打开方便之门,它的目的是既支持机器人控制实现的所有特征,也支持描述任务的全部要素。在不同机器人控制器之间或在任何机器人编程系统和控制器之间交换用户程序和数据,ICR代码是很有用的。代码本身是由一系列代表不同指令的记录组成,一条指令可能是一个数据或类型定义。指令包括数学运算和堆栈操作,它能对按照后缀法定义的数学表达式进行有效的计算。高级编程语言中支持块结构有利于结构化编程。关于变量和其他可编程对象在块中的作用域由符号标识,在某些特定场合也使用绝对地址,如直接处理Io存储映射。本指导性技术文件详细说明了ICR的功能和范围,但其正式文法描述是在助记符层实现的
12、。代码数字的定义很容易映射到本文描述的ICR元素。有些用到的条目如位姿或方向没有详细解释,它们的意义在其他ISO文献中已有描述。中间代码的主要特征如下:中间代码:如图1所示,中间代码正好介于机器人编程系统的标准输出和机器人控制器的标准输入之问。数据交换标准格式:用ICR写的数据列表能用于数据交换和示教的数据输入。机器间接口:ICR被认为是计算机系统之间的数据交换格式,它不是面向用户的语言,代码基本上仅由整数表示,然而为了增加程序可读性,用符号表示变量和其他操作,ICR中仅使用可打印字符集。图1 带有中间接口的机器人编程结构GBZ 20869-2007用ICR写的数据和程序在图1所示的系统之间传
13、送,程序以如下两种方法执行。用ICR写的程序通过解释器转变成指定代码,然后传送到机器人控制器执行。用ICR写的程序用文件或通信方式传送到机器人控制器直接执行。机器人控制器的系统构成和实现完全依赖于机器人的系统开发商,但在本指导性技术文件中假定控制器的结构如图2所示:路径发生器:用于计算工业操作机的行程轨迹。伺服系统:用来实现路径。外设控制器:用于控制数字模拟量的Io单元。传感器:没有定义专门的装置,通常假定为DIO。通信线路:假定如RS232C标准的串行线路。文件存储系统:文件可用于选择项。本指导性技术文件假定的多关节机器人是具有六个自由度的工业操作机,本指导性技术文件不包括多于六个自由度的机
14、器人,而对于少于六个自由度的机器人,本指导性技术文件同样适用。机器人控制嚣路径发生器L_一伺服系统关节补设控制嚣传蓐器通信线路文件存储系统图2机器人控制器的构形52 ICR语法描述从词法角度看,ICR程序是由GBT 152731规定的一串字符(8位字符集)组成,所有控制符(如换行和回车)在处理中被忽略。521 ICR的元语言为ICR词法定义的元语言源于巴科斯一若尔表示法(BNF)。a) 终结符(通常是字母)用单引号“括起。 b)用括号“(”和“)”表示一个分组。c) 连字符表示连接多个符号(终结符和非终结符)。d)方括号“”和“”表示可选标识符。e)大括号“”和“)”表示可重复。例如,item
15、)表示有0个,1个或任意多个iteml。f)符号“f”表示替换顼。例如,itemllitem2表示或者为iteml或者为item2,但二者不能同时出现。例:numberconstant:一#(integer real)。一个数字常量,可用#30定义整数30,而#03E2定义实数300。522 ICR词法元素在这一节中的文法描述了字符词法元素的格式及其彼此分类,因此和本指导性技术文件所使用的4GBZ 20869-2007其他文法不同,这就意味着ICR词法元素不同于句法定义,因为在多个终结符之间不允许有空格(如整数定义)。以后各章的句法定义将以此为参考。digit:一0 f1 f2|3 I4 75
16、 l67f8 J9Uppercaseletter:一AB lCID 7 IEIF 7GIHI 7Il 7J 7 7KLlMINIOIP IQ 7 7R 7 IsITlulVIwI 7xIYl 7z10wer caseetter:一gnl7u【10wercaseletterI&7 ll一7 f7 77?7 I1etter digit space underscorespeciaLcharacter0 special characterlspecialcharacter2 specialcharacter3unsigned_integer:一digitdigit)在62中描述了有关整型、字符型、实
17、型、布尔型、字符串型的语义。integer :一(+)unsignedintegercharacter :一graphiccharacterl$7 unsigned_integer上面美元符“$”表示字符码的数值。其类型是GBT 15273I规定的码(8位字符集)。real :一integerunsignedintegerEintegerboolean :一T 7|7TRUE 7FlFALSEstring字符串是双引号“”括起来的一列字符。而串中的双引号本身用两个双引号本身来表示如”abcdef”表示abc”def。string :=“”graphiccharacter“”=u三二vvm,q=
18、二线h“一训训;一一一叫y一三二一丁一一一一一一一塞慧一一嘶一GBZ 20869-2007symbol标识符形式上与不限长度的字符串类似,它所有字符必须是字母,数字或下划线,而且第一个字符必须是字母。标识符中大小号字母是不区别的(如ABC和abc意义相同)。标识符不能用双引号括起。symbol :=letter(1etter digitunderscore)53地址模式531绝对地址当用户需要指定机器人控制器和其他外设的绝对地址时,可用整形数字来表示。地址应能被控制器接受,注意:对于绝对地址的解释完全依赖于系统,所以为了代码的通用性,最好不要使用绝对地址。我们已经提到过,有关机器人控制器的计算
19、环境已超出本文范围。然而,我们经常需要存储空间的映象(如IO映象的外设)。因为ICR是简单、初级的语言,注意绝对地址并一定是实地址,也可以是CPU虚存空间的虚地址,它的数据类型是除INTEGER(整数)类型范围外的无符号INTEGER(整数)。表示如下:absoluteaddress:一unsigned integer这里无符号整数代表虚存空间的地址。由于绝对地址对机器人系统有高度依赖性,应尽量避免使用。532块相对地址块相对地址是指只表示程序块和其内部块的变量,若用整数给出块相对地址,它的值可由如下公式计算:2“*blocknestingnumber+variableindex注释:定义数2
20、24是考虑到用32位整数来表示一个块的相对地址,块嵌套号(blocknestingnumber)是对在此之前已被激活的块开始语句(BI。KBEG)中给出的块嵌套标识号的引用。如果具有相同块嵌套号的几个块同时激活,最后激活的块有效。对于主程序块嵌套号从零开始。变量索引(variableindex)是指一个变量的块内相对寻址,这个变量必须在块嵌套号(blocknesting_number)到引用的块内用变量语句(DECLVAR)进行说明。若一个块相对地址由其标识符给出,那么外部块或过程名后加点“”作为它的前缀(如procedureoutvariablename)。如果没有外部块或过程名,则默认它是
21、内部块。blockreiaddress:一BRADR”(integersymbol 7symb01)533操作数存取在ICR指令中,存取操作数通过使用常量,绝对地址,块相对地址或标识符。operand :一symbol absolute address constant blockreladdress部分操作数被压入堆栈中,其余的在语句中描述,指令执行结果被压人堆栈。当遇到一个标识符,就要根据指令中的定义判断它是标号,过程名还是变量。整型常量表示为“#1012”这里“#”是ASClI字符。“#101 2”是一个1000加12的十进制数。为表示数据入栈和出栈。在每条指令的定义中使用如下表示法。S
22、tack:I n:var_type,I_2:vartype,I一1:vartype0一m:vattype,O2:vartype,Ol:vartype这里,l_x表示第X次人栈值,Ox表示第X次出栈值,var_type表示数据类型。堆栈是“后进先出”(I,IFO)存储器,输入输出值的顺序如图3所示,因此I-l和O一1位于栈顶(TOS),“var_type”可以是一个或多个数据类型名(参见“变量和常量”),当使用两个或更多的数据类型时,用括号和竖线表示如下:6I_1:(var_typelvartype2)(这个表达方式超出了ICR词法定义,仅仅用来作解释和说明。)I 1I”一TOS一-Lo lo
23、2一o mGBZ 20869-2007图3堆栈操作54 ICR单元结构ICR程序的基本结构由单元组成,单元可包括一个用户程序,也可能是一个含有过程、函数或数据列表的模块。模块对于分别开发程序部件再将它们连接起来是必须的。数据列表用于机器人控制器之间的数据交换(in用户程序中的位置量)。1er_unltprogramdata 1ist55语句结构:一program datalist:一pbegstatement)pend:一dlheaddldatdlendICR的每个操作都写成一条语句,语句由一个行号和一条指令组成,一条指令又由一个操作符和零个、一个或多个操作数组成,操作数以逗号分隔,整个操作以
24、分号结束。所有的运算都用ASClI字符数字代码表示,如“22100”。为了增加代码可读性,也可用助记符表示。如:“PBEG”。而行号必须是唯一的。statement :一linenumber 7,instruction;1inenumber:一 unsignedintegerinstruction :一remark declvar typedef progflow operationspecification movecontrol dataexchangedatalistop description sensorfunction debugfunction指令在第7章中定义,为方便起见,下面
25、给出一个例子。remark :一cdremark,7 linenumber,textcdremark :一REMARK remarkcoderemarkcode 一 1000(整数)linenumber 一机器人高级编程语言中的行号(整数)text remark(字符串)这里cdremark是指令REMARK(用助记符“REMARK”或1000表示)的标识码。两种表示法(助记符和数字代码)要求定义两种与之相适应的ICR装入器,类型1仅采用代码方式,而类型2可用代码或助记符方式,“linenumber”和“text”是REMARK指令的操作数。56程序流程结构ICR被设计成两个计算机系统间的中间
26、代码,它没有复杂的程序流程结构,而是采用简单、快速的方法,如条件转移和无条件转移。所有语句由一系列无符号整数表示的指令序号编号,转移目标通过指令号定义的,如:label :一 unsignedinteger禁止从块或过程外部跳人”个块或过程中间。7GBZ 20869-2007在ICR中引入块结构,在一个块中可使用动态变量,但它必须在块首(“blkbeg”)说明,并在程序退出本块时取消,块的嵌套和其他特征和Pascal语言中规定相同,6数据类型61 ICR中的数据处理ICR是一种代码系统,它计算内存中的数据,通过外设和传感器获取信息,控制外设和操作机。其数值计算通常在栈中执行。ICR中的定义不受
27、存储地址、规则范围以及过程的嵌套和函数限制,任何在实施中引起的限制,必须由用户考虑。611数据类型在ICR中定义的数据类型分成:a)逻辑和算术数据类型:integer,Boolean。real,character;b)文本数据类型:string;c)结构数据类型:array,record;d)几何数据类型;position,orientation,pose;e)和机器人有关的数据类型:joint,main_joint,add joint,robtarget。在6265将详细讨论。除了后四种数据类型,所有其他数据类型和PASCAL语言中相同。数据结构的实现与系统有关,后四种类型是专门为机器人控制
28、设计的。尽管不同数据类型间的混合运算基本上是不允许的,但每一种数据类型及其组合的运算是可以的,也可以进行强制类型转换。612变量IcR有两种变量:静态变量;动态变量。后者仅用于块和过程内部。变量可以用一个在使用前说明的唯一符号表示,也可以用一个能由块相对地址存取的变量表示。变量的类型由它的标识符给定,可能是一个数字代码或符号名,如ICR预定义的数据类型表所示。var_type :一typeidentifier datatypetypeindentifier :一 unsignedintegerdatatype :一BRADR7INTREAI。BOOLI 7CHAR 7:STRPOSIORIPO
29、SEJOINTMJOINTAJOINT7ROBTRT数据类型的缩略词在74中给出详细描述。ICR预定义的数据类型表类型标识码 数据类型 数据类型含义0 BRADR 块相对地址l 1NT 整型2 REAL 实型3 BOOL 布尔型4 CHAR 字符型5 STR 字符串型8(续表)GBZ 20869-2007类型标识码 数据类型 数据类型含义6 (保留) 保留7 (保留) 保留8 PoS 位置9 oRI 方向10 POSE 位姿11 JOlNT 关节12 MJOINT 主关节13 AJOINT 附加关节14 ROBTRT 机器人目标ICR的数据类型分成以下几组:逻辑和算术型:它和传统计算机科学定义
30、的一样。文本型:STRING数据类型允许处理文本信息,如:反映用户终端输入或建立文本信息块。结构型:类似于Pascal语言,用户可以定义结构。与机器人无关的几何数据类型:为定义肌器人的运动,几何型数据是很有用的,它是预定义的结构型数据,机器人的位置能通过POsITION(直角坐标系)描述,而0RIENTATION(直角参考坐标系)给出了机器人的方向(主要是末端执行器方向)。用POSE描述了机器人在直角坐标系中的位置和方向。与机器人相关的数据类型:和机器人有关的数据类型对不同机器人(更精确地说是机器人运动学)也不同。因此,它们是与实现有关的。如果ICR程序由一个机器人控制器移植到另一个上,它们的
31、定义也必须改变。JOINT数据类型表示关节坐标,ROBTARGET像POSE一样也描述了机器人在直角坐标系中的位置和方向,但它还包括构造信息,如需要,也用于表示附加轴的不确定的位置和关节值。以上描述都为预定义数据类型。62逻辑和算术数据类型对以下每种数据类型,其类型定义描述了其预定义的取值范围,其语法定义于522。B00LEAN(BOOL)该类型包含“TRUE”和“FALSE”两个逻辑值。允许值是:false_value FALSE|Ftruevalue =TRUE TINTEGER(INT)包含整数范围的数据类型。允许整数值的范围是:最小值一一2,147,483,647最大值一+2,147,
32、483,647(一个整型变量值由4个字节表示)。CHARACTER(CHAR)ASClI码字符的数据类型。允许值有:9Gsz 20869-2007图形字符无符号整数范围无符号整数范围一0255(其前128个值和ASClI码相对应)。REAL(REAL)包含实数范围内的数据类型。realvalue:一integer 7 7Eunsignedintegerexponentexponent:一Einerger实数传统表示法是由小数部分和可选的指数部分组成。小数部分是由正、负整数或零后跟一点号和可选的无符号整数组成,用来表示小数的十进制部分。指数是一个正数、0或负数,代表10的方次,在实数定义内不允许
33、有空格,实数允许取值范围是正负两范围和零值,true_zeronegative range一一17E38一17E一38positiverange一17E一3817E38true_zero一0(实数变量值用四字节浮点数表示,参见IEEE 754)。BRADR(BRADR)该数据类型涉及块相对地址。允许在整数范围内取值:lowest_bradrvalue=0highest_bradrvalue一+4,294,967,296(块相对地址用四个字节表示)。这些取值范围是ICR实施中的最低要求。63文本表达STRING(STR)该数据类型是由双引号“”括起来的一串字符组成,它含有字符串实际长度的信息,字
34、符串中字符的位置从1开始,其长度在0255的范围内。64结构数据类型ICR中结构数据类型如数组和记录不具有显示的数据类型,但在ICR中能定义数组并通过块相对地址实现在其上的操作。下面举例说明,在这个例子中的一些ICR元素在以后将详细说明,在任何高级语肓中,如下数据的定义和赋值都有具体规定。 VARX:RECORDK一1:real;K一2:integer;K一3:arrayEl+5of integer;K一4:array1430fRECORDL一1:real;L_2:integer;ENDRECORD;ENDRECORD:】OGBZ 20869-2007Y:integer;BEGINY:xK一=
35、4096)symbol 一 类型名(字符串)numberof_components一 所指定类型的分量数目(整型)comptype 一 分量的数据类型描述符(整型)在编程语言中,类型定义最初是“伪代码”。这样的代码通常不包含在可执行代码中。基于这样的认识,ICR可以被看成是对文本形式的转换,而不是作为可执行代码。通过预处理器或装入程序,这些类型定义可被转换为基本数据类型。7,3程序流控制这些指令用于控制程序的执行和时序,也包括程序和子程序管理语句。语法:progflow:一pbeg pend checkaxes checkori checkbr call】umptarget label sub
36、pend blkbeg blkend gotoif jmpdec noop delay waitb wait_le waitgepause teachon,731程序头(PBEG)程序的起始。它是程序的第一条语句。Group of compliance:group A,level 0语法:pbeg :一cdpbeg,firstnumber,namecdpbeg := PBEGl pbeg_codepbeg_code =22100(整型)firstnumber 一 程序段的第一条指令的行号(整型)name 一程序名(字符串)73,2 程序尾(PEND)程序结尾。它是程序的最后一条语句。程序执行至
37、此停止。Group of compliance:group A,level 0语法:pend :=cd_pendcd_pend :=7PEND,I pendcodepend-code = 22l 50(整型)733 检查轴数(CHECKAXES)用于检查轴和附加轴数量。程序开始时,每个控制器能够检查机器人轴和附加轴的数量在程序中与实际中是否一致。其比较结果以二进制形式存于栈顶。Group of compliance:group A,level 0语法:checkaxes :一 cdcheckaxes 7,axnumber,7addax_numbercdcheckaxes :一CHECKAXES
38、 checkaxescode1 6GBZ 20869-2007checkaxescode = 22850(整型)ax_number 一 机器人轴数量(整型)addax_number 一机器人附加轴数量(整型)734检查方向(CHECK ORI)检查机器人方向描述。在程序开始处,每个控制器能够检查程序中使用的方向描述与控制器的工具方向描述是否一致。其比较结果以二进制形式存于栈顶。如果程序中有多个方向标识符,每一个都应被查对。Group of compliance:group A,level 0语法:checkori :一 cdcheckori 7,oriidcdcheckori :一 CHECK
39、ORI checkoricodecheckoricode = 22860(整型)oriid 一方向标识符(整型)735检查栈顶值(CHECK_BR)如果位于堆栈顶部stack一1的整数值大于堆栈的栈顶值,程序继续执行由instructionnumber指定的指令。栈顶值被去除,stack 1的栈顶值不变。Group of compliance:group A,level 0语法:checkbr :一 checkbr_nr checkbrsymcheckbrnr := cdcheckbrnr,instructionnumber7,blocknestingdifferencecd_checkbrF
40、ir :一 CHECKBRNR checkbrnrcodecheckbr_nrcode 一 22870(整型)instruction_number 一 目标指令行号(整型)blocknesting_difference 一 目标块嵌套级减去实际块嵌套级(整型)checkbrsym :一 cdcheckbrsyrn,symbol7,blocknest ngdifferencecdcheckbrsym :一 。CHECKBRSYM1 checkbrsym_codecheckbrsym_code = 22880(整型)symbol 一 目标行标识符(字符串)blocknestingdifferenc
41、e 一目标块嵌套级减去实际块嵌套级(整型)736 程序调用(cALL)对过程的调用。过程调用可以通过使用过程的指令的行号来实现,也可使用标识符(过程名)来实现。参数通过堆栈来传递。Group of compliance:group A,level 0语法:call :一 cdcall 7,suhbegnumbercd call :一 CAI。LI call codecallcode 一 22200(整型)subbegnumber 一 程序中第一个可执行语句的指令行号(整型)737子程序头或跳转的目标(LABEL)子程序或跳转目标的起始点。参数经堆栈传递。程序调用的最后一个参数位于堆栈顶部。1
42、7GBZ 20869-2007Group of compliance:group A,level 0语法:jumptarget :=cdjumptarget,symb01cd jumptarget :一IABEI,7 jumptargetcodeiump targetcode 一22400TOS)21340 GTR BoOL REAL REAI。 比较实数较大(T()S一1ToS)21345 LTI BO()L INTINT 比较整数较小(T()SI=TOS)21360 GER BoOI, REAL REAI, 比较实数大于或等于(T()s一1一TOS)21365 I。EI t3()()L I
43、NTINT 比较整数小于或等于(ToslO一1:实数词义解释:cdr_movtimRMOVTIM r movtimcode2200(整型)O-1:执行时间0一表示运动正在进行中n一 表示上一个运动结束时返回的执行时间的单位为s错误代码:一1一 表示当前没有运动在进行中。756 设定运动的持续时间(W_MOVTIM)设定一个给定运动过程的持续时间。如果必须在指定的执行时间内执行下一条xMOVE语句,执行这条语句就将改变机器人的运动速度。存放于堆栈顶部的执行时间的值执行上推操作。Group of compliance:group B,kernel语法:w movtlmcd_w_movtimw_mo
44、vtlre_code堆栈:I_1:实数专(无结果)词义解释:Ij:表示运动执行时间的单位为S叫虬紧撼GBZ 20869-2007757运动超时时间的设定(MVTMOUT)设定一个给定运动的超时时间。存放于堆栈顶部的超时时间的值执行上推操作。如果在超时时间结束时运动还在进行当中,则在相应的xMOVE语句中错误代码就会被置为一1。如果程序中没有指定超时时间,那么其最大值为系统默认值。Group of compliance:group B,extensions语法:mvtmout :一 cdmvtmoutcd mvtmout :一 MVTMOUTI mvtmoutcodemvtmoutcode 一2
45、300(整型)堆栈:1_1:实数(无结果)词义解释:I一1:表示运动超时时间的单位为S758机器人在目标位姿的精度值的读取(RD_ACCDP)机器人到达目标点时的精确度决定了在运动完成之前机器人的TCP必须有多接近目标点的TCP(点偏移)。由于几何坐标系中的每一个坐标轴或是每一个关节都有着自己的度量单位,这一误差区域被叫做“虚球”。当前精度的值被压入堆栈的顶部。Group of compliance:group B,extensions语法:rd_accdp :一cdrdaccdp,accdptype,accdpkindcdrdaccdp :一 RDACCDPI rdaccdpcoderd a
46、ccdpcode 一2400(整型)accdptype 一精确度类型代码(字符型)J一 实际的关节精确度值T一机器人几何参照系中的TCP的精确度精确度的种类(整型)1一 表示精确度为制造商给出的最大精确值的百分数2一 表示一个平滑的“虚球”的半径,单位为mm3一 表示“虚球”的半径在编码器中的增量堆栈:I-1:整型 、匕o-1:整型词义解释:I一1:指定的坐标轴的数目0一所有的坐标轴i一表示坐标轴iO一1:精度的值如果机器人控制器不能够接受实数类型的“虚球”半径或是半径最大值的百分数,那么控制器会给出最接近自身允许值的离散的精度值。多数情况下工业机器人的控制器都能接受离散值或是像“fine”,“medium”,“large”这样的预定义的常量。759 机器人目标点精度值的写入(wACCDP)机器人到达目标点时的精确度决定了在运动完成之前机器人的TCP有多接近目标点的TCP(点36GBZ 20869-2007偏移)。由于几何坐标系中的每一个坐标轴或是每一个关节都有着自己的度量单,这一误差区域被叫做“虚球”。设定的精度值从堆栈的顶部退出,写人机器人控制器的系统变量中。Group of compliance:group B,extensions语法:Wacedp :一cdWaec