PLCcheck

SCL-Mathematik: Arithmetik, Vergleich, Logik und Konvertierung

Komplette SCL-Operatoren-Referenz: Arithmetik (+, -, *, /, MOD, **), Vergleich (<, >, =, <>), Logik (AND, OR, XOR, NOT), Typkonvertierung (INT_TO_REAL, DINT_TO_REAL) und numerische Funktionen (ABS, SQRT, SIN, COS). Mit Rangfolge und Datentyp-Regeln.

·10 Min. Lesezeit
SCLOperatorenArithmetikVergleichLogikKonvertierungINT_TO_REALMathematikIEC 61131-3TIA Portal

Read this article in English

SCL-Mathematik: Arithmetik, Vergleich, Logik und Konvertierung

Komplette Referenz aller mathematischen und logischen Operatoren in Siemens SCL, einschließlich Operator-Rangfolge, Datentyp-Regeln und Konvertierungsfunktionen.

Arithmetische Operatoren

OperatorBedeutungBeispielErgebnistyp
+Additiona + bGrößerer der beiden Operandentypen
-Subtraktiona - bGrößerer der beiden Operandentypen
*Multiplikationa * bGrößerer der beiden Operandentypen
/Divisiona / bGrößerer Typ; INT / INT = INT (abgeschnitten)
MODModulo (Rest)17 MOD 5 → 2INT oder DINT
DIVGanzzahldivision17 DIV 5 → 3INT oder DINT
**Potenz2.0 ** 3.0 → 8.0REAL

Datentyp-Regeln:

Beispiel — Integer- vs. REAL-Division:

// FALSCH: Ganzzahldivision schneidet ab
ergebnis_int := 7 / 2;           // ergebnis_int = 3

// RICHTIG: erst nach REAL konvertieren
ergebnis_real := INT_TO_REAL(7) / INT_TO_REAL(2);  // ergebnis_real = 3.5

Vergleichsoperatoren

Alle Vergleichsoperatoren liefern BOOL (TRUE oder FALSE).

OperatorBedeutungBeispiel
=GleichIF a = 10 THEN
<>UngleichIF a <> 0 THEN
<Kleiner alsIF temp < 100.0 THEN
>Größer alsIF druck > 5.0 THEN
<=Kleiner oder gleichIF fuellstand <= max_stand THEN
>=Größer oder gleichIF zaehler >= vorgabe THEN

Fließkomma-Vergleich mit Toleranz:

// FALSCH: exakte Gleichheit bei REAL unzuverlässig
IF temperatur = 100.0 THEN ...    // wird evtl. nie exakt 100.0

// RICHTIG: Toleranzband verwenden
IF ABS(temperatur - 100.0) < 0.1 THEN ...

Logische Operatoren

OperatorBedeutungBeispielPriorität
NOTNegationNOT aHöchste
AND / &Logisches UNDa AND bMittel
XORExklusiv-ODERa XOR bMittel
ORLogisches ODERa OR bNiedrigste

BOOL-Beispiele:

// Motor läuft wenn Start UND keine Störung UND nicht gestoppt
Motor := Start AND NOT Stoerung AND NOT Stopp;

// Alarm wenn Temperatur zu hoch ODER Druck zu hoch
Alarm := (Temp > 80.0) OR (Druck > 6.0);

Bitweise Beispiele (WORD):

// Bits 0-3 maskieren
maskiert := eingabe_wort AND W#16#000F;

// Bit 7 setzen
ausgabe_wort := eingabe_wort OR W#16#0080;

Operator-Rangfolge (Höchste → Niedrigste)

PrioritätOperatorKategorie
1( )Klammern
2+ - (unär)Vorzeichen
3NOTNegation
4**Potenz
5* / MOD DIVMultiplikativ
6+ -Additiv
7< > <= >=Relational
8= <>Gleichheit
9AND &Logisches UND
10XORExklusiv-ODER
11ORLogisches ODER
12:=Zuweisung

Faustregel: Arithmetik zuerst, dann Vergleich, dann Logik. Im Zweifel: Klammern setzen.

Typkonvertierungsfunktionen

Numerische Konvertierungen

FunktionVon → NachBeispiel
INT_TO_REALINT → REALr := INT_TO_REAL(i);
INT_TO_DINTINT → DINTd := INT_TO_DINT(i);
DINT_TO_REALDINT → REALr := DINT_TO_REAL(d);
REAL_TO_INTREAL → INTi := REAL_TO_INT(r); (gerundet)
REAL_TO_DINTREAL → DINTd := REAL_TO_DINT(r); (gerundet)

BCD-Konvertierungen (Legacy-Kompatibilität)

FunktionVon → NachVerwendung
BCD_TO_INTBCD WORD → INTS5-Zähler/Timer-Werte lesen
INT_TO_BCDINT → BCD WORDBCD-Anzeigen beschreiben

Numerische Funktionen (Mathematik-Bibliothek)

FunktionBeschreibungBeispielErgebnis
ABS(x)BetragABS(-5)5
SQR(x)Quadrat (x²)SQR(4.0)16.0
SQRT(x)QuadratwurzelSQRT(16.0)4.0
EXP(x)e^xEXP(1.0)2.7183
LN(x)Natürlicher LogarithmusLN(2.7183)~1.0
LOG(x)Dekadischer LogarithmusLOG(100.0)2.0
SIN(x)Sinus (x in Radiant)SIN(1.5708)~1.0
COS(x)Kosinus (x in Radiant)COS(0.0)1.0
TAN(x)Tangens (x in Radiant)TAN(0.7854)~1.0
ASIN(x)ArkussinusASIN(1.0)~1.5708
ACOS(x)ArkuskosinusACOS(0.0)~1.5708
ATAN(x)ArkustangensATAN(1.0)~0.7854

Alle trigonometrischen Funktionen verwenden Radiant, nicht Grad. Umrechnung: radiant := grad * 3.14159 / 180.0;

Praxisbeispiel: Analogwert-Skalierung

// Rohwert Analogeingang (0–27648) auf technische Einheiten (0.0–100.0 bar)
VAR
    rohwert   : INT;      // Vom Analogeingangsmodul
    druck     : REAL;     // Technische Einheiten
    hoch_alarm : BOOL;
END_VAR

druck := INT_TO_REAL(rohwert) * 100.0 / 27648.0;

hoch_alarm := druck > 85.0;  // Alarm bei 85 bar

S5-Arithmetik automatisch konvertieren

PLCcheck Pro konvertiert S5-Rechenoperationen (+F, -F, ×F, :F) in sauberes SCL mit korrekter Typbehandlung.

Code zur Konvertierung hochladen → | S5→S7 Migrationsleitfaden →

Teil der SCL-Referenz. Gepflegt von PLCcheck.ai. Keine Verbindung zu Siemens AG.

Verwandte Artikel

SPS-Code mit KI analysieren

PLCcheck Pro erklärt, dokumentiert, optimiert und migriert SPS-Code — automatisch.

PLCcheck Pro testen →
← Zurück zum Blog

Nicht verbunden mit Siemens AG. S5, S7, STEP 5, STEP 7 und TIA Portal sind Marken der Siemens AG.