Lo standard IEC61131 per il concatenamento di stringhe prevede l’utilizzo di una funzione CONCAT. Passando alla funzione due stringhe essa ritorna una terza stringa risultato della concatenazione della prima stringa con la seconda.
Tra i miei programmi tempo fà ho realizzato una funzione di concatenamento simile alla strcat del linguaggio C, alla stringa di destinazione viene concatenata la stringa sorgente. Riporto di seguito il listato della funzione ed allego un programma di test per il download.
FUNCTION eStrCat : BOOL
VAR_INPUT
Dest : @USINT; { DE:”Destination pointer” }
Source : @USINT; { DE:”Source pointer” }
END_VAR
VAR
Len : INT; { DE:”String length” }
i : INT; { DE:”Auxiliary counter” }
END_VAR
{ CODE:ST }(* FUNZIONE “eStrCat(@USINT Dest, @USINT Source)” *)
Dest:=Dest+eLEN(Dest); (* Destination pointer *)
Len:=eLEN(Source); (* String length *)
FOR i:=0 TO Len DO
@Dest:=@Source;
Source:=Source+1; (* Source pointer *)
Dest:=Dest+1; (* Destination pointer *)
END_FOR;
eStrCat:=TRUE;
END_FUNCTION