10) L’HORLOGE de synchronisation.

Aucun microcontrôleur, gros processeur quintuple cÅ“ur, ordinateur cellulaire ou machine de Turing ne saurait se passer de ce chef d’orchestre incontournable qui fédère l’intégralité des acteurs. Si chaque musicien déroule sa partition sans tenir compte des autres instruments, la magnifique symphonie tourne au désastre, à la cacophonie. Même punition si les différentes fonctions de notre mécanique ordinatrice se déclenchent à leur guise. L’écriture viendra écraser le levier oscillant en cours de lecture, et tout va se coincer car le carrousel pour son compte danse une frénétique Zumba. L’HORLOGE système va cadencer une séquence immuable avec en première action une LECTURE inconditionnelle du pion situé dans le plan de la tête d’écriture. Chaque module fonctionnel est déclenché par l’HORLOGE. Quand il a terminé sa séquence, il informe cette dernière que le module suivant peut être à son tour sollicité. En fonction de l’état du BIT testé par la LECTURE, les actions qui suivent seront éventuellement validées par le programme inscrit sur la feuille perforée. L’HORLOGE va alors activer l’unité d’ÉCRITURE si le programme l’autorise. Si c’est le cas, le maître de ce ballet immuable va attendre l’accusé de réception de la fonction en cours. (Si plusieurs états sont perforés pour l’ÉCRITURE, immédiatement la sécurité va se déclencher et couper l’énergie de puissance.) Si la fonction « pointée » n’est pas sollicitée dans le programme, l’HORLOGE passe au module suivant sans s’immobiliser. C’est alors la rotation du barillet qui sera prise en compte, à condition toutefois que ce soit prévu dans la feuille perforée. La ROTATION du carrousel sera alors engagée dans un sens ou dans l’autre en fonction de la position du trou perforé dans l’une des deux colonnes des MOUVEMENTS. (Si deux trous sont présents, c’est qu’il y a une erreur de programme, dans ce cas le sens prioritaire vers la droite sera déclenché.) Quand le déplacement est achevé, ou ignoré si non programmé, c’est alors le commutateur sélecteur des TRANSITIONS qui sera à son tour invoqué. (Ou ignoré.) Si en fin d’un tel cycle ordonné qui réalise une instruction, la fin de programme n’est pas détectée dans l’ÉTAT actuel de la machine, alors l’HORLOGE va recommencer cette cascade d’action, et ce jusqu’à l’infini si le programme boucle sans fin, incident redouté par tout programmeur expérimenté.

Principe de la « poignée de main ».

