Aller au contenu

Un mot pour Fahmio

Tu écris. Tu continues.

Un problème, une idée — assez pour qu’on comprenne, puis tu retournes à ta copie.

On lit. Tu n’as rien d’autre à faire.

Où veux-tu aller ?

↑ ↓ pour parcourir · Entrée pour ouvrir · Échap pour fermer

Fahmio
Fahmio
Bac Tunisie
GRA-DGRAFCET et automatisme

Du GRAFCET au programme : équations d’activation/désactivation, variables d’étape, sorties, traduction MikroC

Idée directrice

Quand un GRAFCET est confié à un microcontrôleur, chaque étape devient une variable de type bit et s’écrit par une équation : activation AiA_i = étape(s) amont · réceptivité amont, désactivation DiD_i = étape(s) aval, mémoire Xi=Ai+Di‾⋅XiX_i=A_i+\overline{D_i}\cdot X_i. Le reste du programme se déduit du schéma de la carte : un sbit par entrée ou sortie, les registres TRIS (1 = entrée, 0 = sortie, broches non connectées en entrées), l’étape initiale à 1, une ligne par étape et une équation par sortie.

Ce qui aide à reconnaître la démarche

« Déterminer l’équation d’activation et l’équation de désactivation de l’étape… » ; « Traduire ces deux équations en instructions MikroC » ; « compléter les lignes d’instructions du programme » ; « les broches non utilisées d’un port doivent être configurées en entrées »

Besoin d’un point de départ ? Voir la méthode
  • AiA_i = étape amont · réceptivité amont (somme s’il y a plusieurs transitions amont) ; DiD_i = étape(s) aval.
  • Mémoire d’étape du programme : Xi = Ai || (!Di && Xi);, une ligne par étape.
  • Déclarations : étapes en bit, entrées et sorties en sbit … at Rxn_bit d’après le schéma.
  • TRIS : un bit par broche, 1 = entrée, 0 = sortie, broches non connectées à 1 ; convertir en hexadécimal.
  • Initialisation : étape initiale à 1, les autres à 0 ; sorties : KM = Xa || Xb; pour une action commune à plusieurs étapes.
Les pièges à vérifier dans ta démarche

Mettre l’étape aval dans l’activation ; oublier la mémoire Di‾⋅Xi\overline{D_i}\cdot X_i (l’étape retombe dès que la réceptivité disparaît) ; inverser le sens des bits de TRIS ou oublier les broches non connectées ; déclarer en sbit une variable d’étape interne ; écrire deux lignes KM1 = X21; puis KM1 = X22; (la seconde écrase la première) au lieu de KM1 = X21 || X22; ; oublier de remettre le compteur à zéro.

Sujet principal

Exercice — solution programmée d’une tâche (3 points), dans l’esprit des sessions 2018–2024

8 questionsFigure fournieCorrigé masqué

Machine de découpe de câble. Le câble est entraîné par le moteur Mt1 : KM1 seul donne la petite vitesse, KM1 et KA ensemble la grande vitesse. Un encodeur délivre une impulsion par centimètre de câble ; ces impulsions sont comptées par le module TMR0 d’un PIC 16F877A (entrée RA4/T0CKI) : TMR0 est le nombre de centimètres entraînés. La longueur à couper LcL_c (en cm, entre 20 et 250) est lue sur le port D. La cisaille est actionnée par un vérin : 14M (descente, capteur ℓ1\ell_1) et 12M (remontée, capteur ℓ0\ell_0).

La tâche 2 « couper une longueur de câble » est appelée par les étapes 2 et 5 du GRAFCET de conduite ; sa fin autorise les étapes 3 et 6. Le câble avance en grande vitesse jusqu’à 10 cm de la longueur demandée (réceptivité ApA_p), puis en petite vitesse jusqu’à la longueur demandée (réceptivité FlF_l), avant la coupe.

Connexions du PIC 16F877A

BrocheSignalSens
RA4/T0CKIimpulsions de l’encodeurentrée
RB0, RB1, RB2, RB3X2X_2, X3X_3, X5X_5, X6X_6entrées
RB4, RB5ℓ0\ell_0, ℓ1\ell_1entrées
RC0, RC1préactionneurs KM1, KAsorties
RC2, RC3préactionneurs 14M, 12Msorties
RD0 à RD7LcL_c (binaire)entrées

