CNC-Fräsmaschine im Eigenbau

...und es geht auch ohne teure
Schrittmotorensteuerung!
Welcher Hobbybastler hat
nicht schon mal bei Hornbach und co. vor der Rotwerk EFM-200 gestanden
und nach einem vernünftigen Grund gesucht um den 600 Euro hohen
Anschaffungspreis für sich rechtzugfertigen. In aller Regel bleibt die
Maschine jedoch im Regal, zu hoch ist der Preis für die wenigen Einsätze
die sich dann irgendwie auch mit anderen Hilfsmitteln umgehen lassen.
Die häufigste Lösung hierzu ist ein separater Kreuzsupport für die eh
schon vorhandene Tischbohrmaschine, für die auch ich mich entschieden
habe. Da Tischbohrmaschinen recht günstig zu haben sind, macht es Sinn
sich für diesen Zweck gleich eine separate Maschine zuzulegen. Nach
Begutachtung einiger Exemplare entschied ich mich für die Tischbohrmaschine T.I.P.
TB13/5 und dem "Präzisions Kreuzsupport" von Westfalia. Beides zusammen
kostete ca.150 Euro. Im Grunde hatte ich auch nur vor diese beiden
Geräte mit einander zu vereine, aber wenn man dann am basteln ist
kommen einem ja immer noch diese kleinen Ideen... heraus kam eine
Computergesteuerte 3 Achs Fräsmaschine. Wer auch vor hat einen ähnlichen
Umbau vorzunehmen, der kann sich auf dieser Seite ja schon mal etwas
Appetit holen.
Tischbohrmaschine
T.I.P. TB13/5 |
Kreuzsupport |
 |
- 300 Watt
- 515-2850 U/min
- 5 Stufen Riementrieb
- Bohrtiefe 50mm
|
 |
- Tisch 315 x 145mm
- Verfahrweg längs 165mm
- Verfahrweg quer 110mm
- Nachstellbare Führung
|

diese Seite beinhaltet:

Der Umbau
Als erstes wurde das Stand-Rohr der
Bohrmaschine verkürzt und der verstellbare Tisch demontiert.
Danach musste am Kreuzsupport der Adaptionsflansch weichen (Bild
1), denn der ist größer als der untere Tisch der Bohrmaschine.
Auch die weit ausladende Führung des Oberschlittens stellte sich
als hinderlich heraus und musste aufgrund einer Kollision mit dem
Stand-Rohr ausgeschnitten werden (Bild 2), was zum Glück nur
unmerkliche Auswirkungen auf die Stabilität hat. Da ich sowieso
schon mal am basteln war, verpasste ich der Maschine auch gleich eine ordentliche
Z-Verstellung, wie man sie übrigens bei den Fertiggeräten, der unteren
Preisklasse (z.B. EFM-200) vergeblich sucht :-). Als brauchbare
Lösung stellte sich heraus,
auf die vorhandene Tiefenzustellung ein Schneckenradgetriebe zu
adaptieren (Bild 3 u. 4). Das hat neben einer ausreichenden
Übersetzung auf engen Raum, gleich den Vorteil der Selbsthemmung.
Eine Bezugsquelle für Zahnräder aller art ist z.B. die Firma
Mädler. |
|
|
|
|
 |
 |
 |
 |
Bild 1 |
Bild 2 |
Bild 3 |
Bild 4 |
Die
Bohrspindel der TB13/5 ist zwar ausreichend und sehr solide gelagert, doch
diese wiederum sitzt in der sehr spielbehafteten
Gussgehäuse-Führung, was
bei Radialkräften, wie sie beim Fräsen auftreten denkbar schlechte
Auswirkungen hat. Kurzer Hand entschloss
ich mich das Gehäuse mit einer feinen Trennscheibe
aufzuschlitzen (Bild 5 - 1), um somit die Möglichkeit zu schaffen,
durch Klemmen des Gehäuses, das Lagerspiel herauszustellen. Zum
Klemmen des Gehäuses habe ich
einen doppelseitigen Gewindebolzen auf einer Seite ins Gehäuse eingeschraubt und auf der
Gegenseite einen Klemmhebel (Bild 5 -2)
angebracht. 1 mm Trennscheiben gibt's z.B. bei
Pfeifer |
 |
