Automatisierung – Regelkreise

Mit Regelkreisen erstellen Sie Automatisierungsregeln visuell statt durch Programmieren — Sensoren und Bedingungen werden in einem tabellenähnlichen Editor eingegeben, und die Abilis wandelt die Formeln für Sie in ein Lua-Programm um. Das Prinzip ähnelt der Programmierung einer PLC, jedoch ohne spezielle Programmierkabel-Hardware.

Ein Regelkreis ist eine automatisierte Routine, die Eingaben von Sensoren liest, Regeln anwendet und Ausgänge ansteuert. Zum Beispiel: „Temperatursensor lesen → wenn sie über 25°C liegt → Klimaanlage einschalten.“ Traditionell erfordert dies Programmcode; im Regelkreis-Editor formulieren Sie die Regeln visuell.

Der Regelkreis-Editor

Regelkreise – die Hauptliste mit den konfigurierten Regelkreisen und ihrem Status.
Regelkreise – die Hauptliste mit den konfigurierten Regelkreisen und ihrem Status.

Wenn Sie einen neuen Regelkreis erstellen (Neu +), zeigt der Editor zwei Haupttabellen:

Tabelle der Eingangsgeräte

Die obere Tabelle listet die Sensoren auf – Geräte, von denen der Regelkreis liest.

SpalteBedeutung
GerätDer physische Gerätename (z. B. RIO-1, Sonoff-3).
PortWelcher konkrete Port bzw. Kanal am Gerät.
BeschreibungEine für Menschen lesbare Bezeichnung (z. B. „Büro-Temperatursensor“).
XDer in Formeln verwendete Variablenname. Der erste Eingang ist X1, der zweite X2 usw. (Trotz des Buchstabens ist dies keine räumliche Koordinate — es ist nur ein kurzer Name, um den Sensor in Ihrer Formel anzusprechen.)
WertDer aktuell von diesem Sensor gelesene Wert.

Tabelle der Ausgangsgeräte

Die untere Tabelle listet die Aktoren auf – Geräte, die der Regelkreis steuert.

SpalteBedeutung
GerätDer physische Gerätename.
PortWelcher Port bzw. Kanal.
BeschreibungFür Menschen lesbare Bezeichnung.
YDer Variablenname für diesen Ausgang: Y1 für den ersten Ausgang, Y2 für den zweiten usw. (Gleiche Konvention wie bei den X-Eingängen — keine räumliche Koordinate.)
WertHier schreiben Sie die Formel. Die Formel verweist auf Eingangskoordinaten (X1, X2 ...) und erzeugt den Ausgang. Beispiel: IF(X1>25, 1, 0) schaltet den Ausgang EIN, wenn die Temperatur (X1) 25°C überschreitet.

Klicken Sie auf Virtuellen Ausgang hinzufügen, um weitere Ausgangszeilen hinzuzufügen. Ein virtueller Ausgang ist nicht mit einem physischen Aktor verbunden — verwenden Sie ihn für Zwischenberechnungen, deren Ergebnis in eine andere Formel einfließt, oder für Zustandswerte, die Sie protokollieren möchten, ohne etwas anzusteuern.

Syntaxanleitung der Tabelle

Neuer Regelkreis – der Editor mit Eingabefeldern für Regelkreisparameter und Bedingungen.
Neuer Regelkreis – der Editor mit Eingabefeldern für Regelkreisparameter und Bedingungen.
Syntaxreferenz der Regelkreise – Formeloperatoren und Ausdrucksbeispiele.
Syntaxreferenz der Regelkreise – Formeloperatoren und Ausdrucksbeispiele.

Auf der rechten Seite des Editors bietet eine ausklappbare Syntaxanleitung der Tabelle Hinweise zum Schreiben von Formeln. Sie enthält folgende Abschnitte:

Schaltflächen der Symbolleiste

SchaltflächeFunktion
ZeitsteuerungLegt fest, wie oft der Regelkreis ausgeführt wird (z. B. jede Sekunde, alle 5 Sekunden, jede Minute).
Anleitung öffnen / Anleitung schließenBlendet das Panel mit der Syntaxanleitung auf der rechten Seite ein oder aus. Die Beschriftung der Schaltfläche ändert sich je nach aktuellem Zustand.
GeräteFügt den Tabellen Eingangssensoren und Ausgangsaktoren hinzu.
ExportierenExportiert die Konfiguration des Regelkreises in eine Datei (damit sie auf einer anderen Abilis importiert oder als Sicherung aufbewahrt werden kann).
LöschenLöscht diesen Regelkreis vollständig.
SpeichernSpeichert den Regelkreis. Er wird automatisch in ein Lua-Skript umgewandelt, das auf der Registerkarte Programme erscheint.
SchließenBeendet den Editor.
Gehen Sie nach dem Speichern eines Regelkreises zur Registerkarte Programme – Ihr Regelkreis erscheint dort als Lua-Skript, das Sie starten, stoppen und bei Bedarf noch weiter anpassen können.

