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 |
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=>);
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=>);
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=>);