Un automate programmable ne surveille pas ses entrées en permanence : il répète un cycle. À chaque tour, il lit toutes ses entrées d'un coup, exécute son programme du premier réseau au dernier, puis écrit toutes ses sorties d'un coup. Si un bouton passe à 1 pendant que le programme tourne, l'automate ne le voit donc qu'au tour suivant. Ce cycle compris, tu sais lire un programme en langage à contacts et prévoir ce que fera la machine.
Le cycle : lire, calculer, écrire
Définition : le cycle de scrutation est le tour que l'automate répète sans fin : lecture des entrées, exécution du programme, mise à jour des sorties. Sa durée s'appelle le temps de cycle.
Pendant l'exécution, le programme ne regarde pas les bornes. Il travaille sur la copie des entrées prise en début de tour, souvent appelée mémoire image des entrées, et range ses résultats dans une mémoire image des sorties, recopiée sur les bornes en fin de tour seulement.
Le temps de cycle dépend notamment de la longueur du programme. Sur un M221 de Schneider, le mot système %SW30 donne en millisecondes la durée du dernier cycle, de l'acquisition des entrées à la mise à jour des sorties, et %SW31 la plus longue depuis le dernier démarrage à froid. On peut aussi y régler un mode périodique, où un tour part à intervalle fixe, réglable de 1 à 150 ms (guide de programmation du M221).
Dans le référentiel du BTS Maintenance des systèmes, c'est le savoir S7.2 « Traitement de l'information », mobilisé entre autres par la compétence C11 « Appliquer le plan d'une démarche d'investigation ».
Ce que le cycle change sur la machine
D'abord, un changement n'est jamais vu au milieu d'un tour. Si un détecteur passe à 1 juste après la lecture des entrées, tout le tour se déroule avec l'ancienne valeur, et la sortie ne réagit qu'à la fin du tour suivant.
Ensuite, une impulsion trop brève peut tomber entre deux lectures : le programme ne la voit alors jamais. Certains automates savent la retenir : sur le M221, l'option Mémorisation des entrées %I0.2 à %I0.5 garde une impulsion plus courte qu'un cycle, si elle dure au moins 1 ms et si le filtrage de l'entrée est réglé sur « Aucun filtre ».
Enfin, pour compter, le programme guette le front montant, c'est-à-dire le passage de 0 à 1 d'un tour à l'autre, avec un contact souvent noté P. Sinon, une pièce restée trois tours devant le détecteur serait comptée trois fois.
Piège classique : la même sortie commandée par deux bobines, dans deux réseaux. Chaque bobine écrit dans la mémoire image, et la dernière exécutée fixe la valeur envoyée à la borne en fin de tour. Une sortie se commande à un seul endroit, toutes ses conditions réunies dans un même réseau.
Lire un réseau Ladder
Le langage à contacts, ou Ladder, dessine le programme comme un schéma électrique ; chaque ligne est un réseau. Mais un contact ne représente pas un bouton : il teste un bit, une case mémoire qui vaut 0 ou 1.
| Symbole | Nom | Se lit |
|---|---|---|
-| |- | contact à fermeture | passant si le bit vaut 1 |
-|/|- | contact à ouverture | passant si le bit vaut 0 |
-( )- | bobine | met le bit à 1 si un chemin passant l'atteint, à 0 sinon |
-(S)- -(R)- | mise à 1, remise à 0 | met le bit à 1 (S) ou à 0 (R) si un chemin passant l'atteint ; sinon, n'y touche pas |
Deux contacts en série font un ET : il faut que les deux soient passants. En parallèle, ils font un OU : un seul suffit. Les réseaux s'exécutent de haut en bas, et un bit écrit par un réseau est déjà à jour pour les suivants, dans le même tour.
Conseil : devant une sortie qui ne s'active pas, pars de sa bobine et remonte vers la gauche. Le premier contact bloquant de chaque chemin te dit quelle condition manque, donc quel capteur ou quel bit aller voir.
Marche, arrêt et auto-maintien
Voici le réseau de base pour commander un moteur avec deux boutons poussoirs : Marche sur l'entrée %I0.0, Arrêt sur %I0.1, et la sortie %Q0.0, nommée Moteur, qui pilote le contacteur.
Marche Arrêt Moteur
|---| |----+-----| |-------( )---|
| |
| Moteur |
|---| |----+
Un appui sur Marche établit un chemin passant : Moteur passe à 1. Au tour suivant, le contact Moteur, en parallèle de Marche, devient passant lui aussi : tu peux relâcher Marche, le moteur reste commandé. C'est l'auto-maintien, comme en logique câblée. Un appui sur Arrêt coupe le chemin, et Moteur retombe à 0. Si les deux boutons sont enfoncés, Arrêt, en série, l'emporte.
Le contact Arrêt est pourtant à fermeture, à cause du câblage : un bouton d'arrêt se câble en général sur son contact NF (normalement fermé). Au repos, il laisse passer la tension et l'entrée vaut 1 ; un appui l'ouvre et l'entrée tombe à 0, comme avec un fil coupé. Le programme doit donc laisser passer quand l'entrée vaut 1.
Piège classique : un contact teste un bit, il ne dessine pas le bouton. Avant de juger un contact, regarde sur le schéma électrique comment l'élément est câblé. Un contact à ouverture sur un arrêt câblé NF, et la machine ne démarre plus (exercice 1).
Remarque : un arrêt d'urgence obéit à d'autres règles de sécurité, que ce réseau ne couvre pas.
Exercices corrigés
Fais chaque exercice sur papier avant d'ouvrir sa correction. Machines et valeurs sont fictives.
Exercice 1 : Un collègue a refait le réseau marche-arrêt avec un contact à ouverture sur Arrêt (%I0.1), « puisque c'est un bouton d'arrêt ». Le bouton est câblé NF. a) Que se passe-t-il quand on appuie sur Marche ? b) Et si on appuie sur Marche en tenant Arrêt, puis qu'on relâche Marche, puis Arrêt ?
Correction :
a) Arrêt relâché, %I0.1 vaut 1 : le contact à ouverture bloque, et le moteur ne démarre pas.
b) Arrêt tenu, %I0.1 vaut 0 : le contact laisse passer, Marche met Moteur à 1, et l'auto-maintien le garde quand on relâche Marche. Dès qu'on relâche Arrêt, le contact bloque et Moteur tombe à 0. Le moteur ne tourne que pendant qu'on tient Arrêt : l'inverse du but.
Il faut un contact à fermeture sur %I0.1.
Exercice 2 : Sur une presse, le voyant H1 (%Q0.4) doit signaler un défaut de pression (bit Def_pression) ou de température (bit Def_temp). Au réseau 3, un contact à fermeture Def_pression commande une bobine %Q0.4 ; au réseau 8, un contact à fermeture Def_temp en commande une autre. Ton PC connecté à l'automate, tu lis Def_pression à 1, Def_temp à 0, et H1 reste éteint. Explique, puis corrige.
Correction :
Le réseau 3 écrit 1 dans la mémoire image de %Q0.4. Le réseau 8, exécuté après, y écrit 0, puisque Def_temp vaut 0. En fin de tour, la borne reçoit la dernière valeur écrite : 0. Tel quel, H1 ne suit que Def_temp.
Pour corriger, garde une seule bobine %Q0.4, commandée par les contacts Def_pression et Def_temp placés en parallèle, et supprime l'autre.
Exercice 3 : Un automate en mode périodique lit ses entrées toutes les 10 ms. Sur un convoyeur, un détecteur donne un signal à 1 pendant 4 ms au passage de chaque pièce, et le programme compte les fronts montants. Le compteur affiche moins de pièces qu'il n'en est passé. a) Pourquoi ? b) Quelle durée le signal doit-il dépasser pour être vu à coup sûr ? c) Un signal de 25 ms est lu à 1 combien de fois, et combien de pièces compte-t-on ?
Correction :
a) Les lectures sont espacées de 10 ms. Un signal de 4 ms qui commence juste après une lecture est retombé avant la suivante : aucune lecture ne le voit, et la pièce n'est pas comptée.
b) Il doit durer plus de 10 ms, l'écart entre deux lectures : quel que soit son début, au moins une lecture tombe alors pendant le signal.
c) Comme $\dfrac{25}{10} = 2{,}5$, le signal couvre 2 ou 3 instants de lecture selon son début : il est lu à 1 deux ou trois fois. Mais il ne passe qu'une fois de 0 à 1, donc une seule pièce est comptée. Compter les états à 1 en aurait donné deux ou trois.
Sans changer de détecteur, la solution est une entrée qui mémorise les impulsions, comme l'option Mémorisation du M221 vue plus haut.
À retenir
À retenir :
- Un tour : lecture des entrées, programme de haut en bas sur leur copie, écriture des sorties en fin de tour.
- Un signal plus court que l'écart entre deux lectures peut être perdu ; pour compter, on guette le front montant.
- Une sortie, une seule bobine, sinon la dernière écrite gagne.
- Un contact teste un bit : à fermeture, passant à 1 ; à ouverture, passant à 0. Lis le câblage avant le symbole.
Sources
- Arrêté du 24 janvier 2022 modifié, BTS « Maintenance des systèmes », Journal officiel du 17 février 2022 : texte sur éduscol STI, et arrêté modificatif du 24 juin 2025, applicable à partir de la session 2026.
- Schneider Electric, « Modicon M221 Logic Controller, Guide de programmation », EIO0000003298, version 04, septembre 2025 : document sur se.com.