D R U C K V E R S I O N

Handrad für die Fräsmaschine

Drehgeber aus Schrittmotor / Funktionstasten / Leuchtmelder / mit USB-Interface (PoKeys)
Anleitung zum Bau für ein Multifunktions-Handrad ohne die Notwendigkeit von VB-Programmierung


Nachdem ich einige Zeit mit meinen Fräsen gearbeitet habe, ist mir das Einrichten der Maschine mittels Tastatur und Maus zu umständlich. Mit der "riesigen" Tastatur in der Hand zum festlegen des Werkstück-Nullpunkt möglichst genau eine Position anzufahren, sprich x-mal die Tasten zu tippen oder zu halten bis der Finger glüht, geht garnicht. Da mein Computer samt Bildschirm und Tastatur wegen Platzmangel über der Portalfräse steht, ich mich also zu jeder Funktionsauslösung bzw -Prüfung aufrichten müsste, brauche ich viele Funktionen unten an der Maschine.
Also muß eine Fernbedienung (im Volksmund nur Handrad genannt) her. Da basteln Spaß macht, wird wiedermal selbst gefriemelt. Nach dem Vorbild von hier und einigen weiteren Anregungen von hier wird das ganze nun in Angriff genommen.

Dabei sind mir die durch LPT2 und in Mach3 mit OemTrigger möglichen 15 Funktions-Tasten etwas wenig, zumal davon noch mindestens 2 vom LPT für den Drehgeber (Handrad) gebraucht werden. Ganz zu schweigen von weiteren 4 für die Regelung von Vorschub und Spindeldrehzahl. Abhilfe schafft hier ein PoKeys USB-Interface.

PoKeys ist ein programmierbarer USB-Controller der vieles kann. Für mich wichtig: Tasten, mit denen der PC gesteuert werden kann, Anschluß eines oder mehrerer Drehgeber (Handrad) für die Achsenbewegung bzw. Encoder zum Erhöhen/Verringern von Vorschub und Spindeldrehzahl. Nicht zuletzt das Ansteuern von LEDs und evtl. auch noch eines Relais für die zweite Kühlung.
PoKeys kostet 42 Euronen, und wenn man noch das Geld für die eingesparte 2. LPT-Karte abrechnet ...   Es lohnt sich wirklich wie man im folgenden sehen wird.


Klick



  1. Was ist geplant?

  2. Drehgeber und Encoder

  3. Tasten

  4. Leuchtmelder

  5. Relais


  6. Mach3  Funktionen einrichten     (Tasten, LEDs etc.)

  7. Downloads


  8. Eigenbau Encoder

  9. Aufbau des Bedienpults



[ Seitenanfang ]



1. Was ist geplant?

Es wird folgendes in Angriff genommen: Das ganze wird nicht als "fliegendes" Handrad gebaut, sondern in einem kleinen Pult das vorn an der Maschine befestigt wird.

Auf dem Pult werden zusätzlich noch die LEDs für die Endschalter, die Achsbewegung, Not-Stop, Spindel-EIN und Werkzeugtaster platziert.
Weiterhin der Netzschalter für die Steuerung und der Not-Stop-Schlagschalter .

Leider sind die Informationen, die man zum betreiben des PoKeys mit Mach3 braucht, ziemlich verstreut mal in dieser Doku, mal in jener Hilfe, mal nur ein Hinweis, das es so geht, etc. Dazu meist in Anglo-Amerikanisch (amerikanisches Englisch) und mit vielen Abkürzungen (die man erstmal garnicht zuordnen kann). Die meisten Infos findet man im Mach3 Wiki und in den Dokumentationen zu Mach3.

 Ich bitte nun erst einmal darum, dies nur als Vorschlag zur Konfiguration zu betrachten. Jeder kann natürlich das folgende nach seinen eigenen Vorstellungen gestalten. Meine gesamte Konfiguration hier zu dokumentieren, würde auch das ganze viel zu unübersichtlich machen. Ich möchte hier nur aufzeigen was mit wenig Aufwand möglich ist.
 Es ist auch schwierig, bei diesem umfangreichen Thema eine vernünftige Reihenfolge der Erläuterungen zu finden. Aber ich glaube dennoch, daß mir das ganz gut gelungen ist. Wem das nicht so scheint, dem sei gesagt:
 Nachdem man sich einige Stunden mit der folgenden Materie auseinandergesetzt hat, lernt man auch damit umzugehen. Wichtig ist, vorher einen Plan zu haben, welche Funktionen (Tasten und LEDs) man braucht.

Ich habe also PoKeys auf eine Lochplatine geschraubt und dann mit dem experimentieren angefangen.


[ Seitenanfang ]



2. PoKeys / Drehgeber

2.1. PoKeys Drehgeber/Encoder mittels Software einrichten
Nachdem die PoKeys-Software von der PoLabs/PoKeys Webseite installiert und PoKeys angeschlossen ist,

   .

werden die Anschlüsse für die Drehgeber eingerichtet.


Klick



Einen Anschluß markieren, oben als Input definieren und unter Encoder den Kanal A oder B festlegen. Danach ein Häkchen bei Encoder setzen.

Nächster Anschluß, gleicher Vorgang.


Unter Sampling die Einstellungen (2x oder 4x) können erstmal unbeachtet bleiben, das muß man später austesten. Etwa wie schnell man kurbeln will, wie die Software reagiert und wie die Maschine reagiert.


Klick



Im Menü Peripherals unter Fast Encoder settings können die Drehgeber schneller gemacht werden. auch das muß sich jeder später selbst ausprobieren.


Hier ist auch zu sehen wie bei mir die Auswahl der Anschlußpins für die Drehgeber zustande kommt.



Als nächstes wird mit dem Button Send to Device die Konfiguration im PoKeys selbst gespeichert.
Da bei der Konfiguration auch mal etwas schiefgehen kann, sollte nun auch mittels Save im Menü File diese Konfiguration als Datei auf dem PC gespeichert werden.



2.2. Drehgeber/Encoder anschließen
Das Anschlußbild am Beispiel des Encoders 3 an unserem PoKeys:

.


2.3. Drehgeber mittels Software prüfen


Klick



Im Menü Peripherals rufen wir jetzt Encoder Raw Values auf. Wenn einer der Drehgeber nun gedreht wird, zeigen das die entsprechenden Felder der linken Spalte an.

Sollte die Schrittzählung falsch herum erfolgen, einfach die beiden Anschlußdrähte A und B am PoKeys tauschen.





3. PoKeys / Tasten

Es gibt mehrere Möglichkeiten der Steuerung von Mach3 mittels PoKeys. Ich habe mich für die einfachste Variante entschieden, das darstellen einer Tastatur-Matrix mit 64 Tasten, auf denen dann PC-Tasten emuliert weden.
Kurz: man kann in Mach3 jedem Button eine Taste oder Tastenkombination zuordnen. PoKeys kann diese dann von einer Tastaturmatrix ausgeben. Da Mach3 mit Bildschirmtasten (Buttons) funktioniert, denen man eine Taste oder Tastenkombination zuordnen kann, sollen diese Emulationen dann von Mach3 ausgewertet werden. Somit können mehr als die in Mach3 mittels OemTrigger möglichen 15 Tasten benutzt werden.

3.1. Pokeys Tasten mittels Software einrichten
Ich habe mich für eine 6x6 Matrix entschieden, das ergibt 36 mögliche Tasten an 12 Leitungen. Bei Bedarf kann die Matrix bis auf 8x8 (64 Tasten) erweitert werden.


Klick



Es werden die 2 x 6 Anschlüsse der Matrix eingerichtet:

- 6 Zeilen (1 bis 6) als Digital Output

- 6 Spalten (A bis F) als Digital Input

- In der Mitte des Fensters wird die Definition
  Matrix Keyboard - Zeile/Spalte vorgenommen.


Die Belegung der Pins ist frei wählbar, außer 1 & 2, 5 & 6, 15 & 16 und 54.
54 ist Reset PoKeys, die anderen 6 sind für die Drehgeber reserviert.

Wer eine Drehzahlsteuerung für die Spindel mittels PoKeys einplant, muß 42 und 43 (Analog Output und Analog Input) freilassen.

Klick


Danach wird im Menü Peripherals das Matrix Keyboard gewählt und die Matrix eingerichtet:

- 6 Zeilen, 6 Spalten

- Enable matrix keyboard setzen

Jetzt können die Tasten der Matrix einzeln ausgewählt werden und rechts unter Direct key mapping wird dann eine Taste oder Tastenkombination zugeordnet (wie die Tasten in Mach3 zugeordnet werden, wird weiter unten erklärt).

- Jetzt eine Taste mit [ Strg Alt A ] programmieren (Ctrl = Strg)

Triggered mapping kann zwei Tastenkombinationen auslösen, eine beim drücken der entsprechenden Taste und eine beim loslassen. Außerdem besteht darunter mit Mapped to Macro die Möglichkeit, ganze Tastenfolgen zu definieren.

Mit dem Button Close verlassen wir die Matrix wieder


Als nächstes wird mit dem Button Send to Device die Konfiguration im PoKeys selbst gespeichert.
Da bei der Konfiguration auch mal etwas schiefgehen kann, sollte nun auch mittels Save im Menü File diese Konfiguration als Datei auf dem PC gespeichert werden.


Eine Tabelle mit den Tastatur-Codes, die auf der deutschen Tastatur anders als auf der englischen Tastatur und in der Auswahl der Pokeys-Software sind, wird unten im Download-Bereich bereitgestellt.

3.2. Tastaturmatrix basteln
Die Sache ist relativ einfach. Es wird ein Gitter aus 6 x 6 Leitungen verwendet. An den Kreuzungen der Leitungen finden die Taster ihren Platz.

.

Es müssen nicht alle Taster verwendet werden, bei mir sind 22 von möglichen 36 belegt.

Die Leitungen werden am PoKeys angeschlossen, so wie wir die Matrix zuvor definiert haben. In meinem Fall ist das also

- Leitung 1 bis 6 an Pin 9 bis 14

- Leitung A bis F an Pin 17 bis 22


Klick



Ist die Matrix fertig, können wir mittels der Matrixkonfiguration (die wir schon zum einrichten benutzt haben) die Funktion prüfen. Wird eine Taste gedrückt, färbt sich die entsprechende Taste auf dem Bildschirm Orange.



[ Seitenanfang ]



4. PoKeys / Leuchtmelder (LEDs)

So, wie man mit Tasten der Tastaturmatrix Bildschirm-Buttons in Mach3 steuern kann, so kann man umgekehrt mit den Bildschirm-LEDs von Mach3 echte LEDs am PoKeys schalten.
4.1. PoKeys-LEDs mittels Software einrichten

Klick



Als Beispiel hier die Pins 30 bis 35. Eine Anschußnummer markieren, oben Digital Output anklicken und entsprechend der Schaltungsanweisung aus der PoKeys-Doku Invert Pin markieren.

Genau so wird mit den anderen gewünschten LED-Anschlüssen verfahren.


Als nächstes wird mit dem Button Send to Device die Konfiguration im PoKeys selbst gespeichert.
Da bei der Konfiguration auch mal etwas schiefgehen kann, sollte nun auch mittels Save im Menü File diese Konfiguration als Datei auf dem PC gespeichert werden.


4.2. LEDs anschließen
Bei 5 Volt Versorgungsspannung wird die gängige LED rein rechnerisch mit einem 80 Ohm Widerstand beschaltet. Ich selbst habe 150 Ohm gewählt, damit die LEDs nicht zu hell leuchten.

Von jedem im vorigen Schritt eingerichtetem Pin wird eine LED mit einem Widerstand gegen GND geschaltet, In unserem Beispiel 3 rote LED an 30 bis 32, 3 grüne LED an 33 bis 35. Und schon ist man fertig.

.

4.3. LEDs mittels Software prüfen

Klick



Im Menü Peripherals die Zeile Digital inputs and outputs wählen und im folgenden Fenster zuerst unten das Häckchen bei Enable output control... setzen.

Jetzt können mit der linken und rechten Maustaste die am PoKeys angeschlossenen LEDs in den dazu passenden nummerierten Feldern ein- bzw. ausgeschaltet werden.


[ Seitenanfang ]



5. PoKeys / Relais

5.1. Relais mittels Software einrichten / prüfen
Ein Relais einrichten und prüfen wird genau wie bei den vorher beschriebenen LEDs vorgenommen.

5.2. Relais anschließen
Angeschlossen wird ein Relais wie folgt:

.

Sollen mehr als 1 Relais geschaltet werden, könnte man theoretisch auch jeweils eine Darlington-Stufe eines ULN2003 benutzen. Mit 5-Volt-Relais funktioniert das Prima. Spätestens dann aber ist eine externe Spannungsquelle für die Relais erforderlich, der USB-Anschluß gibt das nicht mehr her.


[ Seitenanfang ]



6. Mach3 / Funktionen einrichten

    6.1. PoKeys

    6.2. Mach3
        6.2.1. Autostart
        6.2.2. LEDs
        6.2.3. Achsen AUS
        6.2.4. Achsen EIN
        6.2.5. Schrittweite
        6.2.6. Zusatz
        6.2.7. Encoder

     So sieht nun mein Testaufbau aus, auf dem ich alles ausprobiert habe. Es sind nur einige LEDs und Tasten am PoKeys angeschlossen, das reicht für den Test.

Klick




Für den folgenden Testaufbau benutzen wir etws weniger Hardware, um das Thema möglichst einfach darzustellen!


Klick



Unsere Gesamt-Konfiguration des PoKeys sollte jetzt so aussehen.



Nun geht es daran Mach3 anzupassen! Wir nehmen für die Erläuterungen zum Testaufbau folgende Teile:

  • 3 LEDs und 3 Taster für die Achsen    X    Y    Z

  • 3 LEDs und 1 Taster für die Schrittweite    (10)    1    0.1    0.01    (0.001)

  • 1 MPG für die Achsenbewegung

  • 2 Encoder für Vorschubgeschwindigkeit und Spindeldrehzahl


 Im folgenden erscheinen nicht immer alle Funktionen sinvoll. Manches sei auch Spielerei, aber ich habe versucht, möglichst viele Beispiele in möglichst wenig Arbeit zu legen.
 Wenn etwa 3 LEDs 5 Funktionen anzeigen, ist das nur eine Darstellung des machbaren. Allerdings sind die Möglichkeiten noch weitaus vielfältiger als ich es in diesem Rahmen demonstrieren kann und will.


6.1. Pokeys in Mach3 configurieren
Zuerst wird das MachCNC Plugin von der PoLabs/PoKeys Webseite installiert. Danach starten wir Mach3, rufen im Menü Config das Config Plugin Control auf und schalten das PoKeys-Plugin (PoKeys0) ein:

.

Anmerkung: Es gibt ein neues Mach3-Plugin auf der PoLabs/PoKeys-Webseite, im Bild über dem hier benutzten Plugin. Im Download-Bereich des PoKeys findet ihr "PoKeys Mach3 plugin ...", dessen Pokeys.dll; in Mach3-Config-Plugins als "Pokeys-PoLabs-v ..." erscheint. Weitere Hinweise auch hier: ... PoKeys Mach3 Plugin ...
Die Einrichtung des Plugins ist optisch stark verändert, funktioniert aber (bis auf den neuen Pulse-Engine Bereich) ähnlich wie hier mit dem alten Plugin beschrieben.

Danach muß Mach3 beendet und neu gestartet werden, damit das Plugin aktiv ist. Achtung: Den PoKeys noch nicht anschließen.
Im Menü Plugin Control wird die PoKeys0 Cfg. aufgerufen.

Klick 

Hier nehmen wir alle Einstellungen der vorher eingerichteten Pinbelegung des PoKeys für Mach3 vor, genau so, wie wir sie zuvor mit der PoKeys Software eingerichtet haben.

LEDs
Bei 1. eine 2001 eintragen, sonst müssen wir später jedesmal rechnen wenn LEDs konfiguriert werden.
Unter 2. wie zu sehen ein Häckchen setzen und unsere LEDs von 30 bis 35 eintragen. Das Häckchen auch bei Invert Outputs setzen.

Encoder / MPGs
Mit 3. habe ich 2 Encoder und 1 MPG definiert. Die Funktionen stehen direkt im Feld mit drin. Zur Nutzung der Encoder kommen wir noch.

Tastaturmatrix
Bei 4. geben wir die Daten unserer Tastaturmatrix ein. 6 Spalten, 6 Zeilen, Pin-Nummern der Reihen und Spalten.
Zuletzt 5. dient zur Prüfung der Tastatur-Matrix im nächsten Schritt.


Nach einem Klick auf OK ist die Konfiguration abgeschlossen. Jetzt wieder Mach3 beenden, den Pokeys an den PC anschließen und Mach3 starten.

Auch hier haben wir wieder die Möglichkeit, unsere Arbeit zu prüfen:
Im Menü View die Zeile Load Screens aufrufen und die Datei PoKeys.set öffnen. Ist der Bildschirm umgestellt (dauert evtl. etwas), dann oben rechts den Button PoKeys anklicken.

Im folgenden Bildschirm kann alles was bisher gemacht wurde auch geprüft werden. Auf dem Bildschirm sind alle LEDs mit Schalt-Button sowie Encoder-DROs und MPG-DROs zu sehen. Unsere UserLED für die X-Achse hat (PoKeys0.Cfg = UserLED ab 2001) die Nummer 2030, Y-Achse die 2031 usw.)
Rechts führt uns der Button Go to Matrix Test Page zur Prüfung der Tastatur-Matrix.

Klick 

Wenn alles funktioniert, kehren wir mit View - Load Screens wieder zum 1024.set (oder einem beliebigen anderen SET), also zu unserer Arbeitsoberfläche zurück. Jetzt geht es weiter mit . . .

6.2. Mach3 einrichten
 An dieser Stelle nochmals der Hinweis, dies nur als Vorschlag zur Konfiguration zu betrachten. Jeder kann natürlich das ganze nach seinen eigenen Vorstellungen gestalten. Meine gesamte Konfiguration hier zu dokumentieren, würde auch das ganze viel zu unübersichtlich machen.
 Nachdem man sich einige Stunden mit der folgenden Materie auseinandergesetzt hat, ist wohl jeder in der Lage damit umzugehen. Wichtig ist, vorher einen Plan zu haben, welche Funktionen (Tasten/LEDs/DROs) ich brauche. Einige Buttons von Mach3 haben Standard-Tasten, die man benutzen kann. Andere müssen selbst eingerichtet werden. Für viele Funktionen gibt es Standard(Oem)-LEDs, andere werden als UserLeds eingerichtet. usw. usw. Los gehts!


Als erstes wird im Mach3-Menü Config die General Config aufgerufen und folgende Einstellungen vorgenommen (zu den Details dazu kommen wir später):

Klick 

Die Weiteren Voraussetzungen zum Anpassen von Mach3 finden wir im Mach3-Wiki und in den Dokumentationen zu Mach3. Das sind die Handhabung des Screen-Editors und programmieren in VB-Script für Macros ( Macro_Prog_Ref. / VBScript_Commands ) sowie die Nummerierung der LEDs, DROs und Buttons von Mach3 (OEM-Codes).

Programmieren? Hört sich erst mal kompliziert an, ist es aber nicht wirklich.
 An dieser Stelle ein Hinweis auf die zweite Titelzeile: 
 Es handelt sich bei VB-Script nicht um das Programmieren etwa einer DLL mittels Visual-Basic, das doch schon etliche Kenntnisse erfordert. 
 Auch das wäre möglich, aber hier soll ja der PoKeys mit einfachen Mitteln betrieben werden, die jeder mit etwas Übung beherrschen kann. 


Wir brauchen nur wenige VB-Script Befehle, um Mach3 an unsere vorbereitete PoKeys-Konfiguration anzupassen:
- GetOemLed/SetOemLed und GetUserLed/SetUserLed um am Bildschirm und/oder am PoKeys LEDs ein- und auszuschalten
- GetOemDro/SetOemDro um am Bildschirm DROs (Digitale Anzeigen) zu lesen oder zu setzen
- DoOemButton um per VB-Script Buttons (Bildschirmtasten) zu betätigen
- und um unsere gewünschten Funktionen auszufeilen noch etwas VB-Script wie:
    - Code . . .
    - Message
    - If . . . Then . . . (Else) . . . End If

6.2.1   Auto-Start Macro
Unter General Config haben wir in der Zeile Initialisation String m2000 eingetragen. Das bedeutet, daß beim Start von Mach3 und bei jedem Reset (das Häckchen bei Use Init String on ALL "Resets") das Macro mit der Nummer 2000 ausgeführt wird.

Was wollen wir mit dem Macro erreichen? Als erstes soll der Handrad-Modus ausgeschaltet werden, damit nicht versehentlich Bewegungen der Achsen durch das Handrad erfolgen. Ich benutze dazu die Befehle DoOemButton (276) und DoOemButton (305). Dem Mach3-Wiki oder der Oem-Liste entnehmen wir, 276 schaltet in den Step-Mode und 305 Schaltet auf Einzel-Schritt (Tastatur) um. Dazu muß man wissen daß die Modi Cont only und Single (exact) Step für den Jog-Modus Tastatur vorgesehen sind und die Modi Velocity/Step und Step Cont für das Handrad (MPG). Schalte ich also mit diesen beiden Buttons auf Single (exact) Step, dann ist das Handrad ausgeschaltet.

Weiterhin sollen die PoKeys-LEDs der Achsen ausgeschaltet werden. Das erreicht man, indem man die LEDs auf Null setzt mit dem Befehl SetUserLed (20xx,0). Wir errinnern uns, in der Mach3-PoKeys-Configuration (PoKeys0.Cfg) haben wir bei Map User LEDs to IO die Zahl 2001 eingetragen. und dann bei Range Output die 30 bis 35 gesetzt. Vorher haben wir mit der PoKeys-Software diese LEDs im PoKeys als Output programmiert und an die Pins 30 bis 35 die LEDs angeschlossen. Sollen nun die LEDs 30, 31 und 32 für X, Y und Z stehen, muß dieser Befehl 3 mal mit der jeweiligen Nummer 2030, 2031 und 2032 geschrieben werden (es könnte ja jede der LEDs grad die sein die leuchtet). Im Befehl eine 1 hinter dem Komma schaltet die LED ein, die 0 schaltet sie aus.

Jetzt fällt mir auf, ich will auch noch eine LED haben, die mir den AUS-Zustand des Handrads anzeigt. Die könnte ich später am PoKeys nachrüsten, brauche aber die "echte" LED nicht wirklich. Benötigt wird nur die Software-LED als Dummy. Wieso werden wir später noch sehen.
Ich benutze dafür einen noch freien Anschluß, etwa Nummer 29. Das ganze sieht nun so aus:
Sub Main()                      'm2000

  DoOemButton (276)             'Step Mode
  DoOemButton (305)             'Single Exact Steps

  SetUserLED(2029,1)            'LED Handrad aus EIN

  SetUserLED(2030,0)            'LED Achse X     AUS
  SetUserLED(2031,0)            'LED Achse Y     AUS
  SetUserLED(2032,0)            'LED Achse Z     AUS

  message " - Handrad AUS (Tastatur)"

End Sub
Wichtig: Die Zeilen Sub Main() und End Sub sollen immer am Anfang und am Ende des Macros stehen.
Noch einige Anmerkungen zu nicht unbedingt nötigem Inhalt: Der Text jeweils hinter dem Anstrich wird bei der Ausfürung des Macros ignoriert, er dient sozusagen als Merker.

Der Befehl message zeigt den dahinter in Anführungszeichen stehenden Text in der Status-Zeile von Mach3 an.

Wir starten also im Mach3-Menü Operator den VB Script Editor und schreiben das Macro. Das muß dann im Verzeichnis von Mach3 im Unterverzeichnis macros/Mach3Mill mit dem Namen m2000.m1s abgespeichert werden.

Machen wir nun eine Übung!
1. In PoKeys0.Cfg (Mach3) soll die LED 29 nachgetragen werden.
2. Die LED 29 wird zusammen mit einem Widerstand wie schon mal gemacht am PoKeys angeschlossen
3. Mit der PoKeys-Software soll die LED 29 in den PoKeys programmiert werden.
4. Mit der PoKeys-Software schalten wir die LEDs 30 bis 35 ein, die LED 29 bleibt aus.

Wenn wir jetzt die PoKeys-Software beenden und Mach3 starten (evtl. RESET anklicken), dann müssen durch den Auto-Start des Macros m2000 die LEDs 30 bis 35 ausgeschaltet werden und die LED 29 wird eingeschaltet. Die LED 29 bekommt später noch eine Funtion, ist also nicht unwichtig.

Ebenso wie die echten LEDs verhalten sich in Mach3 auch Bildschirm-LEDs, die wir selbst einrichten:

6.2.2   LEDs auf dem Bildschirm darstellen
Eigentlich ist das nicht notwendig, denn wir haben ja unsere echten LEDs am PoKeys. Der Vollständikeit halber werde ich trotzdem die Erklärung dazu geben, denn die dient auch zum Verständnis der Mach3-Modifikationen. Ich zeige das am Beispiel der Standard-Fräs-Oberflache (1024.set), es funktioniert aber mit jedem anderen Bildschirm-Set genau so. Wer ein anderes Set benutzt, kann das also auch an diesem nachvollziehen.

Zu Mach3 gibt es kostenlos den Screen-Editor Mach3Screen.exe. Nach starten dieses Programms laden wir aus dem Mach3-Verzeichnis die Datei 1024.set.


Klick



Sollte der Bildschirm etwas konfus aussehen, dann links oben unter den Menüs auf das Kästchen mit der 1 klicken. Jetzt sehen wir den Haupt-Screen, fertig zur Bearbeitung auf dem Bildschirm.

Günstig positioniert wären die Achs-LEDs neben den DROs der Achsen. Dafür schaffen wir etwas Platz. Die Achs-DROs sind viel breiter als es nötig ist, können also den Platz freimachen.

Ein Doppelklick auf das X-Achs-DRO . . .


Klick



Ein Doppelklick auf das X-Achs-DRO startet diesen Dialog, oben links sehen wir durch den Radio-Button markiert die Funktion des DROs.

Unten links sehen wir den Button Enable Input. Darauf klicken wir und können nun
- die Position (TopLeft-X/TopLeft-Y) und
- die Maße (Witdh/Height)
des DRO ändern.

Tragen wir bei Width eine 182 ein und bestätigen wir mit OK. Es hat sich die Breite des DRO von 198 Pixel auf 182 Pixel verringert. Jetzt nicht wundern, das DRO wird durch ein dahinter liegendes Bitmap-Bild umgeben, das sich natürlich nicht verändert. Man muß genau hinsehen um die Veränderung des DRO wahrzunehmen.

Das gleiche machen wir jetzt mit den 3 darunterliegenden DROs und haben den Platz für unsere Bildschirm-LEDs freigemacht.

Anmerkung: Die Änderung der Position und der Größe funktioniert genau so auch bei Buttons und LEDs.


Klick





Jetzt wird eine LED für jede Achse in den freien Platz gesetzt. In der Auswahl rechts auf LED's klicken und dann einen Klick rechts neben dem X-DRO in den frei gewordenen Platz setzen.

Es erscheint ein kleines, grünes Quadrat, das unsere neue LED repräsentiert. Darauf machen wir einen Doppelklick und sehen den uns schon bekannten Dialog. Diesmal allerdings für die LED.

Die Achs-LEDs machen wir Rot, indem wir oben bei Red den Radiobutton setzen.

Weiter unten rechts klicken wir auf OEMCode und geben dieser X-LED die 2030.
2030 ? Genau, diese Zahl ist die Nummer unserer UserLED der X-Achse am PoKeys!

Links unten wieder Enable Input, die Breite wird mit 10Pixel und die Höhe mit 30 Pixel festgelegt.


Nach bestätigen mit OK klicken wir mit links auf die LED, halten diese und schieben sie an die gewünschte Position.

Klick





Sieht das ganze nun wie gewünscht aus, wiederholen wir diesen Vorgang mit der Y- und Z-Achse (LED 2031 und 2032).

Der Platz neben dem untersten DRO bleibt noch frei!

6.2.3   "Handrad AUS" Taste
 Es erwies sich an dieser Stelle als hilfreich, eine Liste zu führen, welche Änderungen ich in Mach3 vornehme. Falls man später mal etwas ändern oder ergänzen will, findet man leichter den Einstieg.
 In dieser Liste wird notiert, welche Macros mit welcher Funktion erstellt wurden. Weiterhin welche Buttons mit welcher Funktion (OemCode, Macro-Aufruf etc.) geschaffen wurden. Und nicht zuletzt welche LEDs und DROs mit welcher Funktion gesetzt wurden.


Es gibt 2 Varianten, einen Button zu setzen. Der [ Button ] ist ein Standard-Button der in der Standard-Schrift mit einem Namen versehen werden kann. Der [ Bitmap Button ] kann mit einem passenden Bild hinterlegt werden, das die Beschriftung oder ein Symbol oder beides enthält.
Ich benutze die Variante 2 mit Plan B. Da ich den Button zwar brauche, um eine Taste des PoKeys zum Funktionieren zu bringen, ich den Button aber andererseits nicht brauche, da ich ja die echte Taste am PoKeys habe, nehme ich den [ Bitmap Button ], lege aber kein Bild dahinter. In diesem Fall bleibt der Button auf meinem Screen-Set unsichtbar.


Klick





Wir klicken also auf Bitmap Button, und danach auf die freie Stelle rechts neben dem untersten DRO. Zu sehen ist jetzt ein dünner schwarzer Rahmen, der unseren Button darstellt.


Wieder mit einem Doppelklick darauf öffnen wir den zugehörigen Setup-Dialog.

Klick





Es gibt 4 Varianten, die Funktion des Buttons zu definieren. Im oberen Bereich sind einige Standard-Funktionen zur Auswahl, darunter gibt es den uns schon bekannten OEMCode, dann G-Code (weiß jeder was das ist) und unten der Radio-Button für VB Script.

Unter VB Script könnten wir das gleiche Script, das wir schon mal im Macro m2000.m1s zum ausschalten des Handrades verwendet haben, hier eintragen. Das Script würde dann beim betätigen des Buttons auch genau so ausgeführt werden.

Aber da wir ja das Script schon im Macro haben, tragen wir in das Feld rechts daneben einfach dieses Macro ein. Das Script des Macros wird dann beim betätigen des Buttons aufgerufen und ausgeführt. Der Eintrag lautet einfach:

Code "m2000"



Links unten geben wir dem Button wie schon den LEDs eine Breite von 10 Pixeln und eine Höhe von 30 Pixeln.

Dann haben wir noch rechts den ScanCode. Hier wird der Code der Taste der Computer-Tastatur festgehalten, die zum betätigen des Bildschirm-Buttons gedrückt werden muß.

Unter Punkt 3.1. haben wir mit der PoKeys-Software einer Taste der Tastatur-Matrix [ Strg Alt A ] zugeordnet. Jetzt klicken wir auf den Button Set Hot Key, drücken [ Strg Alt A ] und haben diese Matrix-Taste mit der Tastenkombination dem Bildschirm-Button zugeordnet.

Hört sich kompliziert an, ist es aber nicht wirklich. Immer mit Ruhe und der Reihe nach, dann klappt das auch. Nach bestätigen mit OK ist der Button schon fertig. Wir schieben ihn jetzt nur noch mit der linken Maustaste auf die richtige Position.


6.2.4   Tasten für Achsenauswahl und "Handrad EIN"
Wie eine Taste in Mach3 eingerichtet wird, wissen wir nun schon. Den AUS-Button für die AUS-Taste und auch die Achs-LEDs haben wir. Jetzt werden die 3 Tasten für die Achsen-Auswahl eingerichtet. Die dafür zu benutzende Tastenkombinationen sollen [ Strg Alt X ], [ Strg Alt Y ] und [ Strg Alt Z ] sein.

Mit der PoKeys-Software ordnen wir 3 Tasten der Tastaturmatrix diese 3 Tastenkombinationen zu. Danach geht es wieder an den Screen-Editor.


Klick





Im Bereich Tool Information finden wir unten einen Button und eine darunter liegende LED
Jog ON/OFF ...

Da diese beiden Elemente für den Tastaturmodus vorgesehen sind, braucht der Nutzer eines Handrades diese beiden nicht wirklich. Sie werden gelöscht. Klicken wir also auf den Button und drücken Entf, das gleich machen wir mit der LED, die jetzt zu sehen ist.


In den frei gewordenen Platz kommen nun die 3 Buttons für die Achs-Auswahl (und in der nächsten Übung Button und DRO für die Schrittweite).

Wer möchte kann den normalen (sichtbaren) Button benutzen. Ich nehme wieder den unsichtbaren Bitmap-Button.


Klick





Zuerst bekomt der Button die Maße 12 x 12 Pixel, das kennen wir schon.

Dann setzen wir die Tastenkombination [ Strg Alt X ], auch das kennen wir schon.

Es wird wieder VB Script selektiert, und als erstes betätigen wir mit dem Script den Standard-Button für die Achsenauswahl X. Dieser Button schaltet nicht nur die X-Achse auf MPG #1 ein, sondern auch die OemLED 59 (Standard-X-LED) (60 und 61 = Y und Z).

DoOemButton (185)

Wir könnten jetzt das weitere Script in das Feld schreiben. Ich bevorzuge aber den Aufruf eines Macros. Es läßt sich einfach später besser ändern, wenn das mal notwendig ist. Ich muß dann nicht jedes mal den Screen-Editor starten und den Button aufrufen. Nein, ich ändere einfach das Macro. Wir geben dem Macro die Zahl unserer zu schaltenden User-LED, in diesem fall also die 2030.

Code "m2030"

Mit OK ist der Button schon fertig, jetzt noch etwas an die richtige Stelle verschieben.

Mit dem OemButton 185 im Button-Script wird das Handrad (welches ja ausgeschaltet sein könnte) für das MPG #1 eingeschaltet. Mit dem VB Script Editor schreiben wir jetzt das Macro m2030.m1s dazu.

Für das MPG wird der Jog-Mode gesetzt, dann soll die LED für Handrad AUS ausgeschaltet und die LED für die X-Achse eingeschaltet werden. Da die Tasten nicht nur das Handrad einschalten sollen, sondern auch zum umschalten von einer Achse zur anderen dienen, werden die LEDs für Y- und Z-Achse ausgeschaltet. Hört sich wieder sehr viel an, ist aber relativ einfach.

Als erstes aber schreiben wir uns eine Kommentarzeile (Merker), in der wir die Funktion des zum Macro gehörenden Buttons notieren

Sub Main()                      'm2030

  ' DoOemButton (185) im Button-Script  (MPG1 an Achse X)

  DoOemButton (327)             'MPG (Handrad) Jog Mode
  DoOemButton (304)             'Jog Mode Velocity/Step

  SetUserLED (2029,0)           'LED Handrad aus AUS

  SetUserLED (2030,1)           'LED Achse X     EIN
  SetUserLED (2031,0)           'LED Achse Y     AUS
  SetUserLED (2032,0)           'LED Achse Z     AUS

  message " X-Achse EIN"

End Sub

Jetzt kann jeder seine Buttons für die Y-Achse und die Z-Achse mit DoOemButton 186 und 187 sowie den Macros m2031.m1s und m2032.m1s und den Tastenkombinationen dazu selbst einrichten.


6.2.5   Taste und Anzeige für Jog Increment (Schrittweite)
Unter Punkt 6.2 haben wir in General Config bei Jog Increments ... 5 Werte eingetragen. Diese und 3 LEDs dazu wollen wir jetzt mittels eins Tasters der Reihe nach umschaltenu. Dazu belegen wir mittels der Pokeys-Software eine Taste der Tastatur-Matrix mit der Tastenkombination [ AltGR I ].

Die 3 Jog-Increment-LEDs am PoKeys bekommen die Nummern 2033 bis 2035 und werden an die passenden Pins angeschlossen.

Klick





Jetzt sehen wir uns Mach3 an. Wenn wir die >TAB<-Taste drücken, flipt von rechts ein virtuelles Handrad in den Screen.

Dieses Teil enthält alles das, was wir brauchen, Ich hab mal das wichtige Rot umrahmt, von oben nach unten:

1. Cycle Jog Step, Button und DRO für die Schrittweite unseres Handrads

2. Jog Mode MPG, die Gelbe LED zeigt uns daß das Handrad eingeschaltet ist.

3. MPG Axis, hier sehen wir LEDs für X, Y und Z. Das sind die unter Punkt 6.2.4. schon mal erwähnten LEDs 59, 60 und 61.

Wir brauchen den Button und das DRO von Punkt 1, Cycle Jog Step.

Da der Benutzer eines echten Handrads nun mal NICHT MEHR auf das virtuelle Handrad umschalten möchte, setzen wir diese beiden Elemente auf unseren Haupt-Screen und versehen sie zusätzlich mit den von uns gewünschten Funktionen.

Klick





Mit dem Screen-Editor wollen wir jetzt diese beiden Elemente in den freien Platz neben unsere Achs-Buttons setzen.


Klick





Wir klicken in der Auswahl auf DRO, danach auf die Stelle, an der das DRO erscheinen soll.


Das DRO soll uns das Jog Increment anzeigen.
Der Format-String   %.3f   legt fest, daß eine Zahl mit 3 Stellen nach dem Punkt angezeigt wird.

Durch Enable Input können genaue Maße des DRO festgelegt werden.


Nach OK schieben wir das DRO noch am rechten Rand des Feldes auf die richtige Position.

Klick





Diesmal nehmen wir den sichtbaren Button und setzen ihn links neben das DRO.


Wir nehmen wieder nicht den OemCode sondern VB Script, wo wir den OemButton 171 eintragen.

Das Macro zum Button bekommt die Nummer 2099.

Der Button bekommt den Namen Jog Inc, derselbe wie der im virtuellen Handrad und das Hot Key [ AltGr I ].

Nach OK wieder an die richtige Position schieben.

Mit dem VB Script Editor erstellen wir das Macro 2099. Dazu wissen wir aus der OEM-Code Tabelle, daß das DRO für Jog Increment die Nummer 828 hat. Und der Button-Merker ist auch wieder dabei.:

Sub Main()                             'm2099

  ' DoOemButton (171) im Button-Script  (Cycle Jog Increment)

  SetUserLED(2033,GetOemDro(828)*1)    '1
  SetUserLED(2034,GetOemDro(828)*10)   '0.1
  SetUserLED(2035,GetOemDro(828)*100)  '0.01

  If GetOemDro(828) = 10 Then          '10
    SetUserLED(2033,1)
    SetUserLED(2034,1)
    SetUserLED(2035,0)
  End If

  If GetOemDro(828) = 0.001 Then       '0.001
    SetUserLED(2033,0)
    SetUserLED(2034,1)
    SetUserLED(2035,1)
  End If

End Sub


Die ersten 3 Zeilen zeigen uns, wie wir mit einer einfachen Multiplikation unsere 3 LEDs für die Schrittweite EIN- bzw. AUS-schalten können. Nur wenn die passende Schrittweite im DRO angezeigt wird, wird die dazugehörige LED auf 1 gesetzt, sonst auf eine Imaginäre 0.

Danach folgen 2 If ... Then ... End IF abfragen. Wenn ... etwas so ist dann (und nur dann) ... mache dieses Ende der Abfrage.
Sehen wir uns die 3 Zeilen innerhalb der ersten Abfrage an. Wenn das DRO den Wert 10 zeigt, dann werden die 2 LEDs (1.00 & 0.10) eingeschaltet. In der zweiten Abfrage werden bei einem DRO-Wert von 0.001 die 2 LEDs (0.10 & 0.01) eingeschaltet.

Unsere 3 LEDs zeigen uns damit 5 verschiedene DRO-Werte an!


Mit unserem Jog Inc Button auf dem Haupt-Screen von Mach3 können wir nun schon mal die Wirkung ausprobieren. Beim Betätigen schaltet das DRO von 10mm bis 0,001mm der Reihe nach um (Cycle). Die 3 Jog Inc LEDs am PoKeys schalten entsprechend der Programmierung im Macro m2099.m1s.

Und die Taste am PoKeys mit der Codierung [ AltGr I ] tut genau das gleiche.


6.2.6   Macros vervollständigen
Ich möchte nun, daß unser Handrad AUS Macro m2000.m1s aus Punkt 6.2.4. nicht nur die Achs-LEDs sondern auch die Jog-Inc-LEDs ausschaltet. Also UserLED 2033, 2034 und 2035. Unter der Zeile "message ..." fügen wir die Kommandos dafür ein:

Sub Main()                      'm2000

  DoOemButton (276)             'Step Mode
  DoOemButton (305)             'Single Exact Steps

  SetUserLED(2029,1)            'LED Handrad aus EIN

  SetUserLED(2030,0)            'LED Achse X     AUS
  SetUserLED(2031,0)            'LED Achse Y     AUS
  SetUserLED(2032,0)            'LED Achse Z     AUS

  message " - Handrad AUS (Tastatur)"

  SetUserLED(2033,0)            'LED Jog 1,00    AUS
  SetUserLED(2034,0)            'LED Jog 0,10    AUS
  SetUserLED(2035,0)            'LED Jog 0,01    AUS


End Sub



Mit der letzten Aktion in m2000 haben wir uns ein weiteres Problem geschaffen. Das Ausschalten des Handrads schaltet jetzt auch die Jog-Inc-LEDs aus. Klicken wir jetzt den Cycle-Jog-Inc Button, wird aber die entsprechende LED durch m2099 wieder eingeschaltet. Also muß das Cycle-Jog-Inc Macro m2099 erweitert werden.

Hier bekommt die Handrad AUS-LED Nummer 29 ihre Funktion. Indem wir einfach diese LED abfragen, prüfen wir ob das Handrad ausgeschaltet ist. Ist das der Fall, schalten wir (damit keine weitere Abfrage notwendig wird) alle 3 Jog-Inc-LEDs aus.

  If GetUserLed (2029) then    ' Handrad ist AUS

    sleep 500

    SetUserLED(2033,0)
    SetUserLED(2034,0)
    SetUserLED(2035,0)

  End If

Die Abfrage sollte eigentlich "If UserLed (2029) = 1 Then ..." oder "If UserLed (2030) = 0 Then ..." heissen. VB Script ist hier sehr umgänglich, wie wir sehen können wir " = 1 " weglassen.

Der Befehl sleep bewirkt, daß die Ausführung der folgenden Befehle um die Anzahl der hinter sleep stehenden Millisekunden verzögert wird. In diesem Fall, das die mit dem Schalten des Jog-Increments aufleuchtende LED erst nach einer halben Sekunde wieder ausschaltet und uns so die Aufnahme des Tastendrucks signalisiert.

Nach den vorhandenen Kommandos (einschalten einer Jog-Inc-LED) wird dies in m2099 eingefügt:
Sub Main()                               'm2099

  ' DoOemButton (171) im Button-Script  (Cycle Jog Increment)

  SetUserLED(2033,GetOemDro(828)*1)    '1
  SetUserLED(2034,GetOemDro(828)*10)   '0.1
  SetUserLED(2035,GetOemDro(828)*100)  '0.01

  If GetOemDro(828) = 10 Then          '10
    SetUserLED(2033,1)
    SetUserLED(2034,1)
    SetUserLED(2035,0)
  End If

  If GetOemDro(828) = 0.001 Then       '0.001
    SetUserLED(2033,0)
    SetUserLED(2034,1)
    SetUserLED(2035,1)
  End If


  If GetUserLed (2029) then    ' Handrad ist AUS
    sleep 500
    SetUserLED(2033,0)
    SetUserLED(2034,0)
    SetUserLED(2035,0)
  End If


End Sub


In Folge der beiden vorigen Aktionen müssen die Macros für die Achsen-Auswahl auch die passende Jog-Inc-LED wieder einschalten. Da wir die Kommandos dafür schon in m2099.m1s haben, benutzen wir das schon aus 6.2.5. bekannte Kommando Code "m2099".

Wieder unter der Zeile "message ..." fügen wir das Kommandos ein. Hier am Beispiel des X-Macros m2030:

Sub Main()                      'm2030

  ' DoOemButton (185) im Button-Script (MPG1 an Achse X)

  DoOemButton (327)             'MPG (Handrad) Jog Mode
  DoOemButton (304)             'Jog Mode Velocity/Step

  SetUserLED (2029,0)           'LED Handrad aus AUS

  SetUserLED (2030,1)           'LED Achse X     EIN
  SetUserLED (2031,0)           'LED Achse Y     AUS
  SetUserLED (2032,0)           'LED Achse Z     AUS

  message " X-Achse EIN"

  Code "m2099"


End Sub

Die Macros m2031 und m2032 für Y und Z werden genau so geändert.



Die Möglichkeiten von VB-Script sind natürlich noch weitaus vielfältiger als hier dargestellt. Damit kann sich aber bei Bedarf jeder selbst beschäftigen, in dieser Dokumentation soll nur der Einstieg erleichtert werden. Im Mach3-Support und im Mach3-Wiki ist das VB-Script komplett dokumentiert, also viel Spaß beim weiteren Programmieren.

Und noch ein Tip: Normalerweise wird im VB-Script viel mit Variablen gearbeitet. In unseren "kleinen" Macros ist das noch mehr oder weniger überflüssig. Aber je größer ein Script wird, desto unübersichtlicher wird es. Variablen helfen enorm die Übersicht zu behalten, wie man im folgenden sehen wird.

6.2.7   "Feed Override" (Encoder #1) und "Spindel Speed Override" (Encoder #2)
Trotz intensiver Suche habe ich in Mach3 keine Funktion gefunden mit der man etwa den Encoder #1 mit dem Vorschub (Feed Override) verkuppeln kann (siehe hier).
Hier würde bestimmt ein Brain abhelfen, aber damit konnte ich mich bisher aus Zeitmangel noch nicht beschäftigen. Daher erledigen wir das wie folgt:

Wir erinnern uns. In General Config haben wir ein Häckchen vor Run Macro Pump gesetzt. Befindet sich nun im Macro-Verzeichnis von Mach3 ein VB-Script mit dem Namen macropump.m1s, so wird dieses Script etwa 20 mal in der Sekunde ausgeführt. Das können wir nutzen um mit 2 Encodern den Vorschub und die Spindeldrehzahl zu steuern

Ist macropump.m1s schon vorhanden und hat Kommandos zum Inhalt, müssen diese erhalten bleiben. Beispiel:

Sub Main()                     'macropump

 Call SetParam("SafeZ", GetOEMDRO(54))

End Sub

Ist macropump.m1s nicht vorhanden, erstellen wir eine neue Datei. In die neue Datei oder in die vorhandene Datei vor End Sub setzen wir unsere Steuer-Kommandos für die Encoder ein.

Neu: In der If ... then ... Abfrage wird ein neues Element verwendet. Mit dem Wort and bestimmen wir, daß 2 Bedingungen (vor und nach and) erfüllt sein müssen, damit das Kommando nach Then ausgeführt wird.

Neu: Wird nach Then nur ein Kommando ausgeführt, darf alles in einer Zeile stehen und End If fällt weg.

Sub Main()                     'macropump

  Call SetParam("SafeZ", GetOEMDRO(54))


  ' Variablen zum Encoder setzen

  FO = GetOemDro(821)          ' FeedOverride  DRO
  FE = GetOemDro(170)          ' Enc #1 DRO (FeedEncoder)

  SO = GetOemDro(74)           ' Spindel Up/Down Increment DRO
  SE = GetOemDro(171)          ' Enc #2 DRO (SpindelEncoder)


  sleep 135                    ' Kunstpause


  ' Vorschub +/-  (FeedOverride DRO  -- max 300%)

  If FO < 300 and GetOemDro(170) > FE Then DoOemButton(108)   ' FeedOverride + 10
  If FO > 10 and GetOemDro(170) < FE Then DoOemButton(109)    ' FeedOverride - 10


  ' Spindel +/-  (Spindel Up/Down Increment DRO  -- max 250%)

  If SO < 250 and GetOemDro(171) > SE Then DoOemButton(163)     ' Spindel Up   + 10
  If SO > 10 and GetOemDro(171) < SE Then DoOemButton(164)      ' Spindel Down - 10

 
End Sub

Das Macro sagt alles aus, was man wissen muß. Nur noch 2 Erläuterungen:

Ist nach der "Kunstpause" von 135 Millisekunden der Wert des Encoder-DRO (170/171) kleiner oder größer als vor der Kunstpause in der Variablen (FE/SE) gemerkt, dann wird die entsprechende Aktion ausgefürt.
Die "Kunstpause" ist also erforderlich, weil ab dem setzen der Variablen das Macro bis zum drehen am Encoder warten muß, damit im anschließenden Vergleich ein Unterschied in den Werten durch die Encoder-Betätigung entstanden ist. Das Macro wartet hier nicht wirklich auf die Betätigung des Encoders, aber die Kunstpause funktioniert.
Eventuell muß hier die Zeit von 135 Millisekunden -je nach Prozessorgeschwindigkeit des Rechners- etwas nach korrigiert werden.
Manko: Wird der Encoder nach dem sleep und vor dem nächsten Durchlauf von macropump gedreht, findet keine Aktion statt.

Beim FeedOverride ist die maximale Erhöhung auf 300% begrenzt, bei der Spindeldrehzahl auf 250%. Das dient hier nur zum aufzeigen, wie das Kommando aufgebaut wird. Man kann selbstverständlich auch die Spindel auf 300% setzen.

Tip: Das Wort and ist nur eine von vielen logischen Funktionen, mit denen man die unterschiedlichsten Anforderungen bewältigen kann. Wer interressiert ist, sollte sich mit and, or, not usw. und den Begriffen wahr und falsch vertraut machen.
Auch If ... Then ... (Else) ... End If ist nur eine von viele Anweisungen, es ist noch vieles mehr mit VB-Script möglich.


Damit ist unsere Beispiel-Konfiguration von Mach3 fertig.

Jetzt fehlen noch 2 Tasten, die Velocity/Step bzw. Multi-Step schalten. Nützlich wären auch Tasten, die Vorschub bzw. Spindel wieder auf 100% setzen, naja usw. usw.




[ Seitenanfang ]



7. Downloads

Ich habe in meiner Konfiguration 1024pk2000.set alle Buttons sichtbar platziert. Zusätzlich zu den Achs-User-LEDs (rot) sind die Achs-OemLEDs (gelb) und die Jog-inc-LEDs (grün) vorhanden. Handrad AUS Button und LED sind rechts neben dem RESET-Button platziert.

Und hier die zu den Übungen gehörenden Dateien, das 1024pk2000.set, die Macros und der Macro-Merk-Text):

1024pk2000   (ZIP)   


englisch-deutsch-ScanCodes (Tastatur)   (PDF)


PoKeys0.DLL   (ZIP)



[ Seitenanfang ]



8. Drehgeber/Encoder Eigenbau

Als erstes muß ein kleiner Schrittmotor her. Dazu habe ich alte Diskettenlaufwerke zerlegt und die Schrittmotoren der Kopfsteuerung ausgebaut:

.

Von Links nach rechts: Sehr altes 5,25 Zoll Laufwerk, neueres 5,25 Zoll Laufwerk, 3,5 Zoll Laufwerk.

Der große Schrittmotor links und der in der Mitte sind 4-Strang-Motoren (5 bzw. 6 Anschlüsse), der rechte Motor ist ein 2-Strang-Motor (4 Anschlüsse).
Der linke, große Motor hat 200 Schritten pro Umdrehung bei 1,8 Grad Schrittweite, geeignet für sehr feinfühliges Arbeiten und dabei sehr präzise. Dieser Motor ist sehr robust gebaut und gut geeignet für die Achsen-Bewegung.
Die beiden kleineren Schrittmotoren haben (da sie im Diskettenlaufwerk mittels Schnecke untersetzt werden) 20 Schritte pro Umdrehung mit 18 Grad Schrittweite. Diese Motoren sind gut als Drehgeber für die Erhöhung und Verringerung von Vorschub und Spindeldrehzahl geeignet.
Der Motor in der Mitte ist sehr schwammig beim drehen. Für meine Zwecke völlig ungeeignet. Der kleinere aus dem 3,5 Zoll Laufwerk (rechts) vermitttelt ein gutes Gefühl beim drehen.



.

Dann habe ich noch einen bei Pollin für 2,95 Euronen gekauften 4-Strang-Schrittmotor (rechts), 42x42mm, 35mm hoch, etwas größer als der aus dem alten 5,25er Laufwerk (links). Dieser Schrittmotor hat 3,6 Grad Schrittweite, 100 Schritte pro Umdrehung. Die magnetische "Rastung" der einzelnen Schritte ist auch ohne Bremswiderstand schon richtig gut.



.

Es geht auch noch kleiner. Hier Mini-Schrittmotoren, Durchmesser 10mm, gekauft bei Ebay. Im Vergleich zum aus dem alten 5,25er Laufwerk ausgebauten Motor wirklich klein. Diese 4-Strang-Schrittmotoren wären besonders für ein möglichst kleines Handrad geeignet.



Diese Motoren müssen nun jeweils an einen Inkrementalgeber angeschlossen werden, dessen Schaltung nach den oben genannten Vorbildern so aussieht:
Zur besseren Übersicht habe ich die Schaltung mal neu gezeichnet

Klick


Links die Schrittmotoren mit Anschluß-Schema. In der Mitte die Impuslgewinnung, rechts die Impulsaufbereitung.

Da die magnetische "Rastung" der Schrittmotore nicht so effektiv ist wie eine mechanische Rastung bei konventionellen Drehgebern /Encodern, ergeben sich bei langsamer Bewegung am Schritttmotor oder drehen von nur einem Schritt natürlich Probleme mit dem geringen Ausgangspegel. Das führt dazu, daß nicht immer auch ein korrekt auswertbares Signal an A und B ausgegeben wird. Aus diesem Grund muß für jeden neuen Schrittmotortyp eine Anpassung des Bremswiderstandes und der Hysterese vorgenommen werden.

Mit den Widerständen R3 und R4 kann der Bremswiderstand des Motors eingestellt werden. Das ist eine Sache des eigenen Gefühls.

Die Widerstände R9 und R10 legen die Hysterese (Ein- und Ausschaltspannung) fest, hier muß eventuell etwas experimentiert werden. Die zumeist benutzte LPT-Schnittstelle bzw. deren TTL-Eingänge schalten bei über 2 Volt ein und bei unter 0,8 Volt aus. Für einen vollkommen Störungsfreien Betrieb sollten die Schaltspannungen bei >= 2,4 Volt und <= 0,4Volt liegen. Dieser Spannungshub von 2 Volt muß hier für beide Kanäle eingestellt werden.


Der erste Inkrementalgeber wurde erstmal auf einer Lochplatine aufgebaut um mit den Widerständen zu experimentieren.

.


Daran wird nun (hier links) entsprechend der Schaltung der Schrittmotor an 1, 2 und 3 angeschlossen. Die andere Seite der Platine wird - so wie unter Punk 2.2. dargestellt - Plus an Plus, Minus an Minus und die beiden Anschlüsse A und B an die vordefinierten Pins vom PoKeys angeschlossen.


Testergebnisse:

Der kleine Schrittmotor aus dem 3,25er Laufwerk lieferte gute Ergebnisse mit:
R3 & R4 = 300 Ohm, R9 & R10 820 kOhm

Der Pollin-Motor brachte die besten Ergebnisse mit:
R3 & R4 = 680 Ohm, R9 & R10 330 kOhm

Fazit: Als billige Lösung sind die Schrittmotoren absolut geeignet. Sie sind sowohl als MPG (Handrad) als auch als Encoder einsetzbar. Ich habe diese Versuche ganz am Anfang der Arbeit mit dem PoKeys gemacht, aber ob ich die am Ende auch für die Portalfräse benutze, war zu diesem Zeitpunkt noch nicht entschieden.

Auf jeden Fall hat es Spaß gemacht, das ganze zu basteln und zu testen.



Ein TIP:
Bei Schrittmotoren mit diesen Leiterfolien (links), wenn kein passender Stecker zur Verfügung steht:

.

Die Leiterfolie NICHT entfernen. Drähte vorsichtig anlöten und die Leiterfolie abschneiden (rechts). Die Spulenanschlüsse aus dem inneren des Motors sind so fein, daß sie mit ziemlicher Sicherheit abreissen, wenn man die Leiterfolie entfernt.


[ Seitenanfang ]



9. Das Bedienpult

Mein Bedienpult hat viele Funktionen mehr als in der obigen Beschreibung. Damit ist eine recht umfangreiche Bedienung der Fräse möglich.


Dieses vorn an der Steuerung angebrachte Gehäuse ist die Basis für das Handrad-Anzeige-Bedienpult. Es folgen einige Bilder vom Aufbau.
Die Einzelheiten des Aufbaus spare ich mir hier, das würde den Rahmen dieser Beschreibung sprengen.

.


Nach Einbau des Gerüstes für die Tastatur-Platine.

.

Links unten findet der PoKeys seinen Platz. Das eckige schwarze Teil ganz links im Gehäuse ist die Einbaukupplung für Kantentaster etc.

.


Die Tastatur-Platine ist eine Lochplatine. Darauf habe ich einfach das ausgedruckte Pult-Layout geklebt und dann Tasten, LEDs und Encoder aufgesetzt. Von unten können dann nach und nach alle erforderlichen Kabel angelötet werden.

.


Aus dem Pult heraus hängt noch der Anschlußstecker für Not-Stop, Spindel-Sicher-Schalter und Spannungs-LEDs. Die sind in der Abdeckung befestigt die rechts daneben liegt.

.


Zuletzt bekommen alle LEDs noch einen schwarzen Schlauch übergestülpt, damit sie sich nicht gegenseitig beleuchten.

.


Und nachdem die Abdeckung montiert wurde, ist das Pult komplett.

.



An die Steuerung SM33PCV7 bzw. RK3SN angeschlossen sind:
LED Not-Stop
LED SSS - Aus
LED Relais K1 bis K3 (Spindel + Kühlung 1 & 2)
LED Werkzeugsensor/Kantentaster
LEDs Achsen-Endschalter
LEDs Achse-Fahren (++ & --)
Die Taster Not-Stop, SSS-Aus, SSS-Ein


Am PoKeys angeschlossen sind:
Handrad Achse X & Y & Z
4 x Taster Jog-Modus (Single-Step etc.)
3 x Taster Schrittweite (1 & 0.1 & 0.01)
Taster Ursprung
Taster Achse-nullen
Encoder Vorschub
Encoder Spindeldrehzahl
Taster Vorschub 100%
Taster Spindeldrehzahl 100%
später nachgerüstet der Taster Endswitch override
die 6 Werkzeugwechsel-Taster und
alle zu diesen Tastern gehörenden LEDs.


Klick

Da ich auch noch eine Rotationsachse für die Portalfräse bauen will, gibt es auch Taster und LEDs für eine 4. Achse (R).



Hier das Layout des Bedienpultes, für Vollansicht auf das Bild klicken:

Klick

Zugegeben, manches scheint ein wenig übertrieben, aber ich mag das so. Mit diesem Pult habe ich volle Kontrolle über die Fräse.



Der Aufbau der kompletten Steuerungs-Anlage wird in CNC-Steuerung beschrieben.



[ Seitenanfang ]
























Handrad für die Fräsmaschine

designed and created by Bernhard Pahl. Build with the fine Tool -Crimson Editor-
^