Copia caratteri da destra
RIGHT copia, a partire da destra, n caratteri della stringa della prima variabile di ingresso nella variabile di uscita. Definite il numero di caratteri da restituire n tramite la seconda variabile di ingresso.
Ingresso
1° ingresso: stringa di ingresso
2° ingresso: numero di caratteri della stringa di ingresso che vengono copiati da destra
Uscita
stringa copiata
Se questa istruzione è utilizzata con stringhe UTF-8, fare riferimento alle note relative alle stringhe UTF-8 sotto il tipo di dati STRING.
Se il numero di caratteri da restituire è maggiore rispetto alla stringa di ingresso, l'intera stringa verrà copiata nella variabile di uscita.
Se la lunghezza della stringa di uscita supera la lunghezza definita per la variabile di uscita nel campo “Tipo”, viene copiato un numero di caratteri da sinistra pari a quello che la variabile di uscita può contenere.La variabile di sistema sys_bIsCarry è impostato.
se una stringa applicata in ingresso o in uscita è una stringa non valida
se una stringa applicata in ingresso o in uscita è una stringa non valida
se la lunghezza della stringa di uscita supera la lunghezza definita per la variabile di uscita nel campo "Tipo"
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
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 questo esempio sono state dichiarate le variabili di ingresso (sInput e iChar_number). Al loro posto potete inserire la stringa ('abcd efg hijk') e il numero di caratteri da restituire direttamente nella funzione. La stringa deve essere inserita tra virgolette, sia nell'intestazione del POU sia nella funzione.
A partire da destra, iChar_number (4) di sInput ('abcd efg hijk’) viene copiato in sResult ('hijk’).
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 |