Die Gleitpunktzahlen mit denen in Step7 gearbeitet wird sind nach IEEE definiert und gehören zum Datentyp REAL mit einer Länge von 32 Bit. In Kontaktplan KOP sind folgende mathematische
Mit einer Gleitpunktzahl können in Step7 folgende Funktionen ausgeführt werden:
Die mathematischen Gleitpunkt-Funktionen beeinflussen im Statuswort die Bits OV, OS, A0 und A1. Über diese Bits können die Rechenoperationen ausgewertet werden. Durch die Länge von 32 Bit der Gleitpunktzahlen ergeben sich auch hier gültige und ungültige Bereiche. Bereichsüberschreitungen können über die vorgenannten Bits des Statuswortes ausgewertet werden, dabei haben die Bits folgende Signalzustände:
Ungültiger Bereich | A1 | A0 | OV | OS |
|---|---|---|---|---|
Unterschreitung | 0 | 0 | 1 | 1 |
Unterschreitung | 0 | 0 | 1 | 1 |
Überlauf | 0 | 1 | 1 | 1 |
Überlauf | 1 | 0 | 1 | 1 |
keine gültige Gleitpunktzahl oder unzulässige Operation | 1 | 1 | 1 | 1 |
Gültiger Bereich | A1 | A0 | OV | OS |
|---|---|---|---|---|
+0, -0 (Null) | 0 | 0 | 0 | * |
-3.402823E+38 < Ergebnis < -1.175494E-38 (negative Zahl) | 0 | 1 | 0 | * |
+1.175494E-38 < Ergebnis < 3.402824E+38 (positive Zahl) | 1 | 0 | 0 | * |
* Das OS-Bit wird vom Ergebnis der Operation nicht beeinflußt.

