Projet de retrofit complet d'une CNC AXYZ

  • Auteur de la discussion Joscad49
  • Date de début
J

Joscad49

Apprenti
Bonjour à tous,

Depuis quelques mois, j'ai entrepris de faire un rétrofit complet d'une machine industrielle que j'ai en fait achetée juste pour la base; en effet suite à mon expérience précédente sur ma Mechmate entièrement construite maison, j'ai trouvé une machine pro AXYZ d'occasion qui est déjà une très bonne base pour un prix modique, bien moins chère que de me lancer dans la fabrication, donc l'achat de tous les éléments en pièce détachée.
Le seul vrai défaut d'une machine qui a vingt ans, c'est son électronique et ses moteurs.

Donc on change tout!
Mon choix est la CSMIO IPS avec le logiciel Sim CNC( j'utilise aussi en parallèle Mach 3)
Changement des crémaillères simples pour des version Hélicoïdales ( de chez Vallder) ainsi que des nouveaux réducteurs à courroie ( Vallder également)

Le changement des moteurs viendra ensuite pour des servo mais j'ai bien du mal à my retrouver dans l'offre actuelle. A ce sujet, je pose une question à ERWAN56 qui réalise un tres beau projet, concernant son choix moteur, combien de fils sur les moteurs afin de savoir si je peux réutiliser les câbles déjà en place; pour les encodeurs je serai obliger d'en passer en supplément, la aussi combien de fils dans les câbles?

Il y aura aussi le changeur à reprogrammer, j'aimerai conserver la version rotative embarquée sur le portique( comme celui d'origine de la CNC, la j'aurai certainement besoin d'aide aussi car mes compétences dans ce domaine sont quasi nulles.

A bientôt
 

Fichiers joints

  • IMG_6566.MOV
    55.2 Mo
  • IMG_7650.MOV
    25.4 Mo
Dernière édition:
E

erwan56

Apprenti
C'est bien une scie makita que je vois accroché derrière :zoutte: mais ...mais..... j'veu ca moi aussi.
Le système de collecte de poussière il fonction comment? rotation sur air comprimé? (je suis en pleine réflexion pour moi même la)

Pour ton chargeur d'outil a mon avis quelques lignes de modifiés sur mon code et ca fonctionne chez toi. t'as déjà installé ton csmio?
fait une video complet de tous les mouvement et je te fait ca ou encore mieux si t'as le code qui gère le changement d'outil.

a propos de mes moteurs ils sont livré avec des fiches bien spéciales , qui d'ailleurs sont bien faites, et orientable a 360 dégrée (car coudée)
donc déjà premier problème trouver ses fiches en solo, et de toutes façon les moteurs sont livrées en standard avec du fil (5m de mémoire)
1 des fil a 4x2,5mm² 1 terre 3 couleurs
l'autre a d'après la prise 17fils si j'ai bien compté ce qui me semble bizarre vue la section du câble mais pas impossible. et c'est difficilement vérifiable car pour le coup du coté contrôler c'est aussi une fiche spécifique (et la j'imagine meme pas souder 17 fils sur si petit.)
Donc conclusion d'apres moi faut acheter les fils avec les moteur.

 
J

Joscad49

Apprenti
Bonsoir Erwan

Tout d'abord merci beaucoup pour ta proposition d'aide. Les lignes de code c'est vraiment pas ma compétence.
Voici des liens vers un internaute qui a réalisé un retrofit( mais sous linux) sur une machine du même genre que la mienne, il y a pas mal d'infos sur le carrousel et son fonctionnement .




Le mien pour l'instant ne fonctionne plus car j'ai installé la carte CSIMO IPS et SIM CNC.

Je me gratte vraiment la tête pour le choix des servo moteur X ET Y, pas beaucoup d'infos sur la toile; Je voudrais rester dans un format proche du nema 34 pour des questions d'implantation et aussi faire attention à la consommation... l'année dernière j'ai vu monter ma consommation en flèche.
Sur la version Servo moteur d'AXYZ les servo étaient des Tecknic M3482 qui avait un couple incroyable( pièce jointe)malheureusement sur la mienne c'était des pas à pas.
En fait côté scie circulaire, je suis passé à autre chose car la grosse Makita était un peu juste pour débiter du chêne de 100 d'épaisseur en une passe, mais cela marchait déjà tres bien. J'ai d'ailleurs commencé avec une Festool 75, tres bien mais vraiment pas assez puissante sur les fortes épaisseurs, ensuite j'ai acheté la Makita( une bête de 14KG) la c'était vraiment presque parfait mais je suis tombé sur une scie radiale avec un moteur tri de 5ch et avec un chassis orientable très rigide et c'est royal( je peux aller dans le sens X ou le sens Y et bien sur l'incliner à 45, d'une part ce moteur qui a plus de quarante ans est infiniment plus silencieux et je peux découper des tranches de chêne de 100mm en une passe; je prépare un parquet type Versailles j'avais en stock sec depuis plus de vingt ans du 100mm...( je vends la Makita d'ailleurs)

Je n'ai pas bien compris ta question concernant l'aspiration.

Au plaisir

José
 

Fichiers joints

  • 3482_V2.3.pdf
    401.2 KB · Affichages: 69
Dernière édition:
E

erwan56

Apprenti
j'ai survolé les 3 pages, et il semble que le changement d'outil ce fait a coup de commande G code...
ca semble compliqué a traduire pour cim scn

ce que je te propose c'est de me faire un recape du genre

#stop la fraise
# Déplacer l'axe Z en 0
#supprimer les soft limite
#rotation du recupérateur de pourssière (sortie numerique)
#ouvre la porte du tourniquet (sortie numerique)
#verifi porte ouvert (entrée numerique) (si existe contact porte ouver)
#vérifi si la broche a un outil (entrée numerique si la broche en ai équipé)
# Faire un déplacement X rapide jusqu'au dessus du port outil
#tourne le tourniquet en axe A + 100 = 1 outil x outil apellé) (question c'est quoi comme moteur tourniquet?)
#verifi si la porte outil est aligné (entrée numerique)
# Déplacer l'axe Z
# Un petit coup de soufflette ou pas
#mouvement x final dans le port outils
#libert l'outil (sortie numerique
#mouveemnt Z haut
#verifi si l'outil est libéré (entré numerique)
#tour le tourniquet axe A sur position nouvelle outil
......................... suite


si t'arrive a me faire ca pour demain samedi soir je passe le weekend chez mes beau parent, j'ai du temps a tuer...:lol:
 
Dernière édition:
J

Joscad49

Apprenti
Bonjour Erwan

Très sympa ! Bon week-end alors ( moi quand j étais jeune je ne savais pas m arrêter, ça me filait d horribles migraines; bon j ai plus les migraines et sait toujours pas m arrêter, mais maintenant je dis quand je travaille, comme ça je sais que je suis vivant !)

La difficulté je crois est le système de repérage de position du carrousel, comme tu le vois sur la photo, les vis noires servent de repère; elles passent sous un capteur, les tétons sont espacés de 90mm sauf deux qui sont espacés de 23mm ce qui permet au contrôleur de compter et savoir quel numéro outil va se présenter devant la broche pour:
Récupérer l outil précédent
Puis effectuer une rotation pour présenter l outil appelé.
Le carrousel tourne avec un pas à pas.

De mémoire :
a partir d'une machine référencée
- la broche vérifie qu'elle est bien à zéro( position haute)
-La broche se déplace en y jusqu’au capteur de gauche( en négatif par rapport au zéro Y)
- la broche ajuste son Z pour être en position dépôt de outil -153
- le carrousel tourne afin de se repérer( système de tétons)
- il se positionne alors avec l emplacement vide en position
- la broche se déplace en y a gauche à y-315 (à vérifier) dans l emplacement libre
- éjection de l outil
- remonté broche en Z -90
- déplacement en Y a droite 100mm( à vérifier)
- nettoyage
-rotation carrousel , présentation numéro d outil appellé
-déplacement en Y a gauche 100mm
- descente en Z -153mm( a verifier)
- verrouillage outil
- remonté de la broche
-Retour au point de travail

La je n ai pas marqué de stade de verif. Tout cela est possible si au préalable, la procédure de hauteur des outils a été faite.
Pour cela même opération mais la broche redescend a 20cm à droite jusqu’au capteur Z probe sur la table( hauteur d outil) et va chercher l outil suivant jusqu’au 8 eme.
La banque d outils est ainsi renseignée.

