Bonjour Vectra,
Je vais essayer de te décrire l'architecture d'EMC2 entre le Gcode et la commande physique du moteur. Ensuite, je vais essayer de te décrire la relation entre les cartes mesa et EMC2.
De manière simplifié, EMC2 et un logiciel qui converti du Gcode en commande moteurs (axes et broche) et diverses entrées sorties. Pour se faire :
1- Il décode le Gcode en mouvements de bases dans le "Trajectory Planner" ce que fait tout les logiciels de FAO (à ma connaissance).
2- Ces mouvements sont ensuite transmis au "motion controleur" qui se charge de séquencer précisément les différents mouvements temporellement vers les axes (moteurs). C'est là où le temps réel est important, le décalage temporel d'une commande se répercute sur la précision de la trajectoire. EMC2 utilise un noyau temps réel pour être précis. Les autres "occultent" ce problème ou utilisent des cartes d'interpolations qui se basentsur des horloges spécifiques. Le souci des cartes d'interpolation (hormis le prix) c'est que l'intelligence est déporté sur la carte et en général les fonctions sont figées et réduites (interpolation 2 axes, pas d'optimisation de trajectoire (accélérations...), géométries triviales, pas de coordination avec la broche (filetage rigide,...), pas de 4ième axe,...).
3- Les commandes venant du "motion controleur" attaquent les commandes des axes. Hormis pour le bloc PID (logiciel), ces dernières peuvent être de deux types soit logicielle c'est EMC2 qui génère les signaux via le port // soit matériel c'est une carte (ex mesa) qui se charge de la génération de ces signaux, le temps réel est aussi important. La solution matérielle coute plus chère mais est bien plus performante. Ensuite tout est une question de besoin.
4- Attaque des drivers/amplificateurs de moteurs classiques.
Les cartes mesa (ou pico) sont des cartes équipés de FPGA, qui sont des composants électroniques où on peut programmer l'architecture du circuit que l'on veut y mettre dedans (portes logiques, bascules...). De ce fait la carte peut être reprogrammer pour remplir plusieurs fonctions. Par exemple générateur de step/dir ou encodeurs à quadrature ou PWM pour les moteurs DC (ou servo DC) ou des entrées sorties standard. Comme expliqué plus haut, elles ne gèrent ni la trajectoire ni le PID qui sont à la charge du noyau linux temps réel (et d'EMC2) ce sont juste de bêtes interfaces.
Pour les cartes mesa il y a un driver hostmost2 qui gère la communication avec la carte ainsi que sa reprogrammation. Ce driver te permet donc de choisir entre plusieurs configurations. Par exemple pour la carte 5i20 qui est la carte PCI (la plus "petite" et la moins chère) tu as le choix entre ces configurations :
- 12 voies pour servomoteurs (PWM + encodeurs)
- 8 voies pour servomoteurs + 4 voies step/dir (moteurs pas à pas)
- 4 voies pour servomoteurs + 8 voies step/dir
Il y a ausi une foule entrées/sorties standard disponible avec chacune de ces configurations.
Le fait que la carte soit reprogrammable permet de pouvoir faire évoluer la configuration ou de gérer plusieurs machines avec la même carte.
Pour ce qui est des cartes d'interpolation chez les "concurents", je trouve que l'on est très vite limité du fait que l'intelligence (calcul trajectoire,...) est déplacé dans la carte en question et cela à un coût matériel non négligeable. Souvent les cartes hobby ne savent pas gérer les encodeurs (servos...) et ne gère les mouvements coordonnées que sur un plan cad 2 axes simultanés alors je ne te parle pas de 5 axes ou de cinématiques non triviales (bras robotisés,...)! Ensuite les fonctions de taraudages rigides ou de filetages ne sont en général pas possible à moins d'y mettre le prix.
En bref, ce que tu gagnes avec Linux/EMC2 c'est que l'intelligence reste dans le PC (ce qui est gratuit). De plus cela donne une souplesse immense aux fonctionnalités de ta machine.
Pour ce qui est des autres cartes opto, etc,... Tout dépend de ton besoin (ta configuration) mais le minimum est la carte opto pour protéger la carte PCI dans ton PC.
J'ai fais un schéma simplifié de l'architecture d'EMC2 avec les moteurs pas à pas (en haut) et avec les servomoteurs (en bas).
Xavier