Vollständige Formelreferenz

Die folgenden Funktionen und Operatoren stehen in Regelkreis-Formeln zur Verfügung (aus dem offiziellen Abilis-Tutorial):

Mathematische Operatoren

Standardarithmetik: + (Addition), - (Subtraktion), * (Multiplikation), / (Division), ( ) (Klammern zur Gruppierung).

Mathematische Funktionen

FunktionBeschreibung
ABS(value)Gibt die Zahl mit positivem Vorzeichen zurück (Absolutwert).
EVEN(value)Gibt 1 zurück, wenn die Zahl gerade ist, 0 bei ungerade.
ODD(value)Gibt 1 zurück, wenn die Zahl ungerade ist, 0 bei gerade.
INT(value)Gibt den ganzzahligen Anteil zurück und entfernt die Dezimalstellen.
ROUND(value, decimals)Rundet die Zahl auf die angegebene Anzahl von Dezimalstellen.
LOG10(value)Gibt den Logarithmus zur Basis 10 zurück.
MOD(value)Gibt den Dezimalanteil zurück und entfernt den ganzzahligen Anteil (z. B. MOD(3.14) = 0.14). Hinweis: Diese Funktion hat nur ein Argument und ist Abilis-spezifisch — sie ist nicht die Modulo-/Restoperation, die MOD(x, y) in den meisten Tabellenkalkulationen bedeutet. Verwenden Sie für Modulo auf der Abilis den Operator % (z. B. 7%3 = 1).
RAND()Gibt eine Zufallszahl zwischen 0 und 1 zurück.
RANDBETWEEN(from, to)Gibt eine zufällige ganze Zahl zwischen den beiden Werten zurück.
POW(value, exponent)Potenziert die Zahl mit dem Exponenten. Verwenden Sie Dezimalzahlen für Wurzeln (z. B. POW(X1, 0.5) = Quadratwurzel).
SQRT(value)Gibt die Quadratwurzel zurück.

Logische Funktionen

FunktionBeschreibung
NOT(value)Gibt „wahr“ zurück, wenn die Eingabe falsch ist, und umgekehrt.
AND(v1, v2 [, v3...])Gibt nur dann „wahr“ zurück, wenn alle Eingaben wahr sind. Bis zu 10 Werte.
OR(v1, v2 [, v3...])Gibt „wahr“ zurück, wenn mindestens eine Eingabe wahr ist. Bis zu 10 Werte.
XOR(v1, v2)Gibt „wahr“ zurück, wenn genau eine Eingabe wahr und die andere falsch ist.

Bedingung

IF(condition, value_if_true, value_if_false)

Beispiel: IF(X1>25, 1, 0) → Ausgang 1, wenn die Temperatur 25° überschreitet, sonst 0.

Vergangene Werte verwenden

Sie können auf den vorherigen Wert eines Geräts verweisen, indem Sie einen Zeitversatz in Klammern angeben: X1(time_to_past). Die Zeiteinheit ergibt sich aus dem im Abschnitt Zeitsteuerung des Regelkreises eingestellten Intervall. Ist die Zeitsteuerung z. B. auf 5 Sekunden eingestellt, bedeutet X1(3) „der Wert von X1 vor 15 Sekunden“ (3 × 5 s).

Auch wenn X1(3) wie ein Funktionsaufruf aussieht, handelt es sich tatsächlich um eine Array-Indizierung für historische Werte. Die Abilis speichert die letzten Messwerte jedes Eingangs, und X1(3) ruft den Wert von vor 3 Zeitzyklen ab.

Speichervariablen (M)

Zusätzlich zu Eingängen (X) und Ausgängen (Y) können Regelkreise auch Speichervariablen (M1, M2, …) verwenden, um Zustände zwischen den Zyklen zu behalten — nützlich für Zähler, laufende Summen oder alles, wobei der nächste Zyklus wissen muss, was im vorherigen geschah. Ein durchgängiges Beispiel finden Sie unter Laufzeiterfassung von Geräten.

Funktionen verschachteln

Funktionen lassen sich verketten, indem Sie eine in eine andere verschachteln. Um z. B. den Mittelwert der Quadratwurzeln zweier Sensoreingänge zu bilden:

AVERAGE(POW(X1, 0.5), POW(X2, 0.5))

Anteklab Technischer Support E-Mail: tem@antek.it
Tel: +39 0376 16262,27