retour au sujet correction examen DESS TSI - Première session 2004

Option Systèmes Automatisés

Automatisation et Technologies

Question 1 : Il y avait deux grandes classes de solutions : un gros Grafcet ou plusieurs petits (un pour chaque zone où l'on ne fait qu'une chose à la fois). voici une proposition.

Question 2 :Dans le Gemma, on ne peut être que dans un seul état à la fois. Les deux méthodes sont donc possibles, inutile de faire une table des états accessibles. Ci-dessous, une proposition de solution :

#include "entrees-sorties.h"

int auto, marche, prepa, manu, finT1, finT2, atu, rearm, arret, finA5, CI;

void lire_entrees(void)
{
/*je suppose ici qu'il lit les entrées et affecte les variables globales correspondantes*/
}

/*ici devraient être les fonctions qui lancent une tâche (argument 1) ou l'arrêtent (argument 0)*/

int main(void)
{
  eteindre_toutes_sorties();
etape1:
  do lire_entrees(); while(!(manu || (marche && (prepa||auto))));
  if(manu)goto etape8;
  else if(auto) goto etape3;
etape2:
  lancer_T2(1);
  do lire_entrees(); while(!finT2);
  lancer_T2(0);
etape3:
  lancer_T1(1);
  do lire_entrees(); while(!arret && !atu);
  lancer_T1(0);
  if(atu)goto etape4;
etape4:
  lancer_A2(1);
  do lire_entrees(); while(!finT1);
  lancer_A2(0);
  goto etape1;
etape5:
  lancer_D1(1);
  do lire_entrees(); while(atu || !rearm);
  lancer_D1(0);
etape6:
  lancer_A5(1);
  do lire_entrees(); while(!finA5);
  lancer_A5(0);
etape7:
  lancer_A6(1);
  do lire_entrees(); while(!CI);
  lancer_A6(0);
  goto etape1;
etape8:
  lancer_T3(1);
  do lire_entrees(); while(!auto && !prepa);
  lancer_T3(0);
  goto etape7;
}

Question subsidiaire : Voici ma proposition.


pour retourner au sujets de cet examen, cliquez ici (n'est-il pas dans une autre fenêtre ?).


retour au sujet Patrick TRAU, ULP - IPST avril 04