Suivez cette procédure pour configurer et déboguer le mouvement sur une nouvelle machine FluidNC.
Avant de commencer à tester le mouvement, assurez-vous que les messages de démarrage ne contiennent pas d'erreurs ni d'avertissements. Consultez le guide de dépannage pour obtenir de l'aide à ce sujet.
Cliquez sur une case pour obtenir plus d'informations. Vous pouvez également utiliser la barre de navigation latérale pour accéder aux différentes sections.
Réglez idle_ms à 255 pour que les steppers restent activés. (Plus tard, lorsque tout fonctionnera, vous pourrez fixer idle_ms à une valeur différente pour que les moteurs ne soient pas toujours activés, si cela convient à votre machine).
Commencez par des valeurs acceleration_mm_per_sec2 lentes, par exemple 20
Commencez par des valeurs lentes max_rate_mm_per_min, par exemple 1000
En utilisant FluidTerm, envoyez G91 G0 pour activer le mode incrémental, de sorte que vous puissiez facilement vous déplacer dans les deux sens.
X10 pour déplacer l'axe X vers l'avant de 10 mm
X-10 pour déplacer l'axe X vers l'arrière de 10 mm
Y10 pour avancer l'axe Y de 10 mm
When a stepper motor is powered, it will be difficult or impossible to turn by hand. This is called “motor lock”. Conversely, if the motor is unpowered - either as a result of the driver not having power or the driver’s enable signal in inactive - it is usually fairly easy to manually rotate the motor shaft.
When a motor goes from the unlocked to locked state, you can often hear a “thunk” sound. A locked stepper motor will also usually be warm to the touch.
For an external stepper driver, the “enable” signal is usually actually a “disable”. If you do not connect anything to the ENA input of an external stepper driver, the motor will lock.
If a motor is not locked, there are several possibilities
Il faut tester le verrouillage en essayant de faire tourner les moteurs dans les états de verrouillage ET de déverrouillage. Ignorez les réponses textuelles de FluidNC. Il s'agit simplement de vous montrer ce que FluidNC essaie de faire. De plus, certains moteurs sous charge émettent un « bruit sourd » lors des transitions de verrouillage et de déverrouillage, il ne faut donc pas s'en servir pour déterminer l'état de verrouillage.
If you have external stepper drivers and their ENA input is not connected, the steppers should lock whenever power is applied to the drivers. Some external drivers have a “charge pump” safety feature that can be disabled with a switch. If so you should disable that feature.
Stepstick driver modules and onboard driver chips usually have an enable line that FluidNC can control. Some controllers have one such line that disables all of the drivers as a group - see shared_stepper_disable_pin. Other controllers have separate lines so each driver can be controlled individually - see disable_pin . In typical use, FluidNC will automatically enable the drivers before starting any motion, and then after motion has stopped for a configurable amount of time - see idle_ms - they will be disabled. If idle_ms is 255, FluidNC will leave them enabled all the time unless you use $MD to disable them manually.
You can manually disable the drivers by sending or manually enable with $ME. If $MD enables and $ME disables, the polarity of the corresponding enable line is wrong.
Si un moteur pas à pas émet des cliquetis au lieu de se déplacer, la cause habituelle est qu'il essaie d'aller trop vite. Les causes possibles sont les suivantes :
Si un moteur pas à pas se bloque mais ne bouge pas silencieusement, c'est généralement parce que le signal de pas (parfois appelé PUL pour impulsion) n'arrive pas au pilote.
step_pin pourrait avoir une valeur incorrecte
pulse_us peut être trop faible. C'est rarement un problème pour les pilotes embarqués ou de type « steptick », mais cela peut être un problème avec les pilotes externes, en particulier les plus anciens qui utilisent des modules TB6560.
Mauvais câblage de l'entrée PUL d'un pilote externe
PUL et DIR sont intervertis
Voir Testing Step Pins pour une façon de tester les broches Step et Direction.
Si, par exemple, vous avez demandé de déplacer X mais que Y s'est déplacé à sa place, vous devez intervertir les axes X et Y.
Option 1 - Intervertir les câbles des moteurs X et Y
Option 2 - Dans le fichier de configuration yaml, remplacer l'étiquette « x : » par « y : », et vice versa
Option 3 - Dans le fichier de configuration yaml, intervertir les valeurs step_pin :, direction_pin :, et éventuellement disable_pin : entre les sections x : et y :.
Option 1 - Intervertir une paire de fils dans le câble pas à pas - comme ceci
Option 2 - Dans le fichier de configuration yaml, trouvez le direction_pin : pour l'axe qui va en arrière. Ajoutez ou supprimez :low de la valeur. Par exemple, s'il est indiqué direction_pin : gpio.12, remplacez-le par direction_pin : gpio.12:low. Inversement, s'il est déjà indiqué gpio.12:low, remplacez-le par gpio.12.
Référence
Si l'axe ne se déplace que dans une direction, la raison la plus fréquente est un problème avec le signal de direction envoyé au pilote du stepper. Les possibilités sont les suivantes :
Une autre possibilité est une mauvaise connexion entre le pilote pas à pas et le moteur, de sorte qu'une seule des deux bobines du moteur est alimentée. La manifestation la plus courante de ce problème est que la direction est erratique, changeant aléatoirement de sens, mais cela peut parfois être confondu avec une direction unique.
La quantité de mouvement de l'axe pour chaque impulsion envoyée au pilote du moteur pas à pas est contrôlée par steps_per_mm . Il est affecté par le système mécanique (pas de vis, taille des poulies, etc.) et par le réglage « microstepping » du pilote. Si vous comprenez comment tout cela fonctionne, vous pouvez calculer la valeur correcte de steps_per_mm . Sinon, vous pouvez simplement modifier steps_per_mm jusqu'à ce que cela fonctionne. Si vous avez demandé un déplacement de 10 mm mais qu'il s'est en fait déplacé de 5 mm, vous devrez doubler la valeur de steps_per_mm. En général, il faut multiplier steps_per_mm par le facteur expected_distance / actual_distance .
Une fois qu'un axe se déplace de manière fiable, en suivant la distance et la direction spécifiées, vous pouvez ajuster acceleration_mm_per_sec2 et max_rate_mm_per_min pour le faire aller plus vite. Une procédure de test pratique consiste à régler max_rate_mm_per_min sur une valeur très élevée, puis à utiliser les mouvements G1 Fnnn pour tester des vitesses spécifiques, puis, lorsque vous avez trouvé une bonne vitesse de pointe, à régler max_rate_mm_per_min sur cette valeur limite.
Lorsque l'accélération est faible, la machine risque de ne pas atteindre sa vitesse maximale avant la moitié de la distance, et elle passera alors à la décélération sans jamais atteindre sa vitesse de croisière. Sur les longues distances, augmentez l'accélération jusqu'à ce que les moteurs calent au début de la phase d'accélération. Réduisez ensuite l'accélération pour éviter le décrochage et commencez à augmenter la vitesse.
Lorsque vous avez déterminé la vitesse de déplacement de votre machine, effectuez des tests avec des charges, en particulier pour les machines dont les broches peuvent être soumises à des charges latérales. Vous devrez diminuer la vitesse maximale de manière à ce qu'elle ne décroche pas dans toute situation raisonnable. Gardez à l'esprit qu'avec le temps, les choses s'aggravent en raison des conditions de lubrification, de l'usure, des débris, de la température, etc. Laissez-vous une marge de manœuvre en utilisant des paramètres prudents.