Structured Text

Structured Text (ST) is a high-level, PASCAL-like textual programming language designed for implementing complex control algorithms, mathematical calculations, and state machines within a controller.

It is the preferred choice for software developers because it uses familiar programming constructs, including conditional statements, iterative loops, and explicit variable assignments. ST allows you to express complex functions in just a handful of lines of code, making it ideal for extensive projects. It is also the primary language used to create custom function blocks.

Structured Text Editor Example

Glossary: Key ST Terms

  • Assignment Operator: The operator used to assign the result of an expression or value to a specific variable (e.g., `Variable := Value;`).
  • Control Structures: Keywords like `IF-THEN-ELSE`, `CASE`, `FOR`, and `WHILE` that define the non-sequential flow of the program execution.
  • Expression: A combination of variables, constants, and operators that is evaluated by the controller to produce a single result value.
  • Variable Declaration: The mandatory process of defining a variable's name, its data type (e.g., BOOL, INT, REAL), and its scope before use.
  • Program Organization Unit (POU): A common term for a modular, reusable code block, which can be either a Function or a Function Block.

Example Code: Control Structures

The following examples demonstrate how ST uses control structures for logic and calculations.

Conditional Logic (IF...THEN)

This is used to execute a block of code only if a specified Boolean condition is TRUE.

IF Temperature > 100.0 THEN
    Heater_Status := TRUE;
    Alarm_Light := TRUE;
END_IF;

Selection Logic (CASE)

The `CASE` statement executes a specific block of code based on the value of an integer expression.

CASE Input_Mode OF
    1: // Mode 1: Manual
        Motor_Speed := 50;
    2: // Mode 2: Automatic
        Motor_Speed := Auto_Setpoint;
    ELSE // Default for any other value
        Motor_Speed := 0;
END_CASE;

Iterative Loop (FOR)

The `FOR` loop repeats a block of code a fixed number of times, using a counter variable.

FOR i := 1 TO 10 DO
    Result_Array[i] := Result_Array[i] * 2;
END_FOR;
  • © Energocentrum Plus, s.r.o. 2017 - 2026