Protocole

Le noyau propre à Twinwright (le contrôleur) parle le protocole série Grbl 1.1, avec les extensions qu’utilisent les logiciels d’envoi Grbl actuels. Un logiciel d’envoi écrit pour Grbl fonctionne avec lui. Les logiciels d’envoi qui ont été vérifiés, et leurs réglages, sont décrits dans Logiciels d’envoi de G-code.

Connexion

OùComment
Le jumeau dans StudioPort TCP 2323 sur cet ordinateur, un seul logiciel d’envoi à la fois.
La MC-1Son port USB natif, un port série (COM*n* sous Windows). Le débit en bauds est sans importance ; utilisez 115 200 là où un logiciel d’envoi en demande un. Le contrôleur répond dès que le logiciel d’envoi lève DTR.

Lignes et réponses

Commandes temps réel

Une commande temps réel est un seul octet. Le contrôleur agit dessus dès son arrivée, même au milieu d’une ligne. Elle ne fait partie d’aucune ligne et ne reçoit pas de ok.

OctetCommandeEffet
0x18 (Ctrl-X)RéinitialisationArrête tout aussitôt et vide ce qui est en file d’attente. Une réinitialisation pendant que les axes se déplacent déclenche ALARM:3 : refaites la prise d’origine. Non prise en compte tant que l’arrêt d’urgence est actif.
0x03 (Ctrl-C)Réinitialisation, arrêt d’urgence actifComme Ctrl-X, prise en compte aussi quand l’arrêt d’urgence est actif.
0x19 (Ctrl-Y)ArrêtLes axes ralentissent jusqu’à l’arrêt et les lignes encore en file d’attente sont abandonnées. La position est conservée et aucune alarme n’est déclenchée.
ESC, puis 0x14RedémarrageRedémarre le contrôleur, sur les cartes capables de redémarrer d’elles-mêmes.
?Rapport d’étatUn rapport d’état.
0x80 (ou 0x05)Rapport d’étatUn rapport d’état, sauf quand les rapports automatiques sont activés.
0x87Rapport d’état completUn rapport d’état avec tous les champs.
~, 0x81Départ cycleReprend après un arrêt d’avance, une ouverture de porte, M0/M1 ou un changement d’outil.
!, 0x82Arrêt d’avanceLes axes ralentissent jusqu’à l’arrêt et restent à l’arrêt. Pendant un déplacement manuel (jog), il l’annule.
0x83État de l’analyseurRenvoie l’état modal, comme le fait $G.
0x84Porte de sécuritéAgit comme l’ouverture de la porte : arrêt d’avance et, si le stationnement est configuré, stationnement.
0x85Annulation du déplacement manuelMet fin à un déplacement manuel et abandonne les lignes de déplacement manuel encore en file d’attente.
0x88Arrêt optionnelActive ou désactive les pauses M1.
0x89Bloc à blocActive ou désactive le bloc à bloc.
0x8BMode manivelleAvec une manivelle connectée : change son mode. Sinon, ignoré.
0x8CRapports automatiquesActive ou désactive les rapports d’état automatiques, lorsque $481 en fixe l’intervalle. Sinon, ignoré.
0x90Correction d’avance 100 %
0x91, 0x92Correction d’avance +10 %, −10 %Plage de 10 à 200 %.
0x93, 0x94Correction d’avance +1 %, −1 %Plage de 10 à 200 %.
0x95, 0x96, 0x97, 0x98Correction de rapide100 %, 50 %, 25 %, 5 %.
0x99Correction de broche 100 %
0x9A, 0x9BCorrection de broche +10 %, −10 %Plage de 10 à 200 %.
0x9C, 0x9DCorrection de broche +1 %, −1 %Plage de 10 à 200 %.
0x9EArrêt brochePendant un arrêt d’avance seulement : arrête la broche, ou la relance.
0x9FArrêt d’urgence logicielArrête aussitôt et déclenche l’alarme d’arrêt d’urgence.
0xA0Refroidissement, arrosageActive ou désactive l’arrosage.
0xA1Refroidissement, pulvérisationActive ou désactive la pulvérisation.
0xA3Changement d’outil terminéConfirme un changement d’outil manuel.

Le contrôleur écarte les autres octets de contrôle, ainsi que ceux de 0x80 à 0xBF qui n’ont pas de commande.

