Tipp |
---|
Tipp |
--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. Der 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
Beibei der Datenübergabe an Eingängen
Boolsche Eingängen
Beispiel: Das AND-Logik-Modul ist eine boolesche Logik und kann nur boolesche Datentypen am Eingang des Logikkerns verarbeiten. Wird am Eingang einer solchen Logik-Zelle ein Objekt vom Typ Float verknüpft. dann muss der Wert des Objektes für die Nutzung des Logikkern zuvor konvertiert werden.
Für diesen Zweck kann im Logik Manager - vor dem Logikkern einer Logik-Zelle - eine frei einstellbare Konvertierung erfolgen. Eine Möglichkeit ist dabei die Nutzung der Funktion “Innerhalb Bereich”. Diese Funktion prüft, ob der Eingangswert im konfigurierten Bereich liegt und gibt ein boolesches Ergebnis gemäß nachfolgender Wahrheitstabelle aus.
Wahrheitstabelle
Ergebnis der Überprüfung
Ausgabewert der Funktion
Wert innerhalb des angegebenen Bereiches
1 (TRUE)
Wert nicht innerhalb des angegebenen Bereiches
0 (FALSE)
Automatische Konvertierung an Wert-Eingängen (Zahlen)
Bei Zahlen greift im Timberwolfserver Timberwolf Server eine automatische Typ-KnovertierungKonvertierung. 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 DOS Verknüpfungsassistenten und auch beim Tooltip des Eingangsobjekt erfolgt in diesem Fall ein Hinweis (gelbes Ausrufezeichen).
BeiVergleichsoperationen 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 ein AND-eine Logik-Modul 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.
In Custom-LogikenInvertieren von Werten an Ein- und Ausgängen
In Custom-Logiken kann die Datenkonvertierung direkt im Code erfolgen. Dafür stehen - abhängig vom Anwendungsfall - verschiedene Modulbausteine (bspw. “Latch” oder “Multiplexer”) zur Verfügung.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 |