/
Konvertierungsfunktion

Konvertierungsfunktion

--R Robert

--R Sven / ein Kommentar verbleibend bei Abschnitt “Negieren”

Interne Datentypen des Timberwolf Server

Jede Datenübergabe in der Informatik setzt voraus, dass die Datentypen übereinstimmen. Das Objektsystem des Timberwolf Servers (und damit auch dessen Logikfunktion) nutzen die folgenden Datentypen:

  • Boolean: Nur die beiden binären Zustände 0 und 1 (respektive auch als False und True bezeichnet)

  • Integer: Vorzeichenbehaftete Ganzzahl

  • Float: Vorzeichenbehaftete Fließkommazahl

  • String: Text

Konvertierungen bei der Datenübergabe an Eingängen

Automatische Konvertierung an Wert-Eingängen (Zahlen)

Bei Zahlen greift im Timberwolf Server eine automatische Typ-Konvertierung. Erwartet eine Logik-Zelle am Eingang einen Wert vom Typ Integer (Ganzzahl) und wird aber eine Objekt vom Typ Float (Gleitkommazahl) verknüpft, wird diese Verknüpfung akzeptiert und eine automatische Rundung findet statt. Bei der Auswahl im Verknüpfungsassistenten und auch beim Tooltip des Eingangsobjekt erfolgt in diesem Fall ein Hinweis (gelbes Ausrufezeichen).

Vergleichsoperationen zur Konvertierung von Zahlen (Float oder Integer) zu Bool

In der GUI einer Logik-Zelle kann festgelegt werden, dass die an den Eingängen übergebenen Daten einer Vergleichsoperationen unterzogen werden, bevor sie von der Logik-Zelle verarbeitet werden. Der Eingang erhält so - je nach Anwendungsfall - entweder eine Filter- oder eine Wenn-Dann-Funktion.

So kann bspw. geprüft werden, ob der übergebene Integer-Wert kleiner als “500” ist; trifft dies zu, wird der Logik-Zelle ein boolean TRUE zur Verarbeitung übergeben.

In der GUI stehen folgende Vergleichsfunktionen zur Verfügung:

  • Innerhalb Bereich”: prüft, ob der Eingangswert im angegebenen Bereich liegt; falls ja, erhält der Eingang den Wert TRUE, anderenfalls FALSE.
    Hinweis: Werden der Min- und der Max-Wert auf den gleichen Wert gesetzt, kann damit eine “Ist gleich”-Prüfung des Eingangswerts vorgenommen werden

  • Schwellwert unter”: prüft, ob der vorgegebene Schwellwert unterschritten ist; falls ja, erhält der Eingang den Wert TRUE, anderenfalls FALSE.

  • “Schwellwert über”: prüft, ob der vorgegebene Schwellwert überschritten ist; falls ja, erhält der Eingang den Wert TRUE, anderenfalls FALSE.

  • Schwellwert mit Hysterese”: vergleicht den Eingangswert gleichzeitig mit der oberen und unteren Grenze;

    • ist die obere Grenze überschritten, erhält der Eingang den Zustand TRUE,

    • ist die untere Grenze unterschritten, erhält der Eingang den Wert FALSE (Hinweis: die untere Grenze sollte so festgelegt sein, dass sie unterschritten werden kann: bspw. macht es bei einem Lux-Wert keinen Sinn die untere Grenze auf 0 zu legen, da dieser Wert nie unterschritten werden kann),

    • liegt der Wert dazwischen, verbleibt der Eingang im bisherigen Zustand.

Glättung von Signalen mittels Tiefpass

Neben den Vergleichsoperationen können die empfangenen Werte an einem Eingang mittels Tiefpass gefiltert werden. Dies ist sowohl mit Float, Integer als auch Boolschen Werten möglich. Mit der Zeitkonstante des Tiefpassfilters kann die Stärke der Glättung gesteuert werden (siehe auch Logik-Modul Tiefpass).

Konvertierung bei der Datenübergabe an Ausgängen

Auch bei den Ausgängen findet eine automatische Typkonvertierung für Gleitkomma- und Ganzzahlen statt. Zusätzlich stellt die GUI die Funktion “Mapping” zur Verfügung. Sie erlaubt es, Werte umzuwandeln. Dies kann beispielsweise sinnvoll sein, wenn eine Logik-Zelle mit der Kernfunktion AND ein Objekt bedienen soll, welches vom Typ Integer ist. So kann bspw. ein Dimmwert von 60% an eine Leuchte gesendet werden, wenn das Ergebnis der Logik-Zelle TRUE lautet.

Invertieren von Werten an Ein- und Ausgängen

In einer Logik-Zelle können Werte auch umgewandelt werden, indem sie negiert werden. Dies erfolgt indem das kleine Kreissymbol beim entsprechenden Ein- oder Ausgang angeklickt wird. Bei bool’schen Werten wird aus TRUE ein FALSE und umgekehrt, bei Integer bzw. Float-Werten wechselt das Vorzeichen.

normal (nicht negiert)

 

negiert

 

2019 - 2024 by Elaborated Networks GmbH / Impressum / Datenschutzerklärung