Avant de commencer, assurez-vous que vos messages de démarrage ne contiennent aucune erreur ni aucun avertissement. Consultez le guide de dépannage pour obtenir de l'aide à ce sujet.
Commencez par des valeurs très conservatrices dans le fichier de configuration - des vitesses lentes et de grandes distances d'extraction. Une fois que tout fonctionne, vous pouvez affiner les valeurs.
Mettez homing_runs:
à 2 (par défaut). Cela permettra d'activer l'interrupteur à une vitesse de recherche, de reculer un peu, puis de l'activer à nouveau à une vitesse d'avance.
axes :
homing_runs : 2
Sous chaque axe, vérifiez que le paramètre « max_travel_mm » est exact. S'il est inférieur à la longueur réelle, l'axe risque de ne pas se déplacer suffisamment pour atteindre l'interrupteur.
x :
max_travel_mm : 1000.000000
Définissez les valeurs pour le homing. Tout peut être ajusté plus tard, mais la valeur la plus importante à obtenir pour le moment est positive_direction:
. Si vous effectuez le homing dans la direction positive de l'axe, mettez-la à true.
axes:
x:
homing:
cycle: 1
allow_single_axis: true
positive_direction: false
mpos_mm: 0.000000
feed_mm_per_min: 700.000000
seek_mm_per_min: 1000.000000
settle_ms: 250
seek_scaler: 1.100000
feed_scaler: 1.100000
Attribuez les broches à chaque moteur. Vous trouverez plus d'informations ici. Si vous avez des doutes sur l'attribut high : ou :low
, ne vous inquiétez pas. Plus loin dans l'organigramme, cela sera vérifié. Mettez pull_off_mm
à au moins 3 pour être sûr qu'il se retire de l'interrupteur après l'avoir activé suffisamment loin pour désactiver l'interrupteur.
axes:
x:
motor0:
limit_neg_pin: gpio.35:high
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 3.000000
Vous pouvez placer des interrupteurs de fin de course à l'extrémité positive ou négative de la course, ou aux deux extrémités. L'extrémité positive de la course est celle vers laquelle vous vous déplacez lorsque la position de l'axe augmente. Si vous vous déplacez de X0 à X10, vous vous déplacez dans le sens positif.
En règle générale, l'extrémité négative de l'axe X se trouve sur le côté gauche et l'extrémité positive sur le côté droit. L'extrémité positive de l'axe des X se trouve généralement à gauche et l'extrémité positive à droite. L'axe Z positif correspond au sommet.
Vous pouvez attribuer des interrupteurs aux extrémités à l'aide de ces mots clés. Ils sont attribués au niveau du moteur dans le fichier de configuration, car un axe avec 2 moteurs nécessitera des interrupteurs définis séparément pour chaque moteur. Utilisez NO_PIN pour un interrupteur qui n'est pas présent.
limit_neg_pin :
limit_pos_pin :
limit_all_pin :
Le paramètre limit_all_pin:
est utilisé lorsqu'un interrupteur est placé aux deux extrémités, mais connecté à une seule broche d'entrée. Ces interrupteurs peuvent être câblés en série ou en parallèle, selon le type d'interrupteur. Si un limit_all_pin:
est déclenché, FluidNC ne saura pas quelle extrémité a été activée. Cela fonctionnera normalement dans tous les cas de figure, sauf si un interrupteur est déclenché avant le départ. FluidNC ne sait pas de quel côté se déplacer pour libérer l'interrupteur. Vous devez effacer manuellement l'interrupteur avant le départ.
En règle générale, vous pouvez utiliser...
Vous ne pouvez pas utiliser un commutateur « all » avec d'autres commutateurs.
Chaque moteur est indépendant et vous pouvez choisir la meilleure disposition pour ce moteur.
Vous pouvez utiliser des interrupteurs N.O. ou N.C.. Les deux nécessitent une résistance de tirage pour l'état ouvert. L'état fermé a une impédance plus faible parce que l'état ouvert utilise une résistance pour régler la tension et que l'état fermé est une connexion directe. Cela signifie que l'état N.C. est moins susceptible de se déclencher faussement à cause du bruit en fonctionnement normal.
Le câblage des interrupteurs N.C. est également plus sûr. Une rupture de circuit indique généralement l'état actif.
Le quadrillage de l'axe utilise un interrupteur sur chaque moteur pour quadriller l'axe pendant le homing. Il nécessite 2 moteurs et une entrée d'interrupteur séparée pour chaque côté. S'il voit cela dans le fichier de configuration, l'équerrage sera utilisé. 2 interrupteurs séparés permettent une méthode sans stress. Aucun côté ne bougera sans l'autre si ce n'est pas nécessaire. Si votre axe démarre à l'équerre, il ne sera jamais sorti de l'équerre (stressé) pendant l'équerrage.
La méthode ci-dessus suppose que vos interrupteurs sont montés à l'équerre. C'est certainement la configuration idéale. Si ce n'est pas le cas, vous pouvez utiliser les paramètres pulloff_mm : dans le fichier de configuration pour compenser cela. Il s'agit de l'ampleur de l'inversion du moteur après avoir touché l'interrupteur. En utilisant des valeurs différentes pour chaque moteur, vous pouvez compenser les interrupteurs mal alignés.
Il est très important de ne pas mélanger les interrupteurs et les moteurs. Le moteur 0 doit activer ses interrupteurs et le moteur 1 doit activer les siens, sinon vous obtiendrez des plantages.
Il est préférable de définir stepping/idle_ms : 255. Cela empêchera les moteurs de se désactiver pendant l'état d'inactivité. Les machines qui ont besoin d'être équerres ont tendance à se déséquilibrer lorsque les moteurs sont désactivés.
Cette option est prise en charge, mais l'axe ne s'équarrissera pas automatiquement pendant le homing. L'interrupteur peut être placé du côté du moteur 0 ou du moteur 1.
Après qu'un axe ait été déplacé, sa position machine est fixée à la valeur mpos_mm:
. Typiquement, si vous vous déplacez dans positive_direction : false
, vous mettrez mpos_mm : 0
. Dans le cas contraire, la valeur mpos_mm:
correspondra à la longueur de la course. Si votre max_travel_mm:
était de 1000, dans les deux cas votre plage serait de 0 à 1000.
axes :
x :
homing :
mpos_mm : 0.000
Vous êtes libre de fixer la valeur à n'importe quel nombre. Cela vous permet de définir une plage dans un espace positif ou négatif. Vous trouverez plus de détails sur [cette page wiki] (http://wiki.fluidnc.com/en/support/machine_space_and_homing).
Nous utilisons le terme "actif » pour désigner l'état de l'interrupteur lorsque la limite est atteinte, que vous utilisiez un interrupteur normalement ouvert, normalement fermé, normalement logique haut ou bas, etc.
Mettez le niveau de messagerie à debug avec $Message/Level=Debug
. Cela permet d'afficher beaucoup d'informations supplémentaires. 1 signifie actif et 0 signifie inactif.
Activez manuellement chaque interrupteur tout en observant la sortie de la console. Chaque interrupteur doit s'afficher dans la console lorsqu'il est actif. Si vous avez des axes avec 2 moteurs, assurez-vous que les deux interrupteurs de moteur s'affichent lorsqu'ils sont actifs et qu'ils sont associés au bon moteur0 ou au bon moteur1.
$Message/Level=Debug
[MSG:DBG: X Neg Limit 1]
[MSG:DBG: Limit switch tripped for X motor 0]
[MSG:DBG: X Neg Limit 0]
[MSG:DBG: X Neg Limit 1]
[MSG:DBG: Limit switch tripped for X motor 0]
[MSG:DBG: X Neg Limit 0]
[MSG:DBG: Y Pos Limit 1]
[MSG:DBG: Limit switch tripped for Y motor 0]
[MSG:DBG: Y Pos Limit 0]
[MSG:DBG: Z Pos Limit 1]
[MSG:DBG: Limit switch tripped for Z motor 0]
[MSG:DBG: Z Pos Limit 0]
$Message/Level=Info
ok
N'oubliez pas de remettre le niveau de message à info avec $Message/Level=Info
une fois que vous avez fini de configurer la machine. Trop d'informations de débogage peuvent ralentir le système et éventuellement entraîner des problèmes de mouvement.
Il peut s'agir d'un problème de configuration, de câblage ou de matériel. Essayez d'utiliser un voltmètre sur la broche de signal pour voir si l'état change réellement.
Si un interrupteur est actif lorsqu'il n'est pas touché et inactif lorsqu'il est touché, vous devez inverser l'attribut :low
ou :high
(par défaut).
Voir cette page pour vous assurer que vos moteurs déplacent les axes dans la bonne direction avant d'essayer d'effectuer le centrage.
Lors des tests, prévoyez un moyen d'arrêter la machine en cas d'imprévu. Soyez prêt à arrêter la machine en coupant l'alimentation ou en réinitialisant FluidNC.
Vérifiez qu'aucun commutateur n'est actif avant de démarrer le homing.
Vérifier la valeur de positive_direction:
.
S'il se déplace de la distance pulloff_mm:
dans la mauvaise direction et provoque une alarme 8 (Homing Fail Pulloff), l'interrupteur était probablement actif lorsque vous avez effectué le homing, mais le déplacement n'a pas effacé l'interrupteur. L'interrupteur semble être bloqué dans l'état actif.
max_travel_mm
si la valeur est suffisamment longue.Un problème courant est que les interrupteurs sont sur les mauvais moteurs. Le côté Motor0 se déplace dans l'interrupteur pour Motor1. Il désactive alors le mauvais moteur pour la mise en équation automatique et l'autre moteur continue, mais ne peut jamais se déplacer vers son interrupteur. Vérifiez à nouveau les interrupteurs dans cette étape ou essayez d'intervertir les broches dans le fichier de configuration.
FluidNC ne peut pas retirer un fin de course actif s'il ne sait pas quelle extrémité est active. Il y a deux cas de figure.
limit_all_pin:
FluidNC ne sait pas quelle extrémité doit être retirée.limit_neg_pin:
et limit_pos_pin:
sont actives, FluidNC ne sait pas quelle extrémité doit être retirée.Vous devez effacer l'interrupteur avec un jog ou un mouvement manuel.
Si vous obtenez un comportement étrange, il se peut que vous ayez besoin de résistances pull up ou pull down. Des résistances externes de l'ordre de 3k-10k fonctionnent bien. Vous pouvez également appliquer des résistances ESP32 à de nombreuses broches dans le firmware avec les :pu ou :pd pin attribute. C'est une bonne pratique de mettre ces attributs dans votre fichier de configuration, même si vous avez des tirettes externes, afin que les personnes qui lisent votre fichier le sachent. Les pullups externes sont plus fiables que les pullups internes car les pullups internes d'un ESP32 sont d'une valeur trop élevée pour une bonne immunité au bruit.
Les limites strictes utilisent des interrupteurs pour limiter le mouvement. Si un axe en mouvement heurte un interrupteur et que les limites strictes sont activées, le mouvement s'arrête immédiatement et déclenche une alarme.
Les limites souples utilisent la plage de la machine pour limiter les mouvements. Si vous essayez de vous déplacer en dehors de la plage, la commande est rejetée et une alarme est émise. La plage de chaque axe est indiquée dans les messages de démarrage.
[MSG:INFO : Axe Y (0.000,1000.000)]]]
Les limites souples ne fonctionnent correctement qu'une fois que l'axe a été placé en position initiale, parce qu'il doit connaître la position actuelle pour déterminer si le mouvement sort de la plage de déplacement. Si vous essayez d'effectuer un jogging jusqu'à un point situé en dehors de la plage de déplacement, le jogging se limitera à la fin.
Si vous le pouvez, préférez les limites souples aux limites strictes. Les limites souples permettent d'éviter les problèmes avant qu'ils ne surviennent.