Comme tu vois sur la vidéo, la machine fait cela assez lentement, l avantage toutefois du carrousel embarqué sur le portique, c est sa proximité de la zone de travail ( justifié sans doute par la surface de travail 4m/2,20. Et aussi par la vitesse de déplacement des pas à pas.
Avec les servo moteurs, ça semble moins indispensable sauf si la procédure de changement d outil est rapide, cas des nouvelles machine de la marque.

En synthèse, pour moi j'ai l'impression que cette tache est énorme à mettre au point, franchement Erwan si tu m'aides à adapter ton programme Python à ma machine, je serai déjà tres heureux de retrouver un changeur d'outil auto! Après si relever le défi te titille, mais j'ai vraiment peur que cela prenne trop de temps.

Ma machine se reference en haut à gauche
X est en normal X1 en esclave en inverse, Y en inverse, Z en normal

A bientôt
José

A9A7EF5F-56E9-429F-9062-1CD5D7EE1264.jpeg


D106A604-6B02-426D-A8F9-E53E981B2C0B.jpeg


A882A617-24E1-43CE-B2FD-0F90D153F2F5.jpeg


D9B6F849-6275-4E89-92F2-F4696792837D.jpeg


tempImage8YFlV4.png
 
Dernière édition:
E

erwan56

Apprenti
tien si tu peux tester ca deja, pour voir si j'ai bien compris comment fonctionne ton tourniquet. dans simcnc lance editeur de script,(en haut a gauche) copie colle ce code dans la fenetre et sauvegarde le "test".
clique sur play dans l'editeur de script apres avoir:
-remplace A_position_first_tool et last_tool par les bonnes positions.
-fait le homming des tous les axes
-clique sur le bouton idle
-lance le script

Normalement ton tourniquet devrait tourné jusque a la position de l'outil configuré dans simcnc
Change d'outil dans simcnc et relance le script sur d'autres outils.



L idée ici c est de ce baser sur le home pour aller chercher les bonnes positions. Dans un 2eme temp il faudra vérifier que les vis noir sont aligner avant de descendre le z
 
Dernière édition:
J

Joscad49

Apprenti
Bonjour Erwan
J attends un capteur grillé qui arrive mardi et j’essaie cela
Je te remercie, bonnes Pâques
 
E

erwan56

Apprenti
ok .
bon j'ai déjà écrit le script pour les mouvement mais j'ata de voir si ce que je tes coller au dessus fonctionne.
Encore une question, t'as un palpeur en position fixe pour les mesures?
 
J

Joscad49

Apprenti
Bonjour Erwan
Oui tu le vois sur la photo 15cm à droite en gros du tourniquet . La plaque grise avec un ovale alu au dessus du guide linéaire.
Hier j ai configuré le tourniquet, ce serait l axe C module 5 réglé en rotation de 360degres
Pour le palpeur il y a une petite carte électronique dessous, il faut que je cherche comment lier cela à la CSMIO pour que le bouton prévu corresponde.
Il semble necessaire de creer une macro pour le probe, mais a quelle entrée est ce attribué, dès que je rentre dans les programmations je sus perdu. Sous Mach 3 il suffisait de valider l'entrée mais la je ne trouve rien de parametré par défaut...
Dans le cas du tourniquet embarqué, le capteur pour le probe se déplace également le long de l'axe X,donc position X n'intervient pas, Y doit être à -100mm en gros; j'ai bien ouvert le fichier exemple dans les macro mais je n'y comprends rien pour l'instant...

Je pense aussi qu'il faut donc créer de nouveaux boutons, la aussi je coince.
A+

DC06103A-54E3-4BC2-9BD6-5DB87D250A6E.jpeg
 
Dernière édition:
E

erwan56

Apprenti
Hum enlève moi d'un doute, car ta dernière phrase n'est pas bien claire
elle est bien configuré comme ca ta CN?
DC06103A-54E3-4BC2-9BD6-5DB87D250A6E.jpeg


Pour le palpeur il faut le brancher sur une entrée du csmio (pour ma part mon palpeur a 2 contacts, surement une sécuritée) j'ai donc mis ca en entrée 18 et 19
par défaut il y a un bouton en haut de simcnc "probing" qui permet de mesurer un outil. MAIS avant de l'utiliser il faut configurer les positions

pour ca il faut dans cimcnc cliquer sur MACRO > script editor > file > open >probing.py
la tu a une fenêtre de codage qui ouvre la macro de mesure écrite pour cs-lab, elle est faite pour une cnc avec un prob FIX mais peux quand meme fonctionner pour ta machine qui a la prob qui bouge.

de toute facon dans le script que je t'es écrit, quand dans ton Gcode tu aura un appelle de par exemple: T1, si celui si n'est pas mesuré alors il sera mesuré automatiquement


simcnc.png
 
Dernière édition:
J

Joscad49

Apprenti
Bonjour Erwan
Pour X et Y c est l inverse, le déplacement sur le portique est en Y et le déplacement du portique avant /arrière sur X.
J ai effectivement regardé le fichier probe, mais hier je n arrivait pas à imprimer…j ai vraiment du mal devant une ligne de code, c est loin d être spontané.
Ce matin, je vais câbler tout ça, je devrais aussi avoir mon capteur donc essais .
Il faut également que je cable les capteurs de la broche ainsi que ses commandes ; en effet j ai pour l instant tout laissé sur la carte d origine et me sert du bouton d éjection sur la broche pour changer d outil à la main.
Merci vraiment pour cette aide! Tu es un menuisier des temps modernes
Bonne journée
José
 
Dernière édition:
J

Joscad49

Apprenti
Hello Erwan
Pour le dernier fichier voici la réponse de SIM apres appuis sur play:




Traceback (most recent call last):

File "C:\Program Files\simCNC\profiles\AXYZ6012\scripts\___INIT.py", line 39, in <module>

exec(open(fileName, encoding='utf-8').read())

File "<string>", line 19, in <module>

NameError: name 'CA_speed' is not defined

Script C:/Program Files/simCNC/profiles/AXYZ6012/scripts/Essai Erwan 1.1.py execution error (Unknown error: 1).La position A de l'outil actuel est : 100.0

Traceback (most recent call last):

File "C:\Program Files\simCNC\profiles\AXYZ6012\scripts\___INIT.py", line 39, in <module>

exec(open(fileName, encoding='utf-8').read())

File "<string>", line 19, in <module>

NameError: name 'CA_speed' is not defined


Script C:/Program Files/simCNC/profiles/AXYZ6012/scripts/Essai Erwan 1.1.py execution error (Unknown error: 1).
Pour le premier fichier:


La position A de l'outil actuel est : 100.0

Traceback (most recent call last):

File "C:\Program Files\simCNC\profiles\AXYZ6012\scripts\___INIT.py", line 39, in <module>

exec(open(fileName, encoding='utf-8').read())

File "<string>", line 19, in <module>

NameError: name 'CA_speed' is not defined

Script C:/Program Files/simCNC/profiles/AXYZ6012/scripts/Essai Erwan 1.1.py execution error (Unknown error: 1).La position A de l'outil actuel est : 100.0

Traceback (most recent call last):

File "C:\Program Files\simCNC\profiles\AXYZ6012\scripts\___INIT.py", line 39, in <module>

exec(open(fileName, encoding='utf-8').read())

File "<string>", line 19, in <module>

NameError: name 'CA_speed' is not defined

Script C:/Program Files/simCNC/profiles/AXYZ6012/scripts/Essai Erwan 1.1.py execution error (Unknown error: 1).La position C de l'outil actuel est : 100.0

Traceback (most recent call last):

File "C:\Program Files\simCNC\profiles\AXYZ6012\scripts\___INIT.py", line 39, in <module>

exec(open(fileName, encoding='utf-8').read())

File "<string>", line 17, in <module>

NameError: name 'C' is not defined

Script C:/Program Files/simCNC/profiles/AXYZ6012/scripts/essais Erwan 1.py execution error (Unknown error: 1).



Rien ne se passe si ce n'est ces messages, lorsque je manipule C en manuel, il fonctionne correctement


A +
 
J

Joscad49

Apprenti
Bon diou, j'y arrive pas! que doit on renseigner dans configuration macro probing et comment dans la macro pour ne plus avoir systhématiquement le message qu'il faut configurer probe? un exemple peut être ou un lien vers une explication, rien trouvé dans le mode d'emploi
A+


###### BEGIN SETTINGS

#############################################

# probe index

probeIndex = 5

# probing start position [X, Y, Z]

probeStartAbsPos = [0, 0, -10]

# Axis Z probing end position (absolute)

zEndPosition = -125

# the absolute position of the Z axis of the probe contact for the reference tool

refToolProbePos = -120

# approach velocity (units/min)

vel = 7000

# probing velocity (units/min)

fastProbeVel = 500

slowProbeVel = 250

# lift up dist before fine probing

goUpDist = 5

# delay (seconds) before fine probing

fineProbingDelay = 0.2

# other options

moveX = True

moveY = True

checkFineProbingDiff = False

fineProbeMaxAllowedDiff = 0.1

#############################################

###### END SETTINGS
 
E

erwan56

Apprenti
Pour mon code dernière ligne j' ai remplacé le A_speed par C_speed. Sauf que je me suis trompé j' ai mis CA_speed

Pour la config prob je regarde ça dès que j' ai plus de temps
 
E

erwan56

Apprenti
2 solutions a ton problème de prob

1 - soit tu n'a pas supprimé le code qui empêche l'exécution du prob (sécurité pour ne pas lancer un script qui n'as pas les bonnes positions)


2eme option tu la bien supprimé mais pas au bonne endroit.

c'est ici qu'il faut le supprimer (dans le code)
C:\Program Files\simCNC\profiles\erwan-cnc\scripts\probing.py (rempalcer erwan-cnc pas ton profil que tu utilise)
Et non pas la
C:\Program Files\simCNC\python\defaultScripts\scripts\probing.py
 
Dernière édition par un modérateur:
E

erwan56

Apprenti
Pour génération futur qui lirons ce post.:smileyvieux:
j'ai mis en ligne sur GitHub le code pour le changement d'outil avec carrousel (sur simCNC) comme ca je pourrais le mètre a jour dans le temps.
vu qu'on peux plus editer un post sur usinage.com apres 24h..... :spamafote:


alors ce câblage il avance ?
 
J

Joscad49

Apprenti
Hello Erwan,
Ça avance doucement ; j ai galeré toute la journée pour comprendre comment le palpeur fonctionnait car , au surprise lorsque j ai fait le Probing en vrai… j ai cru que la fraise allait traverser la machine!

En fait lorsque j utilise une règle pour tester entre masse de la broche et dessus du palpeur, la procédure de palpage se déroule parfaitement. Mais en fait le cône et la fraise sont isolés de la masse, donc en vrai rien ne l arrête!
Du coup j ai chercher tout azimuts, rien trouvé qui connecte le cône à la masse, est ce normal je ne sais pas. La solution est bien sûr de modifier mon palpeur .
Sinon j ai bien identifié tous les fils venant de la broche, ses capteurs sont des PNP 24 volts donc parfait pour une liaison directe Csmio.
Super le partage du fichier !
Bonne journée
José
 
E

erwan56

Apprenti
alors moi le vendeur de la broche ma dit :
it's ceramic bearing, it could not use tool sensor.

j'ai pas compris le jour même, mais en fait c'est ca! la mèche est isolé du coup les palpeurs qui fonctionnent par contact des masses ne doivent pas fonctionner.
Ta broche a ptèt été remplacé et le palpeur n'a j'amais fonctionner...
 
Dernière édition:
J

Joscad49

Apprenti
Non pas remplacée et le palpeur fonctionnait très bien avec le contrôleur d origine. C est pour ça que j ai passé du temps à essayer de reproduire le fonctionnement hier mais sans succès ; c est vrai qu au début j ai cru à un cable coupé ou manquant mais après avoir tout testé non.
Je me doutais que c était les roulements, merci pour l info, ta broche à donc la même caractéristique.
Ce matin je vais câbler, j essaierai de comprendre plus tard pour le palpeur, dans un premier temps je vais utilisé un micro switch
 
J

Joscad49

Apprenti
Erwan
j'ai bien les numéros pour les valves de sorties( utilises tu un relais ou directement la sortie CSMIO pour commuter,)
Par contre je ne trouve pas tes numéros d'entrée pour tes capteurs de broche...suis je miro?
A+
José
 
E

erwan56

Apprenti
Pour le output J utilise des relais 24v branché sur le csmio. Le brancher en direct fonctionne aussi mais vu que c est des valve chinois je préfère cramer un relais plutôt qu un csmio.

Peux importe le numéro d entree pour la broche. C est dans le code pyton qu on indiquera quel entrée lire
 
J

Joscad49

Apprenti
Donc si je comprends pour l'instant pas d'entrée capteur nommée dans le programme, d'ou la raison que je ne les vois pas
 
E

erwan56

Apprenti
C est bien ça . Si une des petits lumières sur le scmio s'allume et ce coupe quand tu change d'outils c'est que c est bon.
 
Dernière édition:
J

Joscad49

Apprenti
Bonjour Erwan,

quelques petits problèmes
le référencement de l'axe c ne se fait pas correctement car à chaque vis de repérage, l'axe est considéré comme référence. c'est la je pense qu'il faudrait ce fameux système de comptage 8 plots et un supplémentaire situé avant( 3cm) l'outil n 4
Sinon j'ai réussi à faire un palpeur, l'autre marchait avec un système sensitif, je ne sais pourquoi il ne marche plus

j'attends aussi des relais de couplage 24v

Le système de probing fonctionne

Voilà les news

A +

José
 
E

erwan56

Apprenti
Humm effectivement.

Après moi je fait confiance à mon moteur en X au moment de descendre l'outil dans la table.
Ne devrait tu pas dégager toutes les vis noir et ne garder que la première pour faire le homming.

Compter c'est possible mais le problème c'est que il faut encore pouvoir différencier celle de départ des autres

Ou garder les vis noir d origine mais faire un perçage décalé avec un 2eme capteur pour le homming
 
J

Joscad49

Apprenti
Je pense que le système de teton dont deux plus rapprochés que les autres etait là pour blinder le positionnement ; effectivement on peut peut-être plus faire confiance à nos nouveaux logiciels mais il faut être sur qu en cas d intervention manuelle ou plantage lors d un travail que la machine se sécurise , il y a aussi un capteur sur le Y juste avant que la broche rentre dans le carrousel qui doit être là en sécurité, genre si un cône est en place interdit d aller plus loin.
La je vais faire les essais en augmentant l espace des huit tétons afin qu un seul référence l axe.
a+
José
 
E

erwan56

Apprenti
tu peux forcer simcnc a refaire un homming a chaques E-stop ,mais c'est plus fait pour les axes rapides qui peuvent parcourir quelques mm après le déclanchement du E-stop, normaleemnt pas besoin pour ton tourniquet.
 
J

Joscad49

Apprenti
Bon je vais jardiner, la je sais faire ! Seul la macro probing fonctionne.

Le code simple tourniquet me place toujours un numéro en moins, je demande 7 j obtiens 6, je demande 1 j obtiens 2 dans le cas où après le referencement, donc compteur à zéro tombé en face de outil n 1.
Enfin pour être plus clair, ça fonctionne à la main mais pas avec un referencement.
Je m expliqué, lorsque je référence donc c=0, dans cette position on est pile en face de 1, je rentre donc 0 en première mesure, là ça me décalé tout d un outil.
Si volontairement je cale le 1 sur une valeur genre 47, là cela fonctionne…
Pour le code changeur, si je le lance il m indique systématiquement( voir photo) et ne fait donc rien

Voilà le statut

image.jpg
 
Dernière édition:
E

erwan56

Apprenti
effectivement ligne 11 dans le code test tourniquet j'ai oublié deux ( ) dans le calcul
comme ca sa sera mieux normalement

ligne 11:
hold_tool_position_C = ((C_position_last_tool - C_position_first_tool) / (Tool_count - 1) )* (hold_tool) #calcul de l'écartement entre chaques rangement.

Edit : Ba non ca fonctionnait bien avant les ()

Re re édit. Et oui il faut -1 a la fin au calcul.

hold_tool_position_C = ((C_position_last_tool - C_position_first_tool) / (Tool_count - 1) )* (hold_tool - 1) #calcul de l'écartement entre chaques rangement.


pour le code complet deja je corrige ca et il y a un autre probleme j'tenvoi un message quand j'ai corrigé :)
 
Dernière édition:

Sujets similaires

R
Réponses
11
Affichages
1 265
Rico le bricolo
R
esloch
Réponses
107
Affichages
4 437
pascalp
P
Haut