Hi,
I am fairly new to KUKA robot programming. I am trying to do something that seems straight forward, but...
In some cases an axis ends up out of the valid range. For example, we may encounter a singularity which causes axis 4 to go to 185.5 degrees. Valid range is +/-185 degrees. In cell.src we call PTP $AXIS_ACT; but this gives us an error because it is outside the valid range. So, I implemented the following code:
;Move axis back in range if they are out of valid range
;Axis 1
IF $AXIS_ACT_MEAS.A1 >= 170 THEN
PTP {A1 167}
ENDIF
IF $AXIS_ACT_MEAS.A1 <= -170 THEN
PTP {A1 -167}
ENDIF
;Axis 2
IF $AXIS_ACT_MEAS.A2 >= 45 THEN
PTP {A2 42}
ENDIF
IF $AXIS_ACT_MEAS.A2 <= -190 THEN
PTP {A2 -187}
ENDIF
;Axis 3
IF $AXIS_ACT_MEAS.A3 >= 156 THEN
PTP {A3 153}
ENDIF
IF $AXIS_ACT_MEAS.A3 <= -120 THEN
PTP {A3 -117}
ENDIF
;Axis 4
IF $AXIS_ACT_MEAS.A4 >= 185 THEN
PTP {A4 182}
ENDIF
IF $AXIS_ACT_MEAS.A4 <= -185 THEN
PTP {A4 -182}
ENDIF
;Axis 5
IF $AXIS_ACT_MEAS.A5 >= 120 THEN
PTP {A5 117}
ENDIF
IF $AXIS_ACT_MEAS.A5 <= -120 THEN
PTP {A5 -117}
ENDIF
;Axis 6
IF $AXIS_ACT_MEAS.A6 >= 350 THEN
PTP {A6 347}
ENDIF
IF $AXIS_ACT_MEAS.A6 <= -350 THEN
PTP {A6 -347}
ENDIF
When I run this code it errors with KSS 1443. This appears to be happening because the first axis move is relative. So, I wanted to use a variable to determine how far I needed to move my out of range axis. Something like:
REAL MOVE_AXIS
IF $AXIS_ACT_MEAS.A4 >= 185 THEN
MOVE_AXIS=182-$AXIS_ACT_MEAS.4
PTP {A4 MOVE_AXIS}
ENDIF
However, WorkVisual is not happy with this. Any ideas on how to move my axis back into a valid range before calling PTP $AXIS_ACT?
Much Thanks!
bwait