Wertebereich prüfen und erzwingen - Funktion
- Aktualisiert2025-07-30
- 4 Minute(n) Lesezeit
Überprüft, ob x innerhalb des von den Eingängen Obergrenze und Untergrenze vorgegebenen Bereichs liegt. Die Funktion kann auch so eingestellt werden, dass ein Wert in den entsprechenden Bereich eingepasst wird. Die Funktion nimmt die Typumwandlung jedoch nur im Modus "Elemente vergleichen" vor. Damit die Funktion auch mit Zeitstempeln verwendet werden kann, müssen an allen Eingängen Zeitstempel anliegen. Bei dieser Funktion können Sie auch den Vergleichsmodus ändern.
Obergrenze, x und Untergrenze sollten normalerweise die gleiche Datenstruktur (Array oder Cluster) haben, können jedoch unterschiedlich numerisch dargestellt werden.
Wenn Sie zum Beispiel einen der Datentypen in ein Array ändern, müssen Sie zur Vermeidung ungültiger Verbindungen auch die verbleibenden Datentypen in Arrays ändern. Es ist jedoch möglich, mit x ein Array und mit Obergrenze und Untergrenze jeweils einen Skalar zu verbinden. Sie können auch Daten mit doppelter, einfacher Genauigkeit und Integer mit einander verbinden.
Die Standarddatentypen für diese polymorphe Funktion sind im Anschlussfeld dargestellt.

Ein-/Ausgänge
Obergrenze
—
Obergrenze des Bereichs.
x
—
x ist der Wert, der überprüft und/oder angepasst werden soll.
Untergrenze
—
Untergrenze des Bereichs.
Angepasster Wert(x)
—
Angepasster Wert(x) gibt den angepassten oder unveränderten Wert x aus. Wenn x innerhalb des durch Obergrenze und Untergrenze festgelegten Bereichs liegt oder sich die Funktion im Modus "Elementsätze vergleichen" befindet, bleibt der Wert unverändert. Wenn x nicht innerhalb dieses Bereichs liegt und die Funktion im Modus "Vergleichen mehrerer Elemente" ist, wird der Wert auf Obergrenze oder Untergrenze konvertiert. Wenn Obergrenze, x oder Untergrenze NaN ist, wird Angepasster Wert(x) auf NaN gesetzt.
Im gültigen Bereich?
—
Im gültigen Bereich? ist im Modus "Elementsätze vergleichen" ein boolescher Wert. Im Modus "Elementsätze vergleichen" entspricht die Datenstruktur in Im gültigen Bereich? der von x, jedoch mit dem Unterschied, dass alle Skalarwerte durch boolesche Werte ersetzt sind. Wenn Obergrenze, x oder Untergrenze den Wert NaN hat, dann ist Im gültigen Bereich FALSE. |
Diese Funktion vergleicht die Eingangsdaten nach den Regeln des Booleschen Vergleichs. Im Modus Elementsätze vergleichen gibt die Funktion in Angepasster Wert(x) den gleichen Wert x aus wie am Eingang anliegt. Diese Funktion betrachtet jedes Eingangs-Array als einzelnes Elementsatzobjekt (ähnlich wie bei Clustern), wobei das erste Element als primär für den Vergleich gilt. Wenn x größer ist als Obergrenze und die Funktion sich im voreingestellten Modus Elemente vergleichen befindet, wird x die neue Obergrenze. Wenn x kleiner als Untergrenze ist, und es ist der Modus "Elemente vergleichen" eingestellt, wird x in diesen Wert umgewandelt.
Wenn Sie Integer mit und ohne Vorzeichen mit den Eingängen Obergrenze, x und Untergrenze der Funktion "Wertebereich prüfen und erzwingen" verbinden, werden alle Eingänge in den gleichen vorzeichenlosen Integertyp umgewandelt. Das kann bei negativen Eingangswerten zu unerwarteten Ergebnissen führen. Wenn Sie z. B. einen vorzeichenlosen Integer mit Obergrenze und einen negativen vorzeichenbehafteten Integer mit Untergrenze verbinden, interpretiert LabVIEW möglicherweise den Eingang Untergrenze als größer als den Eingang Obergrenze. Zum Vermeiden dieses Problems müssen die Integer-Eingänge in den gleichen Typ umgewandelt werden, bevor sie mit der Funktion "Wertebereich prüfen und erzwingen" verbunden werden.
Wenn der untere Grenzwert größer als der obere Grenzwert ist, ist Im gültigen Bereich? immer FALSE und LabVIEW ändert den unteren Grenzwert und den oberen Grenzwert intern, bevor Anpassung(x) berechnet wird.
Details zum FPGA-Modul
Die folgenden Details gelten, wenn Sie dieses Objekt in einem FPGA-VI verwenden.
| SCTL (Single-Cycle Timed Loop) | Unterstützt. |
| Verwendung | Wenn der Wert von Untergrenze größer als der Wert von Obergrenze ist, vertauscht LabVIEW die Werte von Untergrenze und Obergrenze nicht. Die Werte von Untergrenze und Obergrenze müssen manuell geändert werden, wenn der Wert von Untergrenze nicht größer als der Wert von Obergrenze sein soll. Ein Array oder Cluster kann nicht mit dieser Funktion in einer SCTL verbunden werden. Wenn Sie diese Funktion mit dem Fließkomma-Datentyp mit einfacher Genauigkeit verwenden, lesen Sie den Abschnitt Verwendung des Fließkomma-Datentyps mit einfacher Genauigkeit und Entscheidung Welcher Datentyp in FPGA-Entwürfen verwendet wird. |
| Timing | In Single-Cycle Timed Loop--Wenn Sie Vergleichsfunktionen in einer Single-Cycle Timed Loop verwenden, ist die kombinatorische Verzögerung proportional zur Breite der Datentypen, die Sie vergleichen. Außerhalb einer SCTL--Bei Verwendung von Vergleichsfunktionen außerhalb einer SCTL dauert jede Vergleichsfunktion eine Taktperiode. Wenn Sie die Vergleichsfunktionen mit dem Festkommadatentyp verwenden, können sich die Überlauf- und Rundungsmodi auf das Timing auswirken. |
| Ressourcen | Die Vergleichsfunktionen verwenden FPGA-Ressourcen proportional zur Breite der verglichenen Datentypen. |
Beispiele
Die folgenden Beispieldateien sind in LabVIEW enthalten.
- labview\examples\Comparison\In Range and Coerce.vi
Obergrenze
—
Angepasster Wert(x)
—
Im gültigen Bereich?
—