TRUNC_TO_INT

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

TRUNC_TO_INT elimina le cifre decimali di un numero REAL, LREAL e produce una variabile di uscita del tipo di dato INTEGER.

Parametri

Ingresso

Unnamed input (REAL, LREAL)

Tipo di dato di ingresso

Uscita

Unnamed output (INT)

Risultato della conversione

Note

  • Se il tipo di dato desiderato è supportato, raccomandiamo di usare l’istruzione sovrapposta TO_INT.

  • Se le cifre decimali vengono eliminate, i numeri positivi verranno ridotti verso lo zero e i numeri negativi verranno incrementati verso lo zero.

  • I primi 16 bit della variabile di ingresso vengono allocati alla variabile di uscita.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se la variabile di ingresso non presenta il tipo di dato REAL

  • se la variabile di uscita è maggiore di un valore INTEGER a 16 bit

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se la variabile di ingresso non presenta il tipo di dato REAL

  • se la variabile di uscita è maggiore di un valore INTEGER a 16 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
		REAL_value: TRUNC;
		INT_value: INT:=0;
	END_VAR

In questo esempio vengono utilizzate variabili. Potete anche utilizzare una costante per la variabile di ingresso.

Corpo del POU

Le cifre decimali di REAL_value vengono eliminate. result viene memorizzato come valore INTEGER a 16 bit in INT_value.

Corpo LD

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_INT!,Instance,10,0,19,2,,?D?C);
B(B_VARIN,,REAL_value,8,0,10,2,);
B(B_VAROUT,,INT_value,19,0,21,2,);
L(1,0,1,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

INT_value:=TRUNC_TO_INT(REAL_value);

Corpo IL

LD

REAL_value

TRUNC_TO_INT

ST

INT_value

L'ultima revisione: 2023-08-16Feedback su questa paginaPanasonic hotline