TRUNC_TO_UDINT

Tronca (elimina) le cifre decimali della variabile di ingresso REAL o LREAL, converti in DOUBLE INTEGER senza segno

TRUNC_TO_UDINT elimina le cifre che seguono il punto decimale di un numero REAL, LREAL e produce una variabile di uscita del tipo di dato DOUBLE INTEGER senza segno.

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

Parametri

Ingresso

Unnamed input (REAL, LREAL)

Tipo di dato di ingresso

Uscita

Unnamed output (UDINT)

Risultato della conversione

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)

se la variabile di ingresso non presenta il tipo di dato REAL

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)

la variabile di uscita è maggiore di un valore DOUBLE INTEGER a 32 bit

sys_bIsCarry (passa a TRUE per una scansione)

se la variabile di uscita è zero

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
		UDINT_value: UDINT:=0;
		REAL_value: REAL:=78497.79;
	END_VAR

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,TRUNC_TO_UDINT!,Instance,13,2,23,4,,?D?C);
B(B_VARIN,,REAL_value,11,2,13,4,);
B(B_VAROUT,,UDINT_value,23,2,25,4,);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

UDINT_value := TRUNC_TO_UDINT(REAL_value);

L'ultima revisione: 2022-11-14Feedback su questa paginaPanasonic hotline