¶ ¶ Broches
Il supporte plusieurs broches sur une machine. Les broches peuvent être commandées par différentes interfaces matérielles comme les relais, PWM, DAC, ou RS485 interfaces série à VFD. Les lasers sont traités comme des broches.
Chaque broche se voit attribuer une gamme de numéros d'outils. Vous changez les broches en émettant la commande GCode « M6 Tn », avec le numéro de l'outil. Les numéros d'outil dans la plage assignée pour une broche donnée activeront cette broche et le numéro détaillé dans la gamme pourrait être utilisé pour sélectionner l'outil spécifique sur la broche. Cela vous permet, par exemple, d'avoir une seule machine avec une broche ATC et un laser. Un seul fichier GCode pourrait vous permettre de graver et de découper une partie. Vous pourriez également avoir un portique avec à la fois une broche à poulie à haut couple à basse vitesse et une broche à entraînement direct à haute vitesse.
¶ ¶ 0-10V

0-10V commande est conçue pour les contrôleurs de broche qui ont une entrée de commande 0-10V ainsi que des broches séparées pour l'avant et le sens inverse. Le ESP32 ne peut pas générer directement un signal 0 to 10V, mais certains contrôleurs de l'ENC ont un circuit adaptateur qui génère une tension analogique 0 to 10V à partir d'un ESP32 GPIO impulsé avec une forme d'onde de modulation de largeur d'impulsion (PWM). Le type de broche PWM de base peut également être utilisé avec de tels adaptateurs matériels, mais il ne supporte pas de broches de direction avant et arrière séparées. Si vous n'avez pas besoin de ce style de contrôle de direction, vous pouvez utiliser le type de broche PWM.
-
- Type : Pin
- Gamme : gpio ou i2so
- Par défaut : NO_PIN
- Détail : Ceci est utilisé pour signaler la rotation avant si vous avez des broches séparées pour l'avant et l'inverse. Il peut rester allumé après M5, mais s'éteint après M4.
-
- Type : Pin
- Gamme : gpio ou i2so
- Par défaut : NO_PIN
- Détails : Ceci est utilisé pour signaler la rotation inverse si vous avez des broches séparées pour l'avant et l'inverse. Il peut rester allumé après M5, mais s'éteint après M3.
-
- Type : Entier
- Plage : 1 à 20000000
- Par défaut : 5000
- Détails : C'est la fréquence du signal PWM. La précision (nombre de bits) du signal PWM est basée sur la fréquence. 20000000 ne vous donnera que 4 bits de précision. Chaque fois que vous divisez le pwm_freq par 2, vous obtenez un autre peu de précision.
-
- Type : Pin
- Gamme : gpio
- Par défaut : NO_PIN
- Détails : C'est la broche que le signal PWM de sortie est mis sur. Il s'éteint avec M5. La valeur 0_with_disable peut affecter cette broche
-
- Type : Pin
- Gamme : gpio ou i2so
- Par défaut : NO_PIN
- Détails : Cette broche peut être utilisée comme broche de validation. La valeur disable_with_s0 peut affecter cette broche.
-
- Type : Pin
- Gamme : gpio ou i2so
- Par défaut : NO_PIN
- Détails :
-
- Type : Booléen
- Défaut : faux
- Détails : Par défaut, la désactivation est contrôlée par M5. Si vous voulez également qu'il désactive lorsque la vitesse est réglée à 0 (S0), définissez ceci à true.
-
- Type : Booléen
- Par défaut : true
- Détails : Par défaut, le signal de vitesse est contrôlé par la valeur de vitesse. Il restera allumé même en mode M5. Si vous voulez qu'il passe à la valeur S0 avec M5, définissez ceci à true.
-
- Type : Entier
- Plage : 0 à 20000 (millisecondes)
- Par défaut : 0
- Détails : C'est le temps qui sera donné pour que la broche tourne jusqu'à un régime maximal tel que défini dans la carte de vitesse. Le gcode suivant le changement de vitesse attendra que la rotation soit terminée. Le temps est proportionnel au changement de régime. Si le changement de RPM n'est que la moitié de la pleine échelle, le retard ne sera que la moitié de la valeur spinup_ms.
-
- Type : Pin
- Plage : 0 à 255
- Par défaut : 0
- Détails : Cela définit la gamme de numéros d'outils pour cette broche. Si vous avez plusieurs broches, vous devez configurer une plage pour les deux broches. Lorsque vous spécifiez un numéro d'outil avec la commande gcode M6 Tnnn, il passera à l'outil qui couvre cette plage. La valeur maximale est 255. Voir plus ici
- Avec 1 Broche : Peu importe quelle est la valeur, mais définissez-la à 0.
- Avec plusieurs broches : Réglez la première broche à 0 et les autres broches à des valeurs plus élevées. Chaque broche devrait avoir un numéro unique. Si vous avez une broche relais avec tool_num : 0 et un laser avec tool_num : 100, tous les numéros d'outils de 0 à 100 utiliseront le relais et tous les numéros d'outils de 100 à 255 utiliseront le laser. Envoyez M6T100 pour utiliser le laser.
-
- Type : Pin
- Détails : Cela vous permet d'affiner les vitesses. Vous pouvez linéariser le RPM vs. PWM sur toute la gamme et vous pouvez définir des vitesses minimales. C'est une fonctionnalité très complète qui a sa propre page.
-
- Type : Booléen
- Par défaut : false (fonctionne comme Grbl standard)
- Détails : Le fait de mettre cela à vrai va éteindre la broche chaque fois qu'une alarme se produit. Si vous utilisez une porte de sécurité, vous pouvez activer cela parce que la fonction de stationnement ne fonctionne pas en mode alarme.
10V: forward_pin: gpio.13 reverse_pin: gpio.17 pwm_hz: 5000 output_pin: gpio.4 enable_pin: NO_PIN direction_pin: NO_PIN disable_with_s0: false s0_with_disable: true spinup_ms: 0 spindown_ms: 0 tool_num: 0 speed_map: 0=0.000% 1000=0.000% 24000=100.000% off_on_alarm: false
¶ ¶ Huanyang Registres pour le contrôle 0-10V
- PD001 (Source des commandes d'exécution) Valeur 1 : (Terminal externe)
- PD002 (Source de fréquence) Valeur 1 : (Potentiomètre externe)
¶ ¶ CAD
Le CAD utilise les ESP32 intégrés dans le matériel du CAD. Cela ne peut être utilisé que sur gpio.25 et gpio.26. Il délivre une tension analogique 0-3.3V (non PWM). Dans la plupart des cas, un PWM sera meilleur. La résolution DAC est de seulement 8 bits (0-255) et un PWM peut être jusqu'à 16 bits (0-65535).
DAC: output_pin: gpio.25 enable_pin: NO_PIN direction_pin: NO_PIN disable_with_s0: false s0_with_disable: true spinup_ms: 0 spindown_ms: 0 tool_num: 100 speed_map: 0=0.000% 255=100.000% off_on_alarm: false
¶ ¶ Utilisation de RS485 pour contrôler les broches
Les cartes adaptatrices UART to RS485 sont peu coûteuses et fonctionnent généralement en courant continu 3.3V ou 5V.
Vous devez spécifier les paramètres UART dans une uart_section du fichier config. Nous vous recommandons fortement de spécifier ceci comme un séparé
uart<number>
et se référer au numéro UART dans la configuration de votre broche en utilisantuart_num
. L'ancienne façon de spécifier les paramètres UART à l'intérieur de la section broche ne vous a pas permis de définir le numéro UART et pourrait causer des conflits si vous définissiez plusieurs UART.uart1: txd_pin: gpio.14 rxd_pin: gpio.15 rts_pin: gpio.13 baud: 9600 mode: 8N1
rts_pin
est utilisé pour le contrôle de la direction des communications. Certaines puces d'adaptateur RS485 contrôlent automatiquement la direction et n'ont pas besoin d'unrts_pin
.Vous devriez alimenter votre adaptateur RS485 avec 3.3v. Sinon, les signaux de retour vers le ESP32 pourraient être endommagés.
¶ ¶ RS485 Câblage
RS485 terminaux peuvent être étiquetés A et B ou + et -. Typiquement (A se connecte à -) et (B se connecte à +), mais beaucoup de gens ont trouvé que les 2 fils doivent être échangés. Souvent, il y a un fil de terre. La plupart des gens ont plus de chance sans connexion au sol entre le contrôleur et VFD. RS485 est un signal différentiel, il n'a donc pas besoin de référence au sol.
Vous devriez utiliser une paire de fils torsadés de 20 à 22 AWG. Si le câble est blindé connectez le fil de blindage à la masse à une extrémité seulement.
¶ ¶ LED
Si vous avez Tx et Rx LED côté contrôleur, Tx devrait clignoter quelques fois par seconde. La LED Rx devrait clignoter juste après. Il le fait si rapidement qu'ils peuvent sembler cligner en même temps. Si la LED Rx reste allumée, essayez d'échanger A et B à l'extrémité du contrôleur.
¶ ¶ Lecteurs de fréquences variables (VFD) contrôlés avec RS485
Ces broches sont commandées par une liaison RS485. Ajoutez une définition de haut niveau pour l'un des modèles VFD pris en charge à votre fichier config :
Huanyang
YL620
H100
H2A
NowForever
- Danfoss VLT 2800
- Siemens v20
VFD contrôlés avec RS486 sont un peu plus compliqués à mettre en place par rapport au contrôle PWM, mais ils offrent plusieurs avantages. Ils surveillent constamment la broche. S'il apparaît que la broche ne fonctionne pas à la vitesse spécifiée, le travail sera arrêté. Il est important que le VFD soit entièrement activé avant que le ESP32 ne soit activé. Certains prennent plusieurs secondes avant d'être prêts à communiquer. Ne pas faire le cycle de puissance du VFD lorsque le ESP32 est allumé. Il peut interrompre les communications et causer des problèmes.
Nous recommandons le Huanyang VFD pour les nouveaux utilisateurs. Les développeurs de micrologiciels de l'entreprise ont ce VFD et peuvent aider à déboguer les problèmes. Nous ne pouvons pas trop aider avec les autres types.
La plupart des VFD peuvent également être commandés par un signal 0-10V. Cette méthode est plus facile à déboguer par de nouveaux utilisateurs avec un voltmètre simple.
La plupart des problèmes sont dus à des problèmes de matériel, de câblage ou de configuration VFD. Vérifiez le câblage RS485. Essayez d'échanger les lignes de données. Parfois, il fonctionne mieux sans le fil de terre. Assurez-vous que les paramètres VFD sont réglés correctement et que le RS485 est la source de contrôle primaire. RS485 peut être délicat et les développeurs de l'entreprise refuseront probablement d'aider avec du matériel bon marché et le câblage hacky.
VFD RS485 Message sans réponse Ceci est normal si votre VFD n'est pas connecté, pas alimenté ou connecté correctement. RS485 peut être compliqué pour les non-ingénieurs. Nous ne pouvons pas vous aider à corriger cela gratuitement (donnez sérieusement gros avant de demander). Veuillez lire l'Internet sur comment RS485 fonctionne et comment le câbler.
¶ ¶ La meilleure façon de commencer.
-
Faites fonctionner votre VFD et votre broche en mode de contrôle manuel. Il n'est pas logique d'essayer RS485 jusqu'à ce que vous sachiez que le VFD fonctionne correctement. Testez tout, comme min RPM, max RPM, tournez vers le haut et vers le bas, en avant et en arrière.
-
Branchez votre adaptateur RS485 au VFD. Les appareils sont généralement étiquetés avec les symboles A et B ou + et -. Câblez les mêmes symboles ensemble. Si vous avez A/B à une extrémité et +/- à l'autre, A va à - et B va à +. Fil de terre à terre.
-
Si les choses ne fonctionnent pas, essayez de changer les fils A/B ou +/- à une extrémité. Si cela ne fonctionne pas, essayez d'enlever le fil de connexion au sol avec les deux combinaisons du câblage A/B, +/-.
-
Vérifiez que vous êtes en mode contrôle RS485. Vérifiez que les réglages de taux baud correspondent à chaque extrémité.
¶ ¶ Huanyang VFD avec RS485
C'est le Huanyang VFD standard (tous les niveaux de puissance). Les numéros de pièces commencent par Hy, comme HY02D223B-T. Le contrôle est via RS485.
Les registres VFD doivent être mis en place avant leur utilisation. Il ne changera aucun des registres. Lisez votre documentation VDF sur la façon de le faire. Voici quelques valeurs typiques qui fonctionnent pour la plupart des broches.
Register Value Description PD001 2 RS485 Control of run command PD002 2 RS485 Control of frequency PD004 400.00 Base frequency as rated on spindle PD005 400.00 Maximum frequency Hz (400Hz * 60sec/min = 24000rpm) PD011 100.00 Minimum speed in Hz (Typ. Air cooled 120, Water cooled 100) PD014 6.0 Acceleration time in seconds PD015 6.0 Deceleration time PD023 1 Enable reverse PD141 220.0 Spindle Voltage PD142 3.7 Max current (typ. 0.8kw=3.7) PD143 2 Poles PD144 3000 Revolutions at 50Hz PD163 1 RS485 Modbus address PD164 1 Baud rate of 9600 PD165 3 RS485 Mode RTU, 8N1 Les vitesses min et max définies dans le VFD seront affichées dans les messages de démarrage. Ils peuvent être diffusés à travers les messages, parce qu'ils viennent d'une tâche distincte.
[MSG:INFO: Huanyang PD005,PD011 Freq range (100,400) Hz (6000,24000) RPM] [MSG:INFO: Huanyang PD144 Rated RPM @ 50Hz:3000] [MSG:INFO: Huanyang PD143 Poles:2] [MSG:INFO: Huanyang PD014 Accel:6.000] [MSG:INFO: Huanyang PD015 Decel:6.000]
Une vitesse minimale est typique avec les broches VFD car elles manquent de puissance et peuvent surchauffer à des vitesses plus faibles. Un bon réglage de linéarisation de vitesse pour les valeurs ci-dessus serait...
speed_map: 0=0% 0=25% 6000=25% 24000=100%
La vitesse minimale de 6000 est de 25 % de la vitesse maximale de 24000. Ce réglage signifierait que toutes les valeurs comprises entre 0 et 6000 donneraient toujours 6000 RPM.
Vérifiez la documentation de votre adaptateur RS485 pour connaître les méthodes de câblage et les connexions appropriées. Voici quelques informations sur le module RS485.
uart1: txd_pin: gpio.14 rxd_pin: gpio.15 rts_pin: gpio.13 baud: 9600 mode: 8N1 Huanyang: uart_num: 1 modbus_id: 1 tool_num: 0 speed_map: 0=0% 0=25% 6000=25% 24000=100% off_on_alarm: false
Le VFD fournit de la rétroaction à l'Entremise NC. Nous nous en servons pour nous assurer que la broche tourne à la bonne vitesse. Si elle ne fonctionne pas à la vitesse demandée, elle s'arrête avec une alarme après quelques secondes. Cela pourrait être dû à de nombreuses raisons. Une raison est que le VFD a un réglage de fréquence max et min. Si vous demandez une vitesse inférieure au min, elle fonctionnera au minimum. La même condition s'applique au maximum. Par conséquent, si vous demandez une vitesse supérieure à 0, mais en dehors de la plage. La vitesse déclarée ne correspondra pas à votre vitesse demandée et s'arrêtera. Vous recevrez un message d'avertissement sur la console série pourquoi cela se produit. Ce problème peut être résolu en utilisant le bon type de speed_map.
¶ ¶ YL620 (RS485)
YL620 est un VFD chinois fabriqué par Yalang.
Ils peuvent être contrôlés par 0-10V analogique ou par RS485 (Modbus).
Les registres VFD doivent être mis en place avant leur utilisation. Il ne changera aucun des registres. Lisez votre documentation VFD sur la façon de le faire. Voici quelques valeurs typiques qui fonctionnent pour la plupart des broches.
Les valeurs de Hz données ci-dessous indiquent la fréquence qui est envoyée au moteur.
Moteur à 2 pôles tournera une fois par Hz, donc pour obtenir RPM vous multipliez Hz (cycles/sec) fois
60 (sec/min). Donc un moteur à 2 pôles à 400 Hz tourne à 400 * 60 = 24 000 RPM nominalement.
pratique, il fonctionnera un peu plus lentement en raison d'un facteur réel appelé « glissement ».
le moteur nominal pourrait effectivement fonctionner à 23 500 sans charge et 23 000 tr/min sous charge.Register Value Description P00.00 4000 Main frequency in deci-HZ - 4000 is 400.0 Hz P00.01 3 Command Source. 3 is for control via RS485 P03.00 3 RS485 Baud Rate. 3 is for 9600 P03.01 1 Modbus Address. Typically you want to use 1. P03.02 2 RS485 Data format. 2 is 8 data bits, 1 stop bit, no parity P03.08 1000 Lowest frequency in deci-Hz - 1000 is 100.0Hz Une vitesse minimale est typique avec les broches VFD car elles manquent de puissance et peuvent surchauffer à des vitesses plus faibles. Un bon réglage de linéarisation de vitesse pour les valeurs ci-dessus serait...
speed_map: 0=0% 0=25% 6000=25% 24000=100%
La vitesse minimale de 6000 est de 25 % de la vitesse maximale de 24000. Ce réglage signifierait que toutes les valeurs comprises entre 0 et 6000 donneraient toujours 6000 RPM.
Vérifiez la documentation de votre adaptateur RS485 pour connaître les méthodes de câblage et les connexions appropriées. Voici quelques informations sur le module RS485.
uart1: txd_pin: gpio.14 rxd_pin: gpio.15 rts_pin: gpio.13 baud: 9600 mode: 8N1 YL620: uart_num: 1 modbus_id: 1 tool_num: 0 speed_map: 0=0% 0=25% 6000=25% 24000=100% off_on_alarm: false
Notes importantes La VFD fournit de la rétroaction à la VFD. Nous nous en servons pour nous assurer que la broche tourne à la bonne vitesse. Si elle ne fonctionne pas à la vitesse demandée, elle s'arrête avec une alarme après quelques secondes. Cela pourrait être dû à de nombreuses raisons. Une raison est que le VFD a un réglage de fréquence max et min. Si vous demandez une vitesse inférieure au min, elle fonctionnera au minimum. La même condition s'applique au maximum. Par conséquent, si vous demandez une vitesse supérieure à 0, mais en dehors de la plage. La vitesse déclarée ne correspondra pas à votre vitesse demandée et s'arrêtera. Vous recevrez un message d'avertissement sur la console série pourquoi cela se produit. Ce problème peut être résolu en utilisant le bon type de speed_map.
¶ ¶ H100 (RS485)
Les numéros de pièces ressemblent généralement à H100-xxx.
Les registres VFD doivent être mis en place avant leur utilisation. Il ne changera aucun des registres. Lisez votre documentation VDF sur la façon de le faire.
Les sections les plus pertinentes sont les suivantes :
F011 (fréquence min)
F005 (fréquence max)
Les vitesses min et max définies dans le VFD seront affichées dans les messages de démarrage. Ils peuvent être diffusés à travers les messages, parce qu'ils viennent d'une tâche distincte.[MSG : INFO : VFD : Vitesse maximale : 24000rpm]
[MSG : INFO : VFD : Vitesse min : 6000rpm]Une vitesse minimale est typique avec les broches VFD car elles manquent de puissance et peuvent surchauffer à des vitesses plus faibles.
Si vous ne spécifiez pas le speed_map, le firmware mettra automatiquement les valeurs par défaut en fonction des fréquences qui sont définies dans le VFD. Spécifiez seulement un speed_map si vous utilisez une boîte de vitesses ou une autre contravention.
uart1: txd_pin: gpio.26 rxd_pin: gpio.16 rts_pin: gpio.4 baud: 9600 mode: 8N1 H100: uart_num: 1 modbus_id: 1 tool_num: 0 speed_map: 0=0% 0=25% 6000=25% 24000=100%
¶ ¶ Inverseurs de la série P2 (RS485)
Les onduleurs de la série Huanyang P2, également nommés 'H2A/H2B/H2C' ou parfois 'P2A' sont également supportés. Ce produit a été conçu pour être la 2ème génération de l'onduleur Huanyang populaire de hy-electrical.com. Ces VFD sont petits, et les VFD de faible puissance sont généralement blancs ou gris. L'autocollant du côté de l'onduleur indique clairement qu'il s'agit de l'onduleur en question.
Le manuel peut malheureusement être un peu déroutant à certains moments quand il s'agit de mettre en place la connexion RS485.
Au sommet de la boîte se trouve un connecteur RS485 avec une borne à vis à 4 fils. Le câblage devrait utiliser ces 4 broches :
- GND = GND d'Arduino
- A = RS + 485
- B = RS-485
- VCC = 5V d'Arduino
Préférez utiliser un fil blindé pour le connecteur, et ne jamais exécuter ce fil à côté d'un fil 220V, pas à pas ou broche. En outre, broyer une extrémité du blindage.
TOUJOURS lire le manuel pour les VFD ! Ceci est impératif pour obtenir la vitesse du moteur etc. tout correct. Les inverseurs de la série H2x utilisent des valeurs de RPM réelles, donc vous devez les définir en conséquence, ou l'appareil ne fonctionnera pas correctement. A côté de cela, vous devez définir certains paramètres pour que RS485 fonctionne correctement, notamment :
Setting Value Description F0.02 7 Set RS485 mode F0.04 2 Set RS485 mode F0.09 4 Set RS485 mode F9.00 4 19200 baud F9.01 0 8,N,1 parity F9.02 1 ModBus address F9.05 0 Non-standard modbus mode F9.07 0 Write operations responded Nous recommandons de régler 19200,8N1 pour ce VFD. Pendant la synchronisation des broches, il peut y avoir un peu de communication, et 2400 baud pourrait vous mettre en difficulté. 19200 est plus que suffisant pour tout ce que vous voulez jeter sur un VFD. Utiliser des taux de baud encore plus élevés entraînera probablement juste des erreurs.
¶ ¶ CentreForever (RS485)
Fabricant : Shenzhen CentreForever Electronics Technology CO., LTD.
Site web : http://www.nowforever.cn/La série D de VFD se trouve dans la boîte de contrôle des routeurs chinois CNC6040 cnc.
Malheureusement, il n'y a pas de manuel pour la série D, donc toutes ces informations sont basées sur le manuel pour la série E.
Cependant, il y a un tableau de comparaison fait par quelqu'un d'autre qui montre que presque tous les paramètres sont les mêmes.Le manuel de la série E peut être trouvé en ligne à différents endroits en recherchant le manuel de la série e100 de la recherche en utilisant votre moteur de recherche préféré.
Tableau de comparaison (allemand, contient également un lien pour le manuel de la série e) : http://moh-computer.de/frequenzumformer-parameter/
Il devrait également fonctionner pour d'autres VFD de la série D ainsi que pour la série E puisque son manuel a été utilisé pour la référence des paramètres et des détails du protocole.Si le contrôle du VFD par RS485 ne fonctionne pas pour une raison ou une autre, les séries D et E supportent également une interface 0-10V.
Il s'agit notamment de contrôler la direction par une autre entrée du VFD. (Voir le manuel pour plus de détails)Voici une sélection des paramètres nécessaires pour faire communiquer les VFD (séries D et E) avec la Société NC :
Sélection de RS485 comme source de contrôle et de fréquence :
Register Value Description Possible Values P0-000 2 Command source 0: Keypad
1: Control inputs
2: RS485P0-001 0 Frequency source 0: main frequency source
1: auxiliary frequency source
2: main + aux
3: max(main, aux)
4: selectd by control inputP0-002 6 Main frequency source selection 0: Keypad Potentiometer
1: Keypad Up Down Arrow
2: AIN1
3: AIN2
4: Multistep speed
5: PID
6: RS485
7: Internal PLCRS485 parameters:
Register Value Description Possible Values P0-055 any free address between 1 and 31 Address of VFD 1- 31: slave addresses
2: master addressP0-056 2 works just fine Baudrate 0: 2400bps
1: 4800bps
2: 9600bps
3: 19200bps
4: 38400bpsP0-057 0 Data framing 0:1 start bit, 8 data bits, no parity, 1 stop bit
1: 1 start bit, 8 data bits, even parity, 1 stop bit
2: 1 start bit, 8 data bits, odd parity, 1 stop bitSetting min and max speed:
Register Value Description Possible Values P0-007 Whatever your spindle can handle Max frequency Min frequency - 600hz P0-008 Whatever your spindle can handle Min frequency 0 - Max frequency The following registers are read / written to by FluidNC:
Read access only:
Register Description 0x007 Max frequency in hz * 100, same as config parameter P0-007 0x008 Min frequency in hz * 100, same as config parameter P0-008 0x300 Current fault number
0 = no fault
1-18 = fault number0x500 VFD status
Bit 0: run, 1=run, 0=stop
Bit 1: direction, 1=ccw, 0=cw
Bit 2: control, 1=local, 0=remote
Bit 3: sight fault, 1=fault, 0=no fault
Bit 4: fault, 1=fault, 0=no fault
Bit 5-15: reserved0x502 Current output frequency in hz * 100 Write access only:
Register Description 0x900 VFD control
Bit 0: run, 1=run, 0=stop
Bit 1: direction, 1=ccw, 0=cw
Bit 2: jog, 1=jog, 0=stop
Bit 3: reset, 1=reset, 0=dont reset
Bit 4-15: reserved0x901 Speed to be set in hz * 100 Exemple YAML config :
uart1: txd_pin: gpio.14 rxd_pin: gpio.15 rts_pin: gpio.13 baud: 9600 mode: 8N1 NowForever: uart_num: 1 modbus_id: 1 tool_num: 0 speed_map: 0=0% 24000=100% off_on_alarm: false
¶ ¶ Danfoss VLT 2800
Contribution via ce PR
¶ ¶ Siemens v20
Contribution via ce PR
SiemensV20: uart: txd_pin: gpio.17 rxd_pin: gpio.16 rts_pin: gpio.4 baud: 9600 mode: 8E1 modbus_id: 1 tool_num: 0 speed_map: 0=0% 24000=100%
¶ ¶ (Générique) ModbusVFD (RS485)
En spécifiant le format de certaines commandes Modbus via des éléments config, vous pouvez utiliser RS485 VFD qui ne sont pas déjà pris en charge. Vous pouvez spécifier le format de chaque commande Modbus en incluant les éléments config dans la section ModbusVFD. Pour certains types de VFD, nous savons déjà quels devraient être les formats de commande, donc au lieu de spécifier toutes les commandes, vous pouvez simplement définir l'élément modèle au nom du VFD, et les éléments de configuration de commande seront pré-remplis - mais vous pouvez les remplacer. Les éléments de configuration pertinents sont les suivants :
- modèle : Une chaîne nommant le modèle VFD. Si la valeur du modèle correspond à l'un des modèles VFD prédéfinis qui sont connus de la société, les différents éléments _ cmd seront pré-remplis avec les valeurs que nous pensons correctes, donc vous n'avez pas besoin de les spécifier. Si vous spécifiez un tel élément _ cmd, il remplacera la valeur fournie par le système. Si le modèle ne correspond pas à un modèle connu, vous devez spécifier explicitement tous les éléments _ cmd. Le nom correspondant est insensible au cas par cas, donc la capitalisation n'a pas d'importance .
- cw_cmd : Un modèle de commande Modbus indiquant au VFD de courir dans le sens des aiguilles d'une montre (vers l'avant).
- ccw_cmd : Un modèle de commande Modbus indiquant au VFD de tourner dans le sens inverse des aiguilles d'une montre.
- off_cmd : Un modèle de commande Modbus indiquant au VFD d'arrêter de fonctionner.
- set_rpm_cmd : Un modèle de commande Modbus indiquant au VFD de fonctionner à une vitesse donnée.
- get_max_rpm_cmd : Un modèle de commande Modbus pour récupérer la vitesse maximale pour laquelle le VFD est configuré.
- get_min_rpm_cmd : Un modèle de commande Modbus pour récupérer la vitesse minimale pour laquelle le VFD est configuré.
- get_rpm_cmd : Un modèle de commande Modbus pour récupérer la vitesse de fonctionnement VFD courante.
- debug : Un entier qui contrôle les messages de débogage du sous-système VFD. Sa valeur par défaut de 0 ne signifie pas de débogage supplémentaire. Le paramétrer à 3 permet d'ajouter des messages montrant des commandes Modbus qui sont envoyées et reçues. debug s'applique non seulement au pilote ModbusVFD générique, mais aussi à d'autres RS485 VFD. Si vous définissez debug à un niveau plus élevé, vous devrez également envoyer $ message/level = debug pour permettre aux messages de déboguer de s'afficher .
- poll_ms : Un entier qui contrôle le temps entre les sondages VFD et les sondages. Sa valeur par défaut de 250 est bonne pour travailler VFD mais lorsque vous déboguez un nouveau VFD, il peut être préférable de le mettre à une valeur beaucoup plus grande comme 4000 pour éviter les messages trop fréquents lorsque les choses ne fonctionnent pas et donc causer beaucoup de rebondissements.
- * * retries :: Un entier qui contrôle le nombre de retries d'une commande défaillante avant que le VFD ne soit jugé non réactif. Sa valeur par défaut est 5.
Les vitesses sont données en RPM, converties vers et à partir d'unités spécifiques à l'appareil via des spécificateurs d'échelle dans les modèles de commande. La plupart VFD spécifient des vitesses en unités de Hz, éventuellement à l'échelle d'un facteur 10 ou 100. Pour convertir de Hz en RPM, vous multiplieriez par 60 (secondes par minute). Si le VFD utilise deciHz (Hz * 10), vous multiplierez par 60 et diviserez par 10 - ou vous pourriez juste multiplier par 6.
¶ ¶ Modbus Templates de commande
En général, une commande Modbus standard consiste en un « modbus ID » d'un octet suivi de quelques octets de commande et de données, suivi de deux octets de contrôle CRC. Le modbus ID et le CRC sont traités par code commun de sorte que le modèle de commande ne les spécifie pas.
Le standard Modbus définit quelques formats de commande communs, mais différents VFD sont très lâches dans leurs interprétations de la façon de les utiliser, de sorte que le format Template de commande vous permet de spécifier les octets exacts à envoyer et à recevoir. Voici un exemple d'une commande simple qui ne contient aucune donnée variable :
cw_cmd: 06 20 00 00 12 > echo
Le pilote ModbusVFD enverrait l'octet modbus_id, puis les octets hex 0x06, 0x20, 0x00, 0x00, 0x12, suivi du CRC. Il s'attend alors à recevoir une réponse VFD qui est la même que la commande, d'où « écho ». En général, la séquence reçue n'est pas nécessairement la même que la commande, donc vous devrez souvent spécifier autre chose que « echo ».
Les commandes peuvent envoyer ou recevoir des valeurs de vitesse RPM. Dans cet exemple, nous envoyons la vitesse à l'échelle des appareils de déciHz (le VFD représente 400 Hz comme 4000).
set_rpm_cmd: 06 20 01 rpm*10/60 > echo
Le pilote enverrait l'octet modbus_id, suivi des octets hex 0x06, 0x20 et 0x01. Il convertirait la vitesse demandée en RPM aux unités du dispositif en multipliant par 10 (deciHx par Hz) et en divisant par 60 (secondes par minute) et en envoyant le nombre résultant (deux octets), suivi des octets de contrôle CRC. Dans les spécificateurs d'échelle, la multiplication, si elle est présente, doit précéder la division. Les deux sont facultatifs. Dans cet exemple, * 10/60 est équivalent à/6, donc vous pouvez écrire juste rpm/6. « > echo » signifie à nouveau que ce VFD répond à de telles commandes en les répétant.
Cet exemple reçoit une valeur de vitesse :
get_rpm_cmd: 03 20 0b 00 01 > 03 02 rpm*60/10
Le pilote enverrait la commande fixe modbus_id, 0x03, 0x20, 0x0b, 0x00, 0x01, CRC, puis s'attendait à recevoir la réponse modbus_id, 0x03, 0x02, (données de 2 octets), CRC. Les deux octets de données sont combinés en un entier de 16 bits et ramenés des unités de périphériques à RPM en multipliant par 60 et en divisant par 10 - l'inverse de l'échelle de RPM à unités de périphériques.
En plus de « rpm », vous pouvez spécifier « minrpm » dans la commande get_min_rpm et « maxrpm » dans le get_max_rpm_command. Pour certains VFD, il est possible d'obtenir les vitesses min et max avec une seule commande. Cet exemple fonctionne pour un VFD :
get_max_rpm_cmd: 03 03 08 00 02 > 03 04 minrpm*6 maxrpm*6
Si vous pouvez obtenir les deux min et max dans une commande, il n'est pas nécessaire de spécifier get_min_rpm_cmd ; juste utiliser get_max_rpm_cmd pour les deux. Pour la plupart des VFD cela ne sera pas possible donc vous aurez besoin des deux commandes.
Le pilote ModbusVFD générique peut en fait être utilisé pour exécuter la plupart des déjà pris en charge. Voici un exemple complet pour YL620 :
ModbusVFD: uart_num: 1 modbus_id: 1 model: YL620 cw_cmd: 06 20 00 00 12 > echo ccw_cmd: 06 20 00 00 22 > echo off_cmd: 06 20 00 00 01 > echo set_rpm_cmd: 06 20 01 rpm*10/60 > echo get_max_rpm_cmd: 03 03 09 00 01 > 03 02 maxrpm*60/10 get_min_rpm_cmd: 03 03 08 00 01 > 03 02 minrpm*60/10 get_rpm_cmd: 03 20 0b 00 01 > 03 02 rpm*60/10
D'autres éléments communs de configuration de broche comme tool_num, spinup_ms, spindown_ms, m6_macro, atc, disable_with_s0 et s0_with disable peuvent également être spécifiés. Si get_rpm_cmd est présent, spinup_ms et spindown_ms sont ignorés, puisque le conducteur utilisera get_rpm_cmd pour déterminer quand le VFD a atteint la vitesse cible.
Il n'est pas nécessaire de spécifier speed_map, puisque le conducteur construira automatiquement une base speed_map appropriée sur les valeurs de TPM min et max.
Si votre VFD est incapable de déclarer des valeurs min et/ou max de RPM, il est possible de les spécifier explicitement via min_rpm et/ou max_rpm config items avec des valeurs entières données en unités de RPM. C'est un cas inhabituel ; des VFD que j'ai étudiés, tous peuvent rapporter max RPM, et tous sauf un peuvent rapporter min RPM.
¶ ¶ Spécificateurs d'échelle
Les éléments de données nommés « rpm », « minrpm » ou « maxrpm » peuvent être mis à l'échelle des appareils VFD avec un « spécificateur d'échelle » du formulaire :
[%][*N][/N]
où [...] indique que le champ est facultatif et N est un nombre entier décimal. Si la donnée apparaît dans la commande sortante - avant le « > » - l'échelle est appliquée à la valeur en RPM pour convertir en unités de périphérique, et la valeur convertie est insérée dans le paquet sortant. Le seul nom d'élément qui peut être utilisé pour les données sortantes est "rpm", dans * * set _ rpm _ command ". Si la donnée apparaît dans la réponse - après le '>' - la valeur de l'unité périphérique est récupérée à partir du paquet de réponse puis portée à RPM. Tous les noms des articles sont disponibles pour les réponses.
*N
provoque la multiplication par le nombre décimal N./N
provoque la division par le nombre décimal N. Pour les quelques VFD qui représentent les valeurs de vitesse en pourcentage de la vitesse maximale,%
multiplie par 100 et divise par vRPM, calculant ainsi le pourcentage, qui peut alors être multiplié et/ou divisé par une constante.%
ne fonctionne correctement que dans set_rpm_command, pour les commandes sortantes.¶ ¶ Détails des opérations de mise à l'échelle
- Pour obtenir.. commandes, la valeur de 16 bits est extraite du paquet de réponse VFD. Le diviseur est réglé à 1. Si la spécification d'échelle commence par '%', la valeur est multipliée par 100. Ensuite, si l'élément suivant dans le spécificateur d'échelle est '* N', la valeur est multipliée par N. Alors, si l'élément suivant dans le spécificateur d'échelle est '/N ', la valeur est divisée par N. Enfin, la valeur est stockée dans la variable nommée (minrpm, maxrpm, ou rpm). (La notation « % » est rarement utilisée pour obtenir des opérations.)
- Pour set_rpm_command, le diviseur est réglé à 1. Si la spécification de mise à l'échelle commence par '%', la valeur d'entrée est multipliée par 100 et le diviseur est réglé à TPM. Ensuite, si l'item suivant dans le spécificateur de mise à l'échelle est '* N', la valeur est multipliée par N. Alors, si l'item suivant dans le spécificateur de mise à l'échelle est '/N ', le diviseur est multiplié par N. Enfin, la valeur est divisée par le diviseur puis stockée dans le paquet copmmand VFD. (Reporter la division réelle jusqu'à la fin évite la perte de précision entière.)
¶ ¶ Plus d'exemples d'utilisation de ModbusVFD
¶ ¶ Huanyang (testé)
ModbusVFD uart_num: 1 modbus_id: 1 model: Huanyang cw_cmd: 03 01 01 > echo ccw_cmd: 03 01 11 > echo off_cmd: 03 01 08 > echo set_rpm_cmd: 05 02 rpm*100/60 > echo get_min_rpm_cmd: 01 03 0b 00 00 > 01 03 0B minRPM*60/100 get_max_rpm_cmd: 01 03 05 00 00 > 01 03 05 maxRPM*60/100 get_rpm_cmd: 04 03 01 00 00 > 04 03 01 rpm*60/100
¶ ¶ CentreForever (non testé)
ModbusVFD uart_num: 1 modbus_id: 1 model: NowForever cw_cmd: 10 09 00 00 01 02 00 01 > 10 09 00 00 02 ccw_cmd: 10 09 00 00 01 02 00 03 > 10 09 00 00 02 off_cmd: 10 09 00 00 01 02 00 00 > 10 09 00 00 02 set_rpm_cmd: 10 09 01 00 01 02 rpm/60 > 10 09 01 00 02 get_max_rpm_cmd: 03 00 07 00 02 > 03 04 maxrpm*60 minrpm*60 get_rpm_cmd: 03 05 02 00 01 > 03 02 rpm*60
¶ ¶ H100 (non testé)
ModbusVFD uart_num: 1 modbus_id: 1 model: H100 cw_cmd: 05 00 49 ff 00 > 05 00 49 ff 00 ccw_cmd: 05 00 4a ff 00 > 05 00 4a ff 00 off_cmd: 05 00 4b ff 00 > 05 00 4b ff 00 set_rpm_cmd: 06 02 01 rpm*100/60 > echo get_max_rpm_cmd: 03 00 05 00 01 > 03 02 maxrpm*60/100 get_min_rpm_cmd: 03 00 0b 00 01 > 03 02 minrpm*60/100 get_rpm_cmd: 03 02 20 00 01 > 03 02 rpm*60/100
¶ ¶ H2A (non testé)
ModbusVFD uart_num: 1 modbus_id: 1 model: H2A cw_cmd: 06 20 00 00 01 > echo ccw_cmd: 06 20 00 00 02 > echo off_cmd: 06 20 00 00 06 > echo set_rpm_cmd: 06 10 00 rpm%*100 > echo get_max_rpm_cmd: 03 b0 05 00 01 > 03 00 02 maxrpm*60 get_min_rpm_cmd: get_rpm_cmd: 03 70 0c 00 01 > 03 00 02 rpm*??
¶ ¶ SiemensV20 (non testé)
Note : La cartographie du numéro de registre dans la documentation de Siemens est très confuse donc je ne suis pas sûr des commandes min et max tpm.
ModbusVFD uart_num: 1 modbus_id: 1 model: SiemensV20 cw_cmd: 06 00 63 0c 7f > echo ccw_cmd: 06 00 63 04 7f > echo off_cmd: 06 00 63 0c 7e > echo set_rpm_cmd: 06 00 64 rpm > echo get_max_rpm_cmd: 03 10 82 00 01 > 03 02 rpm*60/100 get_min_rpm_cmd: 03 10 80 00 01 > 03 02 rpm*60/100 get_rpm_cmd: 03 00 6e 00 01 > 03 02 rpm
¶ ¶ Folinn BD600
board: 6x CNC Controller name: PortalCnc by MP (@snoozemoose on Discord) ## Begin Folinn_BD600_24kRPM_@800Hz ## # Manual where all commands are specified: https://cononmotor.com.au/wp-content/uploads/2017/09/BD600-Manual.pdf # Initial note: This spindle defines CCW as forward running. # ### GENERIC FORMULA FOR ANY AC MOTOR ### # RPM = 60 x 2 x Hz / NumPoles # Hz = RPM x NumPoles / 120 # # This GPenny spindle has 4 poles, max Hz is 800, max rpm is 24k. # 4 poles gives Hz = RPM * 4 /120 = RPM / 30 # ### Device speed _SET_ operation ### # The value to send is the percentage of max Hz * 100 which is calulated as: # targetHz / maxHz * 100 * 100 # Note; The RPM percentage of max RPM is exactly the same as the Hz percentage of max Hz. # Note2; 100 percent is here defined as 100, not 1.0 # # Example; setting a speed of 3k RPM (same as 100 Hz in this case) # calculates to (3 / 24 * 100) * 100 = 1250. # Using Hz we get the same result: (100 / 800 * 100) * 100 = 1250 # # The set_rpm_cmd command therefore shall send the value RPM / maxRPM * 100 * 100 which is defined as: # rpm%*100 using the syntax of FluidNC Generic ModbusVFD # ### Device speed _GET_ operation ### # The value received from the VFD for all fetch operations are defined as: # currentHz * 10 # Given that this VFD and Spindle has the formula RPM = Hz * 30 (see above), # the RPM is calculated from the received value as follows: # receivedValue = currentHz * 10 # currentHz = receivedValue / 10 # And since RPM = Hz * 30 # RPM = receivedValue / 10 * 30 # RPM = receivedValue * 3 # Therefore, the get rpm commands defines the value calculation as: # rpm*3 using the syntax of FluidNC Generic ModbusVFD uart1: txd_pin: gpio.15 rxd_pin: gpio.16 rts_pin: gpio.14 cts_pin: NO_PIN baud: 9600 mode: 8N1 ModbusVFD: spinup_ms: 500 spindown_ms: 1000 uart_num: 1 modbus_id: 1 model: Folinn_BD600_24kRPM_@800Hz cw_cmd: 06 10 00 00 02 > echo ccw_cmd: 06 10 00 00 01 > echo off_cmd: 06 10 00 00 06 > echo set_rpm_cmd: 06 30 00 rpm%*100 > echo get_min_rpm_cmd: 03 F0 05 00 01 > 03 02 minRPM*3 get_max_rpm_cmd: 03 F0 04 00 01 > 03 02 maxRPM*3 get_rpm_cmd: 03 30 01 00 01 > 03 02 rpm*3
¶ ¶ PWM
La commande M4 (axe inversé) ne sera acceptée que si une broche de direction est affectée à une broche d'entrée/sortie.
- output_pin :
- direction_pin :
- enable_pin :
- pwm_hz :
- disable_with_s0 :
- s0_with_disable :
- spinup_ms :
- spindown_ms :
- tool_num :
- speed_map :
pwm: pwm_hz: 5000 direction_pin: NO_PIN output_pin: gpio.14 enable_pin: NO_PIN disable_with_s0: false s0_with_disable: true spinup_ms: 0 spindown_ms: 0 tool_num: 0 speed_map: 0=0.000% 10000=100.000% off_on_alarm: false
¶ ¶ BESC
BESC signifie « contrôleur électronique de vitesse Brushless » du type utilisé pour alimenter les moteurs à hélice des avions, hélicoptères et drones radiocommandés de type passe-temps. Ces moteurs peuvent être utilisés pour des broches à grande vitesse sur des machines légères qui n'ont pas de charges latérales importantes pour les outils. Ils utilisent le même type de signal PWM qu'un servo RC. Le PWM classique contrôle la puissance en réglant le rapport cyclique entre 0 % et 100 %, tandis que le RC servo PWM règle la longueur d'impulsion entre (typiquement) 1 ms (pour le moteur hors tension) et 2 ms (moteur plein allumage) dans une période de répétition d'impulsions d'environ 20 m. Une seule broche d'entrée/sortie capable de PWM est nécessaire. Il doit s'agir d'une broche de sortie numérique qui présente la forme d'onde PWM brute, et non d'une sortie PWM-analogique qui crée une tension continue variable par filtrage passe-bas de la forme d'onde PWM.
Les versions antérieures de l'appareil avaient un type spécial de broche BESC, mais nous nous sommes rendu compte qu'avec des paramètres de configuration appropriés pour pwm_hz et speed_map, le type de broche PWM fonctionne parfaitement pour BESC.
Le taux habituel de répétition d'impulsions pour BESC est de 20ms, ce qui est de 50 Hz en unités de fréquence, alors réglez l'élément pwm_hz config à 50 (certains BESC peuvent fonctionner avec des taux de répétition d'impulsions plus élevés, jusqu'à peut-être 200Hz). Supposons que le temps d'impulsion minimum est le 1ms typique (moteur éteint) et le temps maximum est de 2 ms (moteur plein). 1ms est 5 % de 20ms et 2ms est 10 %. Supposons également que vous souhaitez régler la vitesse du moteur avec des valeurs de GCode S entre 0 et 1000. Par conséquent, l'élément speed_map config aurait la valeur « 0 = 5 % 1000 = 10 % ».
pwm: output_pin: gpio.4 pwm_hz: 50 speed_map: 0=5% 1000=10%
Vous pouvez affiner ces valeurs au besoin pour votre matériel spécifique. Si vous voulez utiliser des valeurs S en unités de RPM, et que votre moteur tourne à 20000 RPM à pleine puissance, il suffit de remplacer « 1000 » par « 20000 » en speed_map. La plupart des moteurs RC hobby n'ont pas de capteurs de vitesse de sorte que leur contrôle de vitesse n'est pas précis ; la valeur RPM ne serait qu'une approximation.
Les paramètres de config ci-dessus sont ceux qui sont absolument nécessaires pour un BESC. Vous pouvez définir d'autres éléments de config PWM pour des choses comme les retards de spinup et de spindown.
Cela pourrait également être utilisé pour contrôler un hobby servo dans une application comme un traceur de stylo. Avec cette configuration, vous pouvez utiliser déplacer le stylo vers le bas avec le GCode
M3 S1000
et le soulever avecM5
M3 S0
.
Voir aussi la fonction d'asservissement RC sous les axes des moteurs.Hobby BESC ont souvent un « mode de programmation » qui peut être entré en alimentant le BESC avec le bâton d'accélérateur de l'émetteur de radio dans des positions spécifiques, puis en déplaçant l'accélérateur à d'autres positions après avoir entendu des bips du BESC. Il est parfois possible de le faire à partir de GCode, en utilisant des commandes comme « M3 S0 » pour les gaz minimums, « M3 S1000 » pour les gaz pleins, et « M3 S500 » pour les gaz moyens. Typiquement, vous émettrez la première commande M3 pour la position initiale des gaz avec le BESC éteint, puis l'alimenter et passer par la séquence spécifiée que le BESC répond avec des bips ou des flashs LED.
¶ ¶ HBridge
C'est comme un axe PWM sauf que vous avez des signaux PWM séparés pour la rotation dans le sens horaire (CW) et dans le sens antihoraire (CCW). Ceci a été spécifiquement conçu pour commander directement un circuit de pont H.
- output_cw_pin :
- Type : Pin
- Gamme : gpio
- Par défaut : NO_PIN
- Détails : C'est la broche sur laquelle le signal PWM de sortie est mis en rotation CW. Il s'éteint avec M5.
- output_ccw_pin :
- Type : Pin
- Gamme : gpio
- Par défaut : NO_PIN
- Détails : C'est la broche que le signal PWM de sortie est activé pour la rotation CCW. Il s'éteint avec M5.
- enable_pin :
- pwm_hz :
- disable_with_s0 :
- s0_with_disable :
- spinup_ms :
- spindown_ms :
- tool_num :
- speed_map :
HBridge: pwm_hz: 5000 output_cw_pin: gpio.4 output_ccw_pin: gpio.16 enable_pin: gpio.26 disable_with_s0: false spinup_ms: 1000 spindown_ms: 1000 tool_num: 100 speed_map: 0=0.000% 10000=100.000% off_on_alarm: false
¶ ¶ Laser
Un laser est considéré comme un axe car gcode ne possède pas de codes spécifiques au laser. Il utilise la valeur RPM comme niveau de puissance. Les lasers ont également des exigences particulières.
-
Ils fonctionnent toujours comme le mode laser avancé de Grbl
- Ils ne fonctionneront que dans les modes de mouvement G1, G2 ou G3. Ils ne fonctionneront pas pendant G0, Jog, Homing etc. Si vous en avez besoin pour fonctionner dans ces modes, utilisez une broche PWM.
- Ils s'éteignent au ralenti ou font un mouvement rapide.
- M3 est la puissance constante et M4 est le mode de puissance dynamique (échelles linéaires avec la vitesse pendant accel/decel)
-
speed_map : final xxx = 100 % peut être ce que vous voulez, mais il est typiquement 255 ou 1000. Cela devrait être utilisé dans le logiciel CAM comme le numéro de puissance max.
-
off_on_alarm : true : est recommandé du point de vue de la sécurité pour s'assurer que le laser est éteint lorsque le mouvement est arrêté en raison de l'alarme déclenchée.
Les 2 modes sont tout à fait différents et chacun optimisé pour différents types de travail.
M3 Mode
Ce mode est principalement utilisé pour la découpe de pièces. Le laser fonctionne chaque fois que vous êtes en mode régulateur de débit (G1, G2 ou G3). Il restera en tout temps à la pleine valeur Snnn. Cela inclut lorsqu'il n'y a pas de mouvement. Pour arrêter le laser, vous devez envoyer M5, G0 ou S0. Cela vous donne un contrôle total. Par exemple, vous pouvez vouloir habiter une fraction de seconde au début ou à la fin d'une coupe.
Voici un exemple de macro pour tester le laser à puissance minimale
M3 S1 ; lowest power G1 F100 ; set G1 and an arbitray feedrate to turn on the laser G4 P0.50 ; wait 0.5 seconds G0 ; turn off the laser M5 ; keep it off.
M4 Mode
Le mode M4 est principalement utilisé pour la gravure. Il compense la diminution de la puissance du laser lors de l'accélération et de la décélération pour éviter l'obscurcissement de ces sections. Il restera en suspens quand il n'y aura pas de mouvement.
Config exemple
Laser: pwm_hz: 5000 output_pin: gpio.4 enable_pin: NO_PIN disable_with_s0: false s0_with_disable: true tool_num: 0 speed_map: 0=0.000% 255=100.000% off_on_alarm: true
¶ ¶ Relais
C'est comme un signal PWM sauf que la broche sera pleine pour toute vitesse supérieure à 0 que vous sélectionnez. Les signaux PWM peuvent rapidement détruire un relais.
- direction_pin :
- output_pin :
- enable_pin :
- disable_with_s0 :
- s0_with_disable :
- spinup_ms :
- spindown_ms :
- tool_num :
- speed_map :
relay: direction_pin: NO_PIN output_pin: gpio.26 enable_pin: NO_PIN disable_with_s0: false s0_with_disable: true spinup_ms: 0 spindown_ms: 0 tool_num: 0 speed_map: 0=0.000% 0=100.000% 1=100.000% off_on_alarm: false
¶ ¶ Plasma (expérimental)
¶ ¶ NoSpindle
Il s'agit d'une broche par défaut qui est automatiquement créée si vous n'avez pas spécifié une broche dans votre fichier config.
NoSpindle:
¶ ¶ Utilisation de plusieurs broches et numéros d'outils
Vous pouvez définir autant de broches que votre matériel supportera. Ils agiront en toute indépendance. Vous devez utiliser des broches d'entrée/sortie séparées pour chacune d'elles. Il suffit d'ajouter chaque définition de broche au fichier config.
Chacun doit avoir un tool_num unique : Si vous avez un écart dans les chiffres, comme le premier axe est
tool_num: 0
et la deuxième broche esttool_num: 10
, les nombres 0 à 9 appartiendraient à la première broche. Cela permet à n'importe quelle broche d'être une broche ATC (changement automatique d'outil).Si vous avez seulement 1 broche définie, vous devez utiliser tool_num : 0. La broche acceptera tous les numéros d'outils.
Vous passez d'un outil à l'autre avec le changement d'outil gcode (M6). M6 T2 passerait à l'axe qui couvre l'outil numéro 2. Si les broches sont décalées dans l'un ou l'axe, vous devrez faire face à cela vous-même.
Façons de rezero la nouvelle broche.
-
Vous pouvez utiliser un système de coordonnées séparé comme G54 pour un axe et G55 pour un autre.
-
Vous pourriez créer une petite macro qui zéros la machine basée sur l'offset connu, comme passer à zéro, déplacer le montant d'offset et rezero.
¶ ¶ Dépannage
- Je reçois Erreur 20 La commande non supportée pour M4 M4 ne fonctionnera que sur les broches qui supportent l'inversion ou les lasers. S'il y a une broche de direction pour le type de broche que vous utilisez, il faut lui attribuer une broche