Nachkommastellen der REAL- oder LREAL-Eingangsvariable abschneiden, in DOUBLE INTEGER umwandeln
TRUNC_TO_DINT schneidet die Nachkommastellen einer Zahl vom Datentyp REAL, LREAL ab und liefert eine Ausgangsvariable vom Datentyp DOUBLE INTEGER.
Durch das Abschneiden der Nachkommastellen wird eine positive Zahl in Richtung 0 verkleinert und eine negative Zahl in Richtung 0 vergrößert.
Zahlen vom Datentyp REAL sind auf ca. 7 Stellen beschränkt. Für größere Zahlen können die Daten daher nicht gespeichert werden.
Eingang
Eingangsdatentyp
Ausgang
Umwandlungsergebnis
wenn die Eingangsvariable nicht vom Datentyp REAL ist
wenn Ausgangsvariable größer als ein 32-Bit DOUBLE INTEGER ist
wenn die Ausgangsvariable Null ist
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
REAL_value: TRUNC;
DINT_value: DINT:=0;
END_VAR
In diesem Beispiel werden Variablen verwendet. Für die Eingangsvariable kann auch eine Konstante verwendet werden.
Von REAL_value werden die Nachkommastellen abgeschnitten. Das Ergebnis wird als 32-Bit DOUBLE INTEGER in DINT_value geschrieben.
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 |