N.B. : les broches non connectées sont configurées en entrées. Un identificateur MikroC ne pouvant pas commencer par un chiffre, les bobines 14M et 12M sont déclarées M14 et M12.

// Déclarations
bit X20, X21, X22, X23, X24, X25;
bit Ap, Fl;
unsigned short Lc;
sbit X2 at RB0_bit;
sbit X3 at RB1_bit;
.........(a).........;   // X5
sbit X6 at RB3_bit;
sbit L0 at RB4_bit;
sbit L1 at RB5_bit;
sbit KM1 at RC0_bit;
.........(b).........;   // KA
sbit M14 at RC2_bit;
sbit M12 at RC3_bit;

void main() {
  ADCON1 = 0x06;      // port A numérique
  OPTION_REG = 0x28;  // TMR0 compte sur RA4
  TRISA = ..(c)..;  TRISB = 0xFF;
  TRISC = ..(d)..;  TRISD = ..(e)..;
  PORTC = 0;
  .........(f).........  // étapes
  while (1) {
    Lc = PORTD;
    Ap = (TMR0 >= Lc - 10);
    Fl = (TMR0 >= Lc);
    X20 = (X25 && (X3 || X6)) || (!X21 && X20);
    X21 = .........(g).........;
    X22 = .........(h).........;
    X23 = .........(i).........;
    X24 = .........(j).........;
    X25 = .........(k).........;
    if (X20) ....(l)....;     // TMR0 := 0
    KM1 = ....(m)....;
    KA  = ....(n)....;
    M14 = X23;
    M12 = X24;
  }
}
  1. Équations d’activation et de désactivation, lues sur les transitions du GRAFCET.
    1. Écrire l’équation d’activation A21A_{21} et l’équation de désactivation D21D_{21} de l’étape 21.
    2. Écrire A20A_{20} et D20D_{20} pour l’étape initiale 20.
  2. En déduire les équations des étapes 20 à 25 sous la forme Xi=Ai+Di‾⋅XiX_i=A_i+\overline{D_i}\cdot X_i (forme de la ligne X20 du programme). Quelle priorité cette forme donne-t-elle à la mémoire d’étape ?
  3. Compléter les déclarations (a) et (b).
  4. Compléter (c), (d) et (e) en hexadécimal.
  5. Compléter l’initialisation (f).
  6. Traduire en MikroC les équations des étapes 21 à 25 : (g) à (k).
  7. Compléter la remise à zéro (l) et les équations des sorties (m) et (n).
  8. Pour Lc=150L_c=150 cm : à quelle valeur de TMR0 le câble passe-t-il en petite vitesse ? Quelle longueur est entraînée en petite vitesse ? Pourquoi la ligne (l) est-elle indispensable pour le deuxième câble ?
Voir la correction commentéeAprès avoir posé votre démarche

1.a Idée : une étape s’active quand l’étape amont est active et que la réceptivité amont est vraie ; avec la convention des programmes du bac, elle se désactive quand l’étape aval est active. A21=X20⋅(X2+X5)\boxed{A_{21}=X_{20}\cdot(X_2+X_5)} et D21=X22\boxed{D_{21}=X_{22}}.

1.b L’étape 20 est activée depuis l’étape 25 : A20=X25⋅(X3+X6)A_{20}=X_{25}\cdot(X_3+X_6) et D20=X21D_{20}=X_{21}.

2. Avec A22=X21⋅ApA_{22}=X_{21}\cdot A_p, A23=X22⋅FlA_{23}=X_{22}\cdot F_l, A24=X23⋅ℓ1A_{24}=X_{23}\cdot\ell_1, A25=X24⋅ℓ0A_{25}=X_{24}\cdot\ell_0 et Di=Xi+1D_i=X_{i+1} (D25=X20D_{25}=X_{20}) :

