Problème fréquence projet carte USB MACH3

M

maxgad

Nouveau
Bonjour

J’ai créé une carte électronique marchant en USB tout le programme sur mach 3 et la carte et fonctionnelle a une exception la gestion de la fréquence sur mach 3
La carte marche sur 2 parti, parti logiciel on lui envoi une fréquence que on veut pour les impulsions et la carte règle sa fréquence d’impulsion a celle-ci
Puis on donne le nombre de pas que on souette faire et la carte va se déplacer avec le nombre d’impulsion que on a voulue et a la fréquence voulue
Sur la machine j’ai un moteur de 200 pas /tour et mise sur une tige fileté de 1.5 je suis en pas de 1/1 j’ai donc régler dans réglage moteur dans mach 3 step per 200*1/1.5 = 133.33
Et la vitesse unité/min a 200 (vélocité)
La carte peu marché jusqu'à 100 000 Hz mach 3 marche à 10Hz grâce au plugin
Dans le plugin
Le nombre de pas que la carte doit exécuter quand il y a un déplacement et valide grave a OEM DRO « 800 X DRO » vérifier avec « 134 Count of actual pulses output on X - debug use only DRO »
Par contre pour la fréquence je n’arrive pas à trouver la formule que je devrai utiliser
Actuellement pour calculer ma fréquence je fais
((806 X Vel DRO)* (setp pers))/60
Dans le principe cela fonctionne car j’ai bien une accélération un moment stable et une décélération
Le problème et que si je dis de ce déplacer de 10 cm quand il a fini il c’est déplacer que de environ 6cm
Etant donner que le nombre d’impulsion que je dois faire et correct
Cela vient de la formule pour ma fréquence

Mont Problème actuel et que ma formule pour ma fréquence et incorrecte et ce que une personne aurais une idée
Cordialement
Maxgad
 
D

domi.U&M

Compagnon
bonjour,

"La carte marche sur 2 parti, parti logiciel on lui envoi une fréquence que on veut pour les impulsions et la carte règle sa fréquence d’impulsion a celle-ci
Puis on donne le nombre de pas que on souette faire et la carte va se déplacer avec le nombre d’impulsion que on a voulue et a la fréquence voulue"

Vous indiquez que votre carte fonctionne sous contrôle de mach3; c'est mach3 qui gère directement les impulsions en fréquence et en nombre. Je ne comprends pas vos deux phrases ci dessus.
 
M

maxgad

Nouveau
Mach 3 va envoyer la fréquence au plugin le plugin va envoyer a la carte
Pareille pour les pas de déplacement
Ma carte fonctionne comme cela :
On lui envoi la fréquence que on veut ensuite la carte restera a cette fréquence puis on lui donne le nombre de déplacement que on veut et elle ce déplace du nombre de pas que on a décidé et a la fréquence que on a envoyé précédemment
Sans mach 3 grâce à un logiciel de test que j’ai créé tout marche bien (vérifier avec oscilloscope)

Heu j’envoi a la carte la valeur de une fréquence c’est elle qui ce cale dessus ensuite
Envoi a la carte aussi le nombre de pas que elle doit exécuter et elle va le faire les donner son stocker dans la carte électronique
Le problème et que grâce au valeur que je puisse prendre de mach 3 comment je pourrais dans mon plugin dire a ma carte tu va allez a tel ou tel fréquence
(je c’est pas si j’ai été claire et que j’ai réussi a répondre a la question)
 
D

domi.U&M

Compagnon
donc, vous avez développé un plugin qui génère, depuis mach3, des commandes logiques traitées par votre carte.

Je ne saurai pas vous répondre car je ne suis pas assez intime :cry: avec le détail du fonctionnement interne de mach3, seulement un utilisateur un peu pointu de ses possibilités...

mais, si j'ai bien compris, vous n'utilisez pas le driver mach3 qui pilote en temps réel les tensions des pins du port parallèle.
exact?
 
M

maxgad

