Vous êtes sur la page 1sur 5

On désire commander le système « monte-charge » par le PIC

16F628A (fig.1) selon le GRAFCET PC suivant


L0: Voyant cabine a l’étage 0
GRAFCET AE1: appel cabine a l’étage1
PC AE2: appel cabine a l’étage2 KM1: Montée cabine
EX17: cabine a l’étage 0 KM2: Descente cabine
0 L EX15: cabine a l’étage 1
0 EX13: cabine a l’étage 2
EX17.AE EX17.AE
1 2
1 KM1 2 KM1

EX15 EX13
 

3 T=
5s
t/3/5s

4 KM2

EX17
 

Travail demandé:
1-En se référant au schéma de câblage, compléter
la table d’affectation des Entrées/Sorties ainsi que
la configuration du registre TRISB
PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
E/S S  S  S  E  E  E  E  E 
TRISB 0  0  0  1  1  1  1  1 
2-Compléter le programme en MikroPascal relatif au GRAFCET PC
program Monte_Charge;
Var
X0, X1, X2, X3, X4,AE1,AE2,EX17,EX15,EX13,KM1,KM2,L0:Bit; // Étapes du GRAFCET et variables systèmes
t : bit; // temporisateur t=1 si T=5s et t=0 si T<5s
AE1 : sbit at portb.0;
AE2 : sbit at portb.1;
EX17 : sbit at portb.2;
EX15 : sbit at portb.3;
//Connection entrées/sorties système avec le microcontrôleur
EX13 : sbit at portb.4;
L0 : sbit at portb.5;
KM1 : sbit at portb.6;
KM2 : sbit at portb.7;
BEGIN
TrisB := $1F ; // configuration du PortB
X0:=1 ; X1:=0 ; X2:=0 ; X3 :=0 ; X4:=0 ; t:=0 ; // Initialisation des étapes
while true do // boucle infinie
begin
If (X4 = 1) AND (EX17=1) then // Condition d’activation de l’étape 0
begin
X0 := 1 ; X4:=0; // activation de l’étape 0 & désactivation de l’étape 4
end;
If (X0 = 1) AND (EX17=1) AND (AE1=1) then // Condition d’activation de l’étape 1
begin
X1 := 1 ; X0:=0; // activation de l’étape 1 & désactivation de l’étape 0
end;
If (X0 = 1) AND (EX17=1) AND (AE2=1) then // Condition d’activation de l’étape 2
begin
X2 := 1 ; X0:=0; // activation de l’étape 2 & désactivation de l’étape 0
end;
If (X1 = 1) AND (EX15=1) then // Condition d’activation de l’étape 3
begin
X3 := 1 ; X1:=0; // activation de l’étape 3 & désactivation de l’étape 1
end;
If (X2 = 1) AND (EX13=1) then // Condition d’activation de l’étape 3
begin
X3 := 1 ; X2:=0; // activation de l’étape 3 & désactivation de l’étape 2
end;
If (X3 = 1) AND (t=1) then // Condition d’activation de l’étape 4
begin
X4 := 1 ; X3:=0; // activation de l’étape 4 & désactivation de l’étape 3
end;
If (X0 = 1) then L0:=1 else L0:=0; // Sortie L0
If (X1 = 1) OR (X2=1) then KM1:=1 else KM1:=0; // Sortie KM1
If (X3 = 1) then
begin
Vdelay_ms(5000); t:=1; // gérer la temporisation
end
else
t:=0;
If (X4 = 1) then KM2:=1 else KM2:=0; // Sortie KM2
end;
end.