PLCcheck

SCL-Syntax-Referenz: IF, CASE, FOR, WHILE, REPEAT

Komplette SCL-Syntax-Übersicht für Siemens TIA Portal. IF/THEN/ELSE, CASE, FOR, WHILE, REPEAT mit Codebeispielen. Für S7-1200 und S7-1500.

·8 Min. Lesezeit
SCLSyntaxIFCASEFORWHILEREPEATTIA PortalS7-1500S7-1200Structured Text

Read this article in English

SCL-Syntax-Referenz: IF, CASE, FOR, WHILE, REPEAT

SCL (Structured Control Language) ist Siemens' Implementierung des IEC-61131-3-Standards Structured Text (ST). Hochsprache, Pascal-ähnlich, verfügbar auf S7-300, S7-400, S7-1200 und S7-1500.

IF / THEN / ELSE / ELSIF

IF #Temperatur > 80.0 THEN
    #Kuehlung := TRUE;
ELSIF #Temperatur > 60.0 THEN
    #Kuehlung := FALSE;
    #Warnung := TRUE;
ELSE
    #Kuehlung := FALSE;
    #Warnung := FALSE;
END_IF;

Regeln: Bedingung = BOOL. Jedes IF braucht END_IF. Semikolons nach jeder Anweisung. ELSIF (nicht ELSEIF).

CASE

CASE #Schritt OF
    0:  #Motor := FALSE; #Ventil := FALSE;   // Ruhe
    1:  #Ventil := TRUE;                       // Befüllen
    2:  #Motor := TRUE;                        // Mischen
    3:  #Ventil := TRUE; #Motor := FALSE;      // Entleeren
    ELSE: #Alarm := TRUE;                      // Unbekannter Schritt
END_CASE;

Mehrere Werte: 1, 2, 3: oder Bereich 100..199: möglich. Selektor muss Integer-Typ sein (INT, DINT).

FOR-Schleife

FOR #i := 0 TO 9 DO
    #Werte[#i] := 0;  // Array leeren
END_FOR;

Mit Schrittweite: FOR #i := 0 TO 100 BY 10 DO

Rückwärts: FOR #i := 10 TO 1 BY -1 DO

Regeln: Schleifenzähler im Schleifenkörper NICHT verändern (Siemens-Programmierrichtlinie). EXIT zum vorzeitigen Abbruch.

WHILE-Schleife

WHILE #i < 100 AND NOT #Fehler DO
    #Puffer[#i] := #Eingangsdaten;
    #i := #i + 1;
END_WHILE;

Bedingung wird VOR jeder Iteration geprüft (kann null Mal ausgeführt werden).

REPEAT / UNTIL

REPEAT
    #Versuch := #Versuch + 1;
    #Erfolg := DATEN_SENDEN();
UNTIL #Erfolg OR (#Versuch >= 3)
END_REPEAT;

Wird mindestens einmal ausgeführt. Endet wenn Bedingung TRUE wird (Gegenteil von WHILE!).

RETURN

Verlässt den aktuellen Baustein sofort:

IF NOT #Freigabe THEN
    RETURN;
END_IF;

EXIT

Bricht die innerste Schleife ab:

FOR #i := 0 TO 99 DO
    IF #Werte[#i] = #Suchwert THEN
        #Gefunden := #i;
        EXIT;
    END_IF;
END_FOR;

Zuweisung

#Ausgang := #Eingang;
#Ergebnis := #A + #B * #C;
#Motor := #Start AND NOT #Stop;

Kommentare

// Einzeilige Kommentare
(* Mehrzeilige Kommentare *)

Teil der SCL-Referenz. Gepflegt von PLCcheck.ai.


Ihren AWL-Code nach SCL konvertieren

PLCcheck Pro analysiert Ihren S5/S7-AWL-Code und erzeugt automatisch SCL-Äquivalente. Programm hochladen und die Konvertierung Seite an Seite sehen.

Code zur AWL→SCL-Konvertierung hochladen → | AWL nach SCL Leitfaden →

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.