DOUBLE WORD in STRING
La funzione DWORD_TO_STRING converte un valore del tipo di dato DWORD 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#ABCDEFFE |
STRING[2] |
'FE' |
STRING[4] |
'EFFE' |
|
STRING[6] |
'CDEFFE' |
|
STRING[8] |
'ABCDEFFE' |
|
STRING[10] |
'00ABCDEFFE' |
|
STRING[12] |
'0000ABCDEFFE' |
|
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
DWORD_value: DWORD:=0;
(*example value: 16#ABCDEFFE*)
result_string: STRING[10]:='';
(*result: '00ABCDEFFE'*)
@'': @'';
END_VAR
La variabile di ingresso DWORD_value del tipo di dato DWORD è inizializzata dal valore 16#ABCDEFFE. La variabile di uscita result_string presenta il tipo di dato STRING[10]. Può memorizzare un massimo di 10 caratteri. Anziché utilizzare la variabile DWORD_value, potete inserire una costante direttamente nel contatto di ingresso della funzione nel corpo.
DWORD_value del tipo di dato DWORD viene convertito in STRING[10]. Il valore convertito viene scritto in result_string. Quando la variabile DWORD_value = 16#ABCDEFFE, result_string mostra '00ABCDEFFE'.
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,DWORD_TO_STRING!,Instance,9,1,20,3,,?D?C);
B(B_VARIN,,DWORD_value,7,1,9,3,);
B(B_VAROUT,,result_string,20,1,22,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
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.
Questo esempio illustra come creare una STRING[10] dal tipo di dato DWORD in cui la parte iniziale della stringa '16#' sia sostituita dalla stringa '0x'.
VAR
input_value: DWORD:=16#12345678;
result_string: STRING[10]:='';
@'': @'';
END_VAR
In questo esempio sono dichiarate la variabile di ingresso input_value del tipo di dato DWORD e una variabile di uscita result_string del tipo di dato STRING[10].
Nell'esecuzione dell'operazione in questione, la funzione standard REPLACE viene collegata alla funzione DWORD_TO_STRING. REPLACE sostituisce una sezione di una stringa di caratteri con un'altra.
Nell'esempio, la stringa di uscita della funzione DWORD_TO_STRING viene aggiunta all'ingresso IN1 della funzione REPLACE. All'ingresso IN2, la costante STRING '0x' viene aggiunta come STRING sostitutiva. All'ingresso L di REPLACE, la costante INT 3 determina la lunghezza del valore STRING da sostituire. L'ingresso P determina la posizione da cui inizia la sostituzione. In questo caso è il numero INT 1. Partendo dalla variabile input_value = 16#12345678, result_string = '0x12345678' risulta dall'esecuzione della conversione del tipo di dato e dalla funzione REPLACE.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,DWORD_TO_STRING!,Instance,8,1,19,3,,?D?C);
B(B_VARIN,,input_value,6,1,8,3,);
B(B_VAROUT,,result_string,26,1,28,3,);
B(B_F,REPLACE!,Instance,20,0,26,6,,?DIN1?DIN2?DL?DP?C);
B(B_VARIN,,'0x',18,2,20,4,);
B(B_VARIN,,3,18,3,20,5,);
B(B_VARIN,,2,18,4,20,6,);
L(19,2,20,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY