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 equalMODIF
IF (INPUT1) AND (INPUT2) THEN
OUTPUT1 := TRUE;
OUTPUT2 := TRUE;
ELSIF (INPUT1) THEN
OUTPUT1 := TRUE;
OUTPUT2 := FALSE;
ELSE
OUTPUT1 := FALSE;
OUTPUT2 := FALSE;
END_IFCASE
iStep := 200;
CASE iStep OF
100:
iStep := iStep + 100;
200:
iStep := iStep + 100;
300:
iStep := iStep + 100;
ELSE
iStep := iStep + 10;
END_CASEFOR
FOR count := initial_value TO final_value BY increment DO
<statement>;
IF [boolean expression] THEN
EXIT;
END_IF
END_FORWHILE
counter := 0;
WHILE counter < 10 DO
counter := counter + 1;
machine_status := counter * 10;
IF [boolean expression] THEN
EXIT;
END_IF;
END_WHILELast updated
Was this helpful?