Lorsque un système automatique ne fonctionne pas en aveugle, et que les différentes entités qui le constituent échangent des informations pour établir une synchronisation globale du fonctionnement, on parle de « poignée de main« . Nous devons dans ce cas organiser un alternat avec deux entités qui vont permuter régulièrement leur comportement entre parleur et écouteur :
• La fonction est à l’écoute et se tourne les pouces. (Façon de formuler, car elle est inerte.)
• L’HORLOGE parle : « Commence ta séquence« .
• L’HORLOGE passe à l’écoute et attend l’ACcusé de Réception ACR.
• La fonction déroule puis termine sa séquence. Ensuite elle parle à son tour :
« J’ai terminé et je suis en configuration dégagée« .
• L’HORLOGE va alors aller dialoguer avec le module suivant ou l’ignorer en fonction du PGM.
Ce « bavardage » mécanique prend la forme matérielle suivante :
Initialement la came 5 est en orientation verticale en 1 sur la position ARRET. On déclenche alors le déroulement d’un programme, et la came 5 se met à tourner dans le sens 2. Puis en 3 « Commence ta séquence » revient à fournir l’état GND au Switch n°N concerné qui active le Début de Séquence assez longtemps pour que le Switch n°N impliqué qui signale la Fin de Séquence passe au repos. Comme l’HORLOGE est alimentée par le contact travail T de ce dernier, elle s’immobilise alors en 4. Puis, la fonction en cours termine sa séquence en faisant repasser le Switch n°N qui signale la Fin de Séquence au travail. C’est l’équivalent du « J’ai terminé et je suis en configuration dégagée« . Le moteur de l’HORLOGE est à nouveau alimenté et la came va poursuivre sa rotation dans le sens 2 jusqu’à la prochaine fonction dans le cycle de l’instruction qui sera alors traitée à son tour. Ce cycle immuable va se poursuivre jusqu’à ce que la consigne de fin de programme vienne configurer la machine pour la replacer en mode veille dans l’orientation 1, ou si durant le déroulement des instructions une panne ou un incident se produit.
Considérons la Fig.63 qui représente l’angle balayé par la came durant lequel sera générée l’impulsion à GND devant déclencher le Début d’une Séquence. Pour que les diverses unités puissent fonctionner correctement, nous avons vu que la durée de cette impulsion à l’état électrique GND doit être suffisante pour que le capteur de fin de traitement Switch n°N impliqué puisse passer au repos. Dans ce but, le secteur colorée par du vert pastel en 1 de la Fig.62 et sur la Fig.63 présente un profil périphérique circulaire centré sur l’arbre de rotation de la came 5. Le capteur 3 passe à l’état travail durant le balayage de l’angle φ d’environ 17° étudié pour générer une durée suffisante pour toutes les fonctions d’une instruction. La poignée de main pour une fonction fait donc appel à une paire de Switch séparés d’un angle suffisant pour que celui de début de séquence soit passé au repos bien avant que celui d’attente de l’accusé de réception ne passe au travail. Comme l’unité HORLOGE intègre neuf capteurs au total, ils ont été répartis uniformément sur la périphérie du dispositif. L’angle balayé entre deux Switch fait 40° et convient parfaitement. Comme cette came tourne toujours dans le sens horaire, des capteurs simples sans le galet seraient tout à fait utilisables. J’ai toutefois préféré des modèles à roulette pour des raisons de fiabilité. La came est en PLA, un matériau qui reste légèrement sensible à l’abrasion. Par ailleurs, l’HORLOGE est l’unité la plus sollicité de la machine. Aussi, pour des raisons de fiabilité le choix technique s’est orienté vers les références avec galet, option n’ayant qu’une influence dérisoire sur le coût d’approvisionnement. Cette approche sera réitérée pour le commutateur des états dans la table des TRANSITIONS.

Vitesse et précipitation !

Parfois un petit calcul peut éviter bien des tourments. Durant le développement, la came représentée sur la Fig.62 présente un contour extérieur qui active le Switch sur un angle de rotation d’environ 17°. Sur les dessins cette valeur semble importante. Lors des essais, j’ai utilisé le moteur / réducteur le plus lent disponible qui tourne à 30tr/min. Déception ! Manifestement le temps de l’impulsion de départ est nettement insuffisant et le système ne fonctionnait pas.
Avec 30tr/min, la came fait un tour en 2S. Avec un angle φ de 17° la durée de l’impulsion de départ fait 2 / 360 * 17 soit 0,09S ce qui est bien trop faible. Ce simple petit calcul aurait démontré cette insuffisance et aurait évité de mouler cette belle pièce pour rien. Qu’à cela ne tienne. On multiplie la durée par environ trois, on étudie une nouvelle came en élargissant son profil.
On passe de la came A sur la Fig.64 à celle de forme B avec un angle balayé pour φ de 55°. L’impulsion fait maintenant 0,3S et le déclenchement se produit correctement. Ben … poubelle cette belle nouvelle pièce violette. En effet, avec cette nouvelle forme, même en plaçant les cames les plus proches possible les unes des autres, il devient impossible de placer les quatre paires de capteurs. Ici aussi une petite étude géométrique aurait facilement montré l’impossibilité.
Bref, c’est l’impasse. Seule solution, commander un moteur/réducteur qui tourne à 10tr/min. Il existe dans la liste des propositions commerciales. Mais cette solution ne me séduisait pas du tout, autant pour des raisons de coût que de délais d’attente en approvisionnement. C’est alors que LA solution a émergé de cette « tourmente ». Il suffit d’insérer une résistance entre le +12Vcc et le moteur. Avec trois résistances en série de 47Ω on transforme le dispositif en une poussive motorisation qui tourne lentement et n’a plus qu’un couple faible. Le moteur cale dès que l’on force sur l’arbre de sortie.
ette approche présente toutefois bien des avantages. Comme les Switchs n’exigent que de faibles efforts pour les activer, le couple de sorti reste largement suffisant. La vitesse est optimisée pour garantir le bon fonctionnement pour tous les modules, sachant que celui qui exige l’impulsion la plus longue est la fonction rotation du carrousel. La surintensité de démarrage n’existe plus et la consommation devient dérisoire. Enfin, au plus petit incident mécanique le moteur cale et peut rester dans cette configuration sans risque car l’intensité permanente fait moins de 70mA. Enfin, j’utilise trois résistances de 47Ω pour des raisons de disponibilité. Le courant étant faible elles ne chauffent pas et des modèles 1/4W sont suffisants. OUF … un autre problème de résolu !

