LEFT-Baustein

Kurz-Information

Name

LEFT

→POE-Typ

→Funktion

Kategorie

IEC-Baustein, String, Baustein mit interner Fehlerdiagnose

Konform zur →IEC-Norm

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/error.svg derzeit eingeschränkt
(IEC fordert Datentyp ANY_STRING für den Eingang IN und den Ergebniswert und daher auch diesen Datentyp: WSTRING. Dieser Datentyp wird derzeit für den Baustein nicht unterstützt.)

Grafische Schnittstelle

images/download/thumbnails/414782665/LEFT-version-1-modificationdate-1535103298976-api-v2.png

Verfügbar ab

Version 1.32.0 (für logi.CAD 3)

Funktionalität

Der Baustein liefert einen Teilstring eines anderen Strings – ganz von links beginnend.

Am Eingang IN geben Sie eine Zeichenkette ein. Am Eingang L geben Sie die Anzahl der zu liefernden Zeichen ein (= Länge des zu liefernden Teils).

Spezialfälle (siehe unter " Beispiel für Verwendung im ST-Editor " ) :

  • Bei L = 0 liefert der Baustein den leeren String ''. Der Ausgang ENO wird hier auf den Wert TRUE gesetzt.

  • Falls der Wert für L > der Länge des Strings für IN ist, liefert der Baustein den String, der bei IN anliegt. Hier wird der Ausgang ENO auf den Wert FALSE gesetzt.

  • Falls ein negativer Wert bei L eingegeben ist, liefert der Baustein den leeren String ''. Auch hier wird der Ausgang ENO auf den Wert FALSE gesetzt.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg logi.CAD 3 bestimmt die Positionen von Zeichen in einem String so: 1, 2, ..., n. Dabei entspricht 1 dem Zeichen ganz links im String und n der Länge des Strings.
Kombinationen von 3 Zeichen, beginnend mit dem Dollar-Zeichen ($) und gefolgt von 2 Hexadezimal-Ziffern, gelten als ein einziges Zeichen. Beispiel: Der String '$B15' (entspricht '±5') besteht somit aus 2 Zeichen. Weitere Beispiele für diese Kombinationen finden Sie unter →Zeichenfolge-Literal.

Eingänge, Ergebniswert


Bezeichner

→Datentyp

Beschreibung

Eingänge:

IN

STRING

Eingangswert

L

USINT, UINT, UDINT, ULINT, SINT, INT, DINT oder LINT
(entspricht dem →allgemeinen Datentyp ANY_INT)

Anzahl der zu liefernden Zeichen

Ergebniswert:

STRING


Der Eingang EN und der Ausgang ENO sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.

Informieren Sie sich unter:

Interne Fehlerdiagnose für Baustein

Der Baustein prüft den vermeintlichen Ergebniswert.
Falls der Ergebniswert im zur Verfügung stehenden Speicher nicht abgebildet werden kann (der Ergebniswert ist zu groß), wird der Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung) gesetzt. Wenn Sie Bausteine mit STRING-Werten verschachtelt verwenden, beachten Sie, dass der zur Verfügung stehende Speicher beschränkt ist (siehe "Wie kann der Ergebniswert bei verschachtelten String-Bausteinen vollständig abgebildet werden?" für Details und Beispiele).

Zusätzlich prüft der Baustein die anliegenden Werte, ob auf nicht vorhandene Zeichenpositionen im String zugegriffen wird. Dies ist der Fall, wenn der Wert für L > die Länge des Stringwerts für IN ist oder ein negativer Wert bei L eingegeben ist. Auch in diesen Fällen wird der Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung) zurückgesetzt.

Beispiel für Verwendung im ST-Editor

PROGRAM Test
VAR
result1, result3, result4, result5, result6 : STRING[8];
result2 : STRING[2];
CheckENO1, CheckENO2, CheckENO3, CheckENO4, CheckENO5, CheckENO6 : BOOL;
END_VAR
result1 := LEFT(IN := 'astring', L := 3, ENO => CheckENO1);
(* The variable 'result1' evaluates to <'ast'>. The variable 'CheckENO1' evaluates to 'TRUE'. *)
result2 := LEFT(IN := 'astring', L := 3, ENO => CheckENO2);
(* The variable 'result2' evaluates to <'as'>. The variable 'CheckENO2' evaluates to 'FALSE'. Reason: 'result2' is declared with length '2' and the would-be return value exceeds this length. *)
result3 := LEFT(IN := 'astring', L := 0, ENO => CheckENO3);
(* The variable 'result3' evaluates to <''>, i.e an empty string. The variable 'CheckENO3' evaluates to 'TRUE'. Reason: value '0' for 'L' *)
result4 := LEFT(IN := 'astring', L := 10, ENO => CheckENO5);
(* The variable 'result4' evaluates to <'astring'>. The variable 'CheckENO4' evaluates to 'FALSE'. Reason: value for 'L' > the length of string 'astring' *)
result5 := LEFT(IN := 'astring', L := -2, ENO => CheckENO5);
(* The variable 'result5' evaluates to <''>, i.e an empty string. The variable 'CheckENO5' evaluates to 'FALSE'. Reason: negative value for 'L' *)
result6 := LEFT(IN := '$B15 deviation', L := 2, ENO => CheckENO6);
(* The variable 'result6' evaluates to <'$B15'>, i.e an empty string. The variable 'CheckENO6' evaluates to 'TRUE'. *)
END_PROGRAM

Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.