Formel anwenden
Diese Funktion wird auch als Formel bezeichnet.
Sie wird verwendet, wenn der von der PLC gelieferte Rohwert nicht direkt verwendet werden soll, sondern eine Einheitenumrechnung / Nullpunkt-Korrektur / Skalierung durchgeführt werden soll.
Häufige Beispiele:
- Ein Drucksensor sendet eine Ganzzahl
1638, die tatsächlich163.8 kPaentspricht →${VALUE}*0.1 - Umrechnung von Celsius in Fahrenheit →
${VALUE}*1.8+32 - Umrechnung von mV in V →
${VALUE}/1000
Wo wird die Formel eingegeben?
Tragen Sie die Formel im Feld [Formel] des Tag-Registrierungs- bzw. -Änderungsformulars ein. Direkt nach der Registrierung erscheint der umgerechnete Wert im nächsten Erfassungszyklus auf dem Bildschirm.
- Wenn das Feld leer bleibt, wird der Rohwert unverändert verwendet.
- Nach einmaliger Eingabe wird die Formel bei jeder weiteren Erfassung automatisch angewendet.
Grundlegende Verwendung
${VALUE} bezeichnet den Rohwert, der gerade von der PLC gelesen wurde.
| Gewünschte Aktion | Formel | Eingabe → Ausgabe |
|---|---|---|
| Unverändert verwenden | (leer) | 100 → 100 |
| Mit 10 multiplizieren | ${VALUE}*10 | 5 → 50 |
| Durch 10 teilen (Ganzzahl → Dezimalzahl) | ${VALUE}*0.1 | 1638 → 163.8 |
| Durch 1000 teilen (mV → V) | ${VALUE}/1000 | 3300 → 3.3 |
| Addieren (Celsius → Kelvin) | ${VALUE}+273.15 | 25 → 298.15 |
| Subtrahieren (Nullpunkt-Korrektur) | ${VALUE}-100 | 1024 → 924 |
| Umrechnung in Fahrenheit | ${VALUE}*1.8+32 | 25 → 77.0 |
| Quadrieren | ${VALUE}*${VALUE} oder ${VALUE}^2 | 5 → 25 |
| Quadratwurzel | sqrt(${VALUE}) | 144 → 12.0 |
| Umdrehungen pro Minute → Hz | ${VALUE}/60 | 1800 → 30.0 |
Auf Werte anderer Tags verweisen
Der letzte Wert eines anderen Tags kann im Format ${태그ID} abgerufen werden. Dies ist praktisch, wenn der Nullpunkt in einem separaten Tag verwaltet wird oder ein Korrekturfaktor separat gespeichert werden soll.
| Gewünschte Aktion | Formel |
|---|---|
| Anderen Tag als Nullpunkt subtrahieren | ${VALUE}-${TAG_ZERO} |
| Zwei Tags addieren | ${VALUE}+${TAG_OFFSET} |
| Korrektur (gain × x + offset) | ${VALUE}*${TAG_GAIN}+${TAG_OFFSET} |
Hierbei sind TAG_ZERO, TAG_OFFSET und TAG_GAIN die Tag-IDs anderer Tags. Diese müssen vorher als separate Tags registriert sein.
Wenn ${TAG_ZERO} geschrieben wurde, aber dieses Tag noch nie erfasst wurde, schlägt die Berechnung fehl (es erscheint eine Fehlermeldung wie „Berechnungsvariablenwert nicht vorhanden“ beim jeweiligen Tag). Nachdem das Gateway einmal durchgelaufen ist, normalisiert sich dies automatisch – warten Sie einfach einen Moment.
Verfügbare Funktionen
Neben der Grundrechenarten können auch häufig verwendete mathematische Funktionen genutzt werden.
| Typ | Notation | Beispiel |
|---|---|---|
| Grundrechenarten | +, -, *, / | ${VALUE}+1 |
| Potenzierung | ^ | ${VALUE}^2 (= Quadrat) |
| Klammern | (, ) | (${VALUE}+10)*2 |
| Quadratwurzel | sqrt(...) | sqrt(${VALUE}) |
| Kubikwurzel | cbrt(...) | cbrt(${VALUE}) |
| Natürlicher Logarithmus | ln(...) | ln(${VALUE}) |
| Dekadischer Logarithmus (Basis 10) | log(...) | log(${VALUE}) |
| Sinus/Kosinus/Tangens (Bogenmaß) | sin, cos, tan | sin(${VALUE}) |
| Umkehrfunktionen der Trigonometrie | asin, acos, atan | atan(${VALUE}) |
| Hyperbolische Funktionen | sinh, cosh, tanh | tanh(${VALUE}) |
| Konstanten | pi, e | ${VALUE}*pi/180 (Grad → Bogenmaß) |
Um Grad in Bogenmaß umzurechnen, multiplizieren Sie mit *pi/180. Beispiel: sin(${VALUE}*pi/180).
Anwendbare Datentypen
Die Formel wird nur auf numerische Tags (Float, Double, Integer, Long) angewendet.
- Bei
String- undBoolean-Tags wird die Formel ignoriert und der Rohwert unverändert ausgegeben. - Wenn das korrigierte Ergebnis den ganzzahligen Wertebereich überschreitet, ändern Sie den Datentyp auf
FloatoderDouble.
Häufige Fehler
| Falsches Muster | Problem | Korrektes Muster |
|---|---|---|
VALUE * 0.1 | ${...} Notation fehlt | ${VALUE}*0.1 |
${VALUE}*0,1 | Komma verwendet (Tippfehler bei koreanischer Tastatur) | ${VALUE}*0.1 (Punkt verwenden) |
if(${VALUE}>0, ...) | Bedingte Anweisungen nicht unterstützt | Falls Bedingungen erforderlich, in separatem System behandeln |
${VALUE} & 0xFF | Bitweise Operationen nicht unterstützt | In eine arithmetisch mögliche Form umwandeln |
Häufig gestellte Fragen
F. Wie kann ich überprüfen, ob die Formel angewendet wurde?
Der Wert, der im Feld [Aktueller Wert] des Tags angezeigt wird, ist der umgerechnete Wert. Wenn Sie den Rohwert sehen möchten, registrieren Sie dieselbe Adresse als separates Tag ohne Formel und vergleichen Sie diese.
F. Ich möchte zwei Einheiten gleichzeitig ausgeben (z. B. Celsius und Fahrenheit)
Erstellen Sie zwei Tags, die auf dieselbe PLC-Adresse zeigen, und geben Sie bei dem einen den Wert unverändert ein, bei dem anderen eine Umrechnungsformel wie ${VALUE}*1.8+32.
F. Das Ergebnis ist NaN / Infinity
- Division durch null →
Infinity - Quadratwurzel einer negativen Zahl →
NaN
Es ist sehr wahrscheinlich, dass der Rohwertbereich der PLC von der Erwartung abweicht. Prüfen Sie zuerst den Rohwert ohne Formel.
F. Ich benötige komplexere Verarbeitung (bedingte Verzweigung / mehrere Variablen / externe Daten)
Mit einer Formel allein ist dies schwierig. Es wird empfohlen, die Nachverarbeitungsstufe der PlantPulse-Plattform oder ein separates Datenverarbeitungswerkzeug (z. B. Node-RED) zu verwenden. Siehe hierzu den Node-RED-Abschnitt auf der Seite Anwendungsverwaltung.
Eine vollständige Funktions- und Variablenreferenz finden Sie auf der Seite Erweitert — Formula-Referenz.