Codeurs rotatifs expliqués avec des diagrammes interactifs (1) : binaire, Gray, incrémental

Rotary Encoders Explained with Live Diagrams — Part 1

Un codeur rotatif transforme l’angle d’un arbre en rotation en signal électrique. Au cœur de l’appareil se trouvent un disque gravé d’un motif clair et sombre et un capteur qui lit ce motif depuis une position fixe. Changer la façon dont le motif est gravé change à la fois ce que le codeur peut indiquer et la manière dont il se trompe lorsqu’une lecture tourne mal.

Cette série parcourt ces motifs style par style, à l’aide de diagrammes que vous pouvez faire tourner. Cette page traite des modèles absolus multipistes, où chaque piste porte exactement un bit, en binaire comme en code Gray, ainsi que du disque incrémental classique, qui ne porte aucune adresse absolue.

Les modèles qui compriment la position sur une seule piste, comme le disque PRBS, et ceux qui associent un code grossier à un cycle fin, comme les disques hybrides et vernier, sont traités dans (2) Piste unique et hybrides.

Question Figure qui y répond
Pourquoi l’angle est-il juste dès l’instant où l’alimentation arrive ? Codeurs absolus en code binaire (figure 1)
Pourquoi le code Gray s’est-il imposé sur les disques industriels ? Codeurs absolus en code Gray (figure 2)
Comment un disque sans adresse absolue détermine-t-il son sens de rotation ? Codeurs incrémentaux à voies A et B (figure 3)
💡 Astuce

Tous les disques ci-dessous se manipulent à la souris. Faire franchir doucement une frontière de secteur à l’un d’eux avant de lire le texte rend la suite de l’explication bien plus facile à suivre.

Une précision d’emblée : chaque figure est un dessin simplifié destiné à expliquer un mécanisme, et non la copie du produit d’un fabricant donné. Partout où le dessin s’écarte du matériel réel, la section “Dans la figure de cette page” le signale.

Codeurs absolus en code binaire (figure 1)

Le principe du codage

Le disque est divisé radialement en pistes concentriques et chaque piste porte un bit. À un angle donné, la combinaison de clair et de sombre sur ces pistes est l’adresse absolue de cette position. Gravées en binaire naturel, quatre pistes donnent seize secteurs adressables ; huit pistes en donnent 256.

L’intérêt de cette disposition tient à ce que la position est connue dès l’instant où l’alimentation arrive. Rien n’a besoin de bouger au préalable. La combinaison que les capteurs lisent est déjà l’angle, si bien qu’aucune prise d’origine n’est nécessaire au démarrage.

La faiblesse vient du même mécanisme. À la frontière entre deux adresses, plusieurs bits peuvent basculer au même instant. Passer de 0111 à 1000, par exemple, change les quatre bits d’un coup. Si les capteurs sont montés avec le moindre défaut d’alignement, chaque bit franchit son front à un instant légèrement différent et, pendant un bref moment, la lecture n’est ni 0111 ni 1000. Pire, l’erreur n’est pas petite : une lecture fausse momentanée peut tomber à un demi-tour de la position réelle.

Dans la figure de cette page

Le dessin suit l’intuition d’un codeur absolu à transmission : le blanc vaut 1 (la lumière passe) et le noir vaut 0 (la lumière est bloquée). Les pistes sont disposées avec le LSB à l’extérieur et le MSB à l’intérieur. Une rangée fixe de capteurs en haut du disque lit chaque piste, et les voyants situés en dessous leur correspondent : le plus à gauche est le MSB de la piste intérieure, le plus à droite le LSB de la piste extérieure.

Déplacer le curseur change le nombre de bits, et avec lui le nombre de pistes et de secteurs. Le disque est réglé pour que le numéro de secteur augmente dans le sens horaire. Franchissez lentement une frontière et guettez l’instant où plusieurs voyants changent à la fois.

⚠️ Piège courant

Plus de bits signifie effectivement une résolution plus fine, mais aussi davantage de bits qui changent ensemble aux pires frontières. Augmenter le nombre de secteurs en restant en binaire naturel fait sauter la lecture fausse occasionnelle plus loin, et non moins loin.

Codeurs absolus en code Gray (figure 2)

Le principe du codage

Physiquement, rien ne change : une piste par bit, exactement comme avant. Ce qui change, c’est le code gravé sur ces pistes. Les secteurs sont ordonnés de telle sorte que deux angles voisins ne diffèrent que d’un seul bit. Cet ordonnancement est le code Gray.

Puisqu’un seul bit peut être en transition à une frontière, une lecture mal synchronisée ne peut renvoyer que le secteur que l’on quitte ou celui dans lequel on entre. Les erreurs restent chez le voisin au lieu de traverser le disque, et cette seule propriété explique que le code Gray soit devenu la norme des codeurs industriels multipistes.

