4. 通常自定义带可选参数例行程序中,通过ABB机器人编程的Present函数来判断用户是否使用了该可选参数。也可使用如下例子。此处问号作条件判断,即若调用MoveCircle时,使用了可选参数WObj,则代码执行MoveL p1,Speed,Zone,ToolWObj:=WObj,若没有使用可选参数WObj,则代码执行MoveL p1,Speed,Zone,Tool;PROC MoveCircle(
robtarget pCenter,
num Radius,
speeddata Speed,
zonedata Zone,
PERS tooldata Tool
\PERS wobjdata WObj)
VAR robtarget p1;
VAR robtarget p2;
VAR robtarget p3;
VAR robtarget p4;
VAR num text_res_no;
p1:=pCenter;
p2:=pCenter;
p3:=pCenter;
p4:=pCenter;
p1.trans:=pCenter.trans+[0,Radius,0];
p2.trans:=pCenter.trans+[Radius,0,0];
p3.trans:=pCenter.trans+[0,-Radius,0];
p4.trans:=pCenter.trans+[-Radius,0,0];
MoveL p1,Speed,Zone,Tool\WObj?WObj;
!若用户调用MoveCircle时,使用了可选参数WObj,则运行
!MoveL p1,Speed,Zone,Tool\WObj:=WObj;
!若用户调用MoveCircle时,没有使用可选参数WObj,则运行
!MoveL p1,Speed,Zone,Tool;
MoveC p2,p3,Speed,z10,Tool\WObj?WObj;
MoveC p4,p1,Speed,Zone,Tool\WObj?WObj;
ENDPROC