I have a very basic RSI setup to test out how to use KRL variables over Ethernet. In this instance I am trying to use the $SEN_PINT variable to send single digit integers from the KRL to the test server. I have my RSI configured and data is exchanging but when I change the $SEN_PINT variable in the KRL program, the value is not being sent over RSI to the test server. The variable does change in the KRL program because an IF statement doesn't work when I manually change it, but I don't see these changes communicated in RSI. I have hooked up a monitor to this variable as well but this also doesn't show any changes (however this could be due to me not using the monitor correctly)
My setup is as follows:
KSS version: V8.3.22
RSI Version: 3.3.5
controller type: Kuka C4
robot type: Kuka KR16-2
My RSI Context:
My RSI Ethernet Config:
<ROOT>
<CONFIG>
<IP_NUMBER>10.10.10.10</IP_NUMBER>
<PORT>64000</PORT>
<SENTYPE>ImFree</SENTYPE>
<ONLYSEND>FALSE</ONLYSEND>
</CONFIG>
<SEND>
<ELEMENTS>
<ELEMENT TAG="Senpint" TYPE="LONG" INDX="1" />
<ELEMENT TAG="Digout.o1" TYPE="BOOL" INDX="2" />
</ELEMENTS>
</SEND>
<RECEIVE>
<ELEMENTS>
<ELEMENT TAG="Senpint" TYPE="LONG" INDX="1" HOLDON="1" />
<ELEMENT TAG="Digout.o1" TYPE="BOOL" INDX="2" HOLDON="1" />
</ELEMENTS>
</RECEIVE>
</ROOT>
Display More
My KRL program
&ACCESS RVP
&REL 29
&PARAM DISKPATH = KRC:\R1\Program\AMorgan\RSIRI
DEF variable_tests( )
; Declaration of KRL variables
DECL INT ret ; Return value for RSI commands
DECL INT CONTID ; ContainerID
;FOLD INI
;FOLD BASISTECH INI
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD SPOTTECH INI
USERSPOT(#INIT)
;ENDFOLD (SPOTTECH INI)
;FOLD GRIPPERTECH INI
USER_GRP(0,DUMMY,DUMMY,GDEFAULT)
;ENDFOLD (GRIPPERTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
; Move to start position
;FOLD PTP P1 Vel=100 % PDAT1 Tool[2]:Adam Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:100, 7:PDAT1
$BWDSTART=FALSE
PDAT_ACT=PPDAT1
FDAT_ACT=FP1
BAS(#PTP_PARAMS,100)
PTP XP1
;ENDFOLD
; Move to home
;FOLD PTP P6 Vel=100 % PDAT4 Tool[2]:Adam Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P6, 3:, 5:100, 7:PDAT4
$BWDSTART=FALSE
PDAT_ACT=PPDAT4
FDAT_ACT=FP6
BAS(#PTP_PARAMS,100)
PTP XP6
;ENDFOLD
; Create RSI Context
ret = RSI_CREATE("ValueTests.rsi",CONTID,TRUE)
IF (ret <> RSIOK) THEN
HALT
ENDIF
; Start RSI execution
ret = RSI_ON(#RELATIVE)
IF (ret <> RSIOK) THEN
HALT
ENDIF
; Test section
IF $SEN_PINT[1] == 0 THEN
$SEN_PINT[1] = 1
;FOLD LIN P3 Vel=2 m/s CPDAT2 Tool[2]:Adam Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P3, 3:, 5:2, 7:CPDAT2
$BWDSTART=FALSE
LDAT_ACT=LCPDAT2
FDAT_ACT=FP3
BAS(#CP_PARAMS,2)
LIN XP3
;ENDFOLD
ENDIF
WAIT SEC 10
; Turn off RSI
ret = RSI_OFF()
IF (ret <> RSIOK) THEN
HALT
ENDIF
; Move to end position
;FOLD PTP P1 Vel=100 % PDAT1 Tool[2]:Adam Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:100, 7:PDAT1
$BWDSTART=FALSE
PDAT_ACT=PPDAT1
FDAT_ACT=FP1
BAS(#PTP_PARAMS,100)
PTP XP1
;ENDFOLD
END
Display More
What I see on the test server
Thanks for any help!