Hello guys,
It's been a while since I play with KUKA, so it might be a temporary memory blackout but I have a question regarding DEFFCTN.
KRC4
KSS 8.3.27
In $config file:
DECL CONST INT TASK_X=1
DECL CONST INT TASK_Y=2
DECL CONST INT TASK_Z=3
I do have a function in main a program (Number is just and INT):
......
Number = MyFunction (TASK_X, TASK_X, TASK_X)
...
------------------------------ function definition ------------------------------
DEFFCT INT Number ( nNumber1:IN, nNumber2:IN, nNumber3:IN )
;Parameters
DECL INT nNumber1, nNumber2, nNumber3
;Local variables
DECL INT nCurrentNumber, nReturnNumber
......some code.....
nCurrentTaskNumber = gi3Value
nReturnNumber= 0
IF ( nCurrentNumber== nNumber1) OR ( nCurrentNumber== nNumber2) OR ( nCurrentNumber== nNumber3) THEN
;everything ok
nReturnNumber= nCurrentNumber
ELSE
usermessage ( #Quit, 2, nCurrentNumber) ;"Internal error: Unexpected task number: %1."
WAIT FOR FALSE
ENDIF
RETURN nReturnNumber
ENDFCT
---------------------------------------- END OF CODE------------------------------------
Now if I won't use the following declaration for nNumber2 and nNumber3 at the beginning of the DEFFCT I'll always get an error: nNumber2 value invalid in the "IF" line shown before
IF ( VARSTATE ( "nNumber2" ) <> #INITIALIZED ) THEN
nNumber2= 0
ENDIF
IF ( VARSTATE ( "nNumber3" ) <> #INITIALIZED ) THEN
nNumber3= 0
ENDIF
but this only applies to nNubmer2 and nNubmer3, but don't apply to nNumber1, any reason why I need to initialize nNumber2 and nNubmer3 but not nNumber1 ?
I've checked all files nNumb1 is not used anywhere except for this function.
When I'll delete line "IF ( VARSTATE ( "nNumber2" ) <> #INITIALIZED ) THEN" in WorkVisual I"ll get a message: parameter is being used without without being checked for correct initialization.
I hope I did explain it right
Thanks !