ST cheatsheet
Overview
---------------------------------
PROGRAM stexample
VAR
x : BOOL;
END_VAR
---------------------------------
x := TRUE;
REPEAT
x := FALSE;
UNTIL x := FALSE;
END_REPEAT;
---------------------------------
Comment
// single-line comment
<expression>; /* Comment after end of ST line */
<statement>; (* Comment after end of ST line *)
/* Multiple line comment:
...
*/
(* Multiple line comment:
...
*)
DataType
X : BOOL;
Y1 : INT; /* -2^15 ... 2^15-1 */
Y2 : SINT; /* -2^7 ... 2^7-1 */
Y3 : LINT; /* -2^63 ... 2^63-1 */
Y4 : UINT; /* 0 ... 2^16-1 */
R1 : REAL; /* +/-10^(+/-)38 */
S1 : STRING;
STRING[255];
ARRAY [0..10] OF DINT;
Type conversion
sVal := DINT_TO_STRING(iVal);
Operator
AND
OR
XOR
NOT
= equal
<> not equal
MOD
IF
IF (INPUT1) AND (INPUT2) THEN
OUTPUT1 := TRUE;
OUTPUT2 := TRUE;
ELSIF (INPUT1) THEN
OUTPUT1 := TRUE;
OUTPUT2 := FALSE;
ELSE
OUTPUT1 := FALSE;
OUTPUT2 := FALSE;
END_IF
CASE
iStep := 200;
CASE iStep OF
100:
iStep := iStep + 100;
200:
iStep := iStep + 100;
300:
iStep := iStep + 100;
ELSE
iStep := iStep + 10;
END_CASE
FOR
FOR count := initial_value TO final_value BY increment DO
<statement>;
IF [boolean expression] THEN
EXIT;
END_IF
END_FOR
WHILE
counter := 0;
WHILE counter < 10 DO
counter := counter + 1;
machine_status := counter * 10;
IF [boolean expression] THEN
EXIT;
END_IF;
END_WHILE
Last updated
Was this helpful?