Dépasser la vitesse autorisée.

Force est de constater que pour déclencher avec certitude une rotation du carrousel, la came pour faire un tour d’HORLOGE se traine lamentablement. Hors l’angle balayé pour passer du capteur de déclenchement à celui d’attente de l’accusé de réception reste faible. Ralentir la came sur 360° n’est vraiment pas une bonne solution. C’est comme imposer du 30km/h à la fois en ville et en rase campagne. D’où l’idée d’un accélérateur automatique. L’activation des Switchs de déclenchement se fait sur environ 17°. Soit pour un cycle complet 84°, c’est à dire à peine un quart du temps. On conçoit aisément que faire « cavaler » le moteur le reste du temps constitue un avantage substantiel. Plus exactement, on ne va ralentir le moteur de l’HORLOGE que durant l’impulsion de début de séquence envoyée, c’est à dire tant que le contact du Switch de déclenchement de séquence est à l’état travail. Sur la Fig.65 on peut

constater qu’au prix d’un Relais pour le Ralentissement Moteur, de quatre résistances et de cinq diodes, on va pouvoir « rouler » à toute vitesse. Sur ce schéma la section des contacts S est celle du relais qui fait tourner le Moteur n°5 de l’Horloge. Les sections W, X, Y et Z sont celles des divers Switchs qui déclenchent les actions par des impulsions « négatives ». Supposons, comme c’est le cas sur le schéma, que le Switch X tente de déclencher une séquence, qu’elle soit ou non validée par la feuille perforée de la MATRICE. Recevant GND sur son point froid le relais R42RM passe à l’état travail T durant toute l’impulsion. Les résistances R2 et R3 ne sont plus shuntées. Le moteur M5H est alors alimenté depuis le +12V à travers la chaîne R1 + R2 + R3 soit 116Ω. Avec un tel frein en courant il arrive à continuer sur sa lancée, mais il « se traine ». La vitesse de rotation de la came est lente et les démarrages de séquence se font correctement. Dès que l’impulsion de démarrage est terminée, le point froid de R42RM n’est plus au potentiel de GND et il repasse au repos R. Immédiatement R2 et R3 sont shuntées et la rotation redevient rapide. Noter qu’en permanence R1 de 47Ω reste en série. Le ralentissement qu’elle provoque n’est pas appréciable, en revanche elle limite la consommation et surtout les appels de courant. Si on retire le pont P de son connecteur HE14, le moteur M5H tourne en permanence au ralenti. Ce n’est qu’une option pour la maintenance qui facilite ainsi les observations sur la machine en action. Les diodes D1 à D2 autorisent chaque section X à Z propager GND vers le point froid de RRM sans pour autant déclencher des actions intempestives sur les trois autres sections. NOTE : Actuellement la TRANSITION est traitée de façon différente par la carte Arduino, pour gérer l’ER 2 et Z et D3 sont inutilisés.

Chaque module parle son patois local.

Palabrer, dialoguer, échanger une poignée de main suppose un langage commun. Aussi, la théorie de la Fig.62 occulte une complexité cachée. En effet, chaque module de la machine est différent et présente des spécificités. Il faut concilier ces « langues locales » dans un circuit d’HORLOGE global en adaptant les niveaux GND et les +12V issus de la MATRICE échangés entre parleur et écouteur, le schéma adopté étant un véritable interprète électrique. C’est particulièrement vrai pour le sélecteur des TRANSITIONS dont il sera question dans le prochain chapitre. Ce circuit va donc intégrer deux « sections » bien distinctes. Une partie pour Déclencher ou ignorer une séquence fonctionnelle, l’autre pour gérer l’ACcusé de Réception ACR assurant la « poignée de main ». Nous allons passer en revue la poignée de main pour chaque module fonctionnel.
NOTE IMPORTANTE : Par agencement de la MATRICE de programme et du sens des diodes, cette dernière fournit du +12v sur la sortie concernée si l’action doit se produire. Comme le pilotage doit se faire sur le coté « négatif » du relais, il faudrait comme montré sur la Fig.3 inverser les signaux, ce qui imposerait la présence d’un relais RIS d’Inversion de Signal sur chacune des sorties concernées de la Matrice de programme. Pour éviter d’avoir à ajouter ainsi une kyrielle de relais, on se contentera quand c’est possible de ne pas relier le point chaud du relais piloté directement au +12v mais à la sortie de la Matrice de programme. Du coup, ce relais ne pourra passer au travail que s’il est validé sur son point chaud et réuni à GND par le système de déclenchement des actions. Seul le relais pilotant la fonction LECTURE sera relié directement au +12v car cette fonction est systématique pour chaque instruction.