|
Bild 5 |
Zweiter Streich

Bild 6
|
So, da stand sie nun, allerdings war ich noch nicht so recht
zufrieden mit der Stabilität und demzufolge dem Fräsverhalten
bei härteren Materialien. Im Grunde konnte man nur weichen Kunstoffen
damit bearbeiten, selbst Aluminium war schon zu viel für die
Maschine. Im wesentlichen ist das Stand-Rohr der TB13/5 schuld an
der Instabilität, die beim Fräsen ein Flattern des gesamten
Maschinenkopfs hervorruft. Aber auch das dünnwandige Gehäuse und die
Flanschstellen des Rohrs sind nicht für hohe radiale Spindelkräfte ausgelegt. Also
entschloss ich mich dazu diesen Bereich gründlich auszusteifen. Man
könnte nun versuchen anstatt des Rohres ein Vollmaterial zu verwenden,
jedoch würde sich dann der Flansch zum Tisch als nächster Schwachpunkt
auftun. Ich entschied mich daher die komplette Einheit gegen
ein massives Vierkant-Kastenprofil auszutauschen. Dieses habe ich aus zwei 50er Winkelstähle
erstellt, welche ich zu einem Kastenprofil zusammengeschweißt habe. Um
auch das letzte an Steifigkeit zu erreichen brachte ich zusätzlich noch
rechts und links zwei Streben, sowie vorne ein Knotenblech zum
Gehäuse an.
(zu sehen auf den Bildern der fertigen
Maschine). Allein durch diese Maßnahme war es nun auch möglich Stahl
zu bearbeiten. Bislang habe ich die maximale Belastbarkeit noch
nicht ausgetestet, aber bei 5mm Zustellung und einem 6mm Fräser
bei vollem Fräsereingriff macht die Maschine noch keine Anstanden.
Im Grunde war mein ursprünglicher Wunsch nun erfüllt, jedoch kam
mir während dem Basteln die Idee, dem Tisch noch einen automatischen Vorschub
zu verpassen. Dies sollte mittels drei Niedervolt Getriebemotoren
realisiert werden. Hervorragend eigenen sich
Motoren aus dem Kfz-Bereich, wie Fensterheber- oder
Scheibenwischermotoren, letztere bieten sogar unter umständen
noch die Möglichkeit verschiedene Geschwindigkeiten zu fahren. Solche Motoren bekommt man z.B. bei www.Pollin.de
oder auf dem Schrottplatz. Da je nach Anwendungsfall und
KFZ-Hersteller hier mit unter komplett unterschiedliche
Motoranbindungen zu finden sind, ist hier Erfindungsgeist bei der
Anbinung gefragt. Wie ich es bei mir gelöst habe steht
weiter unten im Text. |
Nun wollen solche Motoren
allerdings auch angesteuert werden. Bei
Pollin fand ich Zwei-Wege Taster,
Schalter und ein robustes Alugehäuse, welches sich richtig gut als Bedienpult
machte. Eigentlich wollte ich die Motoren damit direkt ansteuern aber...
nach dem ich sicherheitshalber die Stromaufnahme der Motoren gemessen hatte,
musste ich meine Planung nochmals neu überdenken. Bei 3 Ampere und
mehr, was die Motoren unter Last ziehen können würden die Schalter
und Taster nicht lange mitmachen. Es musste also eine
Relaissteuerung her, mit ausreichend dimensionierten Lastrelais
(siehe Plan. 1). Wie so oft wurde ich bei Pollin fündig, 12V, 40A,
ein Wechsler und das ganze auch noch für schmales Geld :-) Demzufolge
wurde die Schaltung jedoch etwas komplizierter als sie hätte sein
können. Aber genau diesem Umstand ist es zu verdanken, dass mir
nette Idee in den Sinn kam. Denn wenn ich schon Relais nutze, dann könnte man doch
gleich den Plan gleich so ausarbeiten, dass die Maschine auch von einem
Computer gesteuert werden könnte. Die Idee einer Eigenbau-CNC
Maschine war geboren. Dazu galt es jedoch noch eine Hürde zu nehmen,
wie fragt man die Tischposition ab? Zum Einen könnte man die
Position direkt abfragen oder aber über die Motor bzw.
Getriebeumdrehung die Position ermitteln. Mittels
Hallsensoren
direkt am Motor wäre es möglich die Motorenumdrehungen zu zählen, aber dies ist nicht 100% genau.
Denn die
Motoren laufen nach dem Stromabfall immer noch ein wenig nach, was
ein Hallsensor, aufgrund des quasi ausfallenden Magnetfeldes
"übersehen" würde. |

