请打开RobotStudio查看帮助下的 ABB机器人的RAPID指令 手册
ClkStart用于启动作为定时用秒表的时钟。
ClkStop用于停止作为定时用秒表的时钟。
ClkRead用于读取作为定时用秒表的时钟。
ClkReset用于重置作为定时用秒表的时钟。 使用时钟之前,可以使用此指令,以确保设置为0。
在我们使用时钟前应使用ClkReset指令清空定时器的值,以便我们更好使用。
VAR clock myclock; !定义一个clock
VAR num time; !定义一个变量用于存储时间
ClkReset myclock; ! 复位时钟
ClkStart myclock; ! 开始计时
MoveJ home, v1500, z50, tool0;
ClkStop myclock; ! 停止计时
time:=ClkRead(myclock); !读出时间
TPWrite "Time:"\Num:=time; !在面板上显示时间
WaitTime 2;
TPErase;
TPReadFK - 读取功能键;
TPReadNum(FlexPendant Read Numerical)从示教器读取数字;
TPWrite(FlexPendant Write)用于在FlexPendant示教器上写入文本。可将特定数据的值同文本一样写入。和c语言的printf一样;
TPErase - 擦除在示教器上印刷的文本;
我的程序是从面板读取数字:
PROC num get_pannel_input_num()
VAR num user_input_num:=0;
TPReadNum user_input_num, "How many objects should be produced?";
TPWrite "Num:"\Num:=user_input_num;
WaitTime 3;
TPErase;
RETURN user_input_num;
ENDFUNC
我的程序是检查机器人是否在home点,具体精度的控制,请自行修改
用到的函数:
CRobT(Current Robot Target)
用于读取机械臂和外轴的当前位置。 该函数返回robtarget值以及位置(x、y、z)、方位(q1 … q4)、机械臂轴配置和外轴位置。如果仅读取机械臂TCP(pos)的x、y和z值,则转而使用函数CPos。
示例:
VAR robtarget p1;
MoveL *, v500, fine \Inpos := inpos50, tool1;
p1 := CRobT(\Tool:=tool1 \WObj:=wobj0);
targetpos :要到达的目标点
tcp: 你所使用的工具坐标
FUNC bool isHomePos(robtarget targetpos,INOUT tooldata tcp)
VAR num num1:=0;
var robtarget actualpos :=[[495.981197913,0,607.935290498],[0.79335334,0,0.608761429,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
actualpos:= CRobT(\Tool:=tcp\WObj:=wobj0);
IF actualpos.trans.x>targetpos.trans.x-20 AND actualpos.trans.xtargetpos.trans.y-20 AND actualpos.trans.ytargetpos.trans.z-20 AND actualpos.trans.ztargetpos.rot.q1-20 AND actualpos.rot.q1targetpos.rot.q2-20 AND actualpos.rot.q2targetpos.rot.q3-20 AND actualpos.rot.q3targetpos.rot.q4-20 AND actualpos.rot.q4
测试函数
PROC HomePosTest()
IF isHomePos(home,TCPAir) THEN
TPWrite "Is home postion now!";
ELSE
MoveJ home, v200, z100, TCPAir;
TPWrite "Go Home Postion";
ENDIF
WaitTime 2;
TPErase;
ENDPROC