X20=X25(X3+X6)+X21‾ X20X_{20}=X_{25}(X_3+X_6)+\overline{X_{21}}\,X_{20}
X21=X20(X2+X5)+X22‾ X21X_{21}=X_{20}(X_2+X_5)+\overline{X_{22}}\,X_{21}
X22=X21Ap+X23‾ X22X_{22}=X_{21}A_p+\overline{X_{23}}\,X_{22}
X23=X22Fl+X24‾ X23X_{23}=X_{22}F_l+\overline{X_{24}}\,X_{23}
X24=X23ℓ1+X25‾ X24X_{24}=X_{23}\ell_1+\overline{X_{25}}\,X_{24}
X25=X24ℓ0+X20‾ X25X_{25}=X_{24}\ell_0+\overline{X_{20}}\,X_{25}

Si AiA_i et DiD_i étaient vraies ensemble, XiX_i vaudrait 1 : c’est une mémoire à marche prioritaire.

3. (a) sbit X5 at RB2_bit; ; (b) sbit KA at RC1_bit; — une variable externe se déclare en sbit sur sa broche, une variable d’étape interne en bit.

4. Idée : un bit de TRIS à 1 = entrée, à 0 = sortie ; les broches non connectées sont des entrées. Port A : RA4 en entrée, les autres non connectées : TRISA=0xFF\boxed{\text{TRISA}=\text{0xFF}} (le port A n’a que six broches RA0 à RA5 : 0x3F est équivalent). Port C : RC0 à RC3 en sortie, RC4 à RC7 non connectées : (11110000)2(11110000)_2, TRISC=0xF0\boxed{\text{TRISC}=\text{0xF0}}. Port D entièrement en entrée : TRISD=0xFF\boxed{\text{TRISD}=\text{0xFF}}.

5. Seule l’étape initiale est active au départ : (f) X20 = 1; X21 = 0; X22 = 0; X23 = 0; X24 = 0; X25 = 0;

6. Chaque équation de la question 2 se traduit avec && (ET), || (OU) et ! (NON) :

X21 = (X20 && (X2 || X5)) || (!X22 && X21);
X22 = (X21 && Ap) || (!X23 && X22);
X23 = (X22 && Fl) || (!X24 && X23);
X24 = (X23 && L1) || (!X25 && X24);
X25 = (X24 && L0) || (!X20 && X25);

7. (l) TMR0 = 0 ; KM1 est commandé dans les étapes 21 et 22, KA seulement dans la 21 :

if (X20) TMR0 = 0;
KM1 = X21 || X22;
KA  = X21;

8. ApA_p devient vrai pour TMR0≥150−10=140\text{TMR0}\ge150-10=\boxed{140} : la petite vitesse entraîne 150−140=10 cm150-140=\boxed{10\ \text{cm}}, et la coupe est commandée à TMR0 = 150. Sans la remise à zéro dans l’étape 20, TMR0 vaudrait encore 150 au deuxième appel : ApA_p et FlF_l seraient vrais dès l’étape 21 et le câble serait coupé sans avancer.

Changer d’énoncé, garder le raisonnement

Choisis un seul transfert après le sujet principal. Qu’est-ce qui change ? Quel résultat ou quelle méthode peux-tu réutiliser ? Les autres exercices restent disponibles pour une prochaine séance.

Variantes rencontrées : équations d’étape en mikroPascal « X40 := (X42 and X4) OR (X40 and NOT(X41)) » avec compteur TMR0 remis à zéro par les étapes (principale 2018) ; programme de tâche en mikroPascal Pro écrit « si… alors » avec déclaration des variables d’étape, TRIS et équations des sorties (contrôle 2021) ; programme du GRAFCET de conduite : « il suffit de réécrire les équations de chaque étape grafcet » (contrôle 2022) ; séquence d’étapes programmée avec TMR0 en mode compteur (principale 2020) ; équation d’activation et de désactivation d’une étape puis traduction en MikroC (principale 2024) ; programme MikroC d’une tâche avec sbit, TRIS, équations d’étape et remise à zéro des compteurs (contrôle 2024). La forme à arrêt prioritaire est travaillée dans les séries, pas dans les sujets.

Exercices d'entraînement — une nuance à la fois

