fraiseuse charlyrobot

  • Auteur de la discussion alegreandre
  • Date de début
A
alegreandre
Nouveau
7 Juil 2010
12
  • Auteur de la discussion
  • #1
Bonjour
Y aurai t-il quelqu'un qui aurait fait marcher une fraiseuse Charlyrobot avec EMC2.
Elle est branché sur le port port rs 532 (modem).
J'ai beau changer dans la configuration l'adresse du port 0X378 par l'adresse 0x3f8 (qui correspond) cela ne fait rien.
Je suis nouveau ds EMC2 mais pas ds Linux.

Si quelq'un aurait des idées je le remercie d'avance.

André
 
C
christian-tr
Apprenti
11 Juil 2009
151
Bonjour
Il existe bien des modèles de charlyrobot avec des systèmes différents.
EMC envoie via le port // des signaux électrique ppour piloter directement l'electronique de la machine.
la Charly par la RS232 attend des données de déplacement sous forme ascii selon un protole bien précis, elles qui seront transformées en signaux par la carte interne.
Il n'y a donc aucune chance que ça marche.
Il faut voir avec galaad ou Charlygraal
Cordialement.
 
A
alegreandre
Nouveau
7 Juil 2010
12
  • Auteur de la discussion
  • #3
merci d'avoir répondu aussi rapidement.
Un peu déçu de ne pas pouvoir faire tourner cette machine sous linux, :cry:
mais peut être un jour ?????

cordialement
André
 
horsot
horsot
Compagnon
28 Mai 2009
768
Toulouse
Bonsoir,

Aucune chance qu'il y ai un support de cette carte dans EMC2 un jour. C'est dû à sa structure en boucle fermé temps réel de son asservissement moteur.

En gros EMC2 vérifie constamment que la position de l'outil suive bien la trajectoire en agissant sur les moteurs. Il faut garder en tête que ce n'est pas le même module qui gère la trajectoire (commande position moteur en fonction de la position courante et de la vitesse/position voulue) et le déplacement/commande moteur.

Dans le cas d'un asservissement usuel (un moteur et un capteur de position pour avoir un retour) EMC2 vérifie que la position voulue (de la trajectoire) soit celle des capteur en agissant sur le moteur, c'est le cas des machines à servos+encodeurs. Il faut donc que les informations arrivent de manière synchrone (régulières) pour assurer la stabilité d'un tel système (d'où le linux temps réel).

Dans le cas particulier de la boucle ouverte (moteur pas à pas) la machine ne peut pas renvoyer à EMC2 la position effective du moteur (il n'y a pas de capteur) : on fait confiance au moteur pour ne pas perdre de pas. La combine est de faire un retour de position dans le block qui génère les signaux "step/dir". Chaque "pas" généré par ce bloc engendre un déplacement moteur à un instant précis.

Dans le cas de ta carte, la liaison série casse l'aspect temps réel (rien ne garanti la synchronisation). De ce fait toute la gestion de la trajectoire est gérée (de manière primaire) dans ton électronique. Galaad ou assimilé ne se charge que de transformer le Gcode en interpolation linéaire. C'est un avantage pour ces softs qui ont beaucoup n'ont pas la possibilité de tourner sur un OS temps réel (windows) mais réduit beaucoup la fléxibilité et les performances.

Ta carte sépare t'elle la partie commande (liaison serie) avec la partie puissance?

Si tu connais linux, il serait vraiment dommage de ne pas utiliser EMC2. As tu regardé la documentation?

Bonne soirée

Xavier
 
A
alegreandre
Nouveau
7 Juil 2010
12
  • Auteur de la discussion
  • #5
Au que oui que je veux bien que cela marche sous linux; J'y suis depuis 12 ans et sans windows.

J'ai regardé la documentation de EMC2, mais rien trouvé.

En fait la carte (ou boitier) est fait en 4 parties:
-une carte qui reçoit le câble (port Rs532).
et en suite une carte par axe avec des sorties genre RS532. reliés a chaque moteur.

bonne soirée d même

André
 
horsot
horsot
Compagnon
28 Mai 2009
768
Toulouse
Re,

Rs532? tu veux dire RS232 un port série classique genre modem/ancienne sourie?

Si tu peux faire des photos de tes cartes on pourrait voir si tu peux pas virer la carte qui est relié avec l'ordinateur et la remplacer par une carte d'interface parallèle.

Pour la doc :
http://linuxcnc.org/docs/html/ La version anglaise est plus à jour.

Xavier
 
gourky
gourky
Ouvrier
14 Août 2009
264
Gers (32)
horsot a dit:
Dans le cas de ta carte, la liaison série casse l'aspect temps réel (rien ne garanti la synchronisation). De ce fait toute la gestion de la trajectoire est gérée (de manière primaire) dans ton électronique. Galaad ou assimilé ne se charge que de transformer le Gcode en interp
Bonjour,

On peut très bien faire du temps réel et de la synchronisation en liaison série. Tout dépend du protocole mis en place.
 
horsot
horsot
Compagnon
28 Mai 2009
768
Toulouse
gourky a dit:
Bonjour,

On peut très bien faire du temps réel et de la synchronisation en liaison série. Tout dépend du protocole mis en place.
Bonjour gourky,

Si on se contente d'utiliser les signaux RX/TX du port série, je ne vois pas comment on pourrait garantir une latence constante car une fois les octets à envoyer placés dans le buffer rien n'indique en combien de temps ils seront traités (transmis). En bricolant avec les signaux de contrôles je pense qu'on peut arriver a faire quelque chose, une sorte de datation des paquets. Je ne suis pas sûr qu'un contrôleur de type 16550 (ceux dans les pc) ai les directives nécessaires, il faudrait le coder en soft...

Le sujet m'intéresse, as-tu de la doc d'une telle implémentation?

Bonne journée

Xavier
 
gourky
gourky
Ouvrier
14 Août 2009
264
Gers (32)
Pour se synchroniser, il suffit d'attendre la réponse des contrôleurs pas à pas par liaison série.
Les traitements asynchrones sont plus intéressants. Il faut juste un identifiant dans la trame que le contrôleur renvoie à la fin du traitement pour récupérer ses petits.
De toute façon, le futur veut que l'on travaille avec des liaisons USB qui sont en série ou Ethernet. Car les ports séries disparaissent aussi des cartes mères.
 
E
Eponyme-le
Nouveau
8 Nov 2006
43
Paris / Amiens
Avec un ami nous avons remis en marche une vieille fraiseuse CharlyRobot. Si ton boîtier de commande est le même, il suffit, comme le dit horsot, de remplacer la carte RS232 par une liaison directe depuis le port parallèle vers le connecteur de fond de panier. Je n'ai pas le brochage sous la main mais si tu nous fournis des photos de la machine et du boîtier de commande alors je peux le récupérer. Je pourrais également t'envoyer le fichier de configuration de la machine.
 
horsot
horsot
Compagnon
28 Mai 2009
768
Toulouse
gourky a dit:
Pour se synchroniser, il suffit d'attendre la réponse des contrôleurs pas à pas par liaison série.
Les traitements asynchrones sont plus intéressants. Il faut juste un identifiant dans la trame que le contrôleur renvoie à la fin du traitement pour récupérer ses petits.
De toute façon, le futur veut que l'on travaille avec des liaisons USB qui sont en série ou Ethernet. Car les ports séries disparaissent aussi des cartes mères.
Le temps réel est justement de ne pas attendre plus qu'un certain délais quitte à avoir des performances dégradés. Je ne vois pas ce qui garanti ce délais dans le protocole RS232 qui plus est bufferisé.

Si tu sous entends de faire de l'asservissement numérique asynchrone en synchronisant les horloges respectives (PC et carte pour garder une base de temps commune), c'est quelque chose d'horriblement plus complexe que faire de l'asservissement synchrone avec une seule horloge. Dans le cas de l'asservissement asynchrone, on fini souvent par extrapoler la courbe des mesures asynchrones pour la rééchantillonner en synchrone ce qui implique imprécisions et latence... De toute façon EMC2 fait un asservissement synchrone et je doute qu'il puisse avoir le temps de calcul pour d'en faire un asynchrone sur des machines modestes.

Je viens de retrouver la page expliquant brièvement les contraintes d'EMC2 et les soucis des protocoles de communications (Anglais) : http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Emc2HardwareDesign
Bonne lecture.

Actuellement, pour EMC2, il y a des cartes PCI (PCIexpress?!) qui permettent d'implémenter en hard (FPGA) la gestion bas nivaux du générateur de step, des encodeurs, PWM,... L'Ethernet temps réel est une demande forte de l'industrie pour les systèmes réparties reste à savoir si le débit et la latence seront suffisants dans notre application.

Dans le cas présent, ce n'est pas de l'asservissement mais c'est de la communication commande/statu entre le PC et la carte via la liaison série. Et ce qui est clair c'est qu'EMC2 n'est pas du tout prévu pour faire ce genre de chose.

Bonne fin d'après-midi

Xavier
 
A
alegreandre
Nouveau
7 Juil 2010
12
bonjour tout le monde

Voici les photos:

Je ne sais pas si c'est suffisant

Merci à tous de s intéresser à mon petit problème

André

arriere.jpg
[div=initial][arrow]arriere boitier[/arrow][/div]

arriere_carte_rs232.jpg
[div=initial][arrow]arrière carte rs232[/arrow][/div]

facade2.jpg


facade.jpg
[div=initial][arrow]façade du boitier[/arrow][/div]
 
horsot
horsot
Compagnon
28 Mai 2009
768
Toulouse
Re,

Ok 4 cartes différentes (3 drivers + 1 carte d'interpolation). Il faudrait que tu récupères le brochage du connecteur des 3 drivers afin de déterminer si tu peux les piloter par ton interface parallèle de PC (ou une carte PCI dédiée si tu veux en acheter une (pas nécessaire)).

Si tu n'as pas la doc et à moins qu'un forumeur ne te dépanne, je te conseille de contacter le service client de charlyrobot en expliquant que tu veux utiliser EMC2 avec le port parallèle. Sinon il te faudra faire du "reverse engineering", le système marche t'il?

Bon courage

Xavier
 
C
christian-tr
Apprenti
11 Juil 2009
151
En fait c'est un coffret Isel C142
On peut facilement faire un branchement sur le connecteur fond de panier de la carte RS232
J'ai le schema du connecteur (DIN41612 64/96) sur papier, je peux vous en faire une copie si vous le souhaitez.
cordialement
 
La dernière réponse à ce sujet date de plus de 6 mois
Haut