Nachkommastellen der REAL- oder LREAL-Eingangsvariable abschneiden, in INTEGER umwandeln
TRUNC_TO_INT schneidet die Nachkommastellen einer Zahl vom Datentyp REAL, LREAL ab und liefert eine Ausgangsvariable vom Datentyp INTEGER.
Eingang
Eingangsdatentyp
Ausgang
Umwandlungsergebnis
Sofern der gewünschte Datentyp unterstützt wird, verwenden Sie den überladenen Befehl TO_INT
Durch das Abschneiden der Nachkommastellen wird eine positive Zahl in Richtung 0 verkleinert und eine negative Zahl in Richtung 0 vergrößert.
Die ersten 16 Bit der Eingangsvariable werden der Ausgangsvariable zugewiesen.
wenn die Eingangsvariable nicht vom Datentyp REAL ist
Ausgangsvariable größer als ein 16-Bit INTEGER ist
wenn die Eingangsvariable nicht vom Datentyp REAL ist
Ausgangsvariable größer als ein 16-Bit 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;
INT_value: INT:=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. result wird als 16-Bit INTEGER in INT_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_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
INT_value:=TRUNC_TO_INT(REAL_value);
LD |
REAL_value |
TRUNC_TO_INT |
|
ST |
INT_value |