GB/Z 20869-2007
基本信息
标准号:
GB/Z 20869-2007
中文名称:工业机器人 用于机器人的中间代码
标准类别:国家标准(GB)
标准状态:现行
发布日期:2007-04-25
实施日期:2007-08-01
出版语种:简体中文
下载格式:.rar.pdf
下载大小:5203187
相关标签:
工业
机器人
用于
标准分类号
标准ICS号:机械制造>>工业自动化系统>>25.040.30工业机器人、机械手
中标分类号:机械>>机械综合>>J07电子计算机应用
关联标准
采标情况:ISO/TR 10562:1995 MOD
出版信息
出版社:中国标准出版社
页数:平装16开 页数:75, 字数:137千字
标准价格:46.0 元
计划单号:20021239-Z-604
出版日期:2007-08-01
相关单位信息
首发日期:2007-01-18
起草人:聂尔来、郝淑芬、许王莹、董瑞翔、贾永君、贾沛、于括
起草单位:北京机械工业自动化研究所
归口单位:全国工业自动化系统与集成标准化技术委员会
提出单位:中国机械工业联合会
发布部门:中华人民共和国国家质量监督检验检疫总局 中国国家标准化管理委员会
主管部门:中国机械工业联合会
标准简介
本指导性技术文件规定的中间代码是面向用户的编程系统和工业机器人控制系统的中间界面。它定义了数据列表(包括中间代码有关的数据)的结构和访问结构。 GB/Z 20869-2007 工业机器人 用于机器人的中间代码 GB/Z20869-2007 标准下载解压密码:www.bzxz.net
标准内容
TCS25.040.30
中华人民共和国国家标准化指导性技术文件GB/Z 20869--2007
工业机器人,用于机器人的中间代码Industrial robot-Inlermcdiate Code for Rohot(ICR)(ISO/TR 10562:1995,Manipulating inctustrial robols-Intermediate Code for Robols(ICR).MOD)2007-01-18发布
中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会
GR/Z.20869--2007
规范性引用文件
术语和定义
本指导性技术文件的约
基本概念
数据类型
8数据列表定义.bZxz.net
附录A(资料性附录)
附录B(资料性附录)
附录((资料性附录)
机器人系统状态变量
实施指南
ICR的代码数表
GB/Z20869-—2007
本指导性技术文件修改采用IS)/TRJ0562:1995《操作型机器人川于机器人中间代码(ICR)》(英文版)
本指导性技术文义件等向翻译IS0/TR10562:1995,为便于使用,本指导性技术文件作了下列编辑性修收:
“本技术报告\改为“本指导性技术文件”;为了与现有的工业桃器人系列标准·致,本指导性技术文作名称中删除了“操作型”三个字;删除了国际技术报告的前言:
一删去了原文中不符合我国标准编写的学句::删去广原文中的附录(,将附录D作为本指导性技术文件的附录木指导性技术文件的附A,附录B和附录(为资料性附录:本指导性技术文作H中[国机械工业联合会提出本指导性技术文件由全国工业产动化系统与集成标准化技术委员会归口。本指导性技术文件起草单位:北京机械工业白动化研究所。本指导性技术义件主要起草人:装尔米、郝淑办、许瑾、董翔、贾永君、贾沛、于括。本指导性技术文件首次发布。
1范围
工亚机器人用干机器人的中间代码,GR/Z20869—2007
本指导性技术文件规定的中间代码是面向用户的编程系统和工业机器人控制系统的中间界面。它定义了数据列表(包括中问代码有关的数据)的结构和访问结构。2 规范性引用文件
下列文件中的条款通过本指导性技术文件的引用而成为本指导性技术文件的条款。凡是注日期的引月义件,其随后所有的修改单(不包括期勘误的内容)或修订版均不适用于本指导性技术文件,然而,鼓励根据本指导性技术文件达成协议的各方研究足否可使用这些文件的最新版本。凡是不注日期的引用文性,其最新版本适用于本指导性技术文件:GB/T12643—1997工业机器人词汇(egvISO8373:1994)(G13/I!5273.1-1994信息处理八位单字节缩码图形字符集第一部分:拉」字母一(idt ISO 8859-1:1987)
(F13/T16720.31996工业自动化系统(eqv IS0/IEC 9506 3:1991)
3术语和定义
制造报文规范第3部分:机器人伴同标准GB/T12643确定的及下列术语和定义适用于本指导性技术文件。按照(B/115273.1(.8位字符渠)规定的对所有代码和数据元素将作出描述。ICR是面向机器和解释器的,而不是面向用户的,3.1
ICR程序ICRprogram
用ICR写的机器人指令和数据集合。3.2
数据列表date list
用ICR代码写的位置,位姿和其他数据结构的集合。3.3
机器人控制器robotcontrolunit接收指令代码,并向操作机每个关节发送何服信孕的控制装置,4本指导性技术文件的约定
如果某个程序码仅用本指导性技术义件所定义的代码特征,并且它不依赖于任何专用的解释器,则认为该程序代码遵循了本指导性技术文件。本指导性技术文件的单条语句可分成两组,第一组(A组)语句与.1.业机器人控制器及其所控制的机器人类型无关。第二组(3组)语句依赖于特定的工业机器人类型及控制器。A组分成八个相关层次,
期本层(lcvcl0)包含:
●存储和数据管理:
程序流程控制;
GB/Z20869—2007
·布尔和算术运算;
·语句:CNFGCHAN.OPENCHAN.CLOSECHAN,RESETCHAN,STATCHAN、数据交换语句 DIN 和 DOUT
。除了符号寻址外的其他寻址模式。作为基本层的扩展,产尘广七个彼此独立的相关层次:符号寻址模式。
除了基本层所列句之外的其他数据交换语句。CNFGCHAN,OPENCHAN,CIOSECHAN,RESETCHAN,SIAICHAN.DIN 和 DOUT。-—数据列表管理。
—传感器函数。
-调试纠错数。
一用户扩展语句,
备用扩展语句。
B组分成核心语句和扩展语句。
核心语句包括:
ACCEL、VEL租MOVTIM语句。
JMOVE和 LMOVF语句。
CALIB,CURPOS,GOHOME,MOVSTP.MOVCONT 和 MOVCANCEL 语句。末端执行器讲句描述。
扩展语询包括:
不包括在核心语句巾的技术规范。不包括在核心语句中的每个运动和执行器的控制。机器人设备的描述。
在本指导性技术文件中.ICR处理器定义为“接受ICR代码作为输人,并按照标推定义语义执行ICR代码的系统或机构”。如果处理器至少满足A组中的基本层和B组中的核心部分,那么认为它遵从了本指导性技术文件,除非处理器明确指出不接受B组中核心部分的函数。ICR可用两种不间形式表达,在第一种形式中,所有操作数仅由 ASCⅡ码数字组成,第二种形式允许用助记符表示操作数,下面两条语句的效果完伞相同。0) 220.5450:
和?220,MOVEND;
在语句中操作符用数字表示,而语句②中操作符采用助记符的形式:由于1CR代码有两种不同的表示方法,所以有两种不同的化R解释器。第一种较简单,它用数循作操作数,而第二种允诈使用助记符。第二种解释器称为MNEMONICAL-ICR解释器,也可以看作是一种预处理器,它先将助记符转换成数值,再由第一种较简单的ICR解释器处理。5基本概念
5. 1 引言
本指导性技术文件是涉及工业机器人需求的系列标准的一部分,其他标准包括诸如安全、性能规范及其测试方法,术语和机械接口等,可以看出这些标准是相与关联的,而儿也是与其他标准相关的。本指导性技术文件是一个三级委员会对离线编程和不同机器人控制器之间的中间代码(ICR)的草案,机器人编程语言的表示有多个层次,ICR也允许技术和几何数据在机器人控制器之间相互交换,低这并不意味着要使用中闻代码的其他层次,这也不足要取消ICR和机器人控制器之间的其他巾间代码,然而,ICR应被作为机器人编程和控制器之间的中间接口。2
GB/Z20869—2007
指导性技术文件附录A中给出机器人系统状态变量的指南,作为ICR的参考,这些状态变量定义在CB/T16720.3
本指导性技术文件附录B阐述了在应用中如何使用和实现ICR,如何把机器人编程语言转变成ICR代码。
台工业机器人需要完成多种任务,这组用米定义机器人将要完成规定人的运动和辅助功能的指令由一个任务程序来规定。
一个特定的应用是通过任务描述或用面向用户的编程语言写的程序来说明的。这个面向用的高级编程语言的文法和语义取决于系统编程的类型(例如是陈述性编程还是面向CAI)的交互式编程)。程序必须翻译成机器人低级程序代码,然后装人机器人控制器去执行,从各种机器人挖制器的数最和面间用户的高级编程系统的演变来说,很有必要在这两者之间建立一座桥染。1CR就是为此打元方便之门,它的目的是既支持机器人控制实现的所有特征,也支持描述任务的全部要素。
在不同机器人控制器之间或在任何机器人编程系统和控制器之创交换用广程序和数据,ICR代码是很有用的。代码本身是出一系列代表不同指令的记录组成,一条指令可能是一个数据或类型定义。指令包括数学运算和堆栈操作,它能对按照后缀法定义的数学表达式进行有效的计算。高级编程语言中支持块结构有利于结构化编程。关于变量和其他可编程对象在块中的作用域由符号标识,在某些特定场合也使用绝对地址:如直接处埋I/0)存储映射。本指导性技术文件详细说明了ICR的功能和范围.但其正式文法描述是在助记符层实现的。代码数宇的定义很容易映射到本文描述的ICR元素,有些用到的条目如位姿或方向没有详细解释.它们的意义在其他ISO文献中已有摘述,中间代码的主要特征如下:
中间代码:如图1所示,中问代码正好介于机器人编程系统的标谁输出和机器人控制器的标准输人之间。
数据交换标准格式:用ICR写的数据列表能用下数据交换和示教的数据愉入。机器间接口:ICR被认为是计算机系统之间的数据交换格式,它不是面间用的语言,代码基本上仪出整数表示,然而为了增加程序可读性,用符号表示变量和其他操作,ICR小仅使用列打印字符集。
面向用户的高级
机器人编程语言
机器人编程系统
示教机块
控制器 1
T业机器人
不返回(除数据表外)
控制器 2
数据交换表
图1带有中间接口的机器人编程结构GB/Z20869—2007
用KCR写的数据和程序在图1所示的系统之间传送,程序以如下两种方法执行。-用ICR写的程序通过解释器转变成指定代码,然后传送到机器人控制器执行用ICR写的程序用文件或通信方式传送到机器人控制器直接执行。机器人控制器的系统构成和实现完全依赖于机器人的系统开发商,但在本指导性技术文件中假定控制器的结构如图2所示:
路径发生器:用于计算工业操作机的行程迹。伺服系统:用来实现路径:
外设控制器:用于控制数字/模拟量的I/0单元。传感器:没有定义专门的装置,通常假定为DJO。-通信线路:假定如RS232C标推的串行线路。文件存储系统:文件可用于选择项。本指导性技术文件定的多关节机器人是具有六个由度的工业操作机,本指导性技术文件不包括多于六个白由度的机器人,而对于少于六个自由度的机器人,本指导性技术文件同样适用,机器人控制器
略径发生群
同服系统——关书
外设控制器
传感据
通信线路
文件存储系统
图2机器人控制器的构形
5.2ICR 语法描述
从词法角度看,ICR程序是由GB/T15273.1规定的一串学符(8位字符集)组成,所有控制符(如换行和回车)在处理中被忽略。
5.2. 1 ICR的元语言
为ICR词法定义的元语言源于巴科斯若尔表示法(BNF)。a)终结符(通常是字持)用单引号“{\括起。b)用括号“(\和“)”表示一个分组。连字符表示连接多个符号(终结符和非终结符)。d)方括号“[”和“]\表尔可选标识符。大括号“{”和“\表示可重复。e)
例如,(iteml)表示有0个,1个或任意多个iteml。f)
符号\|\表示替换项,
例如,itemllitem2表示或者为iteml或者为item2,但二者不能同时出现:例:number_constant :=#(intcger|real)一个数字常量,可用#30定义整数30,而#0.3F2定义实数30.05. 2. 21CR 词法元素
在这一节中的文法描述了字符词法元索的格式及其被此分类,因此和本指导性技术文件所使用的4
GB/Z 20869—2007
其他文法不同,这就意味着ICR词法元素不同于句法定义,因为在多个终结符之间不允许有空格(如整数定义)。以后各章的句法定义将以此为参考。digit : -
'0'2314
5'1‘6'↓7'‘8'↓*g'
Uppcr_casc_lcttcr :: =
'A''B'!''I'D'!'E''F''G'!
H'!''KMN}
'O''p.'Q''R''S''T''L':
''!'w''x''y..'z.
lower_case_leller :: -
ah''e!
op'stu
y.(w'{'x+'y'+'z.
letter ::
space ::
= upper_case_letter I lower..case..letter.tnderscore ::...
spccial_character0 :: =
→{{+'→'$**%&{}
spccial_characterl :: -
special_character2 :: -
special_charicter3:: -
graphic_character :: -
letter digit space underscoreispecial_eharacter0 I special_characterl spccial_charactcr2 : special_charecter3.unsignedinteger :: digit + digit l.在 6.2中描述了有关整型,字符型、实、布尔型、字衍串型的语义。intcger
\= 「[('+'}\‘)} unsigned integercharacter
\\graphic_character\\
$ ‘unsigned_integer.
上面美元符*$\表示字符码的数值。其类型是(G13/T15273.1规定的码(8位字符集)。real
boclean
:: - integer','unsigned.ineger_L'E'integer].: 'T'|‘TRUE'|'F'‘FAISF
strin学符串是双引号“\”括起来的一列字符。而申中的双引号本身用两个双引号本身来表示:如\ahe\\def\表示 ahc\def.st.ring
:: 'n'graphic_eharacterJ'\?5
GB/Z 20869---2007
symbol标识符形式工与不限长度的宁符串类似,它所有学符必须是母,数字或下划线,而且第个字符必须是字母。标识符中大小号学母是不区别的(如ABC和abc意义相同)。标识符不能用双与号括起。
symbol ::= letter((letteridigit:underscore))5.3地址模式
5.3.1绝对地址
当用户需要指定机器人控制器和其他外设的绝对地址时,可用整形数字来表示。地址应能被控制器接受,注意:对于绝对地址的解释完全依赖于系统,所以为了代码的通用性,最好不要使用绝对地址。我们已经提到过,有关机器人控制器的计算环境已超出木文范围。然而,我们经常需要存储空间的映象(如I/0唤象的外设)。因为ICR是简单、初级的语言,注意绝对地址并定是实地址,也可以是CPU虚存空间的虚地址,它的数据类型是除INTEGER(整数)类型范围外的无符号INTEGER(整数)。表示姑下:
absolute_address :: ='@'unsigned.integer.这里无符号整数代表虚存空问的地址。由于绝对地址对机器人系统有高度依赖性,应尽量避免使用。
5.3.2块相对地址
块相对地址是指只表示程序块和其内部块的变量,若用整数给出块相对地址,它的值可由如下公式计算:
2\* × hlock_ncsting_number + variable_index.注释:定义数2\是考虑到用32位整数来表示一个块的相对地址,块嵌套号(black_nesting_num-hcr)是对在此之前已被激活的块开始语句(BLKBEG)中给出的块嵌套标识号的引用。如果具有相同块嵌套号的几个块同时激活,最后激活的块有效。对于主程序块嵌套号从零开始。变量索引i(variablc_indcx)是指一个变量的块内相对寻址.这个变量必须在块嵌套号(block_nesting_number)到引用的块内用变量语句(DECLVAR)进行说明。若一个块相对地址由其标识符给出,那么外部块或过程名后加点“,”作为它的前缀(如proccdurcout.variable_nate)。如果没有外部块或过程名.则默认它是内部块。bluckrel_address :: -
'BRADR\('(integerl symhol'.'] symbol)')'5.3.3操作数存取
在ICR指令中,存取操作数通过使用常量,绝对地址块相对地址或标识符。operand::
symbol I absolule_address I constant I hlockrel_address,部分操作数被压人堆栈中,其余的在语句中描述,指令执行结果被压人堆栈。当遇到一个标识符,就要根据指令中的定义判断它是标号,过程名还是变量,整型常量表示为\±1012\这里“#”是ASCⅡ字符。“≠1012\是一个1000加12的「进制数。为表示数据入栈和出栈。在每条指令的定义中使用如下表示法。Stack:
I_n: var_type,*-,I_2: var_type,L_1: var_lype0_m: var_type**-,0_2; var_typc,0_i: var_type这里,I_x表示第×次入栈值,O_x表示第x次出栈值,var_typc表示数据类型。堆栈是*进先出(LIFO))存偌器,输人/输山值的顺序如图3所示,因此I_1和O_1位于栈顶(TCs),\var_type\可以是一个或多个数据类型名(参见“变量和常量\),当使用两个或更多的数据类型时,用括岑和竖线表示如下:
I_1:(var_typel 1 var_typc2),(这个表达方式超出了ICR词法定义,仅仅用来作解释和说明,)Tos
5.4ICR单元结构
图3堆栈操作
GB/Z 20869—2007
ICR程序的基本结构出单元组成,单儿可包括一个用程序,也可能是一个含有过程、函数或数据列表的模块。模快对于分别开发程序部件再将它们连接起来是必须的。数据列表用丁机器人控制器之间的数据交赖(如而户程序中的位置量)。icr_unit
program
data_list
5.5语句结构
::- program I data_list.
:::: pheg i statement + pend.::- dlhead I dldat ↓ dlend.ICR的每个操作都写成一条语句,语句由一个行号和条令组成,条指令又由一个操作符和零个,一个或多个操作数组成操作数以追号分隔,整个操作以分号结束,所有的运算都用ASCⅡ字符数字代码表示,如\22120”:为了增加代码可读性,也可用助记符表示,如“PBEG”,而行号必须是唯-的.statrment
::- line_numher, instruction';line_number ::
instruction::
unsigned_integer.
remarkdleclvartypedefprogflow|operationspecification I movecontrol I dataexchange |datalistopdesrription l scnsorfunction I debugfunction.指令在第7章中定义,为方便起见,下面给出一个例子。rcrnark
cd_remark
:: cdirefnurk', linenumber .' iext.:: -'REMARK'T remark_code.
remark_codle
linenumher
-1000(整数)
二机器人高级编程语吉中的行号(整数)remark(学符串)
这里cd_remark是指令 REMARK(用助记符“REMARK\或1000表示)的标识码:两种表示法(助记符和数字代码)要求定义两种与之相适应的ICR装人器.类型1仅采用代码方式,而类型2可用代码或助记符方式,\linenumber\和text\是RFMARK指令的操作数5.6程序流程结构
ICR被设计成两个计算机系统间的中间代码,它没有复杂的程序流程结构.而是采用简单,快速的方法·如条件转移和无条件转移。所有语句出一系列无符号整数表示的指令序马编号,转移标通过指令号定义的,如:lahel
::- unsigned_inleger.
禁止从块或过程外部跳人\个块或过程中闻。7
GB/Z 20869—2007
在ICR中引人块结构,在个块中可使用动态变量.但它必须在块苷(“blkhcg”)说明,并在程序退出本块时取消·拱的嵌套和其他特征和Pascal语中规定相同,6数据类型
6.1 ICR 中的数据处理
ICR是一种代码系统,它计算内存中的数据,通过外设和传感器获取信息,控制外设和操作机。其数值计算通常在中执行。
ICR中的定义不受存储地址、规则范围以及过程的嵌套利函数限制,任何在实施中引起的限制,必须由用广考虑。
6,1.1数据类型
在 ICR中定义的数据类型分成:逻辑和算术数据炎型;integer,Booleanreal.charactcr;a
b)文木数据类型string;
结构数据类型:array.record;
d)儿何数据类型:Position,orientation,posee)和机器人有关的数据类型:joint,main_joint,add_joint,robtarget。在 6. 2~6. 5 将详细讨论。除了后四种数据类型,所有其他数据类型和 PASCAL 语音中相同。数据结构的实现与系统有关,后四种类型是专门为机器人控制设计的,尽管不同数据类型问的混合运算基本上是不允许的,但每……种数据类型及其组合的运算是可以的,也可以进行强制类型转换。
6. 1. 2 变量
ICR 有两种变量:
静态变量:
动态变量。
后者仅用于块和过程内部。
变量可以用…个在使用前说明的唯一符号表示,也可以用一个能由块相对地址存取的变最表示。变量的类型由它的标识符给定,可能是一个数字代码或符号名,如ICR预定义的数据类型表所示。var_type
:: = type_idemifier I data_type.::- unsigred_integer.
type_indentilier
data_type
BRADR'''INT'IREAE''BOOI.'CHAR''STR''POS'T'ORI'IPOSE'T'JOINT'T'MJOINT''A_JOINT''RORTRT数据类型的缩略词在7.4 中给出详细描述。ICR预定义的数据类型表
类型标识码
数据类型
数据类型含义
块对地址
布尔型
字笋型
字符串型
类型标识码
(保留)
(保留】
M_JOINT
ROBTRT
ICR的数据类型分成以下几组:
(续表)
数据类型
遥辑和算术型:它和传统计算机科学定义的一样,保留
主关节
附如关节
GB/Z 20869—2007
数据类型含义
机器人目标
文本型:STRIN(数据类型允许处理文本信息,如:反映用户终端输人或建立文本信息快。结构型:类似于 Pascal 语言,用户可以定义结构。与机器人无关的几何数据类型:为定义机器人的运动,儿何型数据是很有用的,它是预定义的结构型数据,机器人的位置能通过POSITION(角坐标系)描述.而(ORIEVTATION(直角参考坐标系)给出了机器人的方向(主要是来端执行器方向)。用P()SE描述了机器人在直角坐标系中的位置和方间。
与机器人相关的数据类型:和机器人有关的数据类型对不同机器人(史精确地说是机器人运动学)也不间。因此,它们是与实现有关的。如果ICR程序由一个机器人控制器移植到另一个上它们的定义也必须改变。JOINT数据类型表示关节坐标,ROBTARGET像POSE一样也描述了机器人在占角坐标系中的位置和方间.但它还包括构造信息,如需要:也用于表示附加轴的不确定的位置和关节值。
以上描述都为预定义数据类型。6.2逆辑和算术数据类型
对以下每种数据类型,其类型定义描述了H预定义的取值范用,其语法定义于5.2.2。BOOLFAN(BOO.)
该类型包含\TRUE”和“FALSE\两·个逻辑值。允许值是:
falsc_valuc
true_value:
INTEGER(INT)
FALSEIF
TRUEIT
包含整数范国的数据类型。
允许整数值的范围是:
最小值=--2,147.483,647
最大值=1 2,147,183,647
(一个整型变量值山1个字节表示),CHARACTER(CHAR)
ASCT码字符的数据类型。
允许值有:
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。