RAPID应用被称作一项任务。一项任务包括一组模块。一个模块包含一组数据和程序声明。
数据类型:
Atomic(内置原子型/基本数据类型)数据类型:
1、bool为枚举类型,其值为真或假,提供了一种开展逻辑计算和关联计算的方式。
2、num型支持**算术计算和近似算术计算。
3、string型表示字符序列。
Record(记录型)数据类型:为一种带命名有序分量的复合类型。record类型的值为由各分量的值组成的复合值。一个分量可具备atomic型或record型,用户自定义复杂数据类型一般就是记录型。内置记录型有:
1、pos型表示空间位置(矢量)。
2、orient型表示在空间中的方位。
3、pose型表示坐标系(位置/方位组合)。
alias数据类型被定义为等同于另一种类型。alias类型提供一种对象分类手段。系统可采用alias分类来查找和显示与类型相关的对象,内置别名型数据有errnum和intnum。Errnum和intnum均为num的别名,用于表示错误和中断编号。
数据对象:
有四种数据对象:常量(CONST)、变量(VAR)、永久数据对象(PERS)和参数。永久(数据对象)可描述为“永久”变量。在两次会话之间,永久变量将保持值。在每次新会话开始时,即,当加载模块时(模块变量)或调用程序时(程序变量),将失去(重新初始化)变量值。
程序:
Rapid程序分为三类:无返回值程序(PROC)、有返回值程序(FUNC)和软中断程序。程序声明指定了程序的下列内容:名称,数据类型(仅对有返回值程序有效),参数(不适用于软中断程序),数据声明和语句(体),回退处理器(仅对无返回值程序有效),错误处理器和撤销处理器
程序声明的参数表指定了调用程序时必须/可提供的参数(实参)。参数将为必要参数或可选参数。可选参数可从程序调用的参数表省去,声明或调用时需要使用符号“”。两项或两项以上可选参数可声明为彼此排斥(用符号“|“分隔,在此情况下,程序调用中*多只可有其中一项可选参数。可利用预定义有返回值程序Present来测试可选参数是否存在。可将特殊类型switch分配给可选参数,这能提供采用“开关型参数”的手段,即,仅以名称(非值)赋予的参数。开关型的域为空,没有值能转移给开关型参数。
如何实现机器人在任意路径上可自动回原点
多数项目机器人直接自动回原点可能会导致撞机,只能通过增加过渡点的方式实现,有的时候过渡点可以设置成机器人当前位置在指定坐标系中往指定方向偏移指定位移的位置,如果需要更加严格保证安全,可以根据位置和旋转方向来判定机器人需要往何种方向偏移,这里不做深究。
FUNC robtarget getRobT(switch Rel,num x,num y,num z,inout tooldata tool,wobjdata wobj)
VAR robtarget pCurrent;
pCurrent:=crobT(tool:=toolwobj:=wobj);
IF Present(Rel) THEN
IF Present(x) THEN
pCurrent.trans.x:=pCurrent.trans.x+x;
ENDIF
IF Present(y) THEN
pCurrent.trans.y:=pCurrent.trans.y+y;
ENDIF
IF Present(z) THEN
pCurrent.trans.z:=pCurrent.trans.z+z;
ENDIF
ELSE
IF Present(x) THEN
pCurrent.trans.x:=x;
ENDIF
IF Present(y) THEN
pCurrent.trans.y:=y;
ENDIF
IF Present(z) THEN
pCurrent.trans.z:=z;
ENDIF
ENDIF
RETURN pCurrent;
tENDFUNC
其中实现了有开关型参数Rel情况下,实现增量偏移,无Rel时实现**偏移,也可以根据可选参数x,y,z实现指定方向偏移,返回robtarget目标位置(过渡点)。
更多资讯:ABB机器人