Page 2 sur 3

Re: [M221] positionnement axe via un codeur incrémental

Posté : 05 avr. 2023, 18:23
par pitsoun
Merci des conseils.
Dernière chose comment je fais pour stocker ma variable max du compteur. Dans un premier temps je veux que mon moteur fasse un aller pour connaître la valeur max de mon codeur et ensuite stocker cette valeur dans un bit mémoire.
Le problème c’est lorsque mon codeur a une autre valeur , je n’arrive pas à travailler avec cette nouvelle valeur ou la comparer avec ma consigne.

Re: [M221] positionnement axe via un codeur incrémental

Posté : 05 avr. 2023, 18:32
par philou77
Salut !

un petit tuto en anglais pour les comptages rapides !

https://www.youtube.com/watch?v=yjLVjzV3e0A

La vidéo est générique, tu n'aura peut être pas besoin d'utiliser les thresold et les sorties reflex....Ca dépendra de ton application.

Pour connaitre la valeur actuelle du compteur en nombre d'impulsions, il suffit de lire cette valeur et de la transférer cette valeur dans un mot.

Par exemple
%MW0 := lenomdubloc.V

dans %MW0 se trouvera le nombre d'impulsion du bloc compteur rapide qui s'appelle 'lenomdubloc'.
Tu pourras à loisir comparer, convertir cette valeur avec ce que tu veux

Re: [M221] positionnement axe via un codeur incrémental

Posté : 05 avr. 2023, 18:57
par pitsoun
J’ai vu la vidéo tout à l’heure je la mettrais en œuvre demain.
Pour le stockage de la variable, j’ai fait comme tu le suggères.
Mais quand je change de rung la valeur mémorisée varie et ne reste pas figée. Par exemple au rung1 j’ai stocké la valeur du compteur c0.v dans mw0. Lorsque je veux comparer avec mw1 une valeur rentrée via l’ihm. Mw1 prend la valeur de mw0 et rien n’est comparée.
J’espère avoir été clair.

Re: [M221] positionnement axe via un codeur incrémental

Posté : 05 avr. 2023, 19:39
par philou77
post une copie de ton rung

une info :
si tu ecris %MW0 := compteur. V

cela va charger TOUT LE TEMPS LA VALEUR DU COMPTEUR (même si elle bouge) !
il faut lire la valeur sur un front montant (ou une condition qui n'est pas vrai tout le temps) si tu veux garder une image fixe d'une valeur de compteur à un moment donné dans %MW0!

Re: [M221] positionnement axe via un codeur incrémental

Posté : 05 avr. 2023, 21:43
par dpo
je ne connais pas en détail le M221
mais le compteur ne devrait-il pas être stocké dans un mot double ? sur un mot simple ça risque de faire court ?
si tu veux mémoriser le max il te faut faire
si val_cpt > val_max alors val_max:=val_cpt

Re: [M221] positionnement axe via un codeur incrémental

Posté : 05 avr. 2023, 22:53
par philou77
oui on peut aussi faire en mot double.
c'est indiqué dans la vidéo.

Re: [M221] positionnement axe via un codeur incrémental

Posté : 07 avr. 2023, 14:55
par pitsoun
Merci pour vos conseils et vos aides, cela m'aide dans ma réflexion.

Deux petits problèmes que j'ai rencontré encore :
- Pour structurer ma pensée, j'ai fait le programme en grafcet, et je désire faire du grafcet hiérarchisé. Peut on en faire avec somachine basic et l'api M221 ? Malgré de nombreuses tentatives, ça ne fonctionne pas.
- Second soucis: comment je fais pour convertir ma valeur entrée en mètre sur mon ihm via un mot integer (%MW...). Je dois faire une mise à l'échelle ou un truc comme ça ? Sachant que mon codeur lorsqu'il fait 1 tour, cela correspond à une distance de 2.5cm, etc. ? Y a til un opérateur/fonction pour ça ?

Merci

Re: [M221] positionnement axe via un codeur incrémental

Posté : 07 avr. 2023, 15:18
par philou77
Salut !

- niveau grafcet, fait en plusieurs... utiliser les étapes pour influer sur l'autre grafcet dans les transitions..

- Pour convertir ta valeur de codeur.
Travaille en mm

1 -> calcul Valeur en mm= (valeur codeur / Nombre de points codeur pour 1 tour) x 25 mm (*dans ton cas)
2 -> sur ton ihm, affiche Valeur en mm avec 2 chiffres à droite du point et 2 ou 3 chiffres à gauche du point

Re: [M221] positionnement axe via un codeur incrémental

Posté : 07 avr. 2023, 15:37
par pitsoun
Pour le grafcet, j'ai fait deux petits grafcet pour essayer,
Le premier grafcet à l'étape 2 active le second grafcet à l'étape 3.
Le rung de l'étape 3 est validé mais pas celui de l'action de l'étape 2.
C'est sûrement mal écrit.

Re: [M221] positionnement axe via un codeur incrémental

Posté : 07 avr. 2023, 15:47
par pitsoun
Il y a un icône (#) près des bobines de sorties mais non dispo dans les actions de grafcet.