Programming in ST

1. Example in ST

Let’s considering the logical equation:

%M0 = %I0.%I1+%I2. /%I3

PROGRAM LogicalFunction
%M0 := %I0 AND %I1 OR %I2 AND NOT %I3;
END_PROGRAM

 

 

2. Example of Grafcet in ST

Let’s considering the elementary Grafcet

a. Programming Transition/Transition

PROGRAM TrTr
(* INIT *)
IF  %S2  THEN
    %M0 := TRUE;
    %M1 := FALSE;
END_IF

(* TRANSITIONS *)
IF  %M0 AND %I0 THEN
    %M1 := TRUE;
    %M0 := FALSE;
END_IF

IF  %M1 AND %I1 THEN
    %M0 := TRUE;
    %M1 := FALSE;
END_IF

(* ACTIONS *)
%Q0 :=  %M1;

END_PROGRAM

b. Programming Transition/Transition with Crossing bits

 PROGRAM TrTrB
(* INIT *)
IF  %S2  THEN
    %M0 := TRUE;
    %M1 := FALSE;
END_IF

(* TRANSITIONS *)
%M10 := %M0 AND %I0;
%M11 := %M1 AND %I1;

(* CROSSING *)
IF  %M10 THEN
    %M1 := TRUE;
    %M0 := FALSE;
END_IF

IF  %M11 THEN
    %M0 := TRUE;
    %M1 := FALSE;
END_IF

(* ACTIONS *)
%Q0 := %M1;

END_PROGRAM
 

c. Programming Step/Step

PROGRAM StepStep
(* STEP *)
IF %M1 AND %I1 OR %M0 AND NOT %I0 OR %S2  THEN
    %M0 := TRUE;
    %M1 := FALSE;
END_IF

IF  (%M0 AND %I0 OR %M1 AND NOT %I1) AND NOT %S2 THEN
    %M1 := TRUE;
    %M0 := FALSE;
END_IF

(* ACTIONS *)
%Q0 := %M1;

END_PROGRAM

d. Programming Step/Step with Crossing Bits

 PROGRAM StepStepB
(* STEP *)
%M10 := %M1 AND %I1 OR %M0 AND NOT %I0 OR %S2;
%M11 := (%M0 AND %I0 OR %M1 AND NOT %I1) AND NOT %S2;

(* CROSSING *)
IF %M10 THEN
    %M0 := TRUE;
    %M1 := FALSE;
END_IF

IF  %M11 THEN
    %M1 := TRUE;
    %M0 := FALSE;
END_IF

(* ACTIONS *)
%Q0 := %M1;

END_PROGRAM