SomeTekk, thanks for you advice! I found my own way, using second trigger <Trig_Pos_Reached>, which is checked position. If position has not been reached, the program pointer doesn’t move further:
IDelete VacInt;
CONNECT VacInt WITH TrapPick;
…
!Turning on vacuum before pick position
TriggIO Trig_Vac_ON,0\Start\DOp:=do_Valve_Rob1_1_on,1;
TriggL RelTool(RelTool(Offs(pPick,x_brick+26,y_brick,z_brick),0,0,0\Rz:=rot_z_brick+flip_rot_R1),0,0,0\Rx:=tilt_x_brick\Ry:=tilt_y_brick),
v100,Trig_Vac_ON,z0\Inpos:=fllwtime0_5,VacuumGrip\WObj:=wobj_cnv1;
!Pick position
MoveL RelTool(RelTool(Offs(pPick,x_brick+26,y_brick,z_brick+50),0,0,0\Rz:=rot_z_brick+flip_rot_R1),0,0,0\Rx:=tilt_x_brick\Ry:=tilt_y_brick),
v150,z10,VacuumGrip\WObj:=wobj_cnv1;
!Check vacuum
TriggCheckIO Trig_Vac_Check,0,di_Vac1_1,EQ,1\StopMove,VacInt;
!The signal <do_PosReached> is set to 1 when point “pAboveConv” is reached
TriggIO Trig_Pos_Reached,0\DOp:=do_PosReached,1;
TriggL pAboveConv,v300,Trig_Vac_Check\T2:=Trig_Pos_Reached,z50,VacuumGrip;
!If do_PosReached = 0 it is mean that TRAP routine will run.
WaitDO do_PosReached,1;
SetDO do_PosReached,0;
!TRAP routine is running here
IF Rob1_PickInt=FALSE THEN
IF bricks_in_frame=1 THEN
DropWObj wobj_cnv1;
TPWrite “Rob1 dropped wobj”;
ENDIF
WaitSyncTask\InPos,Rob1_Ready,task_list;
TPWrite “ROB1 WaitSyncTask”;
ENDIF