DWORD_TO_STRING

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.

Parametri

Ingresso

Unnamed input (DWORD)
Tipo di dato di ingresso

Uscita

Unnamed output (STRING)
Risultato della conversione

Note

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.

Esempio

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...

Esempio

Intestazione del POU

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.

Corpo del POU

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'.

Corpo LD

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

Esempio

Intestazione del POU

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].

Corpo del POU

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.

Corpo LD

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

L'ultima revisione: 2021-06-22Feedback su questa paginaPanasonic hotline