LrealIsNaN
Diese Funktion testet, ob ein Wert NaN (Not-a-Number) ist. Ist der Rückgabewert TRUE, dann ist der Wert NaN.
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
LrealIsNaN | BOOL | Ist der Rückgabewert TRUE, dann ist der Wert NaN. |
Eingänge
VAR_INPUT
x : REFERENCE TO LREAL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
x | REFERENCE TO LREAL | Übergabe des zu testenden Wertes. |
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.
| |
Fehlfunktionen der Software NaN-Werte führen zu potenziell gefährlichen Fehlfunktionen der betreffenden Software!
|
Hinweis | |
Maschinenschaden durch Floating Point Exceptions (FP Exceptions) Vergleiche mit NaN-Werten führen zu einer Exception, welche einen Stopp der Laufzeit und einen möglichen Maschinenschaden nach sich zieht.
|
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.4020 | PC oder CX (x86, x64, Arm®) | Tc2_Utilities (System) >=3.3.16.0 |