Probléme Codeur Absolut

Forum traitant des automates industriels de marque Siemens.
Répondre
valerypetit
Forcené des structures
Forcené des structures
Messages : 179
Enregistré le : 24 janv. 2016, 21:47

Probléme Codeur Absolut

Message par valerypetit »

Bonjour,

Courant septembre je vous avais soumis un problème concernant un codeur absolut présent sur une machine de ma boite qui en photo des piéces sur un convoyeur.
il c'est avéré que j'avais de la merde dans les yeux et que je n'avais pas vu que l'accouplement était désaxé .... :roll: .

Donc depuis tout allait pour le mieux jusqu'à ce que l'on s'aperçoit que s'aperçoit qu'il manquais parfois une photo aléatoirement dans la production.

alors je prend ma calculatrice (dit moi si je me trompe)

- Codeur de 720 point (deux tour par coffret)
- maximum 30 coffret minute
-> 720 point seconde

1s= 1000ms
soit 1.38888 => Temps de cycle max automate

je suis la plupart du temps à 1 ms mais il arrive que le temps de cycle passe à 2 ms donc je pense que je l'ai dans l'os....

des idées?

sinon vous trouverai ci-dessous le programme complet qui gère le codeur.
si vous avez une remarque je pourrai être preneur.

Merci à tous
Fichiers joints
Codeur.png
steph68
Codeur fou
Codeur fou
Messages : 275
Enregistré le : 21 oct. 2015, 08:23

Re: Probléme Codeur Absolut

Message par steph68 »

hello
je suis la plupart du temps à 1 ms mais il arrive que le temps de cycle passe à 2 ms donc je pense que je l'ai dans l'os....
c'est un codeur absolu et ta plage de détection est de 10 points codeur (soit 14 ms) ... tu n'as pas besoin d'intercepter chaque incrément du codeur
il n'y a aucun feedback de ta prise photo (impulsion maintenue sur 50 ms ... pas de retour) ... le problème est peut être à ce niveau

pour savoir ce qu'il se passe, rajoute un bout de programme qui mesure le delta codeur (différence entre 2 pos) entre chaque cycle de scrutation avec une fonction max pour mesurer les éventuels sauts (parce que la CPU mouline par exemple) ... tu verras de suite si ça vient de là ou pas ...

j'ai pas étudié en détail ton code de gestion du zéro mais ça me parait compliqué ...

le but est de ramener la valeur codeur à une côté "coffret" (qui correspond à 2 tours)
il te faut donc compter les tours, au moins jusqu'à 2
le zéro est une simple soustraction

@+
valerypetit
Forcené des structures
Forcené des structures
Messages : 179
Enregistré le : 24 janv. 2016, 21:47

Re: Probléme Codeur Absolut

Message par valerypetit »

Bonjour,

Merci pour ton aide,
c'est un codeur absolu et ta plage de détection est de 10 points codeur (soit 14 ms) ... tu n'as pas besoin d'intercepter chaque incrément du codeur
Excuse moi, j'ai pas tout compris..... 14ms???
il n'y a aucun feedback de ta prise photo (impulsion maintenue sur 50 ms ... pas de retour) ... le problème est peut être à ce niveau
pour savoir ce qu'il se passe, rajoute un bout de programme qui mesure le delta codeur (différence entre 2 pos) entre chaque cycle de scrutation avec une fonction max pour mesurer les éventuels sauts (parce que la CPU mouline par exemple) ... tu verras de suite si ça vient de là ou pas ...
Quand tu regarde mon programme, à la fin, MW122 m'affiche la valeur de la position du codeur lors de la dernière prise (renouvelé à chaque coffret, soit toute les deux ou trois secondes).
j'ai pas étudié en détail ton code de gestion du zéro mais ça me parait compliqué ...
là je dois t'avouer que je ne sais pas trop comment faire mieux.
je peu arrêter de le recalculer à chaque cycle coffret, mais j'ai besoin de décaler mon zéro sans quoi je serait je ne sais pas dans quel position est la machine

le but est de ramener la valeur codeur à une côté "coffret" (qui correspond à 2 tours)
il te faut donc compter les tours, au moins jusqu'à 2
je vais essayer de modifier le programme pour prendre en compte le nombre de tour codeur et ouvrir mes fenêtre de prise photo de cette manière.
le zéro est une simple soustraction
C'est ce que je fais, mais je ne travaille pas avec des valeurs négative, c'est pourquoi j'ai fais de cette façon.

Valery
valerypetit
Forcené des structures
Forcené des structures
Messages : 179
Enregistré le : 24 janv. 2016, 21:47

Re: Probléme Codeur Absolut

Message par valerypetit »

Pour info, %mw122 ne me donne pas toujours des valeurs inclut dans la plage souhaité pour la prise photo.

si je me souvient bien le réglage est 190° mais j'ai parfois une photo prise entre 0 et 2 ou entre 700 et 720.....

j'ai plus en tête mais je peu faire un relevé.

pas de fluctuation dans le temps de cycle pour autant à priori.

bon appétit à tous ;-)
steph68
Codeur fou
Codeur fou
Messages : 275
Enregistré le : 21 oct. 2015, 08:23

Re: Probléme Codeur Absolut

Message par steph68 »

Excuse moi, j'ai pas tout compris..... 14ms???
720 points par seconde
donc 10 points en 13,89 ms ...
là je dois t'avouer que je ne sais pas trop comment faire mieux.
avec un codeur incrémental et une carte de comptage plutôt qu'un codeur absolu

le codeur incrémental te donne 2 signaux en quadrature, ce qui te permet d'interpréter le sens de rotation ainsi que de compter les incréments

avec ton codeur absolu, comment fais tu pour compter les tours (proprement) ?
tu dois détecter la transition de 719 vers 0 (donc nouvelle valeur < ancienne valeur)
mais dans ce cas, imaginons que le codeur tourne dans l'autre sens (donc aussi nouvelle valeur < ancienne valeur) ...
donc du coup, tu vas vouloir détecter un grand écart (du genre (nouvelle valeur + 360) < ancienne valeur) mais ça ne sera jamais parfait :mrgreen:

tu aurais ton codeur incrémental (moins cher qu'un absolu) + carte de comptage (en extra vs l'autre solution) mais niveau code, tu as juste à configurer un modulo (taille du coffret) et faire une soustraction (pour caler le zéro) = bcp moins de temps à cogiter, programmer ...
C'est ce que je fais, mais je ne travaille pas avec des valeurs négative, c'est pourquoi j'ai fais de cette façon.
qui parle de valeur négative ?
tu fais une soustraction que tu ramènes ensuite sur la plage (arithmétique en modulo)

valeur décalée = (valeur codeur - offset zéro + 720) % 720 (le + 720 est pour rester dans les positifs, mais on peut voir également "offset zéro" comme une addition plutot qu'une soustraction, question de point de vue)

ceci dit, il faut raisonner sur une côte du coffret et pas sur le codeur

en résumé :

* transformer valeur codeur (modulo 720) en côte coffret (modulo 720 * 2), donc il faut compter les tours (détecter le grand écart puis côte coffret = nbr de tour * 720 + valeur codeur ; le compteur tour n'a pas besoin d'être borné puisque tu fais un modulo juste après pour le décalage zéro)

* appliquer le décalage zéro sur la côte coffret (valeur décalée = (cote coffret + offset zéro) % 1440)

* détecter ta fenêtre pour déclenchement prise de photo (pos mini <= valeur décalée < pos maxi pour lancer la photo) --> on peut même simplifier encore plus si on fait correspondre ton offset zéro avec la fenêtre de détection (donc ton réglage zéro correspondrait au point de déclenchement de la photo)

et ça doit être normalement bcp plus court que ce que tu as posté au dessous (je rappelle que je n'ai pas tout étudié en détails, juste une appréciation sur le volume de code ...)

@+
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Probléme Codeur Absolut

Message par itasoft »

slts,
déjà, quel rapport il y a entre l'appareil qui prends les photos et le codeur absolu ? ça serait bien de le savoir , lol
Automaticien privé (de tout)
itasoft@free.fr
valerypetit
Forcené des structures
Forcené des structures
Messages : 179
Enregistré le : 24 janv. 2016, 21:47

Re: Probléme Codeur Absolut

Message par valerypetit »

Bonjour,

je vais regarder ça, merci beaucoup.

concernant la liaison entre les élément de ma machine:
les coffrets sont entraînes par une chaîne.
il y a différentes synchronisation mécanique dans la machine, ce qui implique que un avancement de coffret soit égale à deux tours de l'arbre principal (sur lequel est fixé le codeur).

On prend la photo du coffret pendant son déplacement l'encombrement de la caméra ne nous permettant pas de la positionner sur les points d'arrêt des coffrets.
Répondre