Zeichen von rechts
RIGHT kopiert, ausgehend von rechts, n Zeichen der als erste Eingangsvariable angegebenen Zeichenfolge in die Ausgangsvariable. Die Anzahl der zu liefernden Zeichen n legen Sie mit der zweiten Eingangsvariable fest.
Eingang
1. Eingang: Eingangszeichenfolge
2. Eingang: Anzahl der Zeichen der Eingangszeichenfolge, die von rechts kopiert werden
Ausgang
kopierte Zeichenfolge
Wenn Sie diesen Befehl mit UTF-8-Zeichenfolgen verwenden, beachten Sie die Hinweise zu UTF-8-Zeichenfolgen unter dem Datentyp STRING.
Wenn die Anzahl der zu liefernden Zeichen größer ist als die Eingangszeichenfolge, wird die gesamte Zeichenfolge in die Ausgangsvariable kopiert.
Wenn die Ausgangs-Zeichenfolge länger ist als die für die Ausgangsvariable im Feld “Typ” definierte Länge, werden nur so viele Zeichen kopiert, wie in die Ausgangsvariable passen.Die Systemvariable sys_bIsCarry wird gesetzt.
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
wenn die Ausgangs-Zeichenfolge länger ist als die für die Ausgangsvariable im Feld "Typ" definierte Länge
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
sInput: STRING[15]:='abcd efg hijk';
(*sample string*)
iChar_number: INT:=4;
(*characters to be delivered*)
sResult: STRING[4]:='';
(*result here= 'hijk'*)
END_VAR
In diesem Beispiel wurden die Eingangsvariablen sInput und iChar_number deklariert. Stattdessen können Sie die Eingangszeichenfolge ('abcd efg hijk') und die Anzahl der zu liefernden Zeichen auch direkt an die Eingänge der Funktion schreiben. Die Zeichenfolge muss im POE-Kopf und an den Funktionseingängen in Apostrophen stehen.
Aus sInput ('abcd efg hijk’) werden, ausgehend von rechts, die mit iChar_number festgelegte Anzahl Zeichen (4) in sResult ('hijk’) kopiert.
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,RIGHT!,Instance,10,0,15,4,,?DIN?DL?C);
B(B_VARIN,,sInput,8,1,10,3,);
B(B_VARIN,,iChar_number,8,2,10,4,);
B(B_VAROUT,,sResult,15,1,17,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
sResult:=RIGHT(IN := sInput, L := iChar_number);
LD |
sInput |
RIGHT |
iChar_number |
ST |
sResult |