vendredi 10 juillet 2009

Différences 1

J'ai décidé de vous présenter un exemple d'automatisme industriel pour illustrer les différences dans l'approche pour solutionner les problèmes. Mais en préparant ce document, je me suis aussi rendu compte qu'il pouvait servir de métaphore pour illustrer le fonctionement cérébral des uns et des autres. Cet exemple présuppose une certaine connaissance dans le domaine.


Le problème, très simple pour mettre en évidence la méthode de résolution et non le problème lui-même, consiste à mettre en marche un moteur en appuyant sur un bouton «marche», une fois le bouton relaché le moteur devra continuer à tourner jusqu'à ce que l'on vienne appuyer sur le bouton «arrêt». La solution sera réalisée en utilisant un automate programmable, sorte d'ordianteur spécialiser dans le contrôle industriel.


Façon neurotypique...

Elle intègre clairement sa nature scrutative (polling) et séquentielle qui le caractérise. L'automate programmable neurotypique opérera exactement comme tout les automates actuellement disponible dans le commerce. Dans ces machines, la première chose faite est de lire toute les entrées, locales et distante (via un réseau), et de garder une copie en mémoire de cet instantané. En suite, il utilisera ces valeurs et les appliquera à l'ensemble des équations de logique combinatoire et séquentielle de son programme de haut en bas, de la première ligne à la dernière. Puis il prendra les résultats de ces calculs et les reportera sur les sorties de l'automate (locale ou distante) et recommencera ce cycle par un nouvel instantané de l'état des entrées. La vitesse de réponse de cet automate dépendra directement du nombre d'opération que comporte le programme. Plus le programme comporte d'opération moins il sera capable de percevoir des opérations rapides. Ainsi que du nombre d'entrée à lire... L'inconvénient de cette approche est de faire des calculs inutiles pour les équations dont les variables n'ont subit aucun changement et de lire des entrées inchangées.


Pour améliorer les performances de leurs machines, certains fabricants d'automates ont introduit dans leurs machines haut-de-gamme des mécanismes permettants de rendre conditionelle l'exécution (calcul) de certaines protions de programme (via des sous-programmes, etc.) Ce qui réduit d'autant la durée de la boucle et le temps de réponse. Ces mécanismes permettent d'introduire une notion de priorité dans l'exécution des choses. On peut ainsi tenir compte d'une série d'équation qu'une fois tout les dix boucles ou à tout les 15 minutes, etc. Cette façon de traiter les priorités s'appel Temps Partager (time sharing) en informatique.


Pour en revenir à notre exemple, la logique combinatoire utilisée pour implenter la solution par ce procédé sera définie par l'équation suivante:



sortie1 = (Marche OU sortie1) ET NON Arret


En ladder, un language graphique et metaphore du circuit électrique équivalent, ça donnera...



| Marche     Arret    Sortie1 |
+---] [---+---]/[---+---( )---+
|         |                   |
| Sortie1 |
+---] [---+
|


Façon Aspie...

Elle est radicalement différente. Elle laisse transparaitre sa nature événementielle, non-séquentiel et la mémoire associative qui le caractérise. Tout d'abord sa version de l'automate programmable sera complètement différente. Au lieu de prendre des instantanées des entrées et d'effectuer des cycles, il réagira sur un changement d'état de l'entrée (un événement) et sera caractérisé par l'absence de cycle. Le programme sera aussi radicalement différent dans sa formulation. La vitesse de réaction de l'automate sera caractèrisé par la vitesse des changements aux entrées de celui-ci. Moins il y a de changement d'état par unité de temps, plus il réagira vite à ces changements. En absence de tout changement il peut effectuer des oppérations dont l'exécution n'est pas prioritaire. Cela ce ferait par la génération périodique d'un événement «RIEN». Ce qui introduit aussi la notion de niveau de priorité associées aux événements. Un évenement prioritaire peut interropre à tout instant l'exécution de l'action associé à un événement moins prioritaire et une fois la réponse de l'événement priorité terminer l'exécution de ce dernier reprendra sont court. Cette façon de traiter les priorités et d'ordonner les tâches à exécuter se nomme Temps Réel (Realtime) en informatique.



Pour en revenir au problème de départ le programme aspiens prendra la forme suivante:




Quand «Marche» monte: Sortie = VRAI;

Quand «Arret» monte: Sortie = FAUX;


Pour ceux qui ont connu des langages comme Hypertalk™ la formulation suivante vous sonnera sans doute quelques cloches... J'ai également introduit la notion de priorité dans le traitement des événements...


priority class low
{
  on  Marche raise:
  set Sortie high
  end
}
priority class high
{
  on  Arret  raise:
  set Sortie low
  end
}

Cet exemple illustre les différences fondamentales entre la façon de faire de nos cerveaux respectifs. Bien sur l'un et l'autre sont capable d'utilser la manière de l'autre, mais la solution apparait alors moins naturelle et intuitive. Car il faut transposer la solution qui nous viens naturellement à l'esprit dans une logique différente. C'est ce que l'on doit faire constament dans une société organisée à rebourd de nos instincts... Certains y arrivent plus difficilement pour diverses raisons et se voit attribuer ipso facto les étiquettes «retard» et «problématique» par la bonne société neurotypique.


Aucun commentaire:

Enregistrer un commentaire