Eine Formel berechnet einen Wert aus einer Liste von Elementen (Channels, Konstanten, Operatoren) und schreibt das Ergebnis in einen Ziel-Channel. Sie rechnet automatisch neu, wenn sich ein Channel ändert, der in der Formel vorkommt. Die Elemente und Operatoren beschreibt Formelausdruck.
Voraussetzungen
- Die Channels, die in der Formel vorkommen, und ein Ziel-Channel.
- Der Ziel-Channel sollte zum Ergebnis passen. Formeln rechnen mit Rohwerten und rechnen Einheiten nicht um.
So gehen Sie vor
- Öffnen Sie im Konfigurationsmenü den Eintrag Formeln und fügen Sie mit + eine Formel hinzu.
- Vergeben Sie einen Namen.
- Wählen Sie den Ziel-Channel.
- Bauen Sie die Formel mit der Werkzeugleiste auf. Die Elemente werden von oben nach unten abgearbeitet.
- Prüfen Sie das Ergebnis mit dem Test-Button. Der Wert wird dabei nicht in den Ziel-Channel geschrieben. Das geht auch vor dem Speichern.
- Bestätigen Sie den Dialog.
Felder
| Feld | Bedeutung | Hinweis |
|---|---|---|
| Id | Interne Nummer der Formel | Nur zur Ansicht |
| Name | Name der Formel | Erscheint in Auswahllisten |
| Kommentar | Freie Dokumentation | Hat keine Funktion |
| Ziel-Channel | Channel, in den das Ergebnis geschrieben wird | Eine Formel ohne Ziel-Channel ist wirkungslos, aber zulässig. So deaktivieren Sie eine Formel zur Fehlersuche |
| Werkzeugleiste | Elemente der Formel hinzufügen | Siehe unten |
Werkzeugleiste
- Die Buttons Channel, Wert, ( ), +, -, *, / fügen häufige Elemente ein. Weitere Elemente wählen Sie aus der Auswahlliste.
- Der Mülleimer löscht alle Elemente. Einzelne Elemente löschen Sie, indem Sie sie auf den Mülleimer ziehen.
- Beim Channel-Element legt die Option Auslöser für Berechnung fest, ob eine Änderung dieses Channels die Formel auslöst.
- Der Test-Button wertet die Formel aus und zeigt das Ergebnis.
Wann die Formel rechnet
- Die Formel rechnet, wenn sich ein Channel ändert, der in der Formel als Auslöser wirkt.
- Die Berechnung erfolgt mit einer kurzen Verzögerung. Zwischen Änderung und Ergebnis liegt eine Pause von rund 45 Millisekunden. Die Hilfe nennt höchstens alle 0,1 Sekunden.
- Beim Aktivieren wird die Formel einmal ausgewertet.
- Schreibt die Formel selbst in einen Channel, der auch als Eingang vorkommt, löst das die Formel nicht sofort erneut aus. Hilfe und Code beschreiben das unterschiedlich: Die Hilfe sagt, eine Formel könne sich nicht selbst auslösen. Im Code wird eine selbst ausgelöste Neuberechnung mit rund 1 Sekunde Verzögerung eingeplant.
Beispiele
- Kopieren: Channel A = Channel B. Bei jeder Änderung von B erhält A den Wert von B.
- Zusätzlichen Auslöser verwenden, ohne den Wert zu nutzen: Verwenden Sie das Element Trigger oder multiplizieren Sie den Channel mit 0, zum Beispiel
(Channel + 1) + (Auslöser-Channel * 0). - Berechnung bedingt unterdrücken: Mit dem Auswahloperator und Break wird nichts geschrieben.
Hinweise und Grenzen
- Formeln sind zustandslos. Zwischenwerte speichern Sie in weiteren Formeln und meist virtuellen Channels.
- Für komplexe oder zustandsbehaftete Logik sind Formeln nur eingeschränkt geeignet. Sie werden schnell unübersichtlich.
- Für schnelle Wertfolgen, zum Beispiel Abstände unter 200 Millisekunden, können Werte übersprungen werden. Nutzen Sie dann Trigger und Aktion, zum Beispiel Wert kopieren.
- Der Wert wird in den Typ des Ziel-Channels umgewandelt. Gelingt das nicht, wird er unverändert geschrieben. Dann kann es sein, dass er in der Visualisierung erscheint, aber nicht auf die angeschlossene Technologie geschrieben wird. Verlassen Sie sich nicht auf das Verhalten in Grenzfällen.
- Sie können mit einer Formel Werte schreiben, die der Ziel-Channel eigentlich nicht erlaubt, zum Beispiel eine Zahl in einen Boolean.
- Die Hilfe nennt einen Zähler wie
Channel = Channel + 1als Formel nicht möglich (siehe oben,). - Kopien einer Formel erhalten keinen Ziel-Channel, damit nicht zwei Formeln denselben Channel beschreiben.