1 Drill GRA-D.1 — La même démarche en mikroPascal Pro : and, or, not et :=
Entraînement 01 / 05

Drill GRA-D.1 — La même démarche en mikroPascal Pro : and, or, not et :=

3 questionsFigure fournieCorrigé masqué

Ensacheuse de semoule. La tâche 2, appelée par l’étape 2 de la coordination, remplit un sac : dès qu’un sac est présent (Ps=1P_s=1), la trappe s’ouvre (KA1) jusqu’à ce que la masse de 25 kg soit atteinte (Pm=1P_m=1) ; la soudeuse descend (14M) jusqu’à ℓ1\ell_1, remonte (12M) jusqu’à ℓ0\ell_0 ; la tâche attend alors l’étape 3 de la coordination. Elle est programmée en mikroPascal Pro sur un PIC 16F877A.

Connexions : X2X_2, X3X_3, PsP_s, PmP_m, ℓ0\ell_0, ℓ1\ell_1 sur RB0 à RB5 ; KA1, 14M (M14), 12M (M12) sur RC0, RC1, RC2 ; les broches non connectées sont des entrées.

program Remplir_sac;
var X20, X21, X22, X23, X24 : bit;
    X2 : sbit at RB0_bit;   X3 : sbit at RB1_bit;
    Ps : sbit at RB2_bit;   Pm : sbit at RB3_bit;
    L0 : sbit at RB4_bit;   L1 : sbit at RB5_bit;
    KA1 : sbit at RC0_bit;
    M14 : sbit at RC1_bit;  M12 : sbit at RC2_bit;
begin
  ADCON1 := $06;
  TRISB := ..(a).. ;  TRISC := ..(b).. ;
  PORTC := $00;
  .........(c).........
  while true do
  begin
    X20 := (X24 and X3) or (X20 and not X21);
    X21 := .........(d)......... ;
    X22 := .........(e)......... ;
    X23 := .........(f)......... ;
    X24 := .........(g)......... ;
    KA1 := X21; M14 := X22; M12 := X23;
  end;
end.
  1. Écrire A21A_{21} et D21D_{21}.
  2. Compléter les repères (a) à (g).
  3. Réécrire en MikroC la ligne de l’étape 21.
Voir la correction commentéeAprès avoir posé votre démarche

1. A21=X20⋅X2⋅PsA_{21}=X_{20}\cdot X_2\cdot P_s et D21=X22D_{21}=X_{22}.

2. Port B entièrement en entrée : (a) $FF ; RC0 à RC2 en sortie, RC3 à RC7 en entrée : (11111000)2(11111000)_2, soit (b) $F8 ; (c) X20 := 1; X21 := 0; X22 := 0; X23 := 0; X24 := 0;. Les équations, avec and, or, not et l’affectation := :

X21 := (X20 and X2 and Ps) or (X21 and not X22);
X22 := (X21 and Pm) or (X22 and not X23);
X23 := (X22 and L1) or (X23 and not X24);
X24 := (X23 and L0) or (X24 and not X20);

3. Mêmes opérateurs en MikroC : &&, ||, ! et = :

X21 = (X20 && X2 && Ps) || (X21 && !X22);
2 Drill GRA-D.2 — Programmer le GRAFCET de coordination : divergence en OU, reprise et lancement des tâches
Entraînement 02 / 05

Drill GRA-D.2 — Programmer le GRAFCET de coordination : divergence en OU, reprise et lancement des tâches

4 questionsFigure fournieCorrigé masqué

Palettiseur de caisses. Le GRAFCET de coordination (figure) est confié à un PIC 16F877A. Il lance la tâche 1 « amener une caisse » (étape 1), puis la tâche 2 « empiler la caisse » (étape 2) ; tant que la pile n’est pas complète (E=0E=0), il reprend la tâche 1 ; quand 8 caisses sont empilées (E=1E=1, fourni par la tâche 2), il lance la tâche 3 « évacuer la palette » (étape 3). Les étapes finales des tâches, X12X_{12}, X23X_{23} et X32X_{32}, arrivent sur le PIC ; les ordres de lancement T1, T2, T3 en sortent.