Synoptique de l’HORLOGE système.

Avant d’examiner point par point comment chaque fonction d’un cycle d’instruction réalise sa « poignée de main », prenons un peu de recul sur la Fig.66 qui met en évidence deux « colonnes » structurelles. Celle relative aux capteurs de déclenchement des actions si elles sont programmées sur la feuille perforée, et celle des Switchs d’attente des ACcusés de Réception ACR. Sur ce dessins deux cames violettes sont représentées, mais dans la pratique c’est la même qui agit sur l’ensemble de ces capteurs disposées tout le tour de la zone balayée en rotation. Globalement, la chronologie du fonctionnement de l’horloge est la suivante : Quand on active le début d’un programme, la section C5-T5 du « RUN » passe au travail propageant GND à la base de la « ligne d’attente des ACR. Immédiatement le moteur de la came d’HORLOGE se met à tourner et active de façon inconditionnelle en W le module de LECTURE. En interne le Switch F1 est passé au repos. Puis, la came continue de tourner et active la section C1T1. Comme F1 est au repos, GND n’est pas sur T1 le moteur M5H stoppe pour attendre l’ACR. Quand la LECTURE est terminée, son mécanisme local réactive F1 qui passant au travail propage GND sur T1 et M5H se remet à tourner pour aller déclencher une écriture en X. Toutefois, pour les trois séquences qui suivent, leur schéma électrique interne est prévu pour ne démarrer le moteur local que si la fonction est programmée dans la feuille perforée. Sur le synoptique, on observe que pour la fonction ÉCRITURE on doit réaliser un ET logique. Cette particularité sera étudiée en détail dans le chapitre suivant. Comme la fonction ÉCRITURE utilise deux unités fonctionnelles qui ne termineront pas leur action rigoureusement simultanément, il faut attendre que celle du dessus ET celle du dessous aient terminé leur action pour retourner l’ACR. La fonction ROTATION Y du carrousel est analogue à celle de LECTURE, si elle est programmée, sauf que le sens de rotation est géré en interne. Pour la sélection d’une TRANSITION Z, la gestion du déclenchement et de l’ACR fait l’objet d’un chapitre dédié car la séquence est spéciale et se fait en trois phases distinctes.

Particularité de la fonction ÉCRITURE.

Autre le fait qu’elle est déclenchée systématiquement à chaque traitement d’un cycle d’instruction, l’impulsion de déclenchement est également envoyée à un compteur électromécanique décimal. C’est un ancien modèle qui « traine » dans les tiroirs depuis une éternité. Il sera utilisé pour visualiser le nombre d’instructions qui auront été déroulées par la machine depuis sa mise en service. Naturellement on peut parfaitement se passer de ce luxe, j’avoue qu’ici je me fais un petit plaisir. Ceci étant précisé, mécaniquement il sera remis à 00000 le moment venu. On n’imagine pas le nombre significatif de « rotations » que peut effectuer l’HORLOGE système. Bien qu’il n’ait été branché que durant quelques essais de validation et de mise au point, il avait déjà enregistré plus de 550 comptages ! La Fig.67 le présente sortit de son boitier, et montre ses « références signalétiques ». Il peut compter jusqu’à 99999 instructions sans recycler à zéro, ce qui nous laisse une marge confortable. Ne tenez pas compte de la valeur actuelle, j’ai tourné les molettes à la main, pour l’amener aux environs de 99990. Comme le montre le schéma de la Fig.68 il est
« sous-alimenté » par deux résistances de 270Ω mises en parallèle, soit 135Ω dans le but de diminuer sa consommation et surtout l’appel de courant. Du coup, en quelques instructions je vérifie qu’il peut repasser de 99999 à 00000 avec certitude. On retrouve la diode de roue libre. Chaque impulsion de déclenchement de lecture va allumer la LED blanche locale. Si on le désire, en enlevant le pont de liaison P sur le connecteur HE14 on peut « déporter » cette LED sur le tableau de maitrise de la machine.