ADD_R Addition von Gleitpunktzahlen
Am Eingang IN1 wird die erste Zahl vom Format REAL (32 Bit Gleitpunktzahl) und am Eingang IN2 die zweite Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Die Rechenoperation Gleitpunktzahlen addieren wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt, an einem der beiden Eingänge IN1/IN2 keine Gleitpunktzahl anliegt bzw. das Ergebnis keine Gleitpunktzahl ist. In diesem Fall führt auch der Ausgang ENO den Wert "0".
Erhält der Freigabeeingang EN den Signalzustand "1", dann wird die Rechenoperation Gleitpunktzahlen addieren durchgeführt. Am Ausgang OUT kann das Ergebnis abgefragt werden. Liegt an den Eingängen IN1 oder IN2 keine Gleitpunktzahl an oder ist das Ergebnis keine Gleitpunktzahl, dann führen das OV-Bit und das OS-Bit den Wert "1" und der Freigabeausgang ENO den Wert"0".
SUB_R Subtraktion von Gleitpunktzahlen
Am Eingang IN1 wird die erste Zahl vom Format REAL (32 Bit Gleitpunktzahl) und am Eingang IN2 die zweite Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Die Rechenoperation Gleitpunktzahlen subtrahieren wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt, an einem der beiden Eingänge IN1/IN2 keine Gleitpunktzahl anliegt bzw. das Ergebnis keine Gleitpunktzahl ist. In diesem Fall führt auch der Ausgang ENO den Wert "0".
Erhält der Freigabeeingang EN den Signalzustand "1", dann wird die Rechenoperation Gleitpunktzahlen subtrahieren durchgeführt. Die Gleitpunktzahl von Eingang IN2 wird von der Gleitpunktzahl an Eingang IN1 subtrahiert. Am Ausgang OUT kann das Ergebnis abgefragt werden. Liegt an den Eingängen IN1 oder IN2 keine Gleitpunktzahl an oder ist das Ergebnis keine Gleitpunktzahl, dann führen das OV-Bit und das OS-Bit den Wert "1" und der Freigabeausgang ENO den Wert"0".
MUL_R Multiplikation von Gleitpunktzahlen
Am Eingang IN1 wird die erste Zahl vom Format REAL (32 Bit Gleitpunktzahl) und am Eingang IN2 die zweite Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Die Rechenoperation Gleitpunktzahlen multiplizieren wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt, an einem der beiden Eingänge IN1/IN2 keine Gleitpunktzahl anliegt bzw. das Ergebnis keine Gleitpunktzahl ist. In diesem Fall führt auch der Ausgang ENO den Wert "0".
Erhält der Freigabeeingang EN den Signalzustand "1", dann wird die Rechenoperation Gleitpunktzahlen multiplizieren durchgeführt. Die Gleitpunktzahl von Eingang IN1 wird mit der Gleitpunktzahl von Eingang IN2 multipliziert. Am Ausgang OUT kann das Ergebnis abgefragt werden. Liegt an den Eingängen IN1 oder IN2 keine Gleitpunktzahl an oder ist das Ergebnis keine Gleitpunktzahl, dann führen das OV-Bit und das OS-Bit den Wert "1" und der Freigabeausgang ENO den Wert"0".
DIV_R Division von Gleitpunktzahlen
Am Eingang IN1 wird die erste Zahl vom Format REAL (32 Bit Gleitpunktzahl) und am Eingang IN2 die zweite Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Die Rechenoperation Gleitpunktzahlen dividieren wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt, an einem der beiden Eingänge IN1/IN2 keine Gleitpunktzahl anliegt bzw. das Ergebnis keine Gleitpunktzahl ist. In diesem Fall führt auch der Ausgang ENO den Wert "0".
Erhält der Freigabeeingang EN den Signalzustand "1", dann wird die Rechenoperation Gleitpunktzahlen dividieren durchgeführt. Die Gleitpunktzahl von Eingang IN1 wird durch die Gleitpunktzahl an Eingang IN2 dividiert (IN1 ÷ IN2 = OUT). Am Ausgang OUT kann das Ergebnis abgefragt werden. Liegt an den Eingängen IN1 oder IN2 keine Gleitpunktzahl an oder ist das Ergebnis keine Gleitpunktzahl, dann führen das OV-Bit und das OS-Bit den Wert "1" und der Freigabeausgang ENO den Wert"0".
ABS bilden des Absolutwertes einer Gleitpunktzahl
Am Eingang IN wird eine Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Die Umwandlungsoperation Bilden des Absolutwertes einer Gleitpunktzahl wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt.
Erhält der Freigabeeingang EN den Signalzustand "1", dann wird die Umwandlungsoperation Bilden des Absolutwertes einer Gleitpunktzahl durchgeführt. Die Gleitpunktzahl von Eingang IN wird am Ausgang OUT mit ihrem Absolutwert ausgegeben. Wird die Umwandlung nicht ausgeführt, dann führt der Ausgang ENO den Wert "0". Es gilt: der Freigabeausgang ENO hat den gleichen Signalzustand wie der Eingang EN.
Beispiel: Die Gleitpunktzahl -5,625 wird nach der Umwandlungsoperation mit 5,625 ausgegeben.

