WORD in STRING
La funzione WORD_TO_STRING converte un valore del tipo di dato WORD in un valore del tipo di dato STRING.
Genera una stringa risultato in rappresentazione decimale allineata a destra, riempita con spazi iniziali fino al numero massimo predefinito di caratteri.
Ingresso
Uscita
In caso di utilizzo del tipo di dato STRING con PLC piccoli come FP-e o FP0, assicuratevi che la lunghezza della stringa risultato sia uguale o maggiore della lunghezza della stringa di origine.
Ingresso |
Uscita definita come |
Risulta in |
---|---|---|
16#ABCD |
STRING[1] |
'D' |
STRING[2] |
'CD' |
|
STRING[3] |
'BCD' |
|
STRING[4] |
'ABCD' |
|
STRING[5] |
'0ABCD' |
|
STRING[6] |
'00ABCD' |
|
e così via... |
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
input_value: WORD:=0;
result_string: STRING;
La variabile di ingresso input_value del tipo di dato WORD è inizializzata dal valore 16#ABCD. La variabile di uscita result_string presenta il tipo di dato STRING[6]. Può memorizzare un massimo di 6 caratteri. Anziché utilizzare la variabile input_value, potete inserire una costante direttamente nel contatto di ingresso della funzione nel corpo.
input_value del tipo di dato WORD viene convertito in STRING[6]. Il valore convertito viene scritto in result_string. Quando la variabile input_value = 16#ABCD, result_string mostra '00ABCD'.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 2 ;
NETWORK_BODY
B(B_F,WORD_TO_STRING!,Instance,11,0,21,2,,?D?C);
B(B_VARIN,,input_value,9,0,11,2,);
B(B_VAROUT,,result_string,21,0,23,2,);
L(1,0,1,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result_string:=WORD_TO_STRING(input_value);
Questo esempio illustra come creare una STRING[4] dal tipo di dato WORD in cui la parte iniziale della stringa '16#' sia eliminata.
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
input_value: WORD:=16#1234;
(*example value*)
result_string1: STRING[7]:='';
(*result: here '0001234'*)
result_string: STRING[4]:='';
(*result: here '1234'*)
END_VAR
In questo esempio sono dichiarate sia una variabile di ingresso input_value del tipo di dato WORD sia una variabile di uscita result_string del tipo di dato STRING[4].
Nell'esecuzione dell'operazione in questione, la funzione standard RIGHT viene collegata alla funzione WORD_TO_STRING. RIGHT crea una stringa di caratteri giustificata a destra di lunghezza L.
Nell'esempio, la stringa di uscita della funzione WORD_TO_STRING viene aggiunta all'ingresso della funzione RIGHT. All'ingresso L di RIGHT, la costante INT 4 determina la lunghezza del valore STRING da sostituire. Partendo dalla variabile input_value = 0001234, result_string 1234 risulta dalla conversione del tipo di dato e dalla funzione RIGHT.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 2 ;
NETWORK_BODY
B(B_F,WORD_TO_STRING!,Instance,11,0,21,2,,?D?C);
B(B_VARIN,,input_value,9,0,11,2,);
B(B_VAROUT,,result_string1,21,0,23,2,);
L(1,0,1,2);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VARIN,,result_string1,10,2,12,4,);
B(B_VAROUT,,result_string,17,2,19,4,);
B(B_F,RIGHT!,Instance,12,1,17,5,,?DIN?DL?C);
B(B_VARIN,,4,10,3,12,5,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY