Programmer en langage ST
1. Exemple de programmation en ST
Soit l’équation logique :
%M0 = %I0.%I1+%I2. /%I3
PROGRAM LogicalFunction %M0 := %I0 AND %I1 OR %I2 AND NOT %I3; END_PROGRAM
2. Exemple de programmation de Grafcet en ST
Soit le Grafcet suivant :
a. Programmation Transition par 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. Programmation Transition par Transition avec Bits de franchissabilité
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. Programmation Etape par Etape
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. Programmation Etape par Etape avec Bits de franchissabilité
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