2024年4月16日发(作者:东郭英才)
ABB机器人提前判断一个robtarget是否可达
1. 机器人在运行MoveL p100,v1000,z50,tool0WObj:=wobj0;等语句时,若机器人走
不到该位置p100,会出现上述报错。
2. p100为robtarget类型数据,即记录的是xyz等数据。
3. 该数据若非示教,而是通过计算或者外部相机拍照发送得到,有时就会发生机器
人不可达。
4. 此时只有机器人运行到该行代码时,机器人报警并停机。
5. 是否可以提早对p100进行运算,检测机器人是否可达?
6.可以使用函数CalcJoint函数,该函数返回p100在tool0下对应的各轴数据
jpos10:=CalcJointT(p100,tool0ErrorNumber:=myerrnum);
7. 增加ErrorNumber可选参数,此时若计算出的位置机器人不可达,则会得到报警
代码ERR_ROBLIMIT(单轴超限)或者ERR_OUTSIDE_REACH(机器人不可达),后续对该错
误代码处理即可。此时机器人不会停机。
8. 代码如下:
jpos10:=CalcJointT(Home20,tool0ErrorNumber:=myerrnum);
IFmyerrnum=ERR_OUTSIDE_REACH THENTPWrite"Joint jpos10 is outside reac
h.";
TPWrite"_1: "+ValToStr(_1);
TPWrite"_2: "+ValToStr(_2);
TPWrite"_3: "+ValToStr(_3);
TPWrite"_4: "+ValToStr(_4);
TPWrite"_5: "+ValToStr(_5);
TPWrite"_6: "+ValToStr(_6);ENDIF
9. 假设此时Home20位置的x为10000,机器人完全不可达,则输出结果如下:
2024年4月16日发(作者:东郭英才)
ABB机器人提前判断一个robtarget是否可达
1. 机器人在运行MoveL p100,v1000,z50,tool0WObj:=wobj0;等语句时,若机器人走
不到该位置p100,会出现上述报错。
2. p100为robtarget类型数据,即记录的是xyz等数据。
3. 该数据若非示教,而是通过计算或者外部相机拍照发送得到,有时就会发生机器
人不可达。
4. 此时只有机器人运行到该行代码时,机器人报警并停机。
5. 是否可以提早对p100进行运算,检测机器人是否可达?
6.可以使用函数CalcJoint函数,该函数返回p100在tool0下对应的各轴数据
jpos10:=CalcJointT(p100,tool0ErrorNumber:=myerrnum);
7. 增加ErrorNumber可选参数,此时若计算出的位置机器人不可达,则会得到报警
代码ERR_ROBLIMIT(单轴超限)或者ERR_OUTSIDE_REACH(机器人不可达),后续对该错
误代码处理即可。此时机器人不会停机。
8. 代码如下:
jpos10:=CalcJointT(Home20,tool0ErrorNumber:=myerrnum);
IFmyerrnum=ERR_OUTSIDE_REACH THENTPWrite"Joint jpos10 is outside reac
h.";
TPWrite"_1: "+ValToStr(_1);
TPWrite"_2: "+ValToStr(_2);
TPWrite"_3: "+ValToStr(_3);
TPWrite"_4: "+ValToStr(_4);
TPWrite"_5: "+ValToStr(_5);
TPWrite"_6: "+ValToStr(_6);ENDIF
9. 假设此时Home20位置的x为10000,机器人完全不可达,则输出结果如下: