Verknüpfungsarten: Logik, Wert und Daten
Der Programm-Editor unterscheidet drei Informationsarten. Diese Typisierung sorgt dafür, dass nur fachlich passende Funktionsblöcke miteinander verbunden werden.

Logik
Logik beschreibt einen binären Zustand:
TRUE/FALSE- EIN / AUS
- Bedingung erfüllt / nicht erfüllt
Typische Blöcke mit Logikanschlüssen sind:
- Prüfen als Ausgang,
- UND,
- Invertierer,
- Zeitschaltuhr,
- Timer,
- Astrouhr,
- Wetterereignis,
- Warnungen,
- Shelly Aktor als Eingang.
Logikverbindungen werden im Editor grün dargestellt.
Wert
Wert bezeichnet einen einzelnen numerischen Wert. Beispiele:
- Temperatur
21.5 - Leistung
850 - Spannung
230.1 - berechnetes Ergebnis
-4.2
Typische Blöcke sind:
- Arithmetik,
- Statistik als Ausgang,
- Shelly Meter,
- Shelly H&T,
- analoger Modbus-Wert.
Wertverbindungen werden im Editor in einem grau-blauen Farbton dargestellt.
Daten
Daten bezeichnet eine Reihe zusammengehöriger Werte. Der häufigste Anwendungsfall sind zeitlich aufgelöste Wetterdaten.
Beispiel:
[8.4, 9.1, 10.3, 11.8, 12.0]
Ein Datenblock kann beispielsweise durch Statistik auf einen einzelnen Wert reduziert oder durch Prüfen anhand einer Datenbedingung ausgewertet werden.
Datenverbindungen werden im Editor blau dargestellt.
Warum Wetterdaten keine einzelne Zahl sind
Der Block Wetterdaten stellt für den gewählten Zeitraum eine Datenreihe bereit. Dadurch kann das nachfolgende Programm selbst entscheiden, wie die Werte auszuwerten sind.
Beispiele:
Wetterdaten ──Daten──> Statistik ──Wert──> Prüfen
oder direkt:
Wetterdaten ──Daten──> Prüfen
Die Aufteilung verhindert, dass bereits im Wetterdatenblock unbemerkt eine bestimmte Aggregation vorgenommen wird.
Dynamische Anschlüsse
Einige Blöcke passen ihren Anschlusstyp an die Konfiguration oder an die verbundene Quelle an.
Skalierung
Die Skalierung zeigt ohne Verbindung Daten / Wert. Sobald ein Wert oder Daten angeschlossen wird, übernehmen Eingang und Ausgang diesen Typ.

Wird die Eingangsverbindung wieder gelöscht, wechselt die Skalierung zurück auf Daten / Wert. So kann sie anschließend erneut mit beiden numerischen Informationsarten verwendet werden.
Prüfen
Der Block Prüfen akzeptiert am Eingang Wert oder Daten. Damit kann sowohl ein einzelner Mess- beziehungsweise Rechenwert als auch eine komplette Datenreihe in ein Logiksignal umgewandelt werden.
Modbus
Bei Modbus-Blöcken hängt die Informationsart vom gewählten Registertyp ab. Beim Modbus Input wird der Eingang automatisch angepasst:
- Discrete Input Contact → Logik
- Analog Input Register → Wert
Beim Modbus Output wird entsprechend der Ausgang angepasst:
- Discrete Output Coil → Logik
- Analog Output Holding Register → Wert
Benutzerdefinierter Code
Beim Code-Block können Ein- und Ausgangstyp in den Eigenschaften gewählt werden. Nicht mehr passende Verbindungen müssen nach einer Typänderung korrigiert werden.
Universeller Anschluss *
Ein * kennzeichnet einen Anschluss, der mehrere Informationsarten aufnehmen kann. Das bedeutet nicht, dass jeder nachfolgende Verarbeitungsschritt automatisch mit jedem Inhalt umgehen kann. Die semantische Bedeutung des angeschlossenen Blocks bleibt zu beachten.
Die Ausgabevariable ist ein typisches Beispiel: Sie kann unterschiedliche Werte zur Anzeige übernehmen und benötigt deshalb keinen festen Eingangstyp.
Ungültige Verbindungen
Wenn ein bereits geladenes Programm eine Verbindung enthält, deren Typen nicht mehr zusammenpassen, markiert der Editor diese Verbindung rot. Ein solches Programm kann nicht als aktives Programm übertragen werden, bevor die fehlerhafte Verbindung korrigiert wurde.
Übersicht
| Typ | Inhalt | Typische Verwendung |
|---|---|---|
| Logik | binärer Zustand | Schalten, Bedingungen, logische Verknüpfung |
| Wert | einzelne Zahl | Rechnen, Messwert, Skalierung, Anzeige |
| Daten | Zahlenreihe | Wetterverlauf, Statistik, Auswertung mehrerer Werte |
| * | mehrere Typen zulässig | universelle Übergabe an dafür ausgelegte Blöcke |
Typen nicht künstlich umgehen
Die Typprüfung ist ein Schutz gegen unklare Programme. Wenn zwei Blöcke nicht verbunden werden können, sollte der Signalfluss mit einem dafür vorgesehenen Umwandlungs- oder Auswerteblock aufgebaut werden, statt die Typisierung zu umgehen.