Zum Hauptinhalt springen

Formeln (Formula) anwenden

Im Englischen wird dies auch als Formula bezeichnet.

Wird verwendet, wenn die vom PLC gelieferten Rohwerte nicht unverändert übernommen, sondern Einheitenumrechnung / Nullpunktkorrektur / Skalierung durchgeführt werden sollen.

Häufige Fälle:

  • Ein Drucksensor sendet den Ganzzahlwert 1638, tatsächlich sind es aber 163.8 kPa${VALUE}*0.1
  • Celsius → Fahrenheit umrechnen → ${VALUE}*1.8+32
  • mV → V umrechnen → ${VALUE}/1000

Wo wird die Formel eingegeben?

Die Formel wird im Feld [Formel] des Formulars zum Anlegen/Bearbeiten eines Tags eingetragen. Unmittelbar nach dem Speichern erscheint beim nächsten Erfassungszyklus der umgerechnete Wert auf dem Bildschirm.

  • Bleibt das Feld leer, wird der Rohwert unverändert verwendet.
  • Einmal eingetragen, wird die Formel bei jeder weiteren Erfassung automatisch angewendet.

Grundlegende Verwendung

${VALUE} bezeichnet den soeben aus dem PLC gelesenen Rohwert.

ZielFormelEingabe → Ausgabe
Unverändert übernehmen(leer)100100
Um Faktor 10 vergrößern${VALUE}*10550
Auf ein Zehntel verkleinern (Ganzzahl→Dezimal)${VALUE}*0.11638163.8
Durch 1000 teilen (mV → V)${VALUE}/100033003.3
Addition (Celsius → Kelvin)${VALUE}+273.1525298.15
Subtraktion (Nullpunktkorrektur)${VALUE}-1001024924
Fahrenheit-Umrechnung${VALUE}*1.8+322577.0
Quadrat${VALUE}*${VALUE} oder ${VALUE}^2525
Quadratwurzelsqrt(${VALUE})14412.0
Umdrehungen pro Minute → Hz${VALUE}/60180030.0

Werte anderer Tags referenzieren

Der letzte Wert eines anderen Tags lässt sich im Format ${태그ID} heranziehen. Praktisch, wenn der Nullpunktwert als eigener Tag geführt wird oder Korrekturfaktoren separat abgelegt sind.

ZielFormel
Anderen Tag als Nullpunkt abziehen${VALUE}-${TAG_ZERO}
Zwei Tags summieren${VALUE}+${TAG_OFFSET}
Korrektur (gain × x + offset)${VALUE}*${TAG_GAIN}+${TAG_OFFSET}

Dabei sind TAG_ZERO, TAG_OFFSET und TAG_GAIN die Tag-IDs anderer Tags. Diese müssen zuvor als Tags angelegt worden sein.

Wenn der referenzierte Tag noch nicht existiert

Steht dort ${TAG_ZERO}, der betreffende Tag wurde aber noch nie erfasst, schlägt die Berechnung fehl (im Status des Tags erscheint ein Fehler der Art „Kein Wert für Formelvariable“). Nach einem Durchlauf des Gateways normalisiert sich das automatisch — einen Moment abwarten genügt.


Verfügbare Funktionen

Neben Grundrechenarten stehen auch gängige mathematische Funktionen zur Verfügung.

ArtSchreibweiseBeispiel
Grundrechenarten+, -, *, /${VALUE}+1
Potenz^${VALUE}^2 (= Quadrat)
Klammern(, )(${VALUE}+10)*2
Quadratwurzelsqrt(...)sqrt(${VALUE})
Kubikwurzelcbrt(...)cbrt(${VALUE})
Natürlicher Logarithmusln(...)ln(${VALUE})
Dekadischer Logarithmus (Basis 10)log(...)log(${VALUE})
Sinus/Kosinus/Tangens (Radiant)sin, cos, tansin(${VALUE})
Arkusfunktionenasin, acos, atanatan(${VALUE})
Hyperbelfunktionensinh, cosh, tanhtanh(${VALUE})
Konstantenpi, e${VALUE}*pi/180 (Grad → Radiant)

Um eine Gradeingabe (degree) in Radiant umzurechnen, mit *pi/180 multiplizieren. Beispiel: sin(${VALUE}*pi/180).


Anwendbare Datentypen

Formeln werden nur auf numerische Tags (Float, Double, Integer, Long) angewendet.

  • Bei String- und Boolean-Tags wird die Formel ignoriert und der Rohwert unverändert ausgegeben.
  • Überschreitet das Korrekturergebnis den Ganzzahlbereich, ändern Sie den Datentyp auf Float oder Double.

Häufige Fehler

Falsches MusterWarum problematischRichtiges Muster
VALUE * 0.1Schreibweise ${...} fehlt${VALUE}*0.1
${VALUE}*0,1Komma verwendet (Tippfehler)${VALUE}*0.1 (Punkt verwenden)
if(${VALUE}>0, ...)Bedingungen werden nicht unterstütztBedingungen ggf. in einem separaten System verarbeiten
${VALUE} & 0xFFBitoperationen werden nicht unterstütztIn eine arithmetisch darstellbare Form umschreiben

Häufig gestellte Fragen

F. Wie prüfe ich, ob die Formel angewendet wurde?

Der im Feld [Aktueller Wert] des Tags angezeigte Wert ist der umgerechnete Wert. Wenn Sie den Rohwert sehen möchten, legen Sie dieselbe Adresse als zusätzlichen Tag ohne Formel an und vergleichen Sie.

F. Ich möchte zwei Einheiten gleichzeitig senden (z. B. Celsius und Fahrenheit)

Legen Sie zwei Tags auf dieselbe PLC-Adresse an: einen unverändert, den anderen mit einer Umrechnungsformel wie ${VALUE}*1.8+32.

F. Das Ergebnis lautet NaN / Infinity

  • Division durch 0 → Infinity
  • Quadratwurzel einer negativen Zahl → NaN

Sehr wahrscheinlich weicht der Rohwertbereich des PLC von Ihrer Erwartung ab. Prüfen Sie zunächst den Rohwert ohne Formel.

F. Ich benötige eine komplexere Verarbeitung (Verzweigungen / mehrere Variablen / externe Daten)

Mit Formeln allein ist das kaum möglich. Empfohlen wird der ergänzende Einsatz der Nachverarbeitungsstufe der PlantPulse-Plattform oder eines separaten Datenverarbeitungswerkzeugs (z. B. Node-RED). Siehe den Abschnitt Node-RED auf der Seite Anwendungsverwaltung.

Wenn Sie eine vollständige Funktions- und Variablenreferenz benötigen, lesen Sie die Seite Erweitert — Formula-Referenz.