Accueil et identité

Après la mise sous tension et après chaque réinitialisation, le contrôleur annonce :

Grbl 1.1f ['$' or '$HELP' for help]

Les logiciels d’envoi prennent une ligne qui commence par « Grbl » pour un redémarrage.

$I répond par ces lignes, puis ok :

LigneCe qu’elle indique
[VER:Twinwright 1.1f.<date>:<text>]La version du protocole et sa date de compilation. <text> est ce qu’a enregistré $I=<text>.
[OPT:…]Les lettres d’options, les blocs du planificateur (100) et le tampon de réception (1 024).
[NEWOPT:…]Les noms d’options : ENUMS, RT+ ou RT- ($39), HOME, ES, MPG, LATHE, REBOOT, TC, SS (synchronisation de broche), SED, RTC, SD, FS, YM.
[FIRMWARE:Twinwright]Le nom du micrologiciel.
[SIGNALS:…]Les entrées de commande que la carte possède, sous forme de lettres.
[NVS STORAGE:…]L’endroit où les réglages sont conservés.
[DRIVER:…], [DRIVER VERSION:…], [DRIVER OPTIONS:…], [BOARD:…]La carte.
[KERNEL:<version>+<build>]La version et la compilation du contrôleur : le commit d’une version publiée, ou dev.
[KNCAP:…]Ce que comporte la carte (ci-dessous).
[PLUGIN:…]Des fonctions nommées comme les connaissent les logiciels d’envoi : MODBUS et HUANYANG VFD pour le variateur de broche.

Ce que comporte la carte : KNCAP

[KNCAP:] est une ligne de paires key=value, séparées par des virgules. Des clés ne sont ajoutées qu’à la fin, et aucune ne change jamais de sens. Lisez la ligne par clé, non par position. Une clé absente signifie « non connu ».

CléValeursSignification
portteensy41, stm32h7, stm32f4, twin, host, sim, unknownDe quelle compilation du contrôleur il s’agit.
pvun nombreLa version de l’interface de portage du contrôleur.
viewun nombreLa version de la vue d’état du contrôleur.
spindlevfd, pwm, noneLe variateur de broche : Modbus, une sortie PWM, ou aucun.
encoder0, 1Un codeur de broche est installé.
sd0, 1La carte a un emplacement pour carte SD.
mpg0, 2Un port de manivelle, avec son numéro de mode.
auxdi/do/ai/aoEntrées et sorties auxiliaires : entrées numériques, sorties numériques, entrées analogiques, sorties analogiques.
axesdes lettresLes axes, par exemple XYZ.
probe0, 1Une entrée de palpeur. Sur la MC-1, le capteur de longueur d’outil l’utilise aussi.
linkusb, uart, tcp, noneLa liaison du logiciel d’envoi. usb est un port série USB qui répond dès que DTR est levé.

Le mode ombre compare [KERNEL:] et [KNCAP:] entre une machine réelle et son jumeau (voir Machine réelle et mode ombre).

Rapports d’état

Un rapport d’état arrive après ?, 0x80 ou 0x87. Quand les rapports automatiques sont activés ($481, 0x8C), il arrive aussi de lui-même. C’est une seule ligne :

<Idle|MPos:0.000,0.000,0.000|Bf:100,1023|FS:0,0|Pn:XYZ>

L’état vient en premier :

Les champs qui suivent dépendent de $10 et de la situation :

ChampSignification
MPos: ou WPos:Position machine ou position pièce ($10 bit 0).
Bf:Blocs libres du planificateur, octets libres du tampon de réception.
Ln:Le numéro de ligne du bloc en cours d’exécution.
FS:La vitesse d’avance, la vitesse de broche demandée et la vitesse que rapporte le variateur. Une broche à simple marche/arrêt rapporte F:. Pendant un arrêt d’avance, l’avance est de 0.
Pn:Entrées actives : les fins de course par lettre d’axe, P palpeur, D porte, H arrêt d’avance, S départ cycle, R réinitialisation, E arrêt d’urgence.
WCO:Le décalage d’origine : tous les quelques rapports, et après un changement.
Ov:Les corrections d’avance, de rapide et de broche en % : tous les quelques rapports, et après un changement.
A:Accessoires : S ou C broche tournant dans le sens horaire ou antihoraire, F arrosage, M pulvérisation.
Sl:La charge du variateur de broche.
DTG:La distance restante, jusqu’à l’arrêt des axes ($10 bit 13).
H:Prise d’origine faite ou non.
T:L’outil, pendant un changement d’outil.
TLR:Une longueur d’outil de référence est définie ($TLR).
MPG:La manivelle a le contrôle (1) ou non (0).
In:Le résultat du dernier M66.
WCS:, Sc:, D:Le système de coordonnées pièce, la mise à l’échelle, le mode diamètre du tour (rapports complets).
AR, AR:Rapports automatiques désactivés, ou activés avec leur intervalle (rapports complets).
FW:Le nom du micrologiciel (rapports complets).
SD:L’avancement d’un programme exécuté depuis le système de fichiers du contrôleur.

