GB Z 20869-2007 工业机器人.用于机器人的中间代码.pdf
《GB Z 20869-2007 工业机器人.用于机器人的中间代码.pdf》由会员分享,可在线阅读,更多相关《GB Z 20869-2007 工业机器人.用于机器人的中间代码.pdf(74页珍藏版)》请在麦多课文档分享上搜索。
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的每个操作都写成一条语句,语句由一个行号和一条指令组成,一条指令又由一个操作符和零个、一个或多个操作数组成,操作数以逗号分隔,整个操作以
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GB 20869 2007 工业 机器人 用于 中间 代码