SQR bilden des Quadrates einer Gleitpunktzahl
Eine Gleitpunktzahl kann mittels der Operation Bilden des Quadrates einer Gleitpunktzahl quadriert werden. Am Eingang IN der Funktionbox Bilden des Quadrates einer Gleitpunktzahl wird eine Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Die Bildung des Quadrates dieser Gleitpunktzahl wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt.
Erhält der Freigabeeingang EN den Signalzustand "1", dann wird die Gleitpunktzahl quadriert. Die quadrierte Gleitpunktzahl wird am Ausgang OUT ausgegeben. Die Umwandlung wird nicht ausgeführt, wenn am Eingang IN keine Gleitpunktzahl anliegt oder das Ergebnis keine Gleitpunktzahl ist. Dann führen das OV-Bit und das OS-Bit den Wert "1" und der Freigabeausgang ENO den Wert"0".
SQRT bilden der Quadratwurzel einer Gleitpunktzahl
Die Quadratwurzel einer Gleitpunktzahl kann mittels der Operation Bilden der Quadratwurzel einer Gleitpunktzahl gezogen werden. Am Eingang IN der Funktionsbox Bilden der Quadratwurzel einer Gleitpunktzahl wird eine Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Das Ziehen der Quadratwurzel dieser Gleitpunktzahl wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt.
Erhält der Freigabeeingang EN den Signalzustand "1", dann wird die Quadratwurzel der Gleitpunktzahl gezogen. Die Quadratwurzel der Gleitpunktzahl wird am Ausgang OUT ausgegeben. Das Bilden der Quadratwurzel wird nicht ausgeführt, wenn am Eingang IN keine Gleitpunktzahl anliegt, das Ergebnis keine Gleitpunktzahl ist oder die Gleitpunktzahl < 0 ist. Dann führen das OV-Bit und das OS-Bit den Wert "1" und der Freigabeausgang ENO den Wert"0".
EXP bilden des Exponentialwertes einer Gleitpunktzahl auf der Basis e
Mit der Box EXP kann man den Exponentialwert (Exponentialwert zur Basis e) einer Gleitpunktzahl (32-Bit, IEEE-FP) in AKKU 1 berechnen. Das Ergebnis wird in AKKU 1 gespeichert. Durch die Operation werden die Bits A1, A0, OV und OS des Statusworts beeinflusst. Exponentialwert einer Gleitpunktzahl auf der Basis e (= 2,718282e+000).
Das Bilden des Exponentialwertes einer Gleitpunktzahl wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt. Das Bilden des Exponentialwertes wird auch nicht ausgeführt, wenn am Eingang IN keine Gleitpunktzahl anliegt oder das Ergebnis keine Gleitpunktzahl ist. Dann führen das OV-Bit und das OS-Bit den Wert "1" und der Freigabeausgang ENO den Wert"0".
Nach der Formel: ab = eb * ln a können Potenzen zu einer beliebigen Basis berechnet werden.
LN bilden des natürlichen Logarithmus einer Gleitpunktzahl
Der natürliche Logarithmus einer Gleitpunktzahl kann mittels der Operation Bilden des natürlichen Logarithmus einer Gleitpunktzahl gebildet werden. Am Eingang IN der Box des natürlichen Logarithmus einer Gleitpunktzahl wird eine Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Die Operation wird nicht ausgeführt, wenn der Eingang EN den Wert"0" führt.
Erhält der Freigabeeingang EN den Signalzustand "1", dann wird der natürliche Logarithmus der Gleitpunktzahl zur Basis e=2.718282e+000 gebildet. Das Ergebnis dieser Operation wird am Ausgang OUT ausgegeben. Der Logarithmus einer Gleitpunktzahl wird nicht berechnet, wenn am Eingang IN keine Gleitpunktzahl anliegt, das Ergebnis keine Gleitpunktzahl ist oder die Gleitpunktzahl < 0 ist. Dann führen das OV-Bit und das OS-Bit den Wert "1" und der Freigabeausgang ENO den Wert"0".
Der Logarithmus zu einer beliebigen Basis kann mit Hilfe der Formel logb a = logn a ÷ logn b berechnet werden. Ersetzt man n durch e, dann ergibt sich logb a = ln a ÷ ln b. Somit lässt sich der Logarithmus zur Basis 10 über die Formel lg a = ln a ÷ ln 10 bestimmen.

Mit den folgenden Operationen können trigonometrische Funktionen von Winkeln, die als Gleitpunktzahlen dargestellt sind, gebildet werden:
Operation | Bedeutung |
|---|---|
SIN | Bilden des Sinus einer Gleitpunktzahl von einem Winkel, der im Bogenmaß |
ASIN | Bilden des Arcussinus einer Gleitpunktzahl. Das Ergebnis ist ein Winkel, der |
COS | Bilden des Cosinus einer Gleitpunktzahl von einem Winkel, der im |
ACOS | Bilden des Arcuscosinus einer Gleitpunktzahl. Das Ergebnis ist ein Winkel, |
TAN | Bilden des Tangens einer Gleitpunktzahl von einem Winkel, der im |
ATAN | Bilden des Arcustangens einer Gleitpunktzahl. Das Ergebnis ist ein Winkel, |
Am Eingang IN der Funktionsbox Bilden von trigonometrischen Funktionen von Winkeln als Gleitpunktzahlen wird eine Zahl vom Format REAL (32 Bit Gleitpunktzahl) eingelesen. Erhält der Freigabeeingang EN einer Winkelfunktionsbox den Signalzustand "1", dann wird der Wert der jeweiligen Winkelfunktion (SIN, ASIN, COS, ACOS, TAN, ATAN) der Gleitpunktzahl gebildet. Das Ergebnis dieser Operation wird am Ausgang OUT ausgegeben. Die Winkelfunktion einer Gleitpunktzahl wird nicht berechnet, wenn am Eingang IN keine Gleitpunktzahl anliegt oder das Ergebnis keine Gleitpunktzahl ist. Dann führt der Freigabeausgang ENO den Wert"0".