Impostare lunghezza stringa
Questa istruzione imposta la lunghezza di una stringa all'ingresso STR ad una nuova lunghezza definita all'ingresso LEN. Se la nuova lunghezza supera la lunghezza massima della dichiarazione della stringa, si verifica un errore e bError viene impostato su TRUE. Se si definisce una nuova lunghezza di stringa più corta di quella attuale, la stringa sarà troncata alla nuova lunghezza.
Ingresso
Nuova lunghezza stringa
Ingresso/uscita
Stringa impostata alla nuova lunghezza
Uscita
Impostare su TRUE se la nuova lunghezza della stringa supera la lunghezza massima della stringa della dichiarazione della stringa
Se questa istruzione è utilizzata con stringhe UTF-8, fare riferimento alle note relative alle stringhe UTF-8 sotto il tipo di dati STRING.
se una stringa applicata in ingresso o in uscita è una stringa non valida
se una stringa applicata in ingresso o in uscita è una stringa non valida
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
VAR
sTestString: STRING[128]:='A better life. A better world';
iStringLength: INT:=0;
bError: BOOL:=FALSE;
bStart: BOOL:=FALSE;
END_VAR
Quando la variabile bStart è impostata su TRUE, la funzione viene eseguita.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,E_SET_LEN!,,24,0,31,5,,?DEN?DLEN?DSTR?ASTR?AENO?CbError);
B(B_CONTACT,,bStart,5,1,7,3,);
B(B_VARIN,,sTestString,22,3,24,5,);
B(B_VAROUT,,bError,31,2,33,4,);
B(B_VARIN,,32,22,2,24,4,);
L(1,2,5,2);
L(7,2,24,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VAROUT,,iStringLength,29,2,31,4,);
B(B_VARIN,,sTestString,21,2,23,4,);
B(B_F,LEN!,,24,1,29,4,,?DIN?C);
L(23,3,24,3);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If (bStart) then
bError := SET_LEN(32, sTestSTring);
iStringLength := LEN(sTestString);
End_if;