Tronca (elimina) le cifre decimali della variabile di ingresso REAL o LREAL, converti in DOUBLE INTEGER
TRUNC_TO_DINT elimina le cifre decimali di un numero REAL, LREAL e produce una variabile di uscita del tipo di dato DOUBLE INTEGER.
Se le cifre decimali vengono eliminate, i numeri positivi verranno ridotti verso lo zero e i numeri negativi verranno incrementati verso lo zero.
Poiché i numeri REAL hanno una risoluzione di sole 7 cifre circa, le informazioni relative a numeri grandi andranno perse.
Ingresso
Tipo di dato di ingresso
Uscita
Risultato della conversione
se la variabile di ingresso non presenta il tipo di dato REAL
la variabile di uscita è maggiore di un valore DOUBLE INTEGER a 32 bit
se la variabile di uscita è zero
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
REAL_value: TRUNC;
DINT_value: DINT:=0;
END_VAR
In questo esempio vengono utilizzate variabili. Potete anche utilizzare una costante per la variabile di ingresso.
Le cifre decimali di REAL_value vengono eliminate. Il risultato viene memorizzato come valore DOUBLE INTEGER a 32 bit in DINT_value.
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,TRUNC_TO_DINT!,Instance,10,0,19,2,,?D?C);
B(B_VARIN,,REAL_value,8,0,10,2,);
B(B_VAROUT,,DINT_value,19,0,21,2,);
L(1,0,1,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
DINT_value:=TRUNC_TO_DINT(REAL_value);
LD |
REAL_value |
TRUNC_TO_DINT |
|
ST |
DINT_value |