Machine-outil, la commande numérique

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

Dans un autre article je vous présente sa mécanique et la motorisation.

Si vous n’avez pas trop d’idées de ce qu’est une CNC (Computer Numerical Control), vous trouverez un ensemble d’articles décrivant les fonctions principales d’une commande numérique sur ce site. Voici le premier article : Régulation de mouvement en machine-outil.

La CNC de cette machine

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

  • Facilité d’apprentissage.
  • Option sans surcoût CNC.
  • Standard dans les formats de fichiers transmis à la machine.
  • Connexion externe au standard informatique et remontée d’information.
  • Développement de fonctions particulières à la gravure.

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 elle-même complexe, beaucoup d’éléments sont à prendre en compte. Dans les années 2010-2015, on a vu apparaître des mobiles de plus en plus sophistiqués sans que personne ne soit rebuté par cette technique. Nous avons donc admis que la technicité d’une CNC pouvait être simplifiée, ou tout au moins « cachée » par une couche logicielle de tel façon qu’un « enfant » pourrait piloter nos machines. C’est le sens de la « facilité d’apprentissage ». La première idée qui nous venu, c’est de supprimer au maximum les boutons, comme sur un smartphone et donc de tout réunir sur un écran tactile vertical.

Option sans surcoût CNC.

L’habitude dans le monde de la CNC est (était) de demander pour chaque mini-changement un prix supplémentaire (souvent exorbitant). Pour mieux expliquer ce point, un exemple, vous vouliez simplement allumer/éteindre une lampe dans la machine, une option supplémentaire vous sera facturé, alors que cela n’est qu’un simple code à débloquer. Cela laisse toujours un goût un peu amer au client, bien que le raisonnement « chaque fonctionnalité se paie » soit compréhensible. Nous nous ne voulions pas cela, notre CNC devait comprendre initialement bon nombre de fonctionnalités supplémentaires, comme un nouvel axe synchronisé supplémentaire, le Wi-Fi, une augmentation de mémoire, un disque dur, une fonction M, rien ne doit être rajouté c’est prévu et/ou déjà en libre accès et le client prend un matériel standard et l’installe lui-même.

Format de fichiers

Pour décrire ce doit effectuer la machine, on lui transmet un fichier d’instruction, généralement le langage utilisé est le G-Code.

Connexion au monde externe

Pour communiquer avec les ordinateurs de l’entreprise, simplement pour recevoir les fichiers d’instruction, le Wi-Fi, Ethernet, Bluetooth, etc … ces techniques devaient être d’office disponible. Il est de plus en plus nécessaire que la machine communique son état, l’avancement des travaux, etc, ces informations doivent être facilement exportables. Les CNC du commerce sont (étaient) relativement fermées cela relève (relevait) du parcours du combattant .

Développement de fonctions particulières à la gravure.

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.

Petit historique de notre 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 gravure 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 l’aventure vers 2017.

CNC, LinuxCNC et carte Mesa 5i22
Prototype CNC avec LinuxCNC et carte Mesa 5i22

L’ancien interface homme-machine n’était 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 du boitîer CNC (reprise des masses et facilité de branchement) ainsi que finir les fonctions logicielles spécifiques.

Concept utilisé

Un PC industriel LinuxCNC couplé avec une carte 5i22 et des cartes d’entrées- sorties de Mesa Electronics, vous avez une CNC très performante pour un prix abordable. La partie des organes de la machine est semblable aux autres macchine-outils de l’industrie (drivers, moteurs, relais, pneumatique, capteurs, codeurs, etc).

CNC, LinuxCNC et carte Mesa 5i22

Sans entrer dans les détails, quelques remarques :

  • LinuxCNC à un PLC (automate) incorporé dans son software.
  • Les cartes Mesa Electronics sont de très bonne qualité et simple à utiliser, une fois que l’on a compris leurs phylosophies, un petit effort qui vaut le coup.
  • Mesa Electronics propose un software pour LinuxCNC : Hostmot2 (facilité de liaison).
  • Le PC n’a pas besoin d’être puissant, il faut du robuste, le milieu industriel est difficile.

Fonctions spécifiques à la gravure

Numérotation consécutive

Graver des pièces nécessite une fonction de « numérotation consécutive » ou « numérotation automatique ». De quoi s’agit-il ? Si vous voulez assurer la traçabilité de vos pièces, pouvoir graver un numéro différent pour chaque pièce est nécessaire, comme 1, 2, 3, …, 10, 11, etc

Pour graver un numéro consécutif sur une machine-outil, vous pouvez soit charger un nouveau programme avec le numéro pour chaque nouvelle pièce, ou par un programme en G-Code incrémenter ce numéro à chaque début ou fin de programme de la pièce. Le gros problème, c’est que cette deuxième méthode, le fichier spécifique en G-code est relativement complexe et surtout très peu versatile.

Grâce à l’accès open-source de LinuxCNC, nous avions la possibilité de prévoir un programme puissant, souple et simple pour l’utilisateur. Je ne vais pas vous présenter le code du système, ni même son détail, mais plus simplement quelques points, afin de vous faire une idée de la puissance du système LinuxCNC.

Principe de base

On parle de signes plutôt que de numéro et le système doit pouvoir gérer plusieurs numérotations en même temps, une multinumérotation. Ces signes sont en fait des petits programmes ISO (en G-Code) quelconques. La CNC les exécute les uns après les autres. La gravure est ce que représente le signe, un chiffre ou un petit dessin cela n’a pas d’importance.

Pour chaque signe une surface (rectangle C, D) englobant le signe (espace libre autour
compris) est définie (positionnée par rapport au point de départ A, B). Le point (rouge) de référence lui s’appuiera sur une ligne dite de support.

CNC, numérotation consécutive

La ligne de support peut-être de forme quelconque, une ligne droite, une courbe ou un cercle. Les signes sont attachés à la ligne par leur point de référence et leurs alignements peuvent être conditionnés par les axes X,Y ou la ligne de support.

CNC, numérotation consécutive

Voici les interfaces (un peu austères) de cette multinumérotation, le panneau de configuration (version : ligne support droite) et celui de l’utilisateur.

CNC, panneau de contrôle spécifique

Contrôle de l’outil de gravure

Un outil de gravure est un outil très fragile surtout sa fine pointe, de plus les matières utilisées dans le milieu horloger sont diverses (or, acier inoxydable, platine, maillechort, etc). Ces éléments rendent le contrôle de la gravure effectuée nécessaire. Pour suivre l’évolution de l’état de la gravure, on peut, soit examiner directement l’usinage (habituellement l’oeil humain), soit contrôler l’état de l’outil.

outils de gravure

Cet examen s’effectue selon deux points pour la gravure, l’aspect des faces gravées et le fond de la gravure. Le contrôle manuel (visuel) de la gravure demande beaucoup de temps et suivant les usinages induit de stopper la machine, ouvrir et inspecter après un nettoyage, au minimum local, puis relancer l’usinage. C’est pour cela que beaucoup préfèrent un contrôle de l’outil en automatique.

En machine-outils classiques, on inspecte essentiellement l’outil, car la vérification visuelle n’est pas usité. Pour la surveillance de la longueur de l’outil (fond de la gravure), vous trouverez une multitude de capteurs des plus simples (déclenchement par appui) aux plus sophistiqués (laser ou optique). Pratiquement tous les modèles à contact, à notre connaissance, avaient des forces de déclenchement de plus de 100 grammes. Pour des outils avec une pointe d’un centième, le risque de casser (ébrécher) l’outil est trop élevé. Nous devions rester dans un prix de machine abordable, l’option d’un capteur sophistiqué n’était pas envisageable, la solution d’un capteur par appui s’est imposé pour le contrôle le fond de gravure. Mais il nous fallait un appui faible sur la pointe. Donc nous avons développé notre propre capteur avec l’avantage qu’il soit parfaitement adapté à notre machine.

Principales caractéristiques

  • Répétabilité < 1 micron
  • Force de déclenchement inférieur à 80 grammes
  • IP 67
capteur longueur outil
Prototype capteur longueur

Ce capteur a un fonctionnement standard au milieu industriel et peut donc servir sur d’autres machines. Sa connexion avec la CNC est similaire à un microswitch. Flyer capteur

Pourquoi je vous parle d’un outil pratiquement standard, sans réel problème à interfacer avec une CNC quelconque ? En fait nous avions commencé à intégrer dans notre CNC, une méthode pour l’estimation de l‘état de surface des flancs de la gravure. Le but final étant de pouvoir prédire l’usure de l’outil, donc son remplacement, en cours d’usinage. Cette partie comprenait un algorithme et une « vision » de l’usinage. Ce point est malheureusement resté au niveau de pré-projet.

Résumé de notre commande

Cette commande numérique particulière pilotait des machines-outils 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) ce point à été ajouté, car quelques clients potentiels le souhaitaient
CNC, LinuxCNC et cartes Mesa Electronics

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.

Le flyer de présentation de cette future et « avortée » CNC Flyer 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.


Chronologie de 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, s’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 Wndows NT. 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.

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