REAL_TO_STRING

REAL in STRING

La funzione REAL_TO_STRING converte un valore del tipo di dato REAL in un valore del tipo di dato STRING[15] che presenta 7 spazi sia prima che dopo il punto decimale. La stringa risultante è giustificata a destra ed è compresa nell'intervallo da '-999999.0000000' a '9999999.0000000'. Nell'intervallo positivo il segno più viene omesso. Gli zeri iniziali vengono riempiti con spazi vuoti (p.es. partendo da -12.0 si avrà il valore STRING '-12.0').

Parametri

Ingresso

Unnamed input (REAL)
Tipo di dato di ingresso

Uscita

Unnamed output (STRING)
Risultato della conversioneSTRING[15]

Note

  • La funzione richiede all'incirca 160 passi di memoria programma. Per un utilizzo ripetuto, è consigliabile integrarla in una funzione definita dall'utente che sia memorizzata una volta sola nella memoria programma.

  • 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

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
		input_value: REAL:=-123.4560166;
		result_string: STRING[15]:='';
END_VAR	

La variabile di ingresso input_value del tipo di dato REAL è inizializzata dal valore -123,4560166. La variabile di uscita result_string presenta il tipo di dato STRING[15]. Può memorizzare un massimo di 15 caratteri. Anziché utilizzare la variabile input_value, potete inserire una costante direttamente nel contatto di ingresso della funzione nel corpo.

Corpo del POU

input_value del tipo di dato REAL viene convertito in STRING[15]. Il valore convertito viene scritto in result_string. Quando la variabile input_value = 123.4560166, result_string mostra ' -123.4560165'.

Corpo LD

BODY
    WORKSPACE</p>
        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,REAL_TO_STRING!,Instance,7,1,17,3,,?D?C);
B(B_VARIN,,input_value,5,1,7,3,);
B(B_VAROUT,,result_string,17,1,19,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo IL

Esempio

Intestazione del POU

Questo esempio illustra come creare un valore STRING[7] con 4 posizioni prima e 2 posizioni dopo il punto decimale partendo dal tipo di dato REAL.

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: REAL:=-123.4560166;
			(*example value*)
		result_string: STRING[15]:='';
			(*result: here ' -123.45'*)
	END_VAR

In questo esempio sono dichiarate sia una variabile di ingresso input_value del tipo di dato REAL sia una variabile di uscita result_string del tipo di dato STRING[7].

Corpo del POU

Nell'esecuzione dell'operazione in questione, la funzione standard MID viene collegata alla funzione REAL_TO_STRING. MID crea un settore centrale nella stringa di caratteri partendo dalla posizione P (valore INT) con L (valore INT) caratteri.

Nell'esempio, la costante INT 7 viene inserita all'ingresso L di MID, il quale determina la lunghezza della stringa risultato. La costante INT 4 all'ingresso P determina la posizione in cui inizia il settore centrale. Partendo dalla variabile input_value = -123.4560166, il valore STRING ' -123.4560166' risulta dalla conversione del tipo di dato. La funzione MID tronca il valore STRING alla posizione 4 e restituisce result_string '-123.45'.

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,REAL_TO_STRING!,Instance,7,2,17,4,,?D?C);
B(B_VARIN,,input_value,5,2,7,4,);
B(B_VAROUT,,result_string,24,2,26,4,);
B(B_F,MID!,Instance,19,1,24,6,,?DIN?DL?DP?C);
B(B_VARIN,,7,17,3,19,5,);
B(B_VARIN,,4,17,4,19,6,);
L(17,3,19,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo IL

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