65
modifications
Modifications
→Commande des contrôleurs moteurs avec LinuxCnc
|description=Micro-tour EMCO
|license=CC-by-sa-3.0 - Creative Commons Attribution CC-by-sa-3.0 France
|contributeurs=Cesbron yann, Letertre Didier, Vinet Alexandre, Glennln,
|inspiration=Pour faire suite à l’acquisition de micro-tours à Plateforme C, l'idée est de rendre possible l’utilisation tout en en cadrant l'usage pour apporter de la sécurité aux utilisateurs.
}}
Ces petites machines peuvent être dangereuses si mal utilisées. Les points à traiter pourraient être les suivants dans un premier temps.
=== Connexion PC et logiciel de commande MFI ===
[[Fichier:ConnecteurDB9.jpg|vignette|connecteur DB9 assurant la liaison série]]
Il faut un ordinateur avec une connexion liaison sérielle(RS232) ou un adaptateur USB vers RS232.
Il faut la carte video vidéo dans la Compact 5 et le câble de liaison serielle sérielle entre ordi et Compact 5 avec le connecteur rond spécifque spécifique à EMCO qui sera à replacer par un DB9<br />
- pour se connecter:<br />
La Compact 5 doit afficher dès lors "CHARGEMENT PROGRAMME".<br />
Après le chargement le code CNC apparait sur l'écran si celui-ci est connecté.<br />
= Rétrofit LinuxCnc =
'''Mais qu'est ce qu'un retrofit ?'''<br />
Faire le rétrofit d'une machine c'est remplacer partiellement ou complètement son électronique.<br />
Cette démarche est généralement accompagné d'une rénovation comprenant nettoyage, peinture et autres améliorations pratiques.<br /><br />
'''Pourquoi faire un rétrofit ?'''<br />
L'électronique de ce tour se fait vieillissante.<br />
A l'époque, pour usiner une pièce, il fallait programmer manuellement chaque déplacement de la machine. Ça demande de l'expérience et c'est surtout très long.<br />
Aujourd'hui, il existe des logicielles de fabrications assistés par ordinateurs qui automatisent cette tâche. Le soucis, c'est que le langage de programmation de l'époque n'est pas compatible avec ces logiciels.<br /><br />
Remplacer une partie de l'électronique permettra d'utiliser des logiciels modernes tel que Fusion 360, SolidWorks et peut-être un jour FreeCad.<br />
=== Cahier des charges ===
* Sécuriser l'utilisation du tour (forcer la fermeture du cartère)
* Facilité l'utilisation du tour (boutons de contrôles physiques, éclairage de la zone de travail...)
* Fiabiliser le tour (capteurs vérifiant la position de la tourelle, capteur évitant une collision avec la poupée mobile...)
* Nettoyer la rouille, réparer les presses étoupes, faire un nouveau panneau de contrôle...
A fin de minimiser le coût et la charge de travail, cette conversion doit conserver un maximum de pièces d'origine.
=== Schéma structurel du RetroFit ===
En bleu les composants d'origines, en jaune les nouveaux composants:
[[Fichier:StructureLinuxCncTourEmco.jpg|vignette|centré]]
== Contrôleurs moteurs ==
Caractéristique des axes:
* moteur pas à pas unipolaire 5° soit 72 pas par révolution
* Couple 0.5Nm
* Déplacement rapides 700mm/min; travail 10-500mm/min
* Course X50mm Y300mm
* Affichage de la position au 1/100mm soit 0.01mm
* Effort d'avance 1000N
* Incrément minimal 0.0138mm (soit 1/72, j'imagine alors que la vis à bille a un pas de 1mm ? Bizarre car les forums disent 2.5mm, bon après il y a une réduction de 5:2 entre le moteur et la vis...)
* Config LinuxCnc d'internet: 1828,8 pas/pouce soit 72 pas/mm (20 000ns steplenght)
[[Fichier:Incréments d'avance des axes.png|vignette]]
=== Commande des contrôleurs moteurs avec une arduino ===
A gauche, un analyseur logique fût utilisé pour enregistrer les signaux échangés entre le maitre de commande et la carte contrôleur moteurs.
<br />
A droite, un code arduino reproduit ces signaux.
[[:File:ArduinoEmcoFullStepGen.ino]]
[[Fichier:Signaux générés par le maître de commande pour la carte contrôleur moteurs.jpg|vignette|centré]]
Brochage de la carte contrôleur moteur:
[[Fichier:Brochage Carte Contrôleur Moteur.png|vignette|centré]]
Câblage arduino:
[[Fichier:Câblage arduino --- Contrôleur moteur.jpg|vignette|centré]]
[[Fichier:Câblage arduino - Contrôleur Moteur 02.jpg|vignette|centré]]
=== Commande des contrôleurs moteurs avec LinuxCnc ===
LinuxCnc sait générer ces signaux, il suffit de configurer Step Type to 8 or 2:
[[Fichier:LinuxCncStepType8.jpg|vignette|centré]]
[[Fichier:LinuxCncStepType2.jpg|vignette|centré]]
[[Fichier:CablageX35.jpg|vignette|centré]]
<br />
[[:File:Configuration Retrofit LinuxCnc Tour Emco Compact 5 25-11-21.zip]]<br />
Cette configuration permet à LinuxCnc de piloter la carte contrôleur moteur d'origine.
Son fonctionnement est validé, les axes X et Z fonctionnent.<br />
[https://youtu.be/v5zNzp2b9nA Vidéo d'explication]<br />
[https://youtu.be/WiTnNDD-yGQ Démonstration d'un usinage manuel]<br />
Lignes à ajouter dans le fichier HAL
[[Fichier:HAL LCNC 251121.png|vignette|centré]]<br />
'''A savoir:'''<br />
Il faut alimenter la carte contrôleur moteur en 5v via les deux premières broches du connecteurs X35 '''ou''' X34. Il n'est pas nécessaire d'alimenter la carte via les connecteurs X35 '''et''' X34.<br />
La documentation LinuxCnc indique ce brochage:<br />
[[Fichier:BrochageDB25LCNC.png|vignette|centré]]
En tenant compte des paramètres spécifiés dans le fichier HAL et de la couleurs des fils du câble DB25 cela donne:<br />
[[Fichier:CâbleDB25Coloré.jpg|vignette|centré]]
Fil de COULEUR x avec une petite bande de couleur y<br />
* Parport1_ROUGE-noir_xAxisPhaseA
* Parport2_ORANGE-noir_xAxisPhaseB
* Parport3_VERT-noir_xAxisPhaseC
* Parport4_ROSE-noir_xAxisPhaseD
* Parport5_BLEU-noir_zAxisPhaseA
* Parport6_MARRON-blanc_zAxisPhaseB
* Parport7_ROUGE-blanc_zAxisPhaseC
* Parport8_ORANGE-blanc_zAxisPhaseD
== Tourelle ==
[[Fichier:CliquetTourelle2.jpg|vignette|centré]]
La tourelle permet de changer d'outil automatiquement. Elle dispose de 6 positions et ne peux tourner que dans un sens.
<br />
Il y a donc une certaine logique à mettre en place pour savoir de combien de crans la tourelle doit avancer pour arriver au numéro d'outil demandé.
=== Caractéristiques de la tourelle ===
Le moteur DC semble être alimenté en permanence à -3,25v, il consomme 100mA à vide et 280mA quand il a atteinte la buté du cliquet.
<br />
Lors d’un changement d’outil, le moteur est alimenté en +13,5v juste le temps d’avancer d’une position puis il se remet à -3,25v.
<br />
Cette opération est répété le nombre de fois nécessaire pour atteindre le bon numéro d’outil.
[[Fichier:Voltage Tourelle.png|vignette|centré]]
===== Brochage de la tourelle =====
Seul les fils marrons et verts du connecteurs sont utilisés pour piloter le moteur DC.
<br />
Il n'y a aucun retour d'information.
[[Fichier:Câblage Tourelle.jpg|vignette|centré]]
===== Changement de deux positions =====
Tension et temporalité mesuré à l'oscilloscope:
[[Fichier:TimingOscilloTourelle.png|vignette|centré]]
[[Fichier:TimingOscilloTourelle2.png|vignette|centré]]
*-4v permanence
*13v 2sec
*-4v 3 sec
*13v 2sec
*-4v permanence
=== Logique de la tourelle ===
==== Algorithme général ====
===== Variables =====
Tn = Nouvel outil demandé
<br />
Ta = Outil actuel
<br />
N = Nombre de position à avancer pour atteindre l’outil demandé
<br />
===== Programme =====
N = Tn-Ta
<br />
Si N < 1 ; Ça revient à dire si Tn<Ta
<br />
*N= 6+N ; Il faut faire un tour moins la différence entre Tn et Ta
*Avancer la tourelle de N crans
Sinon ; Faut juste avancer la tourelle du nombre de crans manquant
<br />
*Avancer la tourelle de N crans
==== Exemple simple ====
===== Variables =====
Tn = 5
<br />
Ta = 2
<br />
N = C’est notre inconnu
<br />
===== Programme =====
N = 5-2 = 3
<br />
Si N < 1 ; Pas besoins de rentrer dans cette boucle comme 3 est positif
*N= 6+N
*Avancer la tourelle de N crans
Sinon ; Faut juste avancer la tourelle du nombre de crans manquant
*Avancer la tourelle de 3 crans
==== Exemple complexe ====
===== Variables =====
Tn = 3
<br />
Ta = 5
<br />
N = C’est notre inconnu
<br />
===== Programme =====
N = 3-5 = -2
<br />
Si N < 1 ; N vaut -2, c’est négatif, je rentre dans cette boucle
*N= 6+(-2) =4
*Avancer la tourelle de 4 crans
Sinon ; J’ai appliqué le Si donc j’applique pas le sinon
*Avancer la tourelle de N crans
<br />
=== Routine LinuxCnc ===
== Interrupteur fin de course ==
== Codeur rotatif ==
=== Documentation ===