Homing

Overview

In case of real axis:

To restore the axis positions of the robot axes after a reboot of the controller, use the homing mode IF_Homing.RestorePosFromAxisEncoder(...).

Set the input parameter i_lrAbsEncOffset to 500.0 so that the position of the axes is restored properly.

In case of virtual axis:

Use the homing mode IF_Homing.SetPosAxisPosition(...)

Set the input parameter i_lrHomePosition according to the values in the following table:

Robot Type

SetPos

P0 / P1

- 33

P2 / P4 / P5 / P6

0.0

Example for AxisA

In case of real axis:

stRobotInterface.iq_ifHoming.RestorePosFromAxisEncoder(
                         i_etComponent := ROB.ET_RobotComponent.AxisA,
                         i_lrAbsEncOffset	:= 500.0,
                         i_xRestoreOnInit	:= TRUE,
                         i_xRestoreOnHoming := TRUE,
                         etDiag =>,
                         q_etDiagExt =>,
                         q_sMsg	=>);

In case of virtual axis:

stRobotInterface.iq_ifHoming.SetPosAxisPosition(
                         i_etComponent := ROB.ET_
                         RobotComponent.AxisA,
                         i_lrHomePosition := 0.0, // in case of P0/P1 -33.0
                         q_etDiag =>,
                         q_etDiagExt =>,
                         q_sMsg=>);

Example for AxisB

In case of real axis:

stRobotInterface.iq_ifHoming.RestorePosFromAxisEncoder(
                         i_etComponent := ROB.ET_RobotComponent.AxisB,
                         i_lrAbsEncOffset	:= 500.0,
                         i_xRestoreOnInit	:= TRUE,
                         i_xRestoreOnHoming := TRUE,
                         etDiag =>,
                         q_etDiagExt =>,
                         q_sMsg	=>);

In case of virtual axis:

stRobotInterface.iq_ifHoming.SetPosAxisPosition(
                         i_etComponent := ROB.ET_
                         RobotComponent.AxisB,
                         i_lrHomePosition := 0.0, // in case of P0/P1 -33.0
                         q_etDiag =>,
                         q_etDiagExt =>,
                         q_sMsg=>);

Example for AxisC

In case of real axis:

stRobotInterface.iq_ifHoming.RestorePosFromAxisEncoder(
                         i_etComponent := ROB.ET_RobotComponent.AxisC,
                         i_lrAbsEncOffset	:= 500.0,
                         i_xRestoreOnInit	:= TRUE,
                         i_xRestoreOnHoming := TRUE,
                         etDiag =>,
                         q_etDiagExt =>,
                         q_sMsg	=>);

In case of virtual axis:

stRobotInterface.iq_ifHoming.SetPosAxisPosition(
                         i_etComponent := ROB.ET_
                         RobotComponent.AxisC,
                         i_lrHomePosition := 0.0, // in case of P0/P1 -33.0
                         q_etDiag =>,
                         q_etDiagExt =>,
                         q_sMsg=>);