Sortie d'un codeur absolu
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Sortie d'un codeur absolu



  1. #1
    invitec8a926e3

    Sortie d'un codeur absolu


    ------

    Salut,
    Je voudrais que quelqu'un m'enlève un doute.
    Un codeur incrémental a pour sortie 2 signaux carrés dephasé de 90°. Pour obtenir la position on peut utiliser un conditionneur ou bien pour une meilleure pprécision, utilisé les 2 signaux et faire le comptage sur PC. CA j'en suis conciancu.
    Mais pour un codeur absolu, je ne trouve pas ce que je veux savoir, pour avoir la position, à part l'utilisation d'un conditionneur qui va nous donner une précision pas terrible en sortie analogique, commen faire pour obtenir l'information?
    Quel est le type de signal en sortie d'un codeur absolue, une dizaine de câble qui délivre du 0 ou du 1 et en comparant tous ces bites, cela nous donne une position absolue?
    Merci.

    Déplacé en Electronique

    La modération
    Papykiwi

    -----
    Dernière modification par invite76532345 ; 20/05/2008 à 08h45. Motif: Déplacement

  2. #2
    Pierrre

    Re : Sortie d'un codeur absolu

    bonjour
    un codeur absolu donne directement la position angulaire ; sa precision depend de son nombre de bits
    par ex: un codeur 4 bits (pour faire simple) : les sorties vont evoluer de 0000 à 1111 pour une rotation de 360 °, soir un pas angulaire de 360/16 = 22.5°.

    la position est determinee sur un seul tour; s'il effectue plusieurs tours, il faut un comptage externe

    A+

  3. #3
    DAUDET78

    Re : Sortie d'un codeur absolu

    Et pour éviter les aléas de commutation, la sortie est en code de Gray : http://www.positron-libre.com/cours/.../code-gray.htm
    J'aime pas le Grec

  4. #4
    invitec8a926e3

    Re : Sortie d'un codeur absolu

    Salut,
    Merci pour vos réponse.
    Je suis tout à fait d'accord avec vous, mis à part qu'il existe des codeurs absolu qui permettent le comptage sur plusieurs, d'où leurs noms de codeur absolu multitours. je suis aussi d'accord pour le type d'information reçu, le code gray, de même pour le calcul de la résolution.
    Mon soucis est de savoir de quel type de signal on a en sortie du codeur et si je peux l'utiliser directement sur ma carte d'acquisition, sans passer par un consitionneur de signal avec une sortie analogique qui me fera perdre en précision.
    Merci.

  5. A voir en vidéo sur Futura
  6. #5
    mat64

    Re : Sortie d'un codeur absolu

    Citation Envoyé par yoann23 Voir le message
    Mon soucis est de savoir de quel type de signal on a en sortie du codeur et si je peux l'utiliser directement sur ma carte d'acquisition
    ben dis nous quelle est ta carte d'acquisition (on est sensé le savoir ?)

  7. #6
    gienas
    Modérateur

    Re : Sortie d'un codeur absolu

    Bonjour yoann23 et tout le groupe

    Citation Envoyé par yoann23 Voir le message
    ... sans passer par un consitionneur de signal avec une sortie analogique qui me fera perdre en précision ...
    Je crains une confusion ou un malentendu, que je n'arrive pas vraiment à diagnostiquer

    1- le seul capteur absolu, c'est celui signalé par Daudet, en code Gray, destiné à ne changer qu'un bit à la fois, capable de rester à l'arrêt, même après une mise sous tension.

    2- un GIO, même à 2 pistes en quadrature, doit disposer d'un top zéro d'origine, pour rephaser les signaux. Il doit tourner pour fournir une indication, ou au moins avoir tourné pour initialiser son origine. C'est un faux absolu.

    3- un code Gray, ce sont des niveaux logiques, un binaire "spécial" (réfléchi), qui se traite exactement comme tout signal logique. Il n'est nullement question d'analogique ici.

    4- Il est peut-être possible de relier directement la sortie du codeur avec l'entrée de la carte. Il faut qu'un buffer sérieux soit prévu sur le GIO, et qu'une protection normale soit aussi prévue en entrée de carte. Sans connaître l'environnement parasite et la longueur de la liaison, il est impossible de répondre.

    Il faudrait peut-être préciser un peu quelle est cette allusion à l'analogique citée et répétée dans ta question.

  8. #7
    invitefa62562c

    Re : Sortie d'un codeur absolu

    Citation Envoyé par yoann23 Voir le message
    Salut,
    Merci pour vos réponse.
    Je suis tout à fait d'accord avec vous, mis à part qu'il existe des codeurs absolu qui permettent le comptage sur plusieurs, d'où leurs noms de codeur absolu multitours. je suis aussi d'accord pour le type d'information reçu, le code gray, de même pour le calcul de la résolution.
    Mon soucis est de savoir de quel type de signal on a en sortie du codeur et si je peux l'utiliser directement sur ma carte d'acquisition, sans passer par un consitionneur de signal avec une sortie analogique qui me fera perdre en précision.
    Merci.
    Bonjour,
    Un codeur absolu est généralement prévu pour 1 seul tour et est divisé en 4096 points pour mesurer un angle avec précision, soit 360°/4096 = 0.09 point par degré.
    Le codage de sortie est un code Gray, généralement 12 fils de sortie, qui peuvent être reliés directement sur 12 entrées d'automate programmable.
    La conversion en mode binaire se fait ensuite dans la programmation de l'automate.

  9. #8
    gienas
    Modérateur

    Re : Sortie d'un codeur absolu

    Bonjour à tous

    Citation Envoyé par mieussy Voir le message
    ... soit 360°/4096 = 0.09 point par degré ...
    Hum!

    Avec cette opération, je dirais plutôt 0,09 degré par point ou j'écrirais

    4096/360=11,37 points par degré.

  10. #9
    invitefa62562c

    Re : Sortie d'un codeur absolu

    Citation Envoyé par gienas Voir le message
    Bonjour à tous

    Hum!

    Avec cette opération, je dirais plutôt 0,09 degré par point ou j'écrirais

    4096/360=11,37 points par degré.
    Bonjour,
    Mille excuses pour mon erreur, ce que vous dites est tout à fait exact.
    Bonne journnée.
    Mieussy

  11. #10
    ARES_XL

    Re : Sortie d'un codeur absolu

    Le code Gray n'est pas le seul code utilisé, et j'en suis étonné .

    Je viens d'en faire la découverte avec ce codeur : ref EAW0J-B24-AE0128L de chez BOURNS. quand on lie le datasheet, on découvre une table de vérité "à la noix", où à moins de se taper un décodage par table de conversion, il faut se prendre la tête un bon moment pour trouver la logique de décodage, à moins d'acheter le composant adock, bien sur chez BOURNS .

    On remarquera quand même que le codage utilisé, comme le code gray, est un codage dont un seul bit change à la fois .

    Pour info, le gros avantage du code GRAY sur ce code à la noix, c'est que si l'on dispose d'un codeur d'une résolution plus élevé que ce dont on a besoin, il suffit de supprimer des bits de poids faible pour diviser par 2 la résolution à chaque bit. Et le codage de la sortie est toujours en code gray ! Et ca, le codeur sus-cité ne le fait pas.

    pour information :
    pour décoder le code gray en binaire :

    GRAY BIN
    00 00
    01 01
    11 10
    10 11

    On remarque que le bit de poids fort est conservé en l'état. Pour les autres bits, on les obtiens en faisant successivement un "ou exclusif" entre tous le bits de poids supérieur ou égale à celui dont on cherche à obtenir la valeur.

    exemple 2 en gray c'est 11 en binaire, le MSB est conservé soit 1, les autres bit soit le LSB est obtenu en faisant un XOR de tous les bits :
    soit 1 XOR 1 = 0
    d'où Gray2bin(b11)=b10 soit 2
    un code simple en C (non testé) serait :

    Code:
    unsigned int Gray2Bin(unsigned int Gray, unsigned int NbBits);
    {
      Gray &= (unsigned int 0xFFFF) >> (16 - NbBits); // Build a mask
      result = Gray;          // init result
      for (i=1; i < NbBits; i++)
      {
        Gray = Gray>>1;  // Logical Shift Right 1 bit
        result ^= Gray;      // XOR bitwise
      };
      return result;
    };
    Ainsi on traite tous les bits en même temps en commençant par forcer les bits supérieurs au MSB à 0 à l'aide du masque, puis en profitant de la propriété du XOR : a ^ 0 = a, on décale progressivement la valeur en Gray (en faisant rentrer des "0" en MSB) pour présenter les bits de poids supérieur aux bits de références en faisant un XOR à chaque fois.

    Ce code vaux ce qu'il vaux et nécessite d'être testé, mais a l'avantage d'être compacte et rapide de traitement.

Discussions similaires

  1. choix d'un condionneur pour codeur uncremental
    Par invitec8a926e3 dans le forum Électronique
    Réponses: 3
    Dernier message: 03/04/2008, 14h38
  2. Débit d'eau sortie à la sortie d'un Y
    Par yiei dans le forum Physique
    Réponses: 4
    Dernier message: 24/01/2008, 13h38
  3. sortie codeur optique
    Par invite0936b3b8 dans le forum Électronique
    Réponses: 6
    Dernier message: 23/01/2007, 08h18
  4. visualiser la vitesse de rotation d'un codeur
    Par invitef8ea2e84 dans le forum Électronique
    Réponses: 6
    Dernier message: 21/09/2005, 21h42
  5. valeur absolu d'un carré
    Par invite9c25dc28 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 21/11/2004, 16h50
Découvrez nos comparatifs produits sur l'informatique et les technologies.