SET_LEN

Zeichenfolgenlänge festlegen

Dieser Befehl legt die Länge einer Zeichenfolge am Eingang STR auf eine neue, am Eingang LEN definierte Länge fest. Wenn die neue Länge die maximale Länge der Zeichenfolgendeklaration überschreitet, tritt ein Fehler auf und bError wird auf TRUE gesetzt. Wenn Sie eine neue Zeichenfolgenlänge definieren, die kürzer als die aktuelle Zeichenfolgenlänge ist, wird die Zeichenfolge auf die neue Länge gekürzt.

Parameter

Eingang

LEN (INT)

Neue Länge einer Zeichenfolge

Ein-/Ausgang

STR (STRING)

Zeichenfolge, die auf die neue Länge eingestellt wird

Ausgang

bError (BOOL)

Wird auf TRUE gesetzt, wenn die neue Zeichenfolgenlänge die maximale Zeichenfolgenlänge der Zeichenfolgendeklaration überschreitet

Anmerkungen

  • Wenn Sie diesen Befehl mit UTF-8-Zeichenfolgen verwenden, beachten Sie die Hinweise zu UTF-8-Zeichenfolgen unter dem Datentyp STRING.

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)

wenn eine am Eingang oder Ausgang angegebene Zeichenfolge eine ungültige Zeichenfolge ist

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)

wenn eine am Eingang oder Ausgang angegebene Zeichenfolge eine ungültige Zeichenfolge ist

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		sTestString: STRING[128]:='A better life. A better world';
		iStringLength: INT:=0;
		bError: BOOL:=FALSE;
		bStart: BOOL:=FALSE;
	END_VAR

POE-Rumpf

Wenn die Variable bStart auf TRUE gesetzt wird, wird die Funktion ausgeführt.

KOP-Rumpf

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

ST-Rumpf

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

Letzte Änderung am: 2022-04-19Feedback zu dieser SeitePanasonic Hotline