Chassé-croisé mécanique.

Lorsque l’HORLOGE déclenche la séquence des deux unités d’écriture, elle se met en attente de l’ACcusé de Réception issu de ce module fonctionnel. Si l’écriture d’un « 0 » est programmée, les deux unités vont balayer des angles de rotation analogues et terminer leurs missions presque simultanément. En revanche, l’écriture d’un « B » ou d’un « 1 » se traduit par des rotations d’amplitudes vraiment très différentes. Celle qui couvre l’angle le plus faible va commencer son retour vers la position dégagée alors que l’autre est encore loin d’atteindre sa rotation maximale. Si l’unité la plus rapide retourne immédiatement son ACR, L’HORLOGE peut alors déclencher une rotation du barillet sans plus tarder. Ce serait catastrophique, car l’unité en retard n’est pas du tout dégagée et un pion peut venir en collision avec la palette et endommager le mécanisme. Il faut impérativement ne déclencher l’ACR que lorsque les deux mécanismes ont terminé leur action, c’est à dire qu’ils se retrouvent tous les deux en configuration dégagée. Donnée en Fig.69 la solution (Simplifiée car ne sont pas représentées la résistance d’adaptation en 12v, la diode de roue libre et la visualisation à LED de l’état du relais.) pour résoudre cet impératif n’est pas compliquée et utilise un relais pour réaliser un ET logique. La Fig.69 présente l’ensemble en attente du signal de début de séquence. Quand ce dernier arrive, les deux cames ont libéré S4FS1 et S4FS2 qui sont alors au repos sur R1 et R2 et le relais R9AF est au repos sur R3.
(R9AF : Relais n°9 pour l’Attente de Fin d’écriture.)
Considérons le premier cas possible, le moteur X termine son débattement en premier. L’état GND est propagé par T1 sur C3. Le capteur S4FS2 étant encore au repos, le relais R9AF est toujours sur R3 et GND n’est pas transmis. Dès que le moteur Y active son capteur de fin de séquence T2, le relais s’active et T3 propage l’état GND vers le circuit de l’HORLOGE système qui reçoit l’ACR, et se remet en mouvement pour continuer le cycle d’instruction et va alors traiter la rotation du barillet.
Deuxième éventualité, c’est le moteur Y qui achève sa rotation en premier. Le Switch S4FS2 commute GND sur T2 et R9AF passe au travail. Comme S4FS1 est toujours sur R1, l’état GND n’arrive pas encore sur C3. Ce n’est que lorsque X terminera sa séquence et qu’il activera S4FS1 sur T1, que GND sera propagé jusqu’à C3 et que l’ACR sera transmis à l’HORLOGE.
On peut noter au passage que X et Y ne sont pas différenciés, et ce n’est que par le câblage extérieur reliant les deux unités d’écriture du haut et du bas que seront particularisés leurs rôles respectifs.

La gestion de la ROTATION du carrousel.

C’est la fonction schématisée sur la Fig.18 qui chronologiquement suit celle d’ÉCRITURE si elle est validée par la MATRICE de programme. Ce sont les deux sorties G et D de la MATRICE qui valideront la séquence et qui imposeront au module de ROTATION le sens du mouvement du barillet. Comme c’était le cas pour la Fig.66 les deux symboles violets représentent la même came physique. Il ne faut déclencher la séquence ROTATION que si l’une des deux sorties G ou D est validée dans le programme. Le OU logique est réalisé par le Relais n°25 de Validation de la Rotation du carrousel R25VR. Par ailleurs il est exclus que la sortie de la matrice puisse déclencher un début de séquence de ROTATION si la machine n’est pas en mode AUTOMATIQUE, raison pour laquelle la ligne de déclenchement de la séquence reçoit l’état GND depuis INV. l’inverseur de mode. Les deux diodes en sortie de la MATRICE SM empêchent le +12V de se propager entre G et D. Sur ce schéma la diode de roue libre pour le relais R25VR est représentée, mais pas une éventuelle LED de visualisation de son état. Noter que la ligne @ va sur le module qui gère l’accélération de la rotation de l’HORLOGE système.

