TECH2_ Koll_Ueb Betriebsart = Aktivieren Start Bereich = 2 Offset = 1 EIN
先分析一下力矩参数监控功能的程序
DEF USER_MAIN 在到达轨迹点之后运行
CASE 204
Index=PAR3 定义选择的数组号 (范围1-24)
WHILE (PAR2<1) OR (PAR2>2) 循环判断取值错误,直至错误消除
Basic_R_Msg(17,#QuitMsg) ;P2取值错误
ENDWHILE
SWITCH PAR1 更新碰撞数据
CASE 1
碰撞数据开始更新
IF PAR2==1 THEN
单轴最大扭矩偏差 清零
FOR i=1 to 6 定义1-6轴
$TORQ_DIFF[i]=0 清零
ENDFOR
碰撞数据 清零
Koll_dat[Index].A1=0 index=par3 (范围1-24)
Koll_dat[Index].A2=0
Koll_dat[Index].A3=0
Koll_dat[Index].A4=0
Koll_dat[Index].A5=0
Koll_dat[Index].A6=0
ENDIF
碰撞数据停止更新 开始计算新的碰撞数据
IF PAR2==2 THEN
IF ($TORQ_DIFF[1]) > (Koll_dat[Index].A1) THEN
如果 A1轴的扭矩偏差>当前数组 A1轴的碰撞数据 则
Koll_dat[Index].A1=$TORQ_DIFF[1]+PAR4
当前数组 A1轴的碰撞数据=A1轴的扭矩偏差+偏移值(PAR4)
ENDIF
.
.
.
.
.
IF ($TORQ_DIFF[6]) > (Koll_dat[Index].A6) THEN 同上
Koll_dat[Index].A6=$TORQ_DIFF[6]+PAR4
ENDIF
IF (Koll_dat[Index].A1<>0) AND (Koll_dat[Index].A2<>0) AND (Koll_dat[Index].A3<>0) AND (Koll_dat[Index].A4<>0) AND (Koll_dat[Index].A5<>0) AND (Koll_dat[Index].A6<>0) THEN
Koll_Teach[Index]=TRUE
Basic_R_Msg(26,#NotifyMsg) ;如果当前数组A1-A6轴碰撞数据有一轴为0,则提示报警
ELSE
Koll_Teach[Index]=FALSE
ENDIF
ENDIF
CASE 2 碰撞检测激活
碰撞检测激活
IF PAR2==1 THEN
A1-A6轴碰撞参数监控
$TORQMON[1]=Koll_dat[Index].A1
$TORQMON[2]=Koll_dat[Index].A2
$TORQMON[3]=Koll_dat[Index].A3
$TORQMON[4]=Koll_dat[Index].A4
$TORQMON[5]=Koll_dat[Index].A5
$TORQMON[6]=Koll_dat[Index].A6
ENDIF
碰撞检测停止 A1-A6轴碰撞参数监控恢复为200
IF PAR2==2 THEN
FOR i=1 to 6
$TORQMON[i]=(200-KOLL_RED)
ENDFOR
ENDIF
;
DEFAULT P1无正确参数时执行
Basic_R_Msg(20,#QuitMsg) ;P1取值错误
ENDSWITCH
在程序中使用力矩监控功能时,需要注意的情况
由于此功能是在 USER_MAIN 中编写的,功能发挥作用需要机器人到达轨迹点并完成SPS指令之后,因此,我们不能在机器人工具与工件完全接触的轨迹点调用此功能,应提前一段距离,在刚刚接触时或接触一部分时,在此位置新建立坐标点,调用功能,检测力矩是否超差,防止工具或者工件损伤。
在执行力矩检测功能后,机器人离开轨迹点,$TORQMON[i]的值会恢复为200,说明此功能只在调用的轨迹点检测力矩参数,离开后不会继续保持力矩监控数据,编程时需要注意,多点力矩监控时,该功能需要多点调用。
$TORQMON[ ]与Koll_dat[Index]的偏差值不要设置过小,容易造成力矩检测功能误报警,如果参数设置过小,由于A3轴与A6轴的负载重量惯性,出现力矩报警。我在调试机器人自动换电极时,检测力矩偏差值为8-10 ,抓手定位销与工件贴合位置力矩检测需要根据抓手实际情况调节监控参数,不需要每一个轴都减小偏差设置,将轨迹方向上动作幅度大的单个或者几个轴设置一下就好,减少误报警的可能。
此功能可以根据需要拆分开来用。文章开始的图片就是提前定义好PAR3的数组数据,直接调用,不需要执行数据清零和数据计算的指令。
更多原创内容请关注 公众号 工业半日闲
楼主最近还看过