Sender-Software mit Twinwrights eigenem Kernel
Diese Seite ist für alle, die die MC-1 mit einem eigenen G-Code-Sender-Programm (bCNC, gSender oder Universal G-code Sender) statt mit Studio ansteuern wollen. Die Steuerung der MC-1 ist Twinwrights eigener Kernel, kompatibel mit dem seriellen Protokoll von Grbl 1.1 und den Erweiterungen, die aktuelle Sender-Programme verwenden; diese Sender-Programme funktionieren daher damit, mit den wenigen Einstellungen und Vorbehalten weiter unten.
Alles hier wurde am digitalen Zwilling der MC-1 getestet, der denselben Steuerungscode wie die Maschine ausführt. Die Prüfung an einer realen Maschine steht noch aus. Getestete Versionen: bCNC 0.9.16, gSender 1.6.4, UGS Platform 2.1.27.
Verbinden
| Wo | Wie |
|---|
| Der Zwilling im Fenster von Studio | Studio akzeptiert jeweils ein Sender-Programm auf localhost:2323 (nur dieser Computer; starten Sie Studio mit --bind any, um es aus dem Netzwerk zu erreichen). bCNC: Port socket://localhost:2323. gSender: Ethernet, Adresse 127.0.0.1, Port 2323. UGS: tcp://localhost:2323. |
| Die MC-1 selbst | Natives USB: Die Steuerung erscheint als serieller Port (COM*n* unter Windows). Wählen Sie diesen Port. Die Baudrate spielt bei nativem USB keine Rolle, aber einige Sender-Programme verlangen eine: 115200 funktioniert. |
Was die Steuerung über sich selbst sagt:
- Ihre Begrüßungszeile lautet
Grbl 1.1f ['$' or '$HELP' for help], wie bei einer klassischen Grbl-Steuerung. Sender-Programme suchen nach einer Begrüßungszeile, die mit „Grbl“ beginnt, um zu erkennen, dass die Steuerung neu gestartet ist (siehe Abschnitt 3). - Ihr Name steht in der Antwort auf
$I: [VER:Twinwright 1.1f.…] und [FIRMWARE:Twinwright]. Sender-Programme, die die Firmware anzeigen, zeigen „Twinwright“.
Die Firmware im Sender-Programm wählen
| Sender-Programm | Einstellung | Warum |
|---|
| bCNC 0.9.16 | Controller: GRBL1 | bCNC liest den Namen der Firmware nicht. Mit GRBL1 getestet. |
| gSender 1.6.4 | Default firmware: die andere Auswahl (nicht Grbl) | gSender erkennt eine Firmware an ihrem Namen in $I. Unsere Steuerung nennt ihren eigenen Namen, daher verwendet gSender die Firmware, die Sie als Standard eingestellt haben. Mit dieser Auswahl getestet. |
| UGS 2.1.27 | Firmware: GRBL | Getestet: Einstellungen, Programme, Alarme und Referenzfahrt nach einem Reset, ohne zusätzlichen Soft Reset (Abschnitt 3). Die andere Firmware-Auswahl von UGS funktioniert ebenfalls, braucht aber nach einem Reset einen weiteren Soft Reset; der Tippbetrieb wurde nur mit dieser Auswahl getestet. |
Nach einem Alarm oder einem Reset
- Not-Halt. Der Not-Halt der MC-1 öffnet das Leistungsschütz. Entriegeln Sie ihn, drücken Sie die Start-Taste der Maschine, führen Sie dann im Sender-Programm einen Reset aus und referenzieren Sie. Solange Start nicht gedrückt wird, lässt sich der Alarm (ALARM:10) nicht aufheben.
- ALARM:11 (Referenzfahrt erforderlich). Referenzieren Sie (
$H). Das Entsperren mit $X wird abgelehnt (error:46). - ALARM:2 (Software-Endschalter). Das Programm hat eine Bewegung außerhalb des Verfahrwegs verlangt. Die Referenzfahrt lässt Z am oberen Ende seines Verfahrwegs stehen (Maschinen-Z 0); daher löst jede Bewegung darüber, etwa
G53 G0 Z5, ALARM:2 aus. Führen Sie einen Reset aus und referenzieren Sie dann oder entsperren Sie. - bCNC erholt sich nach jedem Reset: Es sieht die Begrüßungszeile „Grbl“ und vergisst die Zeilen, die noch unterwegs waren, sodass
$H abgeschickt wird. - bCNC nach Stop. Stop in bCNC ist ein Vorschub halt, dann ein Reset. Danach schickt bCNC die Modi, die es vorher hatte (Koordinatensystem, Einheiten, Werkzeuglängenkorrektur), in ein oder zwei Zeilen an die Steuerung zurück, und in einigen Fällen lehnt die Steuerung sie ab, wie es andere Grbl-Steuerungen tun: Ist eine Werkzeuglängenkorrektur (
G43.1) wirksam, bekommt der Satz error:24 (bCNC sendet nach seinem ersten Stop ein eigenes G43.1Z..., sodass es ab dem zweiten Stop immer passiert); unter G80 bekommt G43.1Z... error:31; ist eine Skalierung (G51) wirksam, bekommt G51:X error:1. Nach einem Fehler bekommt jeder folgende G-Code-Satz denselben Fehler, bis eine leere Zeile, ein $-Befehl oder ein Reset kommt. Prüfen Sie daher nach einem Stop das Koordinatensystem, die Einheiten und die Werkzeuglängenkorrektur mit $G und $#, bevor Sie im Tippbetrieb verfahren oder weitermachen. Sind sie falsch, setzen Sie den Nullpunkt erneut und messen Sie die Werkzeuglänge erneut (am Zwilling getestet, 2026-10-06). - UGS mit seiner anderen Firmware-Auswahl. Nach einem Reset, den UGS nicht selbst gesendet hat, zum Beispiel einem aus dem Fenster von Studio oder bei einem Neustart der Steuerung von selbst, drücken Sie in UGS noch einmal Soft Reset, bevor Sie Home drücken. Bis dahin tut Home nichts. Mit dieser Auswahl wertet UGS nur eine andere Begrüßungszeile als Neustart. Ein Reset über die eigene Soft-Reset-Schaltfläche von UGS ist unproblematisch. An der MC-1 selbst sind solche Resets selten: Sie hat keinen Reset-Eingang und einen USB-Host. Ist die Firmware auf „GRBL“ eingestellt, tritt das nicht auf: Nach einem solchen Reset zeigt UGS CONNECTING, und Home funktioniert sofort (am Zwilling getestet, 2026-10-06).
Werkzeugwechsel (M6)
Keines der drei Sender-Programme lässt die MC-1 mit den Standardeinstellungen das Werkzeug wechseln und das neue messen:
| Sender-Programm | Standard | Was zu tun ist |
|---|
| bCNC | Überspringt jeden M6-Satz: Die Schnitte des nächsten Werkzeugs werden mit dem Werkzeug gemacht, das noch in der Spindel steckt. | Stellen Sie seinen Werkzeugwechsel auf Manual tool change (TLO) und messen Sie am Werkzeuglängensensor der MC-1 (Abschnitt 5). |
| gSender | Werkzeugwechsel „Ignore“: M6 wird als Kommentar gesendet, und das Programm hält nicht an. | Stellen Sie seinen Werkzeugwechsel auf Fixed Tool Sensor am Werkzeuglängensensor der MC-1 (Abschnitt 5). |
| UGS | Behandelt M6 selbst: Es fährt zurück, stoppt die Spindel und fordert Sie auf, das Werkzeug zu wechseln, misst es aber nie. Ein längeres Werkzeug schneidet dann zu tief, und an einer realen Maschine kann das Werkzeug mit dem Werkstück kollidieren. | Führen Sie ein Werkzeug pro Programm aus und setzen Sie vor jedem die Länge des Werkzeugs oder den Werkstücknullpunkt, oder verwenden Sie Studio für Programme mit Werkzeugwechseln. |
Mehr zu UGS und M6:
- Es hält auch bei einem „M6“ in einem Kommentar an, etwa bei
( M6 T1 ) von FreeCAD. - Ein zweites M6, das direkt nach einem Werkzeugwechsel kommt, kann an ihm vorbei zur Steuerung gelangen. Die Steuerung wartet dann im Zustand Tool auf eine Bestätigung, die UGS nie sendet, und keine Schaltfläche im Fenster von UGS funktioniert mehr. An der MC-1 beendet nur der Not-Halt das: Drücken Sie ihn, entriegeln Sie ihn, drücken Sie Start, dann Soft Reset und Home in UGS.
- Wird die Steuerung während eines UGS-Auftrags zurückgesetzt, bevor UGS ein M6 erreicht hat, meldet UGS den Auftrag unter Umständen als abgeschlossen, aber sein Werkzeugwechsel-Dialog erscheint trotzdem. Wenn Sie ihn schließen, kann das ganze Programm noch einmal von vorn beginnen. Schließen Sie nach einem Reset mitten in einem Auftrag die Datei in UGS, bevor Sie weitermachen.
Die Werkzeuglänge am Werkzeuglängensensor der MC-1 messen
Der Werkzeuglängensensor sitzt hinten links am Tisch; G59.3 ist direkt darüber gespeichert.
- bCNC, Manual tool change (TLO). Werkzeugwechselposition über dem Werkzeuglängensensor. Antastposition
G59.3. Antastweg 50 mm, Suchgeschwindigkeit 200 mm/min, Feinvorschub 25 mm/min ($342–$344 der MC-1), Befehl G38.2. Messen Sie das erste Werkzeug mit „Calibrate“, bevor Sie das Programm ausführen. bCNC setzt dann für jedes neue Werkzeug G43.1. - gSender, Fixed Tool Sensor. Sensorposition
G59.3. Messen Sie das Anfangswerkzeug im Assistenten. gSender verschiebt dann für jedes neue Werkzeug das Werkstück-Z (G10 L20), statt eine Werkzeuglängenkorrektur zu verwenden. Es nimmt die Länge von der Stelle, an der die Achse nach der Berührung stehen geblieben ist, nicht vom Auslösepunkt, den die Steuerung meldet; jeder Wechsel kann daher etwas abweichen. Fahren Sie im Zwilling Werkzeugwechsel mit 1× Geschwindigkeit: gSender liest diese Position nach einer festen kurzen Pause, und ein schneller laufender Zwilling kann ihm eine Position von vor dem Stillstand liefern. - Beginnen Sie mindestens 0,1 mm unterhalb des oberen Endes von Z (Maschinen-Z −0,1 oder tiefer), wenn der Werkzeugwechsel beginnt. Beide Sender-Programme fahren nach dem Messen auf diese Höhe zurück. Wenn Sie ganz oben beginnen, kann die kleine Streuung einer Messung diese Rückfahrt über den Software-Endschalter hinaus führen, und der Auftrag hält mit ALARM:2 an, bevor er schneidet.
Den Werkstücknullpunkt mit einem Messtaster setzen
- UGS (sein Antastmodul) berechnet den Nullpunkt aus den Auslösepunkten, die die Steuerung meldet (
[PRB:]). Das ist der richtige Weg. - gSender (3D-Messtaster) und bCNC (seine Messtaster-Seite, dann seine Schaltflächen Z=0 / X / Y) setzen den Nullpunkt dort, wo die Achsen nach der Berührung stehen geblieben sind. Die Maschine läuft nach dem Auslösen immer ein Stück weiter, bevor sie anhält, und je schneller die letzte Berührung, desto weiter. Verwenden Sie eine langsame letzte Berührung, oder setzen Sie den Nullpunkt mit den Antastzyklen von Studio, die die Auslösepunkte verwenden.
- Die Lochmitte von UGS (die Funktion Hole Center seines Antastmoduls): Von dort, wo Sie den Messtaster stehen lassen, tastet es nach -X, +X, -Y und +Y, jeweils um den halben eingegebenen Lochdurchmesser, und setzt die Mitte genau zwischen die Auslösepunkte der langsamen Berührungen. Wie weit es reicht, hängt von diesem Durchmesser ab: Der Start darf höchstens (eingegebener Durchmesser − tatsächliche Bohrung) / 2 + Radius der Kugel von der Mitte entfernt sein. Wird der Durchmesser der Bohrung selbst eingegeben, ist das nur der Radius der Kugel (1 mm bei einer 2-mm-Kugel); geben Sie ihn einige mm größer ein (24 bis 26 bei einer 20-mm-Bohrung), um Spielraum zu lassen, wenn Sie den Messtaster nach Augenmaß platzieren.
- Wenn die Lochmitte von UGS die Wand nicht erreicht (Befund 192, Verhalten von UGS selbst): Dieser Antastvorgang endet mit ALARM:5, und UGS hält an. Es hat aber vor dem Antasten X0 Y0 von G54 am Startpunkt gesetzt, und da der Zyklus nicht beendet wurde, bleibt G54 dort. Setzen Sie nach dem Entsperren den Nullpunkt erneut, bevor Sie schneiden. Sein Antastzyklus bleibt außerdem auf halbem Weg stehen: Trennen Sie die Verbindung und verbinden Sie sich erneut, bevor Sie wieder antasten. Es hält außerdem einen Punkt, den die Steuerung als nicht berührt meldet (
[PRB:...:0]), für eine Berührung. - Kalibrieren Sie den Messtaster zuerst (Antastzyklen von Studio: eine Ringlehre). Ein nicht kalibrierter Messtaster misst jede Bohrung um den doppelten Vorlaufweg zu groß und jeden Zapfen um den doppelten Vorlaufweg zu klein.
Weitere Hinweise
- bCNC über das Netzwerk. Unter Windows liest bCNC eine TCP-Verbindung nur etwa alle 2 Sekunden, sodass seine Anzeige 2 Sekunden alt sein kann. „Idle“ in bCNC bedeutet nicht, dass die Maschine angehalten hat. Eine USB-Verbindung hat diese Verzögerung nicht.
- gSender, M0. Ein M0 in den ersten 10 Sätzen eines Programms pausiert nicht (gSender macht es zu einem Kommentar). M1 pausiert immer.
- gSender, kontinuierlicher Tippbetrieb. Das Gedrückthalten einer Tipp-Schaltfläche wird an der MC-1 abgelehnt (error:15): gSender verlangt eine lange Tippbewegung über den Verfahrweg hinaus. Verfahren Sie in Schritten. Bei manchen Grbl-Steuerungen beendet
$40=1 (Tippbefehle begrenzen) lange Tippbewegungen an den Software-Endschaltern, statt sie abzulehnen; die Steuerung der MC-1 wertet diese Einstellung noch nicht aus und lehnt sie weiterhin ab (mit gSender am Zwilling ausprobiert, 2026-10-06). - UGS, lange Sätze. UGS sendet nie einen Satz, der länger als 127 Zeichen ist: Der Auftrag hält ohne Meldung an. Halten Sie die Sätze kürzer (UGS entfernt zuerst die Kommentare).
- UGS, M30. UGS entfernt M30. Ein Programm, das sich darauf verlässt, dass M30 Spindel und Kühlung stoppt, lässt sie laufen: Beenden Sie Programme mit M5 und M9 vor M30.
- UGS, Kommentare. Hat ein Satz zwei Kommentare, entfernt UGS auch den Code dazwischen.
- Trennen der Verbindung während eines Auftrags. Die Steuerung führt die Sätze, die sie schon hat, weiter aus. gSender und UGS senden beim Trennen kein Stopp, sodass die Maschine weiterläuft, mit drehender Spindel. Beenden Sie den Auftrag, bevor Sie die Verbindung trennen. bCNC hält an und setzt zurück, bevor es die Verbindung schließt.
- Kommentare mit Nicht-ASCII-Zeichen (etwa Chinesisch, „Ø“, „–“): Alle drei Sender-Programme entfernen Kommentare, bevor sie senden, sodass diese Zeichen die Steuerung nie erreichen. Die Steuerung selbst liest UTF-8-Text in Kommentaren und in
(MSG,...) als Text, nie als Echtzeitbefehl.