Testing Touchprobe (Example)

Description

//Test TPs

IF astTouchprobe[1].lrPosition >= 360 THEN //Set period, required for SMGs TP
   astTouchprobe[1].etSetposMode:=SMG.ET_SetposMode.Relative;
   astTouchprobe[1].lrSetposValue:=-360;
   astTouchprobe[1].xDoSetpos:=TRUE;
END_IF

CASE iState_TpTest OF

10://SMGs TP
   astTouchprobe[1].ifTouchProbe:=TP_0;
   astTouchprobe[1].etPositionSource:=SMG.ET_PositionSource.RefPosition; astTouchprobe[1].etEdge;
   astTouchprobe[1].xArm:=FALSE; astTouchprobe[1].etSetposMode:=SMG.ET_SetposMode.Absolute;
   astTouchprobe[1].lrSetposValue:=0.0;
   astTouchprobe[1].xDoSetpos:=TRUE; iState_TpTest:=11;

11:
   IF NOT astTouchprobe[1].xArm THEN
      astTouchprobe[1].xArm:=TRUE;
      iState_TpTest:=12;
   END_IF

12:
   tpFilter(IN:=TP_0.Value, PT:=T#300MS , Q=> , ET=> );
   IF astTouchprobe[1].xCaptureOk AND NOT xTPLock THEN
      xTPLock:=TRUE;
      lrCapturedValue_TP0:=astTouchprobe[1].lrCapturedPosition;
   END_IF
   IF tpFilter.ET > T#10MS THEN
      iState_TpTest:=13;
   END_IF

13:
   tpFilter(IN:=TP_0.Value, PT:=T#300MS , Q=> , ET=> );
   IF NOT tpFilter.Q THEN
      xTPLock:=FALSE;
      iState_TpTest:=11;
   END_IF

END_CASE