ABB机器人RAPID指令中文翻译.docx
《ABB机器人RAPID指令中文翻译.docx》由会员分享,可在线阅读,更多相关《ABB机器人RAPID指令中文翻译.docx(132页珍藏版)》请在冰豆网上搜索。
ABB机器人RAPID指令中文翻译
RAPID参考手册
指令
张建辉韩鹏
1.指令1.1.AccSet—降低加速度
用途:
当处理较大负载时使用AccSet指令。
它允许减慢加速度和减速度,使机器人有一个更平滑的运动。
该指令只能在主任务T_ROB1中使用,或者如果处于多运动系统,在Motion任务中。
基本范例:
AccSet的基本范例说明如下。
例1AccSet50,100;
加速度备限制到正常值的50%。
例2AccSet100,50;
加速度斜线限制到正常值的50%。
项目:
AccSetAccRamp
Acc:
数据类型:
num(数值)
加速度和减速度作为正常值的百分比。
100%对应最大加速度。
最大值:
100%。
输入值<20%则给出最大加速度的20%。
Ramp
数据类型:
num(数值)
加速度和减速度的增加作为正常值的百分比的比例(如图)。
通过减小这个数值可以限制震动。
100%对应最大比例。
最大值:
100%,输入值<10%则给出最大比例的10%。
下图说明减小加速度可以平滑运动。
加速度加速度加速度
时间时间时间
AccSet100,100正常加速度AccSet30,100AccSet100,30
程序执行:
该加速度值应用到机器人和外部轴,直到一个新的AccSet指令执行。
缺省值(100%)在以下情况是自动设置:
●冷启动
●加载了新的程序
●从头开始执行程序时
语法:
AccSet[AccSet“:
=”]<数值表达式(IN)>“,”[Ramp“:
=”]<数值表达式(IN)>“;”
相关信息:
有关信息
参看
在世界坐标系统中控制加速度
第590页WorldAccLim--在世界坐标系统中控制加速度
沿着路径降低TCP加速度
第265页PathAccLim—沿路径降低TCP加速度
定位指令
RAPID参考手册-RAPID概述,RAPID摘要部分-运动
1.2.ActUnit—激活一个机械单元
用途:
ActUnit用来激活一个机械单元。
例如当使用普通驱动单元的时候,它可以用来决定哪一个单元被激活。
该指令只能在主任务T_ROB1中使用,或者如果处于多运动系统,在Motion任务中。
基本范例:
ActUnit的基本范例说明如下:
例1ActUnitorbit_a;
orbit_a机械单元的激活。
项目:
AccUnitMechUnit
MechUnit:
机械单元
数据类型:
mecunit(机械单元)
要激活的机械单元的名称。
程序执行:
当机器人的和外部轴的实际路径准备好以后,整个路径被清理并且特定的机械单元被激活。
这意味着它被机器人控制和监视。
如果多个机械单元共享一个普通驱动单元,这些单元中的一个的激活,也将把该单元连接到普通驱动单元。
限制:
如果在该指令之前有一个运动指令,那个指令的程序中必须带有停止点(区域数据fine),而不是一个通过点,否则将不能进行电源失败后的重启。
AccUnit指令不能在连接到以下任何特定的系统事件的RAPID程序中执行:
电源上电,停止,Q停止,重启或者复位。
语法:
ActUnit[MechUnit“:
=”]<机械单元变量(VAR)>“;”
相关信息:
相关信息
参照
废除机械单元
第69页DeactUnit—废除一个机械单元
机械单元
第969页MecUnit—机械单元
更多例子
第69页DeactUnit—废除一个机械单元
1.3.Add—增加一个数字数值
用途:
Add用于增加一个数值到一个数字变量或恒量,或者从一个数字变量或者恒量中减去一个数值。
基本范例:
Add的基本范例说明如下:
例1Addreg1,3;
3被增加到reg1,即reg1=reg1+3。
例2Addreg1,—reg2
从reg1减去reg2,即reg1=reg1-reg2。
项目:
AddNameAddValue
Name:
数据类型:
数字
将要改变的变量或者恒量的名称。
AddValue:
数据类型:
数字
要增加的数值。
语法:
Add[Name“:
=”]<数字的变量或者恒量(INOUT)>“,”[AddValue“:
=”]<数字表达式(IN)>“;”
相关信息:
相关的信息
参看
给变量加1
Incr—增加1,第117页
改变量减1
Decr—减1,第71页
使用一个任意的表达式改变数据,例如乘法
“:
=”—赋值,第19页
1.4.AliasIO—用别名定义I/O
用途:
AliasIO用来用别名定义一个任意类型的信号,或者用来在内置(built-in)任务模块中使用信号。
在不同的机器人安装中,带别名的信号可以被用来预定义常规程序,而不用在运行之前进行任何的程序更新。
在任何实际信号的使用之前,必须运行AliasIO指令。
参看第17页的基本范例来加载模块,第18页更多范例来安装模块。
基本范例:
指令AliasIO的基本范例说明如下:
也可参看第18页更多范例
例1VARsignaldoalias_do;
PROCProg_start()
AliasIOconfig_do,alias_do;
ENDPROC
程序prog_start链接到系统参数的START事件。
程序定义的数字输出信号alias_do链接到程序开头配置的数字输出信号config_do。
项目:
AliasIOFromSignal,ToSignal;
FromSignal:
数据类型:
signalxx或者字符串。
加载的模块:
信号标识符按照配置(数据类型signalxx)命名,信号描述符也从配置中复制。
信号必须在IO配置中定义。
安装的模块或者加载的系统模块:
一个相关(CONST、VAR、PERS或者它们的参数)包含信号(数据类型string字符串)的名称,从该信号中,信号描述符在系统中搜索后被复制。
信号必须在IO配置中定义。
ToSignal:
数据类型:
signalxx
信号标识符按照程序(数据类型signalxx)命名,信号描述符复制到该系统中。
信号必须在RAPID程序中声明。
FromSignal和ToSignal项目必须使用(或者找到)相同的数据类型,并且必须是类型signalxx(signalai,signalao,signaldi,signaldo,signalgi或者signalgo)中的一个。
程序执行:
信号描述符数值从FromSignal项目给出的信号复制到ToSignal项目给出的信号。
更多范例:
指令AliasIO的更多范例说明如下。
例1VARsignaldialias_di;
PROCprog_start()
CONSTstringconfig_string:
=”config_di”;
AliasIOconfig_string,alias_di;
ENDPROC
程序prog_start链接到系统参数中的START事件。
程序定义的数字输入信号alias_di链接到程序开头配置的数字输入信号config_di(通过常量config_string)。
限制:
当开始程序的时候,别名信号直到AliasIO指令执行之后才能使用。
指令AliasIO必须放置在
◆或者在程序开始(事件START)时执行的事件程序中
◆或者在每一个程序开始之后(信号使用之前)执行的程序部分。
为了防止错误,不推荐使用把AliasIO信号动态重新链接到不同的物理信号。
语法:
AliasIO[FromSignal“:
=”]<任意类型的相关(REF)>“,”
[ToSignal“:
=”]<任意类型的变量(VAR)>“;”
相关信息:
相关信息
参看
输入/输出指令
RAPID参考手册-RAPID概述,RAPID摘要部分-输入和输出信号
通常的输入输出功能性
RAPID参考手册-RAPID概述,运动和I/O原理部分-I/O原理
I/O配置
技术相关手册-系统参数
定义事件程序
技术相关手册-系统参数
加载/安装任务模块
技术相关手册-系统参数
1.5.“:
=”—赋值
用途:
“:
=”指令用来给数据赋一个新值。
这一个值可以是包括从常量值到任意的表达式中的任何一个。
例如reg1+5*reg3。
基本范例:
指令的基本范例说明如下。
也可参见第19页更多范例。
例1reg1:
=5;
数值5赋给reg1。
例2reg1:
=reg2-reg3;
reg2-reg3计算返回的数值赋给reg1。
例3counter:
=counter+1;
counter增加1。
项目:
Data:
=Value
Data:
数据类型:
所有
将被赋新值的数据。
Value:
数据类型:
和Data一样。
期望的数值。
更多范例:
该指令的更多范例说明如下。
例1tool1.tframe.trans.x:
=tool1.tframe.trans.x+20;
tool1的TCP在X方向上移动20毫米。
例2pallet{5,8}:
=Abs(value)
pallet矩阵的一个元素被赋予一个等于value变量的绝对值的数值。
限制:
数据(将被改变数值的)不可以是:
常量
非数值数据类型
数值或者数据必须有相似的(相同的或者别名的)数据类型。
语法:
(EBNF)
<赋值目标>“:
=”<表达式>“;”
<赋值目标>:
:
=<变量>|<恒量>|<参数>|
相关信息:
相关信息
参看
表达式
RAPID参考手册-RAPID概述,基本特性部分-表达式
非数值数据类型
RAPID参考手册-RAPID概述,基本特性部分-数据类型
给数据赋一个初始数值
操作员手册-IRC5和FlexPendant,FlexPendant部分编辑数据实例
1.6.BitClear—在一个字节数据中清除一个特定位
用途:
BitClear用来清除(设为0)定义的字节数据中一个特定的位。
基本范例:
该指令的基本范例说明如下。
例1CONSTnumparity_bit:
=8;
VARbytedata1:
=130;
BitCleardata1,parity_bit;
变量data1中位号8(parity_bit)将设为0,例如变量data1的内容将从130变成2(整数表示法)。
当使用BitClear时数据类型byte的位操作在下图有说明。
项目:
BitClearBitDataBitPos
BitData:
数据类型:
字节
整型表示法的位数据,将被改变的数据。
BitPos:
数据类型:
数字
BitData中将被设为零的位的位置(1-8)。
限制:
字节数据类型的范围是十进制的0-255。
有效的位的位置为1-8。
语法:
BitClear[BitData‘:
=’]<字节变量或者恒量(INOUT)>’,’[BitPos’:
=’]<数字表达式(IN)>’;’
相关信息:
相关信息
参看
在字节数据中设定一个特定的位
BitSet—在字节数据中设定一个特定的位,第23页
检查字节数据中特定的位是否被设置
BitCheck—检查字节数据中特定的位是否被设置,第654页
位的其他功能
RAPID参考手册-RAPID概述,RAPID摘要部分-数学-位功能
1.7.BitSet—在字节数据中设定一个特定的位
用途:
BitSet用来在定义的字节数据中把一个特定位设为1。
基本范例:
该指令的基本范例说明如下。
例1CONSTnumparity_bit:
=8;
VARbytedata1:
=2;
BitSetdata1parity_bit;
变量data1中位号8(parity_bit)将设为1,例如变量data1的内容将从2变成130(整数表示法)。
当使用BitClear时数据类型byte的位操作在下图有说明。
项目:
BitSetBitDataBitPos
BitData:
数据类型:
字节
整型表示法的位数据,将被改变的数据。
BitPos:
位的位置
数据类型:
数字
BitData中将被设为零的位的位置(1-8)。
限制:
字节数据类型的范围是十进制的0-255。
有效的位的位置为1-8。
语法:
BitSet[BitData‘:
=’]<字节变量或者恒量(INOUT)>’,’[BitPos’:
=’]<数字表达式(IN)>’;’
相关信息:
相关信息
参看
在字节数据中清除一个特定的位
BitClear—在字节数据中清除一个特定的位,第23页
检查字节数据中特定的位是否被设置
BitCheck—检查字节数据中特定的位是否被设置,第654页
位的其他功能
RAPID参考手册-RAPID概述,RAPID摘要部分-数学-位功能
1.8.BookErrNo—定制一个RAPID系统错误号码
用途:
BookErrNo用来定制一个新的RAPID系统错误号码。
基本范例:
该指令的基本范例说明如下:
例1!
Introduceanewerrornumberinagluesystem
!
Note:
Thenewerrorvariablemustbedeclaredwiththeinitialvalue–1;
VARerrnumERR_GLUEFLOW:
=-1;
!
BookthenewRAPIDsystemerrornumber
BookErrNoERR_GLUEFLOW;
变量ERR_GLUEFLOW将被赋给一个空闲的系统错误号码,将在RAPID代码中使用。
!
Usethenewerrornumber
IFdil=0THEN
RAISEERR_GLUEFLOW;
ELSE
…
ENDIF
Errorhandling
ERROR
IFERRNO=ERR_GLUEFLOWTHEN
….
ELSE
…
ENDIF
如果数字输入dil是0,新定制的错误号码将被提出并且系统错误变量ERRNO将被设定到新定制的错误号码。
这些用户产生的错误的错误处理然后可以像平常一样在错误处理器中处理。
项目:
BookErrNoErrorName
ErrorName:
数据类型:
errnum
新的RAPID系统错误变量名称。
限制:
新的错误变量不可以像程序变量一样被声明。
新的错误变量必须带初始值-1声明,这就给出一个信息:
该错误应该是一个RAPID系统错误。
语法:
BookErrNo[ErrorName‘:
=’]‘;’
相关信息:
相关信息
参看
错误处理
RAPID参考手册-RAPID概述,基本特性部分-错误恢复
错误号码
Errnum—错误号码,第941页
调用一个错误处理器
RAISE—调用一个错误处理器,第303页
1.9.Break—跳出程序执行
用途:
Break用来在程序执行中制造一个立即跳出,为了RAPID程序代码调试的目的。
基本范例:
该指令的基本范例说明如下。
例1…..
Break
….
程序执行停止,为了调试目的的分析变量、数值等成为可能。
程序执行:
该指令立即停止程序执行,不用等机器人或者外部轴到达他们编程的当时运动的目的点。
程序执行然后能从下一条指令重新开始。
如果在一些事件程序中有Break指令,程序的执行将被打断,并且没有停止事件程序将被执行。
下次同一事件发生的时候事件程序将从开头执行。
语法:
Break‘;’
相关信息:
相关信息
参看
程序活动停止
Stop—停止程序执行,第438页
致命错误后停止
EXIT—终止程序执行,第92页
终止程序执行
EXIT—终止程序执行,第92页
只停止机器人运动
StopMove—停止机器人运动,第442页
1.10.CallByVar—通过一个变量调用程序
用途:
CallByVar(CallByVariable)可以使用一个特定的名称,例如proc_name1,proc_name2,proc_name3…proc_namex通过一个变量调用程序。
基本范例:
该指令的基本范例说明如下:
也可参照第28页更多范例。
例1reg1:
=2;
CallByVar“proc”,reg1;
程序proc2被调用。
项目:
CallByVarNameNumber
Name:
数据类型:
字符串
程序名称的第一部分,例如proc_name。
Number:
数据类型:
数字
程序号码的数字数值。
该数值将被转换成一个字符串,给出程序名称的第二部分,例如,1。
数值必须是一个正整数。
更多范例:
如何作出程序调用的动态和静态选择的更多范例。
例1—程序调用的静态选择。
TESTreg1
CASE1:
Lf_doordoor_loc;
Case2:
Rf_doordoor_loc;
Case3:
Lr_doordoor_loc;
Case4:
Rr_doordoor_loc;
DEFAULT:
EXIT;
ENDTEST
取决于寄存器reg1的数值是1、2、3或者4,来调用不同的程序来对选择的门完成合适的工作,门位于项目door_loc。
例2—用RAPID语法动态选择程序调用。
Reg1:
=2;
%”proc”+NumToStr(reg1,0)%door_loc;
程序proc2和项目door_loc被调用。
限制:
所有程序必须有一个特定的名称,例如proc1,proc2,proc3。
例3—用CallByVar动态选择程序调用。
Reg1:
=2;
CallByVar“proc”,reg1;
程序proc2被调用。
限制:
所有程序必须有一个特定的名称,如proc1,proc2,proc3,并且没有项目可以被使用。
限制:
只能被用来调用不带参数的程序。
不能用来调用LOCAL(本地)程序。
CallByVar的执行比普通的程序调用要占用多一点的时间。
错误处理:
如果Number项目小于零或者不是一个整数,系统参数ERRNO被设成ERR_ARGVALERR。
如果相关到一个未知的程序,系统参数ERRNO被设成ERR_REFUNKPRC。
如果程序调用错误(不是程序错误),系统参数ERRNO被设成ERR_CALLPROC。
这些错误可以在错误处理器中进行处理。
语法:
CallByVar[名称‘:
=’]<字符串表达式(IN)>‘,’[号码‘:
=’]<数字表达式(IN)>‘;’
相关信息:
相关信息
参照
调用程序
RAPID参考手册-RAPID概述,基本特性部分-程序
操作员手册-IRC5和FlexPendant
1.11.CancelLoad—取消模块的加载
用途:
CancelLoad用来取消用StartLoad指令正在加载或者已经加载的模块。
CancelLoad只能用在指令StartLoad和WaitLoad之间。
基本范例:
该指令的基本范例说明如下。
也可参见第30页的更多范例。
例1ConcelLoadload1
加载load1被取消。
项目:
CancelLoadLoadNo
LoadNo:
数据类型:
loadsession
相关到被StartLoad所开始的加载系列。
更多范例:
如何使用该指令的更多范例说明如下。
例1VARloadsessionload1;
StartLoad“HOME:
”\File:
=”PART_B.MOD”,load1;
…
IF…
CancelLoadLoad1;
StartLoad“HOME:
”\File:
=”PART_C.MOD”,load1;
ENDIF
…
WaitLoadload1;
指令CancelLoad将取消正在进行的PART_B.MOD模块的加载,而要使加载PART_C.MOD成为可能。
错误处理:
如果项目LoadNo指定的变量没有在使用,也就是说没有进行加载,系统变量ERRNO将设为ERR_LOADNO_NOUSE。
这个错误然后在错误处理器中可能被处理。
语法:
CancelLoad[LoadNo‘:
=’]<加载系列变量(VAR)>’;’
相关信息:
相关信息
参照
在执行过程中加载一个程序模块
StartLoad—在执行过程中加载一个程序模块,第410页
把加载的模块连接到任务中
WaitLoad—把加载的模块连接到任务中,第566页
加载系列
Loadsession—程序加载系列,第968页
加载一个程序模块
Load—在执行过程中加载一个程序模块,第182页
卸载一个程序模块
Unload—在执行过程中卸载一个程序模块,第553页
接受未解决的相关
技术相关手册-系统参数,标题控制器部分-任务类型-检查未解决的相关
1.12.CirPathMode—在圆形路径过程中工具再定位
用途:
CirPathMode(圆形路径模式)使在圆周运动中选择不同的模式再定位工具成为可能。
该指令只能被使用在主任务T_ROB1,或者如果在多运动系统中,使用在运动任务中。
基本范例:
该指令的基本范例说明如下:
例1CirPathMode\PathFrame
在所有成功的圆形运行过程中,从开始点到ToPoint的实际路径格式中工具再定位的标准模式。
这是系统中的缺省值。
例2CirPathMode\ObjectFrame
在所有成功的圆形运行过程中,从开始点到ToPoint的实际对象格式中工具再定位的修改的模式。
例3CirPathMode\CirPointOri
在所有成功的圆形运行过程中,从开始点通过程序中的CirPoint再定位到ToPoint的工具再定位的标准模式。
描述:
PathFrame
以下表格中的图显示了标准模式\PathFrame下的工具再定位。
说明
描述
箭头显示了工具从腕部中心点到工具中心点也就是编程点。
腕部中心点的路径在图中用虚线点出。
\PathFrame模式使工具绕圆柱得到相同的角度变得容易。
机器人手腕将不能突破CirPoint中编程的方向。
以下表格中的图显示了用固定工具方向的标准模式\PathFrame的使用。
说明
描述
该图片显示了用倾斜工具和\PathFrame模式在圆的中心获得的工具方向。
和下图中使用\ObjectFrame模式的相比较。
ObjectFrame
下表中的图显示了修改的模式\ObjectFrame和固定工具方向的使用。
说明
描述
该图片显示了用倾