Strukturierter Text

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Der strukturierte Text (engl. Structured Text, Abkürzung: ST; in Siemens S7 auch engl. Structured Control Language, Abkürzung SCL) ist eine Programmiersprache für Speicherprogrammierbare Steuerungen (SPS). Die Norm EN 61131-3 legt neben anderen auch den Sprachumfang von ST fest. Dabei ist die Syntax der Sprachelemente ähnlich denen der Hochsprache Pascal und es wird wie bei allen Sprachen der EN 61131-3 bei Schlüsselwörtern keine Unterscheidung zwischen Groß- und Kleinschreibung gemacht (Case Insensitive).

ST bietet mehr Strukturierungsmöglichkeiten als AWL und löst diese daher immer mehr ab. Komplexe Algorithmen und mathematische Funktionen lassen in ST übersichtlicher und schneller programmieren. [1]

Sprachelemente Strukturierter Text[Bearbeiten | Quelltext bearbeiten]

Zuweisung[Bearbeiten | Quelltext bearbeiten]

Als Zuweisungsoperator wird im Strukturierten Text ":=" verwendet.

 Wert := Wert1 + Wert2;

Dem Operanden auf der linken Seite, wird der Wert des Ausdruckes auf der rechten Seite zugewiesen. Der Zuweisungsoperator ist nicht mit dem Vergleichsoperator "=" zu verwechseln. Jede Anweisung wird mit einem Semikolon abgeschlossen.

IF-Statement[Bearbeiten | Quelltext bearbeiten]

IF Bedingung1 THEN
  Anweisung1;
ELSIF Bedingung2 THEN
  Anweisung2;
ELSE
  Anweisung3;
END_IF

CASE-Statement[Bearbeiten | Quelltext bearbeiten]

  CASE Ausdruck OF 
    1 : Anweisung1;
    2 : Anweisung2;
    3 : Anweisung3;
    ELSE Anweisung;
  END_CASE

FOR-Statement[Bearbeiten | Quelltext bearbeiten]

FOR i := 0 TO 499 BY 1 DO
  Zahl := Zahl +1;
  D[i] := Zahl;
END_FOR

REPEAT-Statement[Bearbeiten | Quelltext bearbeiten]

  REPEAT
    Anweisung;
  UNTIL Bedingung
  END_REPEAT

WHILE-Statement[Bearbeiten | Quelltext bearbeiten]

Mit WHILE Schleifen lassen sich Vorgänge programmieren, die oft wiederholt werden müssen. Die Anweisung in der Schleife wird wiederholt, solange die Bedingung erfüllt ist. Ist die Anzahl der Schleifendurchläufe bekannt, wird meisten eine FOR Schleife verwendet. Bei einer WHILE Schleife sollte man beachten, dass die Bedingung nicht dauerhaft erfüllt ist. Ansonsten entstehen Endlosschleifen. [1]

  WHILE Bedingung DO
    Anweisung;
  END_WHILE

Pointer[Bearbeiten | Quelltext bearbeiten]

Pointer enthalten die Adressen des Speicherplatzes von Variablen. Die Adresse einer Variable wird durch den Adressoperator ADR ermittelt. Die Dereferenzierung eines Pointers erfolgt mit Hilfe des Inhaltsoperators "^". [2]

  pAdresse := ADR(Wert1);
  Wert2 := pAdresse^;

In diesem Beispiel wird der Variable Wert2 der Inhalt der Variable Wert1 mit Hilfe eines Pointers zugewiesen.

Literatur[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. a b Dr. Ulrich Becker: Einführung in die Programmiersprache Strukturierter Text (ST). Abgerufen am 7. Februar 2017 (PDF).
  2. Beckhoff Information System - German. Abgerufen am 22. Mai 2017.