Autres lignes envoyées par le contrôleur

LigneQuand
ALARM:NUne alarme. Codes d’alarme donne la liste de tous les N.
[MSG:…]Un message : celui du contrôleur, ou le (MSG,…), (PRINT,…) ou (DEBUG,…) d’un programme.
[GC:…]L’état modal, après $G ou 0x83. Avec $10 bit 9, une fois après chaque changement.
[PRB:x,y,z:1]Le point où le palpeur s’est déclenché, et s’il a touché (1) ou non (0).
[TLO:…]La correction de longueur d’outil.
[PARAM:n=value]Après $#=n.
[G54:…] … [G59.3:…], [G28:…], [G30:…], [G92:…], [T:…]Après $# : les décalages, les positions mémorisées, la table d’outils.
>line:ok, >line:error:NUne ligne de démarrage ($N0, $N1) s’est exécutée au démarrage.

Commandes $

$HELP Commands les liste sur le contrôleur lui-même.

CommandeEffet
$, $HELP, $HELP <group>L’aide ; les commandes ; un groupe de réglages avec détails.
$$, $<n>, $<n>=<value>, $$=<n>, $+Tous les réglages ; un réglage ; le modifier ; les détails d’un réglage ; de nouveau tous les réglages.
$SED=<n>Décrire un réglage.
$#, $#=<n>, $#=<name>Les décalages, le résultat du palpage, les positions mémorisées ; un paramètre.
$GL’état modal.
$I, $I+, $I=<text>Ce qu’est le contrôleur (ci-dessus) ; tout ; enregistrer un texte qui l’accompagne.
$N, $N0=<line>, $N1=<line>Afficher ou enregistrer les lignes de démarrage.
$CMode vérification : le G-code est vérifié et rien ne bouge. Une réinitialisation y met fin.
$XDéverrouiller après une alarme.
$H, $HX, $HY, $HZFaire la prise d’origine de tous les axes, ou d’un seul.
$J=<G-code>Déplacement manuel (jog).
$B, $S, $OSaut de bloc, bloc à bloc, arrêt optionnel : activés ou désactivés.
$SLPVeille.
$TLR, $TPWPrendre le dernier palpage comme longueur d’outil de référence ; mesurer le nouvel outil sur la plaque de contact.
$RST=$, $RST=#, $RST=*Les réglages d’usine de la MC-1 (prise d’origine et fins de course actives, ses courses) ; effacer les décalages ; les deux, plus les lignes de démarrage.
$EA, $EAG, $EE, $EEG, $EG, $ES, $ESG, $ESH, $E*Lister les alarmes, les codes d’erreur, les groupes de réglages et les réglages, en lignes ou en CSV.
$SPINDLES, $SPINDLESHLes broches.
$PINS, $PINSTATE, $PORTSLes pins de la carte ; les entrées et sorties auxiliaires ; les ports série.
$LIM, $HSS, $LEVLes entrées de fin de course, les capteurs d’origine, les derniers événements d’entrée.
$RTC, $RTC=<date and time>L’horloge du contrôleur (ISO 8601).
$REBOOTRedémarrer le contrôleur.
$F, $F+, $F=<file>, $F<=<file>, $FRLister les programmes du système de fichiers du contrôleur, en exécuter un, en renvoyer un, recommencer.
$FD=, $FMD=, $FRD=, $FF=yes, $FI, $FM, $FU, $CWD=, $PWDSupprimer, créer ou supprimer un dossier, formater, informations, monter, démonter, dossier de travail.

Chaque réglage figure dans Réglages.