IEC 1131 Structured Text Overview
This high-level language resembles Pascal or Basic, and, in fact, people trained in computer programming languages often find it the easiest language to use for programming control logic. When symbolic addressing is used, ST programs resemble sentences, making it highly intelligible to the novice user as well. ST is ideal for tasks requiring complex math, algorithms or decision-making. Its concise format allows a large algorighm to be displayed on a single page (vs multiple pages of ladder logic).
The IEC 1131-3 standard is extensible. I.E. Vendors may augment their offerings to meet the needs of specific markets. As an example of this extensibility Rockwell Software augments ST with an exclusive feature called "PowerText™". It supplements standard ST with real-time display of discrete status, force status, analog values and floating-point values. This PowerText information is automatically integrated into the source code, and is invaluable for debugging and application commissioning.
Benefits of Structured Text
- People trained in computer languages can easily program control logic
- Symbols make the programs easy to understand
- PowerText facilitates system debugging and application commissioning
- Programs can be created in any text editor
- Runs as fast as ladder logic
- Bit / Word assignment
- IF-THEN-ELSE
- CASE
- FOR-NEXT
- WHILE
- REPEAT
- Ladder equivalent instructions
Example 1 (Sorting machine)
IF (LIMIT_SWITCH_1 AND BOX_PRESENT) THENExample 2 (Split-range temperature control, with deadband)
GATE1 := OPEN;
GATE2 := CLOSE;
ELSIF ((LIMIT_SWITCH_2 OR (WEIGHT <> SETPOINT))) THEN
GATE1 := CLOSE;
GATE2 := OPEN;
ELSIF (LIMIT_SWITCH_3 XOR LIMIT_SWITCH_4) THEN
GATE1 := OPEN;
GATE2 := OPEN;
ELSE
GATE1 := CLOSE;
GATE2 := CLOSE;
END_IF;
CASE (TEMPERATURE) OFExample 3 (Computational examples)
0 .. 120 :
HEAT_VALVE := OPEN;
COOL_VALVE := CLOSE;
150 .. 32767 :
HEAT_VALVE := CLOSE;
COOL_VALVE := CLOSE;
ELSE
HEAT_VALVE := CLOSE;
COOL_VALVE := CLOSE;
END_CASE;
PID (CONTROL_BLOCK, TANK_#27_TEMPERATURE, TIEBACK, COOLANT_VALVE);
POWER := (CURRENT ** 2.0) * RESISTANCE;Example 4 (If-Then-Else example)
F8:1 := ((N7:1 * 3.1428571) + (N7:3 / N7:4));
F8:0 := ( SIN (ANGLE)) MOD 6.0;
JSR (3, 0);
IF I:000/0 AND !I:001/5 THENExample 5 (For-Next examples)
N7:0 := 1;
ELSIF i:000/2 OR (N7:5 <> (N7:6 * N7:2)) THEN
N7:0 :=2;
ELSIF !I001/4 THEN
N7:0 := 3;
ELSE
N7:0 :=4;
END_IF;
FOR N7:0 := 10 TO 0 BY -1 DOExample 6 (While example)
N7:4 := N7:4 + 1;
END_FOR;
FOR N7:1 := 0 TO 10 DO
N7:1 := N7:1 + 1;
END_FOR;
WHILE I:000/0 AND (I:001/0 OR !I:002/1) DOExample 7 (Case example)
N7:0 := N7:0 + 1;
END_WHILE;
CASE N7:12 OFExample 8 (Using Ladder Diagram instructions in Structured Text programs)
0:
N7:1 := 1;
1, 9:
N7:1 := 2;
2..4:
N7:1 := 3;
10, 5..8:
N7:1 := 4;
ELSE
N7:1 :=5;
END_CASE;
IF (!I:000/00) THEN
ARL(0, ST15:3, R6:6, 82,0);
END_IF;
R6:6.DN AND ONS(B3/4) MOV(ST15:3.LEN, N17:85);
