一。SearchL指令简介:
当沿直线移动工具中心点时,SearchL(Search Linear)用于搜索位置。在移动时,机器人会监控一个数字输入信号或持续变量。当信号持续变量的值变为所 需值时,机器人立即读取当前位置。当由机械臂固定的工具为用于表面探测的探针时,通常可使用该指令。使用SearchL 指令,可获得工件的概略坐标。
本指令仅可用于主任务T_ROB1,或者如果在MultiMove系统中,则可用于运动任务 中。使用搜索指令时,重要的是配置I/O系统,以便为设置系统物理信号留以极短的时间, 从而获得关于设置的信息(使用I/O设备以及中断控制,而非查询控制)。如何进行上 述操作,不同的现场总线可能会采用不同的方法。如果使DeviceNet,则ABB单元 DSQC 651(AD Combi I/O)和DSQC 652(数字I/O)将留以短暂的时间,因为他们 正在使用状态变化型连接。如果使用其他现场总线,则确保以正确的方式来配置网络, 从而获得正确的条件。
二。SearchL指令的使用:
1.语法:
2.案例说明:
例 1
SearchL di1, sp, p10, v100, probe;
以v100的速度,使probe的TCP沿直线朝位置p10 移动。当信号di1的值改变为有效
时,将位置储存在sp中。
例 2
SearchL \Stop, di2, sp, p10, v100, probe;
将probe的TCP沿直线朝位置p10移动。当信号di2的数值改变为有效时,将位置储存
在sp中,且机械臂立即停止。
例 3
PERS bool mypers:=FALSE;
…
SearchL mypers, sp, p10, v100, probe;
probe 的 TCP 朝位置 p10 以直线方式移动,速度为 v100。当持续变量 mypers 变
为 TRUE 时,位置存储到 sp。
三。库卡上实现SearchL指令:
如果要在库卡机器人上实现SerachL功能的话,这里需要使用到中断功能,在实现之前,可以先回顾下有关中断的知识点。
当你完全清楚了库卡机器人中断相关指令及知识,接下来的程序(具体可以参照Volvo标准)就会得心应手(程序纯粹摘录,仅供提供思路,如需实际使用可以依照改写):
代码如下:
GLOBAL DEFFCT BOOL SEARCHL(InPno :IN,StopPosition :OUT,EndPosition :IN,VelPara :IN,ToolName :IN,PartDataName :IN,ExtendedLoad :IN )
DECL INT InPno
DECL E6POS StopPosition
DECL E6POS EndPosition
REAL VelPara
DECL ToolType ToolName
DECL LOAD ExtendedLoad ;Extended Load
DECL PartDataType PartDataName
DECL LOAD ActualLoadTool, ActualLoadPart
Found=FALSE
ChkSub ( )
INTERRUPT DECL 1 WHEN $MEAS_PULSE[InPno]<>FALSE DO Not_Much ( )
CPPara (VelPara,ACT_ACC_CP ) ; path velocity and acceleration
$ADVANCE=0
IF VarState("ExtendedLoad")==#Initialized Then
ActualLoadTool=ExtendedLoad
ActualLoadPart=ExtendedLoad
ELSE
ActualLoadTool=ToolName.TLoad
ActualLoadPart=PartDataName.PartLoad
EndIf
IF ToolName.External THEN
SetExtTool (ToolName ) ; set the $Base
SetFlange (PartDataName,ActualLoadPart ) ; set the $Tool, $Load
$IPO_MODE=#TCP
ELSE
SetTool (ToolName,ActualLoadTool )
SetBase (PartDataName )
$IPO_MODE=#BASE
ENDIF
WAIT FOR TRUE
Search (EndPosition ) ;搜寻过程如果提前获得结果则触发中断,提前跳出;
IF Found==TRUE THEN
StopPosition=FoundPosition
ENDIF
RETURN Found
ENDFCT
-----------------------------------------------------------------
DEF Search (EndPosition :IN )
;*************************************************
;Function: SearchL.src files
;*************************************************
DECL E6POS EndPosition
WAIT SEC SEARCHWAIT
INTERRUPT ON 1
LIN EndPosition
$ADVANCE=0
INTERRUPT OFF 1
END
-----------------------------------------------------------------
DEF Not_Much ( )
INTERRUPT OFF 1
BRAKE
FoundPosition=$POS_INT
Found=TRUE
RESUME
END
了解更多:库卡机器人
- 下一篇:库卡焊接工作站
- 上一篇:库卡的机器人在各大主机厂和电池企业大规模应用