SET_LEN

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.

Parametri

Ingresso

LEN (INT)

Nuova lunghezza stringa

Ingresso/uscita

STR (STRING)

Stringa impostata alla nuova lunghezza

Uscita

bError (BOOL)

Impostare su TRUE se la nuova lunghezza della stringa supera la lunghezza massima della stringa della dichiarazione della stringa

Note

  • Se questa istruzione è utilizzata con stringhe UTF-8, fare riferimento alle note relative alle stringhe UTF-8 sotto il tipo di dati STRING.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)

se una stringa applicata in ingresso o in uscita è una stringa non valida

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)

se una stringa applicata in ingresso o in uscita è una stringa non valida

Esempio

Intestazione del POU

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

Corpo del POU

Quando la variabile bStart è impostata su TRUE, la funzione viene eseguita.

Corpo LD

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

Corpo ST

If (bStart) then
    bError := SET_LEN(32, sTestSTring);
    iStringLength := LEN(sTestString);
End_if;

L'ultima revisione: 2022-04-19Feedback su questa paginaPanasonic hotline