[FAO][VB.net] actions simultanées pilotage moteurs DC MAXON [Résolu]

berserker42 32 Messages postés mardi 17 août 2010Date d'inscription 26 juillet 2015 Dernière intervention - 15 déc. 2012 à 11:07 - Dernière réponse :  Utilisateur anonyme
- 3 avril 2013 à 12:56
Bonjour à tous,

J'ai fait des recherches sur le forum mais je n'ai pas trouvé de réponses claires.

Avec un compilateur de fichier Compilateur .aptsource.. Je souhaits piloter N moteurs DC grâce à leur drivers.
Le fabricant fournit déjà une source pour 1 moteur.

Actuellement avec mon compilateur et la source du fournisseur, ça fonctionne. Je n'ai pas encore testé pour N drivers (ici max=5). Pas encore câblé.

Ma question est la suivante peut-on déclencher N actions en simultanées?

Pour une CN il ne faut pas qu'un axe termine son mouvement avant les autres. Si je pouvais les lancer en même temps ce serait un plus, après pour la fin cela dépendra des paramètres cinématique et dynamique de chacun.

Config:
Microsoft visual studio 2008
drvier EPOS 70/10
maxon motor
Afficher la suite 

Votre réponse

9 réponses

Utilisateur anonyme - 15 déc. 2012 à 14:30
0
Merci
Bonjour,

Tu ne donnes aucun code pour se faire une idée...
Voir du côté des threads.
Commenter la réponse de Utilisateur anonyme
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 déc. 2012 à 14:38
0
Merci
Bonjour,
Si je pouvais les lancer en même temps ce serait un plus, après pour la fin cela dépendra des paramètres cinématique et dynamique de chacun

C'est étrange, mais avant de penser informatique, je penserais personnellement physique.
Car je suppose qu'il s'agit de moteurs électriques. Or, pour autant que je le sache, un moteur électrique possède une inertie intrinsèque et n'atteint donc sa vitesse "de croisière" qu'après un certain temps, pouvant varier d'un moteur à l'autre, y compris si moteurs apparemment identiques
Si c'est pour une synchronisation, la démarche n'aboutira pas du seul fait de les lancer tous ensemble.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Utilisateur anonyme - 15 déc. 2012 à 14:43
0
Merci
Bonjour ucfoutu,