Nouveau
C’est cela je n’utilise pas le driver de mach 3 j’ai créer mon plugin de 0 c’est de USB aucune communication avec le port parallèle
Apres plusieurs test j’arrive quasiment a quelque chose de correct mai rajouter une constante comme cela ne me plais pas il doit me manquer quelque chose dans cette formule
( ((806 X Vel DRO)* (setp pers))/60)*2.1
 
D

domi.U&M

Compagnon
donc vous traitez ou traiterez vos consignes externes en temps réel avec votre carte électronique?
car j'imagine mal régler un stop limite avec un mach3 sans driver sous window 7: il s'écoulerait un temps non négligeable et variable avant que mach3 puisse faire réagir votre carte.
De même, les commandes stop et pause de mach3 sont inutilisées?
 
M

maxgad

Nouveau
J’utilise un arm comme micro et USB va a 56Mo/s et oui il y à un noyau temps réel dessus le plugin et SDK son en dynamique mach 3 serre juste à récupérer les infos et exécuter le Gcode
De même, les commandes stop et pause de mach3 sont inutilisées?
Heu si je ne me trompe pas il ne devra pas y avoir de Soussi là-dessus
Si je me trompe pas ce que vous demander ne devrai pas poser de problème tout et fonctionnel à par le problème de fréquence que je ne trouve pas la formule pour être synchro avec mach 3 qui et ou la perte de pas car pas assai rapide ou la carte va trop vite et donc elle fini le déplacement avant la fin du cycle de 10hz :'(
 
D

domi.U&M

Compagnon
en fait mes questions sont pour comprendre pourquoi vous écrivez "pour être synchro avec mach 3"

si j'ai bien compris vos explications, votre carte stocke et exécute des commandes soumises par le plugin via port usb. que cherchez-vous à synchroniser?
le transfert de nouvelles commandes issues du plugin à l'issue de l'exécution des commandes traitées par votre carte?
dans ce cas, vous devez régler un dialogue entre le plugin et la carte. donc gérer via le plugin un code retour de la carte, demandant à recevoir une ou plusieurs nouvelles commandes. le fonctionnement global sera donc tout a fait aléatoire au bon vouloir d'exécution de mach3 sous un OS windws 7 qui fonctionne en temps masqué et temps différé.

sincèrement, pour l'instant, je ne comprends pas la plus-value de votre solution par rapport au driver "temps réel" de mach3, qui en fait toute sa puissance.
 
M

maxgad

Nouveau
Comment on fait pour l’utiliser le temps réels de mach3 car la je suis bloquer le bute final et que mach3 marche entièrement avec ma carte en USB utiliser tel ou tel chose ne change rien pour moi je ne connais pas mach 3 et pas très bon dans le domaine « meka »
Sinon oui la carte stock une commande du plugin et l’exécute
Donc je vais essayer de expliquer Jesper être claire dsl d’avance
Si je me trompe pas mach3 met a jour tout les 0.1ms (10hz) les info quand mach 3 appelle cette fonction moi je fait appelle au donner de déplacement (X Y Z A) pour savoir combien j’ai d’impulsion a faire avant le prochain cycle de 10hz et je fait aussi appelle a la vélocité pour régler ma fréquence sur ma carte actuellement le nombre de step à faire et le dir marche si je place une fréquence fixe ou variable plus élever pour que tout les impulsion on été exécuter avant le prochain cycle de 10hz mon bute été grâce a la vélocité de trouver une formule qui aurai pue me donner une fréquence juste qui permettrai que en 10hz j’exécute pile poile le nombre de step que j’ai a faire
 
M

maxgad

Nouveau
Car si j’ai une fréquence plus basse je per des step et le problème si j’ai une fréquence plus haute la carte a fini avant le cycle de 10hz ce qui fit que la carte sarrette et donc faite des saccade si une autre solution permet de résoudre mon problème je suis preneur ^^
 
D

domi.U&M

