rusty icon indicating copy to clipboard operation
rusty copied to clipboard

cannot assign 'DINT' to 'STRING'

Open rarris opened this issue 2 years ago • 3 comments

PROGRAM  main
VAR
a : STRING[80];
b : STRUCT1;
END_VAR
a := UINT_TO_STRING(b.var10);    //var10 is UINT
END_PROGRAM
TYPE STRUCT1 : STRUCT
    var10 : UINT := 10;
END_STRUCT END_TYPE
FUNCTION UINT_TO_STRING : DINT
VAR_INPUT
    in : UINT;
END_VAR
END_FUNCTION

error: Invalid assignment: cannot assign 'DINT' to 'STRING'

rarris avatar Mar 23 '23 09:03 rarris

The function UINT_TO_STRING is not yet implemented in the standard functions, but the signature here is wrong, and therefore you get an error, the signature should be

FUNCTION UINT_TO_STRING : STRING
VAR_INPUT
    in : UINT;
END_VAR
END_FUNCTION

ghaith avatar May 08 '23 09:05 ghaith

we have a new error case here

code example:

PROGRAM mainProg
VAR
  Conv : STRING[125];
  Index : USINT;
  Args : argsSTR;
END_VAR
  Conv := BOOL_TO_STRING(Args.b[Index]);
END_PROGRAM

TYPE argsSTR :
	 STRUCT
		b : ARRAY[0..4] OF BOOL ;
		i : ARRAY[0..4] OF DINT ;
	END_STRUCT
END_TYPE

error: Invalid assignment: cannot assign 'DINT' to 'STRING[125]' Error: E001: Compilation aborted due to critical errors

rarris avatar Mar 06 '24 09:03 rarris