Beispielprogramme
Die folgenden Beispiele zeigen typische Signalflüsse des Programm-Editors. Sie sind als Ausgangspunkt gedacht; Grenzwerte, Zeiträume, Ausgangszuordnungen und Aktoren müssen an die jeweilige Anwendung angepasst werden.
Beispiel 1: Ausgang bei hoher Temperatur aktivieren
Ziel: Ein Ausgang soll aktiv werden, wenn für heute mindestens ein Temperaturwert über 30 °C liegt.
Wetterdaten
Art: Temperatur
Zeitraum: heute
│ Daten
▼
Prüfen
Datenwerte: einmalig
Vergleich: größer
Wert: 30
│ Logik
▼
Geräteausgang
Der Wetterdatenblock liefert die Temperaturwerte des gewählten Zeitraums. Prüfen erzeugt ein Logiksignal, sobald die konfigurierte Bedingung erfüllt ist.
Beispiel 2: Maximale Windgeschwindigkeit prüfen
Ziel: Die höchste Windgeschwindigkeit eines Zeitraums soll zunächst als einzelner Wert bestimmt und anschließend geprüft werden.
Wetterdaten Windgeschwindigkeit
│ Daten
▼
Statistik
Kenngröße: Maximum
│ Wert
▼
Prüfen
Vergleich: größer gleich
Wert: gewünschter Grenzwert
│ Logik
▼
Geräteausgang
Dieses Beispiel zeigt den typischen Übergang Daten → Wert → Logik.
Beispiel 3: Wetterbedingung nur während eines Zeitfensters zulassen
Ziel: Eine Funktion soll nur dann aktiv sein, wenn eine Wetterbedingung erfüllt ist und gleichzeitig das Wochenzeitfenster aktiv ist.
Wetterdaten ─> Prüfen ───────┐
├─> UND ─> Geräteausgang
Zeitschaltuhr ────────────────┘
Der UND-Block stellt sicher, dass beide Bedingungen gleichzeitig erfüllt sein müssen.
Beispiel 4: Zwei alternative Ursachen als ODER verwenden
Ziel: Ein Ausgang soll bei einer Wetterwarnung oder bei einem bestimmten Wetterereignis aktiv werden.
Warnungen ───────────┐
├─> Geräteausgang
Wetterereignis ──────┘
Hier ist kein separater ODER-Block notwendig. Mehrere logische Quellen bilden am gemeinsamen logischen Verbraucher die ODER-Bedingung.
Beispiel 5: Shelly-Leistung anzeigen und auf Grenzwert prüfen
Ziel: Die aktuelle Leistung eines Shelly-Geräts soll im Dashboard sichtbar sein und gleichzeitig für eine Grenzwertbedingung verwendet werden.
┌─> Ausgabevariable „Leistung"
Shelly Meter ──Wert────┤
└─> Prüfen ──Logik──> Geräteausgang
Die Ausgabevariable verändert den Wert nicht. Sie dient nur der Anzeige. Derselbe Ausgang des Shelly-Meter-Blocks kann parallel für die Logik weiterverwendet werden.
Beispiel 6: Analogen Modbus-Wert skalieren
Ziel: Ein über ein analoges Modbus-Ausgangsregister bereitgestellter Wert soll umgerechnet und anschließend angezeigt werden.
Modbus Output
Register: Analog Output Holding Register
│ Wert
▼
Skalierung
Methode: Linear oder Min/Max
│ Wert
▼
Ausgabevariable
Da die Skalierung einen Wert als Eingang erhält, stellt sie ihren Ein- und Ausgang automatisch auf Wert ein.
Beispiel 7: Programmwert über Modbus bereitstellen
Ziel: Eine berechnete Bedingung soll für eine SPS oder Gebäudeleittechnik als Discrete Input bereitgestellt werden.
Wetterdaten ─> Prüfen ──Logik──> Modbus Input
Register: Discrete Input Contact
Bei Discrete Input Contact ist der Eingang des Modbus-Input-Blocks logisch. Für ein Analog Input Register wird stattdessen ein numerischer Wert angeschlossen.
Beispiel 8: Sonnenabhängige Funktion mit Wetterfreigabe
Ziel: Ein Verbraucher soll nur tagsüber beziehungsweise im über die Astrouhr definierten Sonnenzeitfenster und bei einer zusätzlichen Wetterbedingung aktiv sein.
Astrouhr ──────────────┐
├─> UND ─> Aktor
Wetterdaten ─> Prüfen ─┘
Mit den Offsets der Astrouhr kann die Umschaltung gegenüber Sonnenaufgang und Sonnenuntergang verschoben werden.
Zwischenergebnisse sichtbar machen
Bei der Inbetriebnahme eines größeren Programms ist es hilfreich, wichtige Zwischenergebnisse zusätzlich auf Ausgabevariablen zu führen:
Quelle ──────┬─> Verarbeitung ─> Ausgang
└─> Ausgabevariable
Dadurch kann geprüft werden, welcher Wert die nachfolgende Logik tatsächlich erreicht.
Programme schrittweise aufbauen
Bei komplexen Abläufen empfiehlt sich:
- Quellen einfügen und prüfen.
- Ausgabevariablen für wichtige Zwischenergebnisse ergänzen.
- Datenverarbeitung aufbauen.
- Logische Bedingungen ergänzen.
- Aktoren beziehungsweise Geräteausgänge zuletzt anschließen.
- Zwischenstände bei Bedarf als Entwurf speichern.
- Erst das vollständig validierte Programm aktiv übertragen.