Le revers, c’est qu’une lecture Gray n’est pas un nombre directement exploitable. L’automate ou le contrôleur doit la convertir en binaire naturel avant d’effectuer le moindre calcul. Cette étape de conversion fait partie de la conception, ce n’est pas un ajout après coup.

Dans la figure de cette page

La disposition physique est identique à celle de la figure 1 — LSB à l’extérieur, MSB à l’intérieur, blanc pour 1, noir pour 0 — mais chaque secteur porte désormais son motif Gray. En tournant le disque dans le sens horaire, le numéro de secteur continue d’augmenter d’une unité à la fois.

La valeur Gray affichée, elle, se comporte autrement. Lue directement comme un nombre décimal, la configuration de bits du disque donne 0, 1, 3, 2, 6 et ainsi de suite : elle saute au lieu de monter. L’équivalent en binaire naturel est affiché à côté, ce qui permet de voir le numéro de secteur et la valeur convertie avancer du même pas pendant que la valeur Gray brute sautille.

Observez aussi les voyants. Le passage à un secteur voisin fait généralement basculer exactement l’un d’entre eux. Face au disque binaire de la figure 1, où plusieurs changeaient ensemble, la différence saute aux yeux.

💡 Astuce

Une lecture qui affiche 0, 1, 3, 2 ne trahit pas un disque défectueux. Sur un codeur Gray, c’est exactement ce que vous devez voir. Les valeurs qui montent une par une sont les valeurs converties.

Codeurs incrémentaux à voies A et B (figure 3)

Le principe du codage

Un disque incrémental ne porte que des fentes régulièrement réparties sur sa circonférence, et aucune adresse absolue. Il se lit avec deux capteurs placés à environ 90 degrés électriques l’un de l’autre, en quadrature. Par convention, on les appelle voie A et voie B.

Ensemble, ils parcourent quatre états, normalement 00 → 10 → 11 → 01, ou la même séquence à l’envers lorsque l’arbre tourne dans l’autre sens. Ce que l’on oublie souvent, c’est qu’il existe des plages où A et B sont tous deux à l’état haut, et des plages où ils sont tous deux à l’état bas. Les deux voies ne sont pas de simples copies inversées qui alternent.

La voie qui est en avance donne le sens de déplacement, et compter les fronts donne la distance parcourue par l’arbre. C’est aussi la limite de ce que connaît un codeur incrémental : il ne signale que la variation. En cas de coupure d’alimentation, ou si un comptage se perd dans le bruit, la position absolue reste inconnue jusqu’au passage d’un repère de référence comme la voie Z.

Dans la figure de cette page

Il y a une seule piste de code, garnie de fentes régulièrement réparties. La voie A se trouve en haut du disque et la voie B est décalée de l’équivalent de 90 degrés électriques.

Vous verrez des moments où les deux voyants sont allumés et des moments où ils sont tous deux éteints. Ce sont les points de recouvrement propres à la quadrature, et ils sont corrects. Le curseur de résolution agit comme nombre de divisions, équivalent aux PPR (impulsions par tour). Il n’y a que deux voyants, A et B, sans rangée de MSB ni de LSB.

⚠️ Piège courant

Voir A et B allumés en même temps est diagnostiqué comme un défaut de câblage étonnamment souvent. En quadrature, deux des quatre états ont les deux voies au même niveau : c’est donc normal. Ce qui doit inquiéter, c’est l’inverse : un signal où 00 ou 11 n’apparaît jamais.

Où l’on rencontre réellement chacun des trois types

Les différences ci-dessus correspondent assez directement aux domaines d’emploi de chaque type. Ce qui suit décrit des tendances générales ; le type présent dans un appareil donné varie selon le modèle, alors consultez la fiche technique au moment de spécifier du matériel réel.

Codeurs absolus binaires

Les disques gravés en binaire naturel sont rares dans la détection de rotation courante. Le défaut de plusieurs bits changeant ensemble à une frontière se traduit trop facilement par un dysfonctionnement en aval. Lorsqu’un disque multipiste doit porter la position absolue, il a presque toujours été remplacé par la version Gray décrite ci-dessous.

Cela ne veut pas dire que le binaire disparaît. La valeur lue sur un disque Gray est convertie en binaire naturel dans le contrôleur avant tout calcul de position. Le binaire a reculé comme façon de graver le disque tout en restant la base du calcul.

Codeurs absolus en code Gray

C’est le choix standard pour les disques industriels multipistes. Son atout, on l’a vu, est que l’angle est fixé dès l’arrivée de l’alimentation. Cela compte surtout là où faire manœuvrer la machine pour retrouver une origine à chaque démarrage n’est pas acceptable.