La gestion du mode AUTOMATIQUE.

Logiquement on s’attendrait à la présence du chapitre qui détaille le déroulement du module des TRANSITIONS qui termine un cycle d’instruction. Il se trouve que son fonctionnement est moins simple que celui des autres unités et doit s’opérer en trois phases. Aussi, pour détailler progressivement son déroulement le chapitre n°10 lui est réservé. Passons directement à l’étude du circuit qui s’occupe de gérer le « RUN ». Le principe global du fonctionnement de la machine quand on déclenche le déroulement d’un programme est basé sur l’hypothèse qu’au départ la came de l’HORLOGE système est en position VEILLE, et que le sélecteur des instructions est positionné sur la ligne n°1 des TRANSITIONS qui pointera par convention la première instruction du programme. Le traitement d’un algorithme supposé correct  se déroule dans l’ordre suivant :

 

Dans une première étude, l’inverseur PAS à PAS est supposé placé sur l’option NORMAL l’opérateur désirant un fonctionnement « standard » autonome. La machine est représentée en configuration VEILLE sur la Fig.7 et les deux relais sont au repos. De ce fait la section CR empêche l’état GND de se propager jusqu’au point froid du relais R28MH le Relais 28 qui anime le Moteur d’Horloge. La machine reste au repos. L’opérateur passe l’Inverseur sur la position AUTOMATIQUE, puis clique sur le bouton poussoir « RUN« . Le relais R27EP d’Exécution du Programme passe au travail et y reste grâce à sa section d’a.m. quand BP1 est libéré. La came va effectuer ses rotations au rythme des accusés de réception ACR retournés par les fonctions programmées. Arrive un moment où une instruction du programme valide un « F » en sortie de MATRICE. Pour qu’une éventuelle instruction d’ÉCRITURE ou de ROTATION soit prise en compte, le signal « F » issu de la MATRICE n’est envoyé à la logique en l que durant l’activation du Switch qui déclenche le début d’une fonction ÉCRITURE. Le relais R26FP de Fin rencontrée dans le Programme passe alors au travail et y reste grâce à sa section d’a.m. Par « protocole logiciel », la ligne contenant « F » dans la feuille de programme doit exclure « T1 » à « T11 » des colonnes perforées. Arrivée sur ARRÊT la came s’immobilise car R26FP est actif et CT fermé alors que C5R5 s’ouvre. Il ne se passe plus rien, la machine étant revenue en mode attente. Il importe alors de cliquer sur BP2 pour effacer la mémoire R26FP et éteindre le témoin vert signalant que le programme est terminé. C’est la carte Arduino NANO qui se charge de ramener la machine à l’ÉTAT actuel n°1 lorsque l’opérateur clique sur BP2 de « RAZ« . Le voyant bleu s’illumine précisant que la machine est actuellement en VEILLE et l’on peut à convenance relancer une exécution automatique ou passer à la demande en mode MANUEL

L’option d’observation « PAS à PAS ».

Utile aussi bien en opérations de maintenance qu’en observation du comportement d’un programme en cours d’exécution, cette option ne modifie pas beaucoup le comportement de la machine. Quand l’inverseur NORMAL est placé sur l’option PAS à PAS, chaque fois que la came active la section C5T5 le moteur M5H s’immobilise et la machine se fige dans l’état qui correspond au cycle de la dernière instruction déroulée. On peut alors en toute liberté analyser la situation et vérifier si elle est conforme à ce qui était prévu par le programmeur, ou effectuer une démonstration instruction par instruction. Pour déclencher le cycle suivant il faut cliquer sur BP1 pour déclencher un autre « RUN« . On constate sur la Fig.71 que durant cette option de PAS à PAS le passage au travail du relais R26FP de Fin rencontrée dans le Programme est strictement sans effet sur la Section d’ATTENTE des ACR. Pour ne pas risquer un comportement imprévu, l’opérateur doit alors effectuer une « RAZ« , repasser éventuellement sur l’option NORMAL et surtout ne pas cliquer sur « RUN » à ce stade Quand un programme a été démarré en mode NORMAL on peut à tout moment basculer en PAS à PAS pour en figer provisoirement l’exécution.

La suite est ici : 11) Table des TRANSITIONS et sélecteur d’ÉTAT..