Connexions : DcyD_{cy}, CICI, X12X_{12}, X23X_{23}, X32X_{32}, EE sur RB0 à RB5 ; T1, T2, T3 sur RC0 à RC2 ; broches non connectées en entrées.

bit X0, X1, X2, X3;
sbit Dcy at RB0_bit;  sbit CI  at RB1_bit;
sbit X12 at RB2_bit;  sbit X23 at RB3_bit;
sbit X32 at RB4_bit;  sbit E   at RB5_bit;
sbit T1 at RC0_bit;   sbit T2 at RC1_bit;
sbit T3 at RC2_bit;
void main() {
  ADCON1 = 0x06;
  TRISB = 0xFF;  TRISC = ..(a)..;
  PORTC = 0;
  X0 = 1; X1 = 0; X2 = 0; X3 = 0;
  while (1) {
    X0 = .........(b).........;
    X1 = .........(c).........;
    X2 = .........(d).........;
    X3 = .........(e).........;
    T1 = X1; T2 = X2; T3 = X3;
  }
}
  1. Écrire les équations d’activation et de désactivation des étapes 1 et 2.
  2. Compléter les repères (a) à (e).
  3. Pourquoi X12X_{12}, X23X_{23}, X32X_{32} sont-elles déclarées en sbit alors que X0 à X3 sont des bit ? À quoi sert la ligne T1 = X1; ?
  4. Combien de fois l’étape 1 est-elle activée pour une palette ?
Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : une étape précédée de deux transitions (convergence en OU) a une activation somme ; une étape suivie de deux transitions (divergence en OU) a une désactivation somme. A1=X0⋅Dcy⋅CI+X2⋅X23⋅E‾\boxed{A_1=X_0\cdot D_{cy}\cdot CI+X_2\cdot X_{23}\cdot\overline{E}}, D1=X2D_1=X_2 ; A2=X1⋅X12A_2=X_1\cdot X_{12}, D2=X1+X3\boxed{D_2=X_1+X_3}.

2. Port C : RC0 à RC2 en sortie : (a)=0xF8\boxed{(a)=\text{0xF8}}. Avec A3=X2⋅X23⋅EA_3=X_2\cdot X_{23}\cdot E, D3=X0D_3=X_0, A0=X3⋅X32A_0=X_3\cdot X_{32}, D0=X1D_0=X_1, et X1+X3‾=X1‾⋅X3‾\overline{X_1+X_3}=\overline{X_1}\cdot\overline{X_3} :

X0 = (X3 && X32) || (!X1 && X0);
X1 = (X0 && Dcy && CI) || (X2 && X23 && !E)
     || (!X2 && X1);
X2 = (X1 && X12) || (!X1 && !X3 && X2);
X3 = (X2 && X23 && E) || (!X0 && X3);

3. X12X_{12}, X23X_{23}, X32X_{32} viennent des GRAFCET de tâches : ce sont des entrées du PIC, reliées à des broches. X0 à X3 sont les étapes de la coordination, calculées dans le programme. Dans un programme de tâche, X1X_1 est une entrée ; ici, c’est la coordination qui la produit : T1 = X1; recopie l’étape 1 sur la broche qui lance la tâche 1.

4. Une fois au départ, puis une reprise après chacune des 7 premières caisses : 8 fois\boxed{8\ \text{fois}}.

3 Drill GRA-D.3 — Équations d’une tâche à divergence et convergence en ET, traduites en MikroC
Entraînement 03 / 05

Drill GRA-D.3 — Équations d’une tâche à divergence et convergence en ET, traduites en MikroC

3 questionsFigure fournieCorrigé masqué

Poste de soudage de pattes de fixation. La tâche 3, appelée par l’étape 3 de la coordination et réarmée par l’étape 4, serre la pièce (14M jusqu’à ℓ11\ell_{11}) pendant que l’électrode s’avance (KM2 jusqu’à SpS_p) ; quand les deux sont en place, le module de soudage est commandé (KA) jusqu’à son signal de fin FsF_s ; puis la pièce est desserrée (12M) et l’électrode reculée (KM3) jusqu’à ℓ10⋅Sr\ell_{10}\cdot S_r.