Parmi les applications typiques : les axes d’indexation des machines-outils, les angles d’articulation des robots, l’ouverture des vannes et des registres, la position des palans et des grues, l’orientation des antennes et des instruments d’observation. Dans chaque cas, soit ignorer la position courante après une coupure serait dangereux, soit la prise d’origine du mécanisme est de toute façon physiquement malcommode.

Une fois ces lectures prises sur les angles d’articulation d’un robot, les questions suivantes sont où se trouve maintenant l’outil, et de combien tourner chaque axe pour y aller. Ce calcul est dans Cinématique directe et inverse expliquée avec des diagrammes interactifs (1), sur un bras plan à deux segments que vous pouvez déplacer.

Codeurs incrémentaux (A/B)

C’est la construction la plus simple des trois et elle ne demande qu’une piste de code. Renoncer à la position absolue achète un moyen économique de suivre finement la rotation.

On y trouve le retour de vitesse et de sens des moteurs, le défilement des convoyeurs, l’avance papier des imprimantes et des scanners, les molettes de réglage des pupitres et la roulette de souris. Leur point commun : soit la liberté de rétablir une référence au démarrage, soit l’absence pure et simple de besoin de position absolue.

💡 Astuce

Plutôt que de choisir d’après le nom du type, tranchez d’abord une question : la machine doit-elle savoir où elle se trouve au moment où on la rallume ? Si oui, il vous faut un codeur absolu. Sinon, un incrémental suffira.

Ce que privilégie chacun des trois types

Tous trois lisent un motif sur un disque, mais ils divergent sur ce qu’ils tiennent pour le plus important.

Type Position absolue Lectures fausses à une frontière Pistes de code nécessaires
Binaire Connue dès la mise sous tension Peut tomber très loin Une par bit
Gray Connue dès la mise sous tension Jamais pire que le secteur voisin Une par bit
Incrémental Inconnue jusqu’à la prise d’origine Sans objet (relatif uniquement) Une

En résumé : la position absolue appelle un disque absolu multipiste, et limiter les erreurs de frontière dans cette famille appelle le code Gray. L’incrémental se contente d’une seule piste et d’un disque bien plus simple, mais la position absolue doit alors venir d’ailleurs.

D’où la question évidente : un disque peut-il porter la position absolue sans ajouter de pistes ? Ce raisonnement mène au disque PRBS à piste unique, qui inscrit une séquence pseudo-aléatoire sur un anneau, et aux disques hybrides qui associent un code grossier à un cycle fin. C’est le sujet de (2) Piste unique et hybrides.

Questions fréquentes

Q1. Faut-il choisir un codeur absolu ou incrémental ?

R. Le premier embranchement consiste à savoir si vous tolérez une prise d’origine après chaque mise sous tension. Si oui, l’incrémental convient ; sinon, il vous faut de l’absolu. La décision réelle dépend aussi des exigences de sécurité de la machine et des capacités du système de commande, aussi cet article s’arrête à la différence entre les types.

Q2. Ma lecture Gray affiche 0, 1, 3, 2. Le disque est-il défectueux ?

R. Non. Le code Gray est agencé pour que des angles voisins ne diffèrent que d’un bit, si bien que lire la configuration de bits directement en décimal produit un ordre qui saute. Tant que les valeurs converties en binaire naturel donnent 0, 1, 2, 3, tout fonctionne.

Q3. Est-il anormal que les voies A et B soient hautes en même temps ?

R. C’est normal. Lire en quadrature implique de parcourir 00, 10, 11 et 01, donc il y aura toujours une plage avec les deux voies hautes et une avec les deux basses. Deux voies en permanence opposées correspondraient à un déphasage de 180 degrés, et cette disposition ne permet pas de savoir dans quel sens tourne l’arbre.

Q4. Ajouter des bits améliore-t-il la précision dans la même proportion ?

R. Cela augmente le nombre de divisions, mais chaque bit supplémentaire ajoute une piste et affine le motif près du bord. Poussez le curseur de bits dans les figures et vous verrez à quelle vitesse la piste la plus extérieure se resserre. Sur du matériel réel, cette finesse se heurte aux limites de la tolérance de fabrication et de la résolution du capteur.

Q5. Ces figures correspondent-elles à un produit réel ?

R. Non. Ce sont des dessins simplifiés destinés à montrer un mécanisme. L’ordre des pistes, l’attribution du clair et du sombre et l’emplacement des capteurs ont été choisis pour la clarté de l’explication, et le matériel réel peut ajouter une piste de synchronisation ou plusieurs têtes de lecture. La section “Dans la figure de cette page” précise à chaque fois ce qui est propre au dessin.

Comments

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *