DL1DOW - Mach 3-

Mach 3 - Maschinensteuerung

Die Steuerung der kleinen Fräsmaschine erfolgt über die Software Mach3, die auf einem gewöhnlichen, nicht mehr allzu aktuellen IBM-PC mit zwei IEEE 1284 Parallelports installiert ist. Im Folgenden werden Details zur Konfiguration von Mach3 beschrieben.

Screenshot Mach3 Original-Oberfläche
Screenshot der Original-Oberfläche von Mach3 (Zum Vergrößern auf das Bild klicken)

„Mach3” von Artsoft[1] ist eine Windows-Software für die Steuerung von CNC-Fräsen, ‑Drehmaschinen oder ‑Plasmaschneidern mit Schritt- oder Servomotoren. Ursprünglich erfolgt die Steuerung über Parallelschnittstellen des PCs, wobei auch mehr oder weniger beliebte USB-Schnittstellen erhältlich sind.

Trotz einiger Eigenheiten hat sich diese Maschinensteuersoftware in der Vergangenheit als sehr zuverlässig und komfortabel herausgestellt. Im Folgenden werden einige dieser Eigenheiten und Konfigurationsmöglichkeiten beschrieben und die vielen kleinen aufgezeigt, die mir selbst den Weg zur eigenen CNC-Fräse erschwerten. Die Lösungen erforderten einige Recherche in Anleitungen, Foren und unterschiedlichen Websites. An dieser Stelle sei auch den Menschen gedankt, die anderen diese Fragen so beantwortet haben, daß ich sie finden konnte.

Andere Artikel, die mit Details aus Mach3 Berührpunkte haben sind:

Steuer-PC

IBM-PC
Steuer-PC ist ein kompakter IBM mit insgesamt drei Parallelports

Als Steuer-PC findet ein gewöhnlicher, nicht mehr allzu aktuellen IBM-PC Verwendung, ausgestattet mit einem Intel Celeron, 2,88 GHz, 2GB RAM und mit einer Erweiterungskarte mit zwei IEEE 1284 Parallelports. Damit stehen insgesamt drei Parallelports für die Maschinensteuerung zur Verfügung. An zwei davon ist die Steuerung meiner BF 20 und an einen ist eine kleine Stepcraft-CNC angeschlossen.

Parallelports

Bei zwei Parallelports kommen insgesamt 34 konfigurierbare Pins zusammen. Um nicht die Übersicht zu verlieren, ist eine ständig aktuell gehaltene Konfigurationstabelle unumgänglich.

Port 1
Motorsteuerung
1 H Output#4 (M8, ungenutzt)
2 H Dir Achse X
3 L Step Achse X
4 H Dir Achse Y
5 L Step Achse Y
6 H Dir Achse Z
7 L Step Achse Z
8 H Dir Achse A
9 L Step Achse A
10 -
11 L Not-Halt/ESTOP
12 -
13 -
14 -
15 -
16 - Ladungspumpe
17 -
Port 2
Interfacekarte
1 -
2 H OEM-Trigger#2 (Handrad)
3 H OEM-Trigger#3 (Handrad)
4 H OEM-Trigger#4 (Handrad)
5 - MPG#1 Kanal A
6 - MPG#1 Kanal B
7 -
8 L Endschalter Z++/Z-Home
9 L Endschalter Z--
10 L Endschalter Y++
11 L Endschalter Y--/Y-Home
12 L Endschalter X--/X-Home
13 L Endschalter X++
14 L Output#3 (ungenutzt)
15 H OEM-Trigger#1 (Handrad)
16 L Output#1 (Spindel 1)
17 L Output#2 (Spindel 2, M7)

Ladungspumpe

Die Ladungspumpe (charge pump) ist ein von Mach3 ausgegebenes Rechtecksignal mit ungefähr konstanter Frequenz, das der Steuerung als watchdog-Signal dient, d.h. der Kontrolle, ob der Steuer-PC unerwartete Zeitverzögerungen hat, abgestürzt ist oder einfach keine Bewegung gewollt ist. Fällt das Rechtecksignal kurz aus, wird von der Steuerung ein Not-Halt ausgelöst. Meine Schrittmotorsteuerung erwartet ein Rechtecksignal mit mindestens 10kHz.

Ist die Frequenz der Ladungspumpe zu gering (6,5kHz), ist wahrscheinlich der „Kernel Speed” zu niedrig eingestellt:

Wichtig ist, daß das Programm nach dem Umstellen verlassen und neu gestartet wird. Andernfalls werden die Änderungen nicht übernommen. [3]

Parallelport an einer Erweiterungskarte

Die Zeiten, in denen ein Parallelport grundsätzlich unter der Adresse 3F3 oder 2F3 zu finden war, sind endgültig vorbei, insbesondere wenn eine Parallelport-Erweiterungskarte genutzt wird. Hier hilft uns ein Blick in den Gerätemanager unter „Ressourcen” des entsprechenden Geräts. Steht hier beispielsweise:

E/A Bereich DCE8-DCEF
E/A Bereich DCFO-DCF7

Dann lautet die Portadresse „0xDCE8” [4].

Parallelport eines Notebooks

Windows-Systemsteuerung
Einstellung des Parallelports eines Notebooks

Der Hersteller von Mach3 rät von einer Nutzung seines Programms auf einem Notebook vehement ab. Grund sind Energiesparoptionen und -Treiber, die das Timing von Mach3 durcheinanderbringen können.

Trotzdem läuft hier Mach3 auch auf einem IBM Thinkpad T43, wobei selbstverständlich nur ein Parallelport zur Verfügung steht. Bei der Installation wurde darauf geachtet, daß Energiespartreiber und Treiber für z.B. WLAN, Bluetooth oder die Soundkarte erst gar nicht installiert wurden.

Windows XP bietet mit der „Basiskonfiguration0001” eine manuelle Einstellung, die dem traditionellen LPT-Port mit Adresse 0x378 und IRQ 7 entspricht. Damit kommt Mach3 sofort und problemlos klar.

Zwei Output-Pins für Spindel

Momentan sind, dank des zweiten Parallelport-Interfaces genügend Relaiskontakte (nämlich vier) vorhanden. Zwei befinden sich auf dem Zweiten Parallelport-Interface, zwei in der TripleBeast. Aus diesem Grund werden die Hauptspindel und die Zweitspindel über zwei separate Relaiskontakte bedient. Dabei sollen beide Relais immer gleichzeitig anziehen und abfallen. Welche Spindel dann wirklich startet wird mit den Hauptschaltern der beiden Spindeln manuell ausgewählt.

Das Relais der Hauptspindel ist unter Mach3 „Output#1”, das Relais der Nebenspindel „Output#2”. Realisiert wird die „Parallelschaltung” unter Mach3 mit einem sogenannten „brain”[5]:

Handrad

Leider ist der Anschluß eines externen Handrades nur nach der Anleitung von Mach3[6] irgendwo zwischen „schwierig” und „unmöglich” anzusiedeln. Zum Glück gibt es diese beiden Websites, nach deren Studium zu diesem Thema keine Frage offen bleibt:

Das CAM-Programm überträgt G-Code direkt an Mach3

Das heißt bei mir tat es genau das nicht. Wurde bei dem — bei Mach3 mitgelieferten — LazyCam G-Code erzeugt, so konnte dieser direkt von Mach3 übernommen werden. Obwohl das bei SheetCam auch funktionieren sollte, tat es das zuerst nicht. Grund dafür war ein Fehler des Mach-Installers, der einen Registryeintrag[9], [10] vergessen hat. Mit den folgenden Registrierungsschlüsseln hat sich das Problem gelöst:

 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Mach4.Document] @="Mach4.Document" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Mach4.Document\CLSID] @="{CA7992B2-2653-4342-8061-D7D385C07809}" 

Tauschen Mach3 und SheetCAM dann immer noch keine Daten aus, kann es sein, daß das SheetCAM-Plugin (zu finden unter in Mach3 unter Config → Config plugins → SheetCamRemote) noch nicht aktiviert ist.

Mach3 und die Rundachse

Die korrekte Einbindung der Rundachse scheint auf den ersten Blick ganz problemlos zu sein: Die Achse wird mit der entsprechenden Schrittzahl/Einheit (in diesem Fall Grad) in den Motorparametern hinterlegt und die Achse in der Konfiguration als rotary axis markiert, und schon läßt sich die Achse mit dem Handrad oder dem Eilgang korrekt verfahren.

Leider sieht es bei den normalen Vorschubewegungen nicht so einfach aus. Der Vorschub-Parameter „F” bezieht sich immer auf einen Weg. Unter „Config” → „Toolpath” gibt es ein Häkchen „Use diameter for feedrate”. Dies ist aktiv. Unter dem Reiter „Settings” in der Hauptoberfläche (der zweite Reiter von rechts) sind oben rechts drei DROs mit dem Namen „Rotation Radius”. Dort wird unter „A” ein Werkstückradius eingegeben. Daraus kann Mach3 mit dem Vorschub in mm/min einen Vorschub in °/min errechnen.

Bei der direkten Eingabe des Werkstückdurchmessers in Millimeter stimmt der Vorschub allerdings noch nicht- er muß mit einem konstanten Faktor multipliziert werden, der vermutlich der Quotient aus dem Längenverhältnis eines amerikanischen Zolls und einer ägyptischen Pyramidenelle ist. Sprich: Hier bleibt nur das Überprüfen der tatsächlichen Vorschubbewegung mit der Stoppuhr und die Korrektur mittels Dreisatzes. Bei mir ist der Radius jetzt so, daß für den maximalen Spanndurchmesser meines Dreibackenfutters der Vorschub genau stimmt. Für kleinere Werkstücke ist er eben entsprechend kleiner.

Einstellungen sichern/kopieren

Die Einstellungen einer Mach3-Installation lassen sich leicht sichern, da es sich durchgängig um Textdateien handelt, und alle relevanten Dateien den Profilnamen, z.B. Mach3Mill tragen. Das sind:

Damit lassen sich Einstellungen auch von PC zu PC kopieren.

Links

DL1DOW German Amateur Radio Station