Hi all,
Basic information of the robot -
KUKA AGILUS KR10 900
KSS version is V8.3.30
KRC4 10
Recently I have been doing basic motion test on KUKA to understand the response of the robot.
I observe my advance run pointer is stopped in case of reading the system variables while using the CAST_TO(SendBuffer[],OFFSET,$AXIS_ACT,$POS_ACT...), I am trying to understand what is the reason behind this behaviour.
Also I have read that using CONTINUE before this block will solve the problem but does anyone know alternative method in which I can access system variables without affecting the advance run pointer?
Posting the relevant part of the code,
Code
LOOP
IF (lenght<5) THEN
lenght = 300
ENDIF
i = i + 1
IF (i==1) THEN
REL_POS_TEST.x=lenght
REL_POS_TEST.y=-0
ENDIF
IF (i==2) THEN
REL_POS_TEST.x=-lenght
REL_POS_TEST.y=lenght
ENDIF
IF (i==3) THEN
REL_POS_TEST.x=0
REL_POS_TEST.y=-lenght
i=0
lenght = lenght-10
ENDIF
$APO.CPTP=75
$APO.CDIS=1
$APO.CVEL=100
PTP_REL REL_POS_TEST C_PTP
REL_POS.Z = 0
REL_POS.X = 0
REL_POS.Y = 0
NewData = FALSE
OnEkiIntrpt1()
CONTINUE
IF (RET.Connected == FALSE) THEN
RET=EKI_Open("BinaryFixed")
ENDIF
RET = EKI_Send("BinaryFixed",SendBuffer[])
ENDLOOP
INTERRUPT OFF 1
INTERRUPT OFF 2
$TIMER_STOP[1] = TRUE
$TIMER_STOP[2] = TRUE
RET=EKI_Close("BinaryFixed")
RET=EKI_Clear("BinaryFixed")
RET=EKI_Close("BinaryFixed1")
RET=EKI_Clear("BinaryFixed1")
END
; ------------------------------------------------------------------
; Subprogram
DEF OnEkiIntrpt()
DECL EKI_STATUS RET
RET=EKI_GetString("BinaryFixed","Buffer",ReceiveBuffer[])
$FLAG[1]= FALSE
NewData = TRUE
OFFSET=0
CAST_FROM(ReceiveBuffer[],OFFSET,Robotiq_forceX,Robotiq_forceY,Robotiq_forceZ,Robotiq_momemtumX,Robotiq_momemtumY,Robotiq_momemtumZ,Handle_hold,CometoHome,TrackId_recv)
OFFSET=0
CAST_TO(SendBuffer[],OFFSET,$AXIS_ACT,$POS_ACT,$TORQUE_AXIS_ACT[1],$TORQUE_AXIS_ACT[2],$TORQUE_AXIS_ACT[3],$TORQUE_AXIS_ACT[4],$TORQUE_AXIS_ACT[5],$TORQUE_AXIS_ACT[6],"R",TRUE)
END
DEF OnEkiIntrpt1()
OFFSET=0
CAST_TO(SendBuffer1[],OFFSET,$AXIS_ACT,$POS_ACT,$TORQUE_AXIS_ACT[1],$TORQUE_AXIS_ACT[2],$TORQUE_AXIS_ACT[3],$TORQUE_AXIS_ACT[4],$TORQUE_AXIS_ACT[5],$TORQUE_AXIS_ACT[6],"R",TRUE)
OFFSET = 128
CAST_TO(SendBuffer1[],OFFSET,TrackId,SIGNATURE,"R",TRUE)
CONTINUE
IF (RET1.Connected == FALSE) THEN
RET1=EKI_Open("BinaryFixed1")
ENDIF
RET1=EKI_Send("BinaryFixed1",SendBuffer1[],myLen)
END
Display More