Connexions : X3X_3, X4X_4, ℓ10\ell_{10}, ℓ11\ell_{11}, SpS_p, SrS_r, FsF_s sur RB0 à RB6 ; 14M (M14), KM2, KA, 12M (M12), KM3 sur RC0 à RC4 ; les étapes sont des variables bit X30 à X37.

  1. Écrire AA et DD des étapes 30, 31, 33 et 35.
  2. Écrire en MikroC les lignes des étapes 30 à 37.
  3. Écrire les équations des sorties, puis les valeurs de TRISB et TRISC.
Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : les deux étapes d’une divergence en ET ont la même activation ; l’étape d’après la convergence a pour activation le produit des étapes de fin de branche. A30=X37⋅X4A_{30}=X_{37}\cdot X_4, D30=X31⋅X33\boxed{D_{30}=X_{31}\cdot X_{33}} (activées ensemble) ; A31=A33=X30⋅X3A_{31}=A_{33}=X_{30}\cdot X_3, D31=X32D_{31}=X_{32}, D33=X34D_{33}=X_{34} ; A35=X32⋅X34\boxed{A_{35}=X_{32}\cdot X_{34}} (réceptivité =1=1), D35=X36D_{35}=X_{36} ; et les deux étapes de fin de branche ont la même désactivation : D32=D34=X35D_{32}=D_{34}=X_{35}.

2.

X30 = (X37 && X4) || (!(X31 && X33) && X30);
X31 = (X30 && X3) || (!X32 && X31);
X32 = (X31 && L11) || (!X35 && X32);
X33 = (X30 && X3) || (!X34 && X33);
X34 = (X33 && Sp) || (!X35 && X34);
X35 = (X32 && X34) || (!X36 && X35);
X36 = (X35 && Fs) || (!X37 && X36);
X37 = (X36 && L10 && Sr) || (!X30 && X37);

3.

M14 = X31; KM2 = X33; KA = X35;
M12 = X36; KM3 = X36;

Port B entièrement en entrée : TRISB = 0xFF ; RC0 à RC4 en sortie, RC5 à RC7 en entrée : (11100000)2(11100000)_2, TRISC=0xE0\boxed{\text{TRISC}=\text{0xE0}}.

4 Drill GRA-D.4 — Étape temporisée dans le programme : Delay_ms et écriture « si… alors » des transitions
Entraînement 04 / 05

Drill GRA-D.4 — Étape temporisée dans le programme : Delay_ms et écriture « si… alors » des transitions

3 questionsFigure fournieCorrigé masqué

Laveuse de pièces. La tâche 5, appelée par l’étape 5 de la coordination et réarmée par l’étape 6, plonge le panier (14M jusqu’à ℓ1\ell_1), brasse le bain par la pompe (KA1) pendant 8 s, puis remonte le panier (12M jusqu’à ℓ0\ell_0). Le programme MikroC écrit chaque transition sous la forme « si étape amont et réceptivité, alors activer l’étape aval et désactiver l’étape amont » ; la temporisation est réalisée par Delay_ms.

while (1) {
  if (X52) {            // étape temporisée
    ....(a)....;         // t/52/8s
    X53 = 1; X52 = 0;
  }
  if (X50 && X5) { X51 = 1; X50 = 0; }
  if (...(b)...) { ....(c).... }
  if (X53 && L0) { ....(d).... }
  if (...(e)...) { X50 = 1; X54 = 0; }
  M14 = X51; KA1 = X52; M12 = X53;
}
  1. Compléter les repères (a) à (e).
  2. Le bloc de l’étape 52 est placé en tête de boucle, avant les transitions. Expliquer pourquoi, en suivant ce que vaut KA1 pendant Delay_ms.
  3. Quelle limite cette écriture impose-t-elle pendant les 8 s ?
Voir la correction commentéeAprès avoir posé votre démarche

1. (a)(a) Delay_ms(8000) (8 s = 8000 ms) ; (b)(b) X51 && L1 ; (c)(c) X52 = 1; X51 = 0; ; (d)(d) X54 = 1; X53 = 0; ; (e)(e) X54 && X6.

