RealIsNaN
Diese Funktion testet, ob ein Wert NaN (Not-a-Number) ist. Ist der Rückgabewert TRUE, dann ist der Wert NaN.
FUNCTION RealIsNaN : BOOL
VAR_INPUT
x : REFERENCE TO REAL;
END_VAR
Zu den wesentlichen Eigenschaften von NaN-Werten zählen die folgenden Punkte:
- Alle arithmetischen Operationen, die NaN als Eingangsdaten verwenden, liefern wiederum NaN als Ergebnis.
- Alle relationalen Operatoren =, !=, > < >= <= liefern stets den Wert False, wenn mindestens einer der Operanden NaN ist.
- Die Standard-C-Funktionen
isnan()
bzw._isnan()
oder die SPS Funktionen LrealIsNaN() und RealIsNaN() (Tc2_Utilities Bibliothek) liefern den Wert True, wenn das Argument den Wert NaN hat. - Der Ausdruck
isnan(a)
ist äquivalent dem Ausdruck!(a == a)
bzw.NOT(a = a)
.
Die Tatsache, dass NaN-Werte sich bei der Verwendung in weiteren Berechnungen fortpflanzen, hat den Vorteil, dass ungültige Werte nicht übersehen werden können.
VORSICHT | |
Fehlfunktionen der Software NaN-Werte dürfen in SPS-Bibliotheken, insbesondere als Stellwerte in Funktionen für Motion Control und zur Antriebssteuerung, nur verwendet werden, wenn sie ausdrücklich zugelassen sind! Anderenfalls können NaN-Werte zu potenziell gefährlichen Fehlfunktionen der betreffenden Software führen! |
VORSICHT | |
Floating Point Exceptions Falls NaNs in der Applikation verwendet und verarbeitet werden sollen, müssen die FP Exceptions ausgeschaltet werden. Andernfalls können Vergleiche mit NaN zu einer Exception führen, welche einen Stopp der Laufzeit und möglichen Maschinenschaden nach sich zieht. |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.4024.32 | PC oder CX (x86, x64, ARM) | Tc2_Utilities (System) >= 3.3.50.0 |