Compagnon
excusez-moi, il y a beaucoup d'approximation dans vos écrits. par exemple, vous indiquez "0.1ms (10hz)" alors qu'une fréquence de 10 hertz correspond à un cycle de 0.1 seconde (et non pas 0.1 milliseconde).
d'autre part, vous écrivez "si j’ai une fréquence plus basse je per des step et le problème si j’ai une fréquence plus haute la carte a fini avant le cycle de 10hz ce qui fit que la carte sarrette et donc faite des saccade si une autre solution permet de résoudre mon problème je suis preneur "

c'est exactement ce que j'imagine depuis le début de votre post: vous avez mach3, qui fonctionne avec sa propre fréquence et qui va, via son driver (en utilisation conventionnelle) donner une commande électrique quasi directe aux moteurs (une direction et un pas dans le cas des moteurs pas à pas) via le port parallèle et une carte interface simple
D'un autre côté, vous avez une carte électronique capable d'interpêter une commande logique complexe, avec elle aussi sa propre fréquence.
Or, les deux fréquences ne pourront jamais être identiques, sauf à synchroniser les deux. Très complexe à réaliser.
Donc, il faut prévoir un système de communication bidirectionnel entre les deux, avec un dialogue du genre:

mach3: es tu prêt à exécuter une commande?
carte: oui
mach3 envoie la commande
mach3:es tu prêt à exécuter une commande?
carte: non, je travaille encore (ou pas de réponse)
mach3 passe un cycle
mach3::es tu prêt à exécuter une commande?
carte:oui
mach3 envoie la commande
................et ainsi de suite




En bref, vous allez devoir gérer une conversation de synchronisation entre deux systèmes. ça s'appelle un protocole de communication.

SInon, ou vous perdrez des commandes, ou vous aurez des délais d'attente inutiles et un fonctionnement saccadé (exactement ce que vous décrivez).

Une solution de communication à protocole simple consisterait à ce que le plugin, avant d'envoyer une commande, interroge systématiquement la carte pour savoir si elle est prête à traiter.

comment pensez-vous arriver à mettre une solution de ce genre au point alors que vous écrivez "je ne connais pas mach 3".
 
M

maxgad

Nouveau
Je suis d’accord avec vous que il faudrait une communication comme celle la niveau du programme de la carte et du plugin il y aura pas de souci c’est plus niveau de mach3 que sa va ce compliquer car je ne conner pas comment mètre en pause le programme et le faire repartir âpres et surtout pour des cycle de 10hz

mach3: es tu prêt à exécuter une commande?
carte: oui
mach3 envoie la commande
mach3:es tu prêt à exécuter une commande?
carte: non, je travaille encore (ou pas de réponse)
mach3 passe un cycle
mach3::es tu prêt à exécuter une commande?
carte:oui
mach3 envoie la commande
................et ainsi de suite
ce principe la ji avez déjà penser d’ayeur des option de la carte permet ce fonctionnement si vous avez une idée pour les commande a faire pour pouvoir faire ce principe de manipe car si je me trompe pas par exemple dans le MDI input si j’écrie G1 X50 f500 par exemple il va aller jusqu’a 50 direct et ce que il y a une commande pour l’ arrêter a chaque cycle ???
 
D

domi.U&M

Compagnon
bonsoir,

- c'est quelle carte du commerce votre carte?
- où et comment avez-vous trouvé le cycle de 10 hetz de mach3?
- quel est le plugin que vous utilisez?
 
M

maxgad

Nouveau
j'ai créer moi même la carte électronique
j'ai créer le plugin moi même
les 10hz et une function qui et appeler par mach3 dans le plugin tout les 100ms
 
M

maxgad

Nouveau
hello c'est bon j'ai trouvé mon problème apres une semaine c'été en faite la carte qui aller tro vite en changen de memoir ^^ merci ^^
 

Sujets similaires

M
Réponses
6
Affichages
1 053
MitchCanon
M
B
Réponses
18
Affichages
477
Bambi
B
El Zorro
Réponses
12
Affichages
498
El Zorro
El Zorro
C
Réponses
5
Affichages
485
christt4
C
esloch
Réponses
52
Affichages
1 855
esloch
esloch
R
Réponses
6
Affichages
577
renaud.
R
Haut