2. Idée : les sorties ne sont recopiées qu’en fin de boucle. Au tour où l’étape 52 est activée, la fin de boucle écrit KA1 = 1 et M14 = 0. Au tour suivant, le bloc de tête exécute Delay_ms(8000) : la pompe tourne bien 8 s, panier en bas. Si ce bloc était placé juste après la transition 51 → 52, le délai s’exécuterait dans le même tour, avant l’écriture KA1 = X52 : la pompe resterait arrêtée pendant les 8 s.

3. Pendant Delay_ms, le PIC n’exécute plus rien d’autre : il ne lit plus ses entrées et ne fait évoluer aucune autre étape. Cette écriture n’est acceptable que si aucun capteur ne doit être surveillé pendant la temporisation.

5 Drill GRA-D.5 — Mémoire d’étape à marche prioritaire ou à arrêt prioritaire
Entraînement 05 / 05

Drill GRA-D.5 — Mémoire d’étape à marche prioritaire ou à arrêt prioritaire

4 questionsFigure fournieCorrigé masqué

Tapis commandé par deux boutons. Un GRAFCET à deux étapes commande un tapis : l’étape 70 (initiale) est l’arrêt ; un appui sur marche mm (arrêt aa relâché) active l’étape 71, qui commande KM ; un appui sur aa ramène à l’étape 70. Les séries écrivent la mémoire d’une étape sous deux formes : à marche prioritaire X=A+D‾⋅XX=A+\overline{D}\cdot X et à arrêt prioritaire X=(A+X)⋅D‾X=(A+X)\cdot\overline{D}, avec, comme dans les programmes du bac, DD = étape aval.

  1. Écrire A70A_{70}, D70D_{70}, A71A_{71} et D71D_{71}.
  2. Écrire X70X_{70} et X71X_{71} sous les deux formes, puis les traduire en MikroC.
  3. Pour quelles valeurs de (A,D,X)(A,D,X) les deux formes donnent-elles des résultats différents ?
  4. Le tapis est à l’arrêt (X70=1X_{70}=1, X71=0X_{71}=0) et l’opérateur appuie sur mm. Calculer X71X_{71} avec chaque forme. Laquelle convient ici ? Quelle forme la ligne X40 := (X42 and X4) or (X40 and not X41); utilise-t-elle ?
Voir la correction commentéeAprès avoir posé votre démarche

1. A70=X71⋅aA_{70}=X_{71}\cdot a, D70=X71D_{70}=X_{71} ; A71=X70⋅m⋅a‾A_{71}=X_{70}\cdot m\cdot\overline{a}, D71=X70\boxed{D_{71}=X_{70}} : avec deux étapes, l’étape aval de 71 est aussi son étape amont.

2. Marche prioritaire, puis arrêt prioritaire :

X70 = (X71 && a) || (!X71 && X70);
X71 = (X70 && m && !a) || (!X70 && X71);

X70 = ((X71 && a) || X70) && !X71;
X71 = ((X70 && m && !a) || X71) && !X70;

3. X=A+D‾XX=A+\overline{D}X et X=(A+X)D‾X=(A+X)\overline{D} coïncident sauf si A=D=1A=D=1 : la première donne 1, la seconde 0, quelle que soit XX.

4. Au moment de l’appui, A71=1⋅1⋅1=1A_{71}=1\cdot1\cdot1=1 et D71=X70=1D_{71}=X_{70}=1 : c’est justement le cas A=D=1A=D=1. Marche prioritaire : X71=1X_{71}=1, puis X70=0X_{70}=0 au tour suivant : le tapis démarre. Arrêt prioritaire : X71=(1+0)⋅0=0X_{71}=(1+0)\cdot0=0 tant que X70=1X_{70}=1, et X70X_{70} ne peut être désactivée que par X71X_{71} : le tapis ne démarre jamais. La forme à marche prioritaire convient ; c’est celle de la ligne X40 citée, X40=A40+X41‾⋅X40X_{40}=A_{40}+\overline{X_{41}}\cdot X_{40}.

Relier ce raisonnement au bac

Choisis une filière pour voir les sujets qui étayent ce scénario.