Das muß an der Initialisierung des Input-String liegen. Folgender Code funktioniert bei mir seit Jahren:


Code:
FUNCTION FC254 : INT

Title = 'String umkopieren'
//
// String umkopieren
//
Version : '1.0'
author  : rk
name    : STR_KOP
family  : SYSTEM

VAR_INPUT
   // Eingangsparameter
   InString: STRING;
END_VAR

VAR_OUTPUT 
   // Ausgangsparameter
   OutString: STRING;
END_VAR

VAR_TEMP
    // temporäre Variablen
END_VAR

// Anweisungsteil
    OutString := InString;
   
    ;
    FC254 := 100;
END_FUNCTION
Ich würde nicht über Temp gehen, das kostet nur unnötig Rechenzeit und bringt nichts.