Machine-outil, 2- la commande numérique

Avec un ami, Igor, nous avons développé une machine-outil de gravure mécanique orientée pour l’horlogerie manufacturière, dont voici la photo.

Dans un autre article je vouus présente la partie mécanique et la motorisation (article en cours de rédaction).

Vous trouverez des liens vers des descriptifs plutôt théorique de ce qu’est une commande numérique pour une machine-outil.

La CNC de cette machine

L’ancienne machine qui nous a servit de base avait une CNC maison et nous voulions en améliorer principalement les points suivants :

  • Facilité d’apprentissage.
  • Option sans surcoût CNC.

Facilité d’apprentissage

Si vous vous êtes déjà trouvé devant une commande numérique d’une machine, vous avez certainement eu quelques difficultés pour simplement enclencher cette machine. Les CNC sont complexes car il est vrai que la machine à piloter est complexe, beaucoup d’élément sont à prendre en compte. Malgré cela et on voyait apparaitre des mobile de plus en plus complexe sans que personne ne soit rebuté par la techniuqe, nous pensions qu’un « enfant » devait ‘etre capable de piloter une de nos machines. C’est le sens de la « faclité d’apprentissage ».

Option sans surcoût CNC.

L’habitude dans le monde de la CNC était (est) de demander pour chaque mini-changement un prix supplémentaire. Pour mieux expliquer, vous vouliez une simplement allumer/éteindre une lampe dans la machine, une option vous sera facturé, alors que c’est un simple code à débloquer. Cela laisse toujours un goût un peu amère au client, ben que le raisonnement de chaque fonctionnalité se paie. Nous nous ne voulions pas cela, la CNC devait comprendre initialement bon nombre de fonctionnalité supplémentaire, comme par exemple un axe synchronyser supplémentaire, rien ne doit être rajouter c’est prévu et déjà libre d’accès. Autre cas ajout d’une liaison wifi, d’un disque dur, etc.

Pourquoi ce choix ?

Quelques mots pour expliquer le pourquoi d’une commande numérique « maison ». A l’heure actuelle pour la commande d’une machine-outil vous avez le choix entre une commande numérique du marché ou l’utilisation d’un PC « temps réel ». Les commandes numériques du marché (Siemens, Fanuc, Heidenheim, Num, Fagor, etc) sont nombreuses et performantes, mais souffrent toutes du même problème, à savoir le manque de souplesse pour l’adaptation soit de l’interface homme/machine soit d’un algorithme de parcours.

Rapide historique sur LinuxCNC

Datant de 1980, la norme ISO6963 (ou RS274D pour les US) est « remplacée »par la norme RS274ngc (Next Generation Controller) dans les années 2000. Cette norme est éditée par le NIST(National Institute of Standards and Technology) qui est une Agence du Département du Commerce des Etats-Unis.
Dès les années nonante, le projet EMC (Enhanced Machine Controller) permit le développement d’un logiciel pour le contrôle d’une petite machine 3 axes. En fait dès 1993 un premier paquet de fonctions en C ont été écrites pour la réalisation d’une lecture de la norme RS274 et la traduire en commande de mouvements. En 1994, il a été adjoint des fonctionnalités 4 et 5 eme axes. En 1994, le projet EMC, avec la collaboration General Motors, c’est engagé à rétrofiter un centre 800 Kearney-Trecker. En 1995, c’est le succès !
Depuis beaucoup de machines ont été rétrofitées grâce au logiciel EMC. Coté anecdote, il est intéressant de noter que l’ensemble « tournait » sous windowsNT. Après ce premier succès, plusieurs points ont été améliorés et beaucoup de rétrofits, ceci suscita de l’intérêt pour ce logiciel. Beaucoup de personnes collaborant à ce projet et également le nombre d’utilisateurs grandissant, il devint évident qu’il fallait mettre une couche d’abstraction du matériel (HAL) pour pouvoir faire évoluer ce logiciel. C’est vers 2003 que le projet EMC est passé à EMC2 avec sa couche d’abstraction. Au cours de 2011, une société possédant les droits sur les noms EMC et EMC2 demanda de modifier les dénominations du logiciel. LinuxCNC a très vite été admis comme le meilleur compromis, d’autant que le site Internet était référencé sous cette dénomination.

Petit historique de cette CNC

Dans les années 1990, la société Orco-System, aujourd’hui disparue, avait mis sur le marché une machine de gravure mécanique pour les horlogers. Soit une petite fraiseuse avec des fonctionnalités spécifiques au travail de gravage de haute précision. Cette machine était dotée d’une commande numérique CNC, développée spécialement (Turbo Pascal). Nous avons gardé ce choix initial d’une commande numérique spécifique. Lorsque nous avons commencé les travaux sur un rétrofit d’une machine Orco, la solution de linuxCNC était le meilleur choix. Par chance cela l’est resté jusqu’à la fin de la société vers 2017.

CNC, LinuxCNC et carte Mesa 7i22, Mipretec SA
LinuxCNC et carte Mesa 7i22, Mipretec SA

Un des problèmes était l’interface homme-machine pas très convivial et pas du tout pratique pour une utilisation industrielle. Je me suis tourné vers la solution de l’interface avec la bibliothèque Qt. Willy avait préalablement élaboré un prototype avec la bibliothèque TCL mais son fonctionnement présentait un gros défaut que nous n’avons pas réussi à résoudre (parfois grande durée de calcul dans la partie temps réel) et nous avons abandonné cette voie.

Actuellement la solution est intéressante et solide tant du point de vue électronique que du point de vue du software. Ce qu’il est nécessaire de faire c’est l’amélioration mécanique de l’ensemble (reprise des masses et facilité de branchement) ainsi que finir les modules logiciels spécifiques.

Cette commande numérique particulière pilotait des machines-outil nouvelles et rétrofitées, que l’on peut résumer à :

  • PC et PLC intégrés.
  • Commande jusqu’à 8 axes simultanés.
  • Générateur de trajectoire open source.
  • Ecran de 21 pouces, tactile.
  • Linux temps réel.
  • Windows en option

Le flyer de présentation de cette future et avortée CNC. En réalité, il y a des machines rétrofitées qui fonctionnent avec cette commande ainsi qu’une machine Mipretec, mais plus rien de nouveau.

Caractéristiques générales

  • RAM 1Gb
  • Disque dur SSD 32 Gb
  • Intel core (TM)2 Duo 2.4GHz
  • Linux temps réel, noyau 2.6.38.8-RTAI
  • Générateur trajectoire open source LinuxCNC v3.5.2
  • Lecture code G suivant norme RS274NGC (ISO6983)
  • PLC intégré suivant IEC61131
  • Fréquence de calcul des positions 1kHz
  • Fréquence de pulsation axe 0.4MHz
  • Interface utilisateur en C++ couplé à la bibliothèque Qt, interface écran 21 » vertical.

Connectique CNC (bornier à vis)

  • 8x axes dont 6 simultanés pilotés en step/dir (y compris encoder A/B/I fin de course et home)
  • 96x I/O (5 à 28V) configurables par software
  • 3x PWM ou 1x PWM et 2 sorties analogiques 0-10V.
  • 2x Encoder en A+A-, B+B-, Index+, Index-
  • Possibilité de configuration complète par software (drivers et fichiers textes)

Connectique PC

  • RAM 1 à 2 Gb
  • Disque SSD 160 Gb
  • I/O Panel
  • -1 x PS/2 Mouse Port
  • -1 x PS/2 Keyboard Port
  • -1 x Parallèle Port (ECP/EPP Support)
  • -1 x Serial Port: COM1
  • -1 x VGA Port
  • -4 x Ready-to-Use USB 2.0 Ports
  • -1 x RJ-45 LAN Port with LED
  • -1x HD Audio Jack: Line in / Front Speaker / Microphone

Dimension et fixation

  • H : 210 P : 290 L : 300 mm
  • Fixation par pattes, sur rail DIN selon face souhaitée : 3 faces possibles pour fixation.

Exemples d’interface HIM

Pour écran tactile de 22 pouces vertical. Interface programmé en C++ et la bibliothèque Qt, Interface spécifique MIPRETEC

Version 2.2

Version 2.1


Liens vers explicatifs sur les CNC

Si vous n’avez pas trop d’idées de ce qu’est une CNC (Computer Numerical Control), ci-dessous un ensemble d’articles décrivant les fonctions principales d’une commande numérique.