Mathematische Funktionen
Berechnungen & Algorithmen
Von der einfachen Addition bis hin zu komplexen Gleichungen — mathematische Funktionen verwandeln Ihre Rohdaten in verwertbare Informationen für die Steuerung Ihrer Prozesse.
Was sind mathematische Funktionen in TIA Portal?
Mathematische Funktionen in TIA Portal ermöglichen arithmetische, trigonometrische und logarithmische Berechnungen auf verschiedenen Datentypen (Ganzzahlen, Real). Sie sind essenziell für die Skalierung von Sensoren, die Bahnberechnung oder PID-Regelkreise.
TIA Portal zeichnet sich durch die CALCULATE-Anweisung aus, mit der ein komplexer Ausdruck (z. B. (in1 + in2) * in3 / in4) in einem einzigen Baustein geschrieben werden kann, was die Lesbarkeit im Vergleich zu einer Kette einzelner ADD/MUL-Boxen verbessert.
Grundrechenarten
Grundlegende Operationen für die Datenverarbeitung
CALCULATE — Berechnen
CALCWas es macht
Ermöglicht die Definition eines freien mathematischen Ausdrucks, der mehrere Eingänge (IN1...INn) kombiniert. Sie geben die Formel ein, und TIA Portal generiert die entsprechenden Pins.
Wann man es verwendet
Sobald eine Berechnung mehr als zwei Schritte erfordert. Ideal für Durchfluss-, Volumenberechnungen oder jede komplexe physikalische Formel.
Profi-Tipps
Sie können Funktionen wie ABS, SQRT oder SIN direkt im CALCULATE-Ausdruck verwenden.
Überprüfen Sie immer den Ausgangsdatentyp (OUT), um Überläufe (Overflow) zu vermeiden.
In SCL ist dies das natürliche Äquivalent einer direkten Zuweisung: out := (in1 + in2) * in3;
ADD / SUB / MUL / DIV
+Was sie machen
Standard-arithmetische Anweisungen: Addition, Subtraktion, Multiplikation und Division.
Wann man sie verwendet
Für einfache und schnelle Operationen zwischen zwei Werten.
Profi-Tipps
Verwenden Sie bei der Division (DIV) immer den |OK|-Test oder prüfen Sie, ob der Divisor nicht Null ist, um einen CPU-Stopp zu vermeiden.
Die ADD-Anweisung kann mehr als zwei Eingänge akzeptieren, indem Sie auf das gelbe Symbol am Baustein klicken.
Bei Ganzzahlen liefert DIV den ganzzahligen Quotient. Verwenden Sie MOD für den Rest.
MOD — Modulo
MODWas es macht
Liefert den Rest der Ganzzahldivision zwischen IN1 und IN2.
Wann man es verwendet
Verwaltung von Ringpuffern, abwechselnde Zyklen (z. B. Pumpen 1 und 2) oder Einheitenumrechnung (z. B. Sekunden in Minuten/Sekunden).
Profi-Tipps
Sehr nützlich, um eine Aktion alle 'N' Zyklen auszulösen.
Nur für Ganzzahl-Datentypen (Int, DInt usw.) verfügbar.
SCL: remainder := value1 MOD value2;
Vorzeichen & Inkrement
Vorzeichenverwaltung und schnelle Einheitsoperationen
INC / DEC — Inkrementieren / Dekrementieren
++Was es macht
Addiert oder subtrahiert 1 von der angegebenen Variable (InOut).
Wann man es verwendet
Einfache Teilezähler, Schleifenindizes, Warteschlangenverwaltung.
Profi-Tipps
Schneller zu schreiben als ein vollständiger ADD- oder SUB-Baustein.
Achten Sie auf den Datentyp: Ein Inkrement auf einem Int bei 32767 springt auf -32768 um.
In SCL: i := i + 1; oder INC(i);
ABS — Absolutwert
ABSWas es macht
Liefert den positiven Wert einer Zahl, unabhängig davon, ob sie ursprünglich positiv oder negativ war.
Wann man es verwendet
Berechnung der Abweichung zwischen einer Messung und einem Sollwert, Entfernungsmessung, PID-Fehlerberechnung.
Profi-Tipps
Essenziell für die Berechnung des absoluten Fehlers (|Sollwert - Messwert|).
Unterstützt sowohl Ganzzahlen als auch Real-Zahlen.
SCL: positiveVal := ABS(originalVal);
Min / Max / Limit
Werteauswahl und Begrenzung
MIN / MAX — Minimum / Maximum
MINWas es macht
Vergleicht N Werte und liefert den kleinsten (MIN) oder größten (MAX).
Wann man es verwendet
Auswahl der höchsten Temperatur unter mehreren Fühlern, Bestimmung der minimal zulässigen Geschwindigkeit.
Profi-Tipps
Sie können dem Baustein so viele Eingänge hinzufügen wie nötig.
Sehr nützlich für die Multi-Sensor-Diagnose.
SCL: peakValue := MAX(val1, val2, val3);
LIMIT — Begrenzen
LIMITWas es macht
Begrenzt (clampt) einen Eingangswert (IN) zwischen einem Minimum (MN) und einem Maximum (MX).
Wann man es verwendet
Sicherheit bei Analogausgängen (z. B. Verhindern, dass ein Ventil mehr als 80 % öffnet), Deckelung von Benutzersollwerten.
Profi-Tipps
Ersetzt vorteilhaft eine Kombination aus MIN und MAX.
Wenn MN > MX ist, hängt der Ausgang vom CPU-Typ ab, meist wird jedoch MX genommen.
SCL: safeVal := LIMIT(MN:=0.0, IN:=rawVal, MX:=100.0);
Potenzen & Wurzeln
Exponentielle und radikale Berechnungen
SQRT / SQR / EXPT
SQRTWas sie machen
SQRT (Quadratwurzel), SQR (Quadrat), EXPT (Benutzerdefinierte Potenz).
Wann man sie verwendet
Geometrieberechnungen, nichtlineare Signalumwandlung, Fluidphysik.
Profi-Tipps
SQRT einer negativen Zahl ergibt NaN. Testen Sie immer den Eingang oder verwenden Sie ABS.
EXPT ist CPU-intensiv, verwenden Sie SQR für einfache Quadrate.
SCL: area := 3.14 * SQR(radius);
Trigonometrie
Winkel- und Rotationsberechnungen
SIN / COS / TAN / ASIN...
SINWas sie machen
Standard-trigonometrische Berechnungen und deren Umkehrfunktionen (arcsin, arccos, arctan). Winkel sind immer in RADIANT.
Wann man sie verwendet
Robotikinematik, Winkelpositionierungsberechnungen, Verarbeitung oszillierender Signale.
Profi-Tipps
Um Grad in Radiant umzurechnen: Radiant = Grad * (PI / 180).
TAN(PI/2) geht gegen Unendlich, überwachen Sie Ihre Eingänge.
Verwenden Sie Systemkonstanten für PI, um Genauigkeit zu gewährleisten.
Erweiterte Funktionen
Logarithmen und Nachkommastellen
LN / EXP / FRAC
LNWas sie machen
LN (Natürlicher Log), EXP (Exponentiell e^x), FRAC (Extrahiert den Dezimalanteil).
Wann man sie verwendet
Modellierung chemischer Prozesse, exponentielles Wachstum oder Einheitentrennung (FRAC).
Profi-Tipps
FRAC(12.34) liefert 0.34. Sehr praktisch für Zeitpräzisionsberechnungen.
EXP ist das exakte Umkehrwert von LN.
SCL: fraction := FRAC(totalValue);
Vergleich der Berechnungsansätze
KOP vs. SCL — Welche Methode wählen?
| Berechnungsart | Empfohlene Methode | Warum? |
|---|---|---|
| Einfache Addition | ADD-Baustein (KOP) | Visuell und leicht nachvollziehbar |
| Komplexe Formel | CALCULATE-Baustein | Kompakt und reduziert die Anzahl der Netzwerke |
| Mathematischer Algorithmus | SCL-Sprache | Syntax ähnlich C/Pascal, ideal für Formeln |
| Trigonometrische Berechnung | SCL oder CALCULATE | Einzelne Boxen sind zu sperrig |
| Signalbegrenzung | LIMIT-Baustein | Siemens-Standard, sehr robust |
| Index-Reset | INC/DEC-Anweisung | Sehr schnell zu implementieren |
Häufig gestellte Fragen
Was ist der Vorteil von CALCULATE gegenüber mehreren ADD/MUL-Bausteinen?
CALCULATE reduziert den im Programm belegten Platz erheblich. Anstelle von 5 Netzwerken mit temporären Zwischenvariablen haben Sie einen einzigen Baustein mit einer lesbaren Formel. Zudem ist es einfacher zu warten, wenn sich die Formel ändert.
Wie geht TIA Portal mit Berechnungsfehlern um (z. B. Division durch Null)?
Bei S7-1200/1500 stoppt ein mathematischer Fehler nicht unbedingt die CPU (je nach Konfig), aber das Ergebnis wird zu NaN. Es ist KRITISCH, nach einer sensiblen Berechnung die |OK|-Anweisung zu verwenden, um das Ergebnis zu validieren.
Verwenden trigonometrische Funktionen Grad oder Radiant?
Alle Funktionen (SIN, COS, TAN usw.) verwenden ausschließlich RADIANT. Wenn Ihre HMI Grad liefert, müssen Sie den Wert vor dem Baustein mit 0.01745329 (PI/180) multiplizieren.
Kann ich Berechnungen auf 64 Bit (LReal) durchführen?
Ja, S7-1500 SPS unterstützen nativ den Typ LReal (Long Real) für erhöhte Präzision. Die meisten mathematischen Funktionen akzeptieren diesen Typ.