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.
Eingang
Neue Länge einer Zeichenfolge
Ein-/Ausgang
Zeichenfolge, die auf die neue Länge eingestellt wird
Ausgang
Wird auf TRUE gesetzt, wenn die neue Zeichenfolgenlänge die maximale Zeichenfolgenlänge der Zeichenfolgendeklaration überschreitet
Wenn Sie diesen Befehl mit UTF-8-Zeichenfolgen verwenden, beachten Sie die Hinweise zu UTF-8-Zeichenfolgen unter dem Datentyp STRING.
wenn eine am Eingang oder Ausgang angegebene Zeichenfolge eine ungültige Zeichenfolge ist
wenn eine am Eingang oder Ausgang angegebene Zeichenfolge eine ungültige Zeichenfolge ist
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
Wenn die Variable bStart auf TRUE gesetzt wird, wird die Funktion ausgeführt.
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;