C'est pour cela que j'ai suggéré la mise en oeuvre de plusieurs threads.
Une bonne gestion de ceux-ci (surveillance de leur état d'avancement) permettra une synchronisation efficace pour les tâches suivantes. En gros, ils attendront que le moteur le plus lent ai fini son travail pour effectuer la tâche suivante.

Et bon dimanche ...
Commenter la réponse de Utilisateur anonyme
berserker42 32 Messages postés mardi 17 août 2010Date d'inscription 26 juillet 2015 Dernière intervention - 15 déc. 2012 à 14:55
0
Merci
Salut,

Merci pour vos commentaires.



Pour le côté physique je suis plus que d'accord c'est la base. le soft que fournit le fabricant le prend en compte cet aspect là. Il intègre aussi le calcul du PID (Proportionnel, Intégral, et Dérivé) pour l'asservissement.

Il existe beaucoup de paramètres dans ce soft. (rampes d'accélérations, types, surveillances de positions,...) enfin de quoi faire de la régulation de vitesse, de position .....

Je voudrais que la première Trame de données de chaque axes partent en même temps. Car ensuite il y a une option qui permet d'attendre que le déplacement soit terminé. Donc après normalement les axes sont synchros en théorie.

Mais je vais creuser car la doc constructeur est assez complète mais en anglais, il faut un bon moment de lecture.

Merci et bon Week end
Commenter la réponse de berserker42
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 déc. 2012 à 14:56
0
Merci
Même ainsi, banana32, plusieurs fils ne seront pas suffisants à assurer une synchronisation.
Il faudrait, pour y parvenir, une sorte d' "embrayage" de tous une fois la vitesse de croisière atteinte par tous. Et encore ! même cela ne serait pas suffisant dans certains cas !... car il faudrait s'assurer dans certains cas de l'état angulaire de chacun (ce qui nécessiterait une surveillance par oscilloscope).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Utilisateur anonyme - 15 déc. 2012 à 15:43
0
Merci
Bonjour,
Du coté logiciel, le fait de le fait de lancer plusieurs threaheads ne pose pas de problème (comme dit Banana32)

Du coté physique, comme dit Ucfoutu, tout dépend du moteur même s'ils paraissent identiques.
Un point à ne pas oublier : vérifier l'inertie ramenée au moteur. Avec un pas-à-pas, par exemple, il est recommandé de ne pas dépasser l'inertie du rotor du moteur sinon, il y a des problèmes de démarrage. A voir avec le constructeur du moteur.

Pour ramener les inerties à l'arbre moteur, il faut d'abord ramener la masse de l'objet et de ce qu'elle porte en inertie, en utilisant la même fonction que pour ramener l'effort de poussée en couple, mais il faut l'élever au carré :

J = M.(p/(2.pi))²

ou

J = inertie en kg.m²
M = masse translatée en kg
p = pas du système vis/écrou en m

ensuite il faut calculer l'inertie propre de la vis et de tout ce qui tourne avec, et l'ajouter au J trouvé ci-dessus.

S'il y a un réducteur entre le moteur et la vis, il faut multiplier la valeur trouvée par le carré du rapport de réduction (si par ex. réd. 1/10, on multiplie l'inertie par 1/100)



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
berserker42 32 Messages postés mardi 17 août 2010Date d'inscription 26 juillet 2015 Dernière intervention - 15 déc. 2012 à 16:02
0
Merci
Bonjour,

merci pour les commentaires.

niveau mécanique je suis au courant, mais très bon rappel

Voici une petite vidéo du soft avec la démo pour 1 axe. Les autres cartes sont en cours de câblages.

Premier run Désolé on ne voit pas grand chose.

Je regarderais comment ça fonctionne avec 2 moteurs pour commencer.
++
Commenter la réponse de berserker42
berserker42 32 Messages postés mardi 17 août 2010Date d'inscription 26 juillet 2015 Dernière intervention - 30 mars 2013 à 18:22
0
Merci
Re bonjour,

Désolé de ne pas avoir donné de nouvelles concernant ce sujet. je viens de terminer de déménager sur Toulouse et je n'ai pas eu le temps de creuser. Mais j'ai eu l'occasion d'avancer mon appli pour piloter les moteurs.

Alors concernant les threads je n'ai rien essayé trop complexe pour moi encore.

Cependant. En re lisant la doc du constructeur, je peut changer la vitesse des moteurs.

la démarche:

DO-> EOF
ouverture du fichier de points
lire la ligne
récupérer les valeurs de chaque axes
calculer le vecteur outil
recalculer la vitesse sur chaque axes
envoyer la vitesse aux drivers
faire le mouvement
LOOP

Ici ça "devrait" fonctionne
Le problème c'est qu'il y a bcp de données et une erreur remonte de la communication "CANopen" je crois.
"06090030h Valeur des paramètres écrits hors de la plage autorisée "

j'ai rajouté une "tempo" sleep(x) mais suite à cette commande le pc ce givre (vieux PC), en re-regardant la doc il y a eu fonction qui permet d'attendre la fin du mouvement.
WaitForTargetReached(tps)

pas encore testée je vous tiendrais au courant.
Commenter la réponse de berserker42
Utilisateur anonyme - 3 avril 2013 à 12:56
0
Merci
Re:
Très confus tout ça, de quelle façon tu ouvres et lis le fichier?
j'ai rajouté une "tempo" sleep(x)

Avec quel langage travailles-tu?

Affiche nous ton code, n'oubliant pas d’indenter avec les balises de code (troisième icone en partant de droite)

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.