Bild 7 |
 |
Jedoch gefiel mir die
Idee einer Abtastung der Motoren im Grunde schon gut, da sie im
Gegensatz zu einer Positionsabfrage des Tisches selbst, einfacher zu realisieren ist.
Ziel ist es letztlich ja, die Spindelumdrehungen zu erfassen um somit die Position
des Schlitten zu bestimmen. Um eine relativ brauchbare Erfassung zu
erreichen, muss man einer Umdrehung allerdings auch einige
Abtastimpulse verpassen. Glücklicher weise befindet sich im Getriebe der
von mir verwendeten Motoren ein Kunststoffzwischenrad, welches gegenüber dem Abtrieb
eine Übersetzung von 1:23 hat. Also befestigte ich zwei Magnete auf
diesem Zwischenrad und versuchte dies mit einem simplen Reedkontakt
abzufragen... Schön dass ich mir vor einiger Zeit mal eine
Relaisbox gebaut hatte, die ich über den LPT-Port eines PC's
ansteuern kann. Alles was ich dann noch
benötigte war ein
Signaleingang. Dieser kann ebenfalls vom LPT-Port übernommen werden.
Zugegeben wäre der COM-Port aufgrund seiner Kurzschlussfestigkeit
besser geeignet, aber warum zwei Stecker stöpseln wenn's auch mit
einem geht. Nun musste ich nur noch ein paar Zeilen in QBasic
schreiben und der Versuch konnte beginnen... Zwar hatte ich am
Anfang etwas Probleme, da beim Vorbeilaufen des Magneten der
Reedkontakt vermutlich ins "Flattern" kam, aber dieses Manko
lässt sich im Programm beseitigen. Somit ist es möglich, eine volle
Umdrehung, am Getriebeabtrieb in 46 |
Teilschritten zu
erfassen. Da die Spindel eine Steigung von 2mm besitzt bedeutet dies
eine Positionsgenauigkeit von etwas mehr als 4/100 mm, welches für
meine Hobbyzwecke ausreichend genug ist. Aus Zeitmangel habe ich für
alle drei Motoren die Abtastung fürs erste mit einem Reedkontakt
realisiert. Wenn diese irgendwann ausgefeuert sind werde ich
vermutlich auf
Hallsensoren umrüsten.
Die Grundlagen waren nun alle vorhanden, jetzt ging es weiter mit
dem Umbau. Denn bis dato hatte ich noch nicht einen Motor an der
Maschine. Am einfachsten war die Adaption an der Längsverstellung
(Bild 10), da hier genügend Platz ist und die Spindel keine
Relativbewegung zum Oberschlitten macht. Die Z-Verstellung war
hingegen schon etwas Anspruchsvoller aber immer noch leicht zu
bewerkstelligen. Die Querverstellung war eindeutig die
komplizierteste Herausforderung. Dort war das
Problem, dass die Spindel eine Relativbewegung zum Unterschlitten
macht und zudem nur begrenzt Platz vorhanden ist. Die
Lösung kam dann aber dennoch. Normalerweise läuft die Spindel
des Querschlittens in einer Gewindekulisse, die wiederum fest zum
Untersupport montiert ist. Diese habe ich demontiert, abgedreht
und in ein Rohr eingelötet, welches ich im Kastenprofil (Säule)
gelagert habe. Dreht man nun an diesem Rohr, so drückt bzw.
schiebt man den Unterschlitten relativ zur Fräse und somit zum
Untersupport... |
Das Steuerungsprinzip etwas genauer
Soviel zur Entstehung der Maschine, aber
sicherlich wollen nun einige wissen wie ich die Steuerung nun ohne
Schrittmotoren realisiert habe. Vorab möchte ich allerdings noch ein
paar Worte zum wesentlichen Prinzip los werden.
Das Prinzip der Steuerung
Alle drei Motoren werden über den
LPT-Port des PC's gezielt verfahren. Dabei nutze ich die ersten 6 Datenbits im Datenregister des LPT-Ports
zum Ansteuern der Motoren. Zur Erfassung der Umdrehungen, also somit der Vorschubstrecke, drei
Eingänge des Statusregister. Genauer gesagt Pin 1 - 6 für
Datenausgang (Motoransteuerung), Pin 10 - 12 für Dateneingang
(Umdrehungserfassung).
Dies hört sich eventuell komplizierter an als es eigentlich ist. Setzt
man einen Datenbit des LPT-Ports, so steht an dem entsprechenden Pin
eine Spannung von +5 Volt an. Als Eingang funktionieren dies genau umgekehrt,
legt man hier eine Spannung von +5Volt an, so bekommt der entsprechende
Eingang einen "High-Pegel", das gleiche (für
diesen Fall) ereicht man durch anlegen von Masse welche man bei Pin 18 -25
findet und die
wesentlich sicherere Methode ist. Hier sei auch mal erwähnt das der LPT-Port eigentlich nicht für Spielereichen geeignet ist, im Gegensatz
zum COM-Port verzeiht er keine Überbelastung (max. 10mA bei 3,5 - 5
Volt) oder Kurzschlüsse, also Vorsicht! Auf recht einfache Weise
lässt sich der LPT-Port mit QBasic Ansteuern. Hierzu gibt es die
Beiden Befehle OUT(x) und INP(x), aber dazu später mehr.
Betrachten wir zunächst mal nur eine Achse. Was
ich erreichen will ist, der Computer soll mir den Motor einschalten bis
der Schlitten, bzw. die Tiefenzustellung eine bestimmte Strecke
zurückgelegt hat und dann den Motor wieder abschalten. Also setzte ich den entsprechenden Ausgang und lasse
den Computer über den Eingang die Umdrehungen zählen. Bei erreichen
der Sollumdrehungen wird der Ausgang dann wieder zurücksetzten.
Dateneingang und Modifikation
an den Motoren
Wie nun schon mehrfach
erwähnt, ist der Schlüssel meiner Steuerung die Umdrehungsfassung der Motoren bzw.
einem geeignetem Zwischenrad im Getriebe. Hierzu kamen zwei
unterschiedlich Abtastverfahren in frage. Zum Einen eine optische
Erfassung über Loch bzw. Fächerscheibe, (Lichtschranke) oder über
Magnete in Verbindung mit Hallsensoren bzw. Reedkontakte. Auf Grund der
Getriebeart der von mir verwendeten Motoren, bei der es schwer wäre eine
Achse nach außen zu führen, um dort eine optische Abtastung anzubringen,
entschied ich mich für die Magnet-Abfrage. Ich bin irgendwie bei den
Reedkontakten hängen geblieben, da ich bislang noch keine
Probleme damit hatte. Eigentlich hatte ich bei dem ersten Test nur zu
einem Reedkontakt gegriffen, da ich von der Ungeduld getrieben keine Lust hatte
den etwas aufwendiger einzubindenden Hallsensor zu verwenden.
Erstaunlicher weise funktionieren die Reedkontakte immer noch
einwandfrei und das bei einer ständigen Beanschlagung von ca. 4 Hz. Wie
auch immer, der Hallsensor ist allerdings hier die deutlich sicherere
Wahl. und bei höheren Frequenzen auch unumgänglich. Prinzipiell
ist die Erfassung schnell drehender Teile immer anspruchsvoller als
welche mit relativ niedrigen Drehzahlen, jedoch steigt natürlich die
Genauigkeit je näher man zur Antriebsdrehzahl, also der Motordrehzahl
kommt. Ich denke in meinem Fall konnte ich einen guten Kompromiss
eingehen. Da ich ein Zwischenrad als Magnetträger benutze, welches gegenüber der Abtriebsdrehzahl 1:23 untersetzt ist. Da ich zwei
Magnete im Abstand von 180° unterbringen konnte, kann ich eine
Abtriebsumdrehung in 46 Teilschritten erfassen. Die
Gewindespindeln im Support haben eine Steigung von je 2mm. Dadurch ergibt sich
eine Ansteuergenauigkeit von 2/46 also ca. 0.0435mm.

Plan 2
Das Bild (Plan2) zeigt wie eine Drehzahlerfassung mittels Reedkontakt
über den LPT-Port aussehen kann. Dabei wird der Reedkontakt in der Tat,
so wie dargestellt einfach nur zwischen Masse (Pin 18-25, sind intern
gebrückt) und einem Pin als Eingang geschaltet. In diesem Fall wird der
Pin 15 benutzt, also ERROR vom Statusregister.
Datenausgang, Antriebssteuerung der
Motoren
Im Grunde würden 4 Ausgänge reichen, um
drei Gleichstrommotoren in beide Richtungen anzutreiben, zumindest wenn
man nicht zwei Motoren gleichzeitig und in verschiedene Richtungen
fahren lassen möchte. Die von mir verwendeten 6 Ausgänge wären also
prinzipiell nicht nötig gewesen, jedoch erleichtert es das Zusammenspiel
zwischen dem Bedienpult und der Steuerung durch den PC. Also galt es dem
PC sechs Steuerspannungen zu entlocken, die je ein Relais schalten
sollen. Der LPT-Port würde aber lautlos ins Jenseits befördert
werden wenn man hier direkt ein Relais anschließen und erregen
würde. Um das zu umgehen kann man die am Port liegenden Signale (TTL)
über einen Leistungstreiber wie den ULN2803 verstärken.
Wie eine Schaltung mittels Leistungstreiber aussehen kann zeigt
diese
Schaltung. Oder man verstärkt das Signal mittels einem Transistor,
wofür ich mich letztlich entschieden habe. Um den empfindlichen LPT-Port
zu schützen, lasse ich das Signal zuvor über einen Optokoppler laufen.
Plan 3 zeigt den Aufbau dieser Schaltung für einen Ausgang.

Plan 3
Noch ein letzter Umbau
Ich greife jetzt mal in der Zeit ein wenig
voraus. Nachdem das Programm zu Ansteuerung der Maschine stand und ich
die ersten Fräsversuche unternahm, viel mir eines recht unschön auf.
Insbesondere beim Fräsen von Kreisen, bei dem die beiden Achsen des
Tisches im ständigem Wechsel geschaltet werden, sind die Relais ständig
am Werkeln. Dabei machte ich mir weniger Gedanken um das nervige
Geklackere, als darüber, dass die Relais dieser Belastung nicht lange
standhalten können und ein wohl recht häufiges Ersetzen der
ausgefeuerten Relais die Folge sein könnte. Trotzdem ich die Maschine
dann doch eine nicht unbeachtliche Zeit, vollkommen störungsfrei mit den
ersten Relais betrieben hatte, kam der bislang letzte Umbau auf eine
relaislose Transistorsteuerung mittels Leistungstransistoren. Der Aufbau
wirkt zwar im ersten Moment sehr komplex gegenüber der Relaisschaltung,
aber eigentlich hält es sich doch in Grenzen und der Mehraufwand ist es
meiner Meinung nach absolut Wert. Plan 4 Zeigt zunächst mal eine
Transistorschaltung, die einen Drehrichtungswechsel eines
Gleichstrommotors ermöglicht.
Plan 4
Mehr Infos zu dieser Schaltung gibt es
hier:
Schaltplan komplett
Nachdem nun alle Grundelemente der Steuerung
soweit erklärt sind, wird es Zeit für die komplette Schaltung vom PC
bzw. Bedienpult-Schaltern bis zu den Motoren

Plan 5
Download
CNC-steuerung.pdf
hier
Bastelplatinenlayout zur Steuerung
PC-Ansteuerung
(komplett) |
Motorschaltung
(komplett) |
Programmierung
DOS
Wie schon oben angeführt hatte
ich mich zunächst dazu entschlossen das Programm, welches die Maschine letztlich
steuert in QBasic zu schreiben. Die Befehle um
die seriellen und parallelen Schnittstellen des PC's anzusteuern und
auszulesen sind OUT(x) und INP(x). Dabei steht das X für die
Dezimaladresse des entsprechenden Registers. Die Ausgänge sind im
Datenregister des LPT 1 zu suchen, also 888 und die Eingänge im Statusregister,
hier 889. (LPT 2 wäre 632 und 635).
Der Syntax zum Setzten eines
Ausgangs am LPT 1 ist:
|
OUT(888),X (siehe
Tabelle) |
Syntax zum Auslesen eines
Eingangs am LPT 1 ist:
In die Variablen X
wird der aktuelle Status-Wert des Statusregisters geschrieben. Je nach Rechner
oder und Einstellung des LPT-Modus bekommen man hier unterschiedliche
Werte für den gesetzten Zustand. Zumindest hatte ich bei drei
unterschiedlichen Rechnern, trotz gleichem LPT-Modus auch drei
unterschiedliche Werte für den einundselben Zustand. Warum dies so ist
kann ich nicht erklären, tut aber auch der Sache keinen Abbruch und drum
hatte es für mich auch nie einen Anreiz gegeben dies genauer unter die
Lupe zu nehmen. Also am besten Schreibt man sich schnell einen Mini-5-Zeiler und testet es für seinen PC schnell selbst aus:
|
CLS
DO
X = INP(889)o
LOCATE 1,1: PRINT X
LOOP |
Nach dem Start kann man nun die einzelnen
Eingangspins mit Masse von Pin 18-25 beanschlagen und sich die Werte notieren.
Nun steht einem gezielten
Verfahren eines Motors fast nichts mehr im Wege. Man kann davon
ausgehen, dass der Magnet beim Vorbeischwingen den Reedkontakt nur wenige
Millisekunden beanschlagt, dennoch ist unter DOS, selbst mit einem 486'er die Abtastrate des LPT-Ports noch schneller und wird den Wert, je nach Drehzahl gleich ein
paar mal hintereinander ausgeben. Diese Tatsache sollte man in seinem
Programm beachten. Wie im Umbauteil bereits erklärt, bewirkt ein Vorbeidrehender
Magnet eventuell ein "Flattern" des Reedkontaktes. Dieses
Problem könnte man Schaltungsseitig durch eine Entprellung lösen, aber
warum mit dem Lötkolben rumhantieren wenn man dies auch
Programmtechnisch lösen kann. Alles was man tun muss ist, nach dem
ersten Signal des Reedkontakts eine Pause im Programm einbringen, die
lange genug ist um über den Prellbereich hinauszukommen, aber nicht zulange ist,
damit das nächste Signal nicht mehr erfasst werden könnte. Da hilft
einfach nur ein wenig rumexperimentieren. Nach ein paar Versuchen stellte ich fest, dass dies auch eine wirklich sichere Sache ist, obwohl es
zugegebener maßen im Programm etwas unsauber anzusehen ist. Bei schwachen Motoren ist
diese Abstimmung wahrscheinlich etwas kniffliger als bei Motoren mit
üppigem Drehmoment, da diese unter Last kaum einen Drehzahlabfall
erleiden und von daher die "Reedkontakt-Pause" relativ konstant bleiben
dürfte. Meine ersten Zeilen hierzu sahen wie folgt aus:
|
CLS
INPUT" Wie viele Takte sollen beim Verfahren des Motors gezählt
werden"; takte
DO
taktsignal = INP(889)
IF taktsignal = Eingangsignal THEN X = X + 1: FOR t = 1 TO 10000:
NEXT t
IF X = takte THEN OUT (888), 0: weiter
LOOP
weiter:
PRINT "Der Motor wurde" x; "Takte verfahren"
END
|
Man möge mir hier die 'quick
and dirty' Pause mittels FOR..NEXT-Schleife, die je nach
Rechnergeschwindigkeit anzupassen ist verzeihen.
Kreisgleichung
Mit den nun vorhandenen Kenntnissen
ist es ein einfaches, lineare Fräsarbeiten zu programmieren. Leider
reicht das selbst für den Hobbybereich nur in den seltensten Fällen
aus. Die "Königsdisziplin" beim Fräsen muss noch absolviert werden.
Der Kreis. Da die Motoren nur unabhängig von einander verfahren
werden können, muß diese
in Teilschritten, nacheinander geschehen. Die einfachste Logik
hierzu bietet die Kreisgleichung. |
 |
Hierbei nimmt man eine Achse (a/b oder x) und lässt diese in gleichgroßen
Schritten Abfahren. Ich nenn sie hier mal Stellachse und nehme
dazu die a/b Stecke. Diese wird
nun um einen festgelegten Wert verfahren. Nach diesem Arbeitsgang
wird die Strecke x berechnet und entsprechend nachgezogen. Danach
folgt wieder das Verfahren in der a/b Stecke mit dem festgelegten
Wert und anschließend wieder die Berechnung von x usw. Damit
lassen sich jeweils Viertelkreise abfahren, die je nach Festlegung
der Verfahrachsen und Vektoren zusammen einen Kreis ergeben.
Tiefer möchte ich in dieses Thema nicht einsteigen, denn jeder
wird nun selbst für sich herausfinden können welche
Möglichkeiten mit dieser simplen Programmlogik offen
stehen. |
Programmierung
Windows

Warum nun jetzt Windows und
nicht DOS? Eigentlich ist die Antwort ganz simpel. Ich hatte mich zu
sehr von Meinungen leiten lassen, dass die Ansteuerung des LPT-Ports
unter Windows zu komplex und unsicher sei. Das mag auch für viele
Dinge zutreffen, jedoch ist die Ansteuerung mit einer dafür bestimmten
Bibliothek (DLL)
eben so simpel wie unter DOS mit QBasic und für meinen Zweck auch sicher
bzw. schnell
genug. Deswegen habe Ich begonnen einen simplen CNC-Programm-Editor unter Delphi
zu stricken. Die Ansteuerung des LPT-Ports erledigt die, im Programm
angezogene Bibliothek
INPOUT32.DLL. Für alle die Interessiert an der Sache sind, habe
ich das Programm "SelfCNC" im
Programmdownload hinterlegt. Das Programm,
welches mittlerweile in Version 2 zur Verfügung steht, ähnelt eher einer
CAD-Anwendung für "arme" als einem CNC-Editor. Die einzelnen Befehle
werden über Masken eingegeben und nach Abschluss direkt graphisch am
Bildschirm ausgegeben. Das eigentliche CNC-Programm baut sich
automatisch in der linken/unteren Bildschirmhälfte auf und dient
gleichzeitig als Navigation durch die einzelnen Befehle. Auch wenn es im
ersten Moment den Anschein hat, dass das so erzeugte Programm konform
zur DIN 66025 ist, so unterscheidet es sich in Details doch sehr stark,
insbesondere in der Angabe zum Kreis bzw. Kreisbogen. Mehr zum
Funktionsumfang und zur Bedienung findet man im Programm unter
"Hilfe/Kurzeinstieg".

Weitere Bilder der Maschine
 |