Peter Hofbauer’s private Homepage
Selbstbauprojekte
eigene Entwicklungen
CNC-Maschine mit 3D- und Laser Zusatz (3 / 3)
Der Schaltplan
Die komplette Schaltung ist ein umfangreiches KiCAD-Projekt mit 11 Seiten. Im Hauptschaltplan sind die einzelnen Gruppen als
Unterschaltungen enthalten. Der Hauptschaltplan soll eine Übersicht über alle Gruppen geben. Das ist bei den Umfang nur zum Teil
gelungen. Hier eine Liste der Seiten mit deren Dateiname:
1.
CFM9620
Übersicht, Hauptschaltplan
2.
CFM9620C
Arduinobox, die Verbingung zum PC mit Estlcam
3.
CFM9620D
Controller, für die manuelle Bedienung der CNC ohne PC
4.
CFM96203D
der 3D-Druckerteil
5.
CFM9620S
Steckerprint für die beiden 3D-Netzteile
6.
CFM9620H
Treiber für die Bettheizung des 3D-Druckers
7.
CFM9620ABL
Z-Sensor für den 3D-Drucker
8.
CFM9620J
Bedieneinheit mit Joystick für die CNC
9.
XYZ9620
XYZ-Anzeige mit Lasersteuerung
10.
XYZ9620L
Leistungsteil für den Laser
11.
CFM9620LK
Bedieneinheit am Laserkopf
Die Steuerung der CNC
Übrigens sind in den Schaltplänen alle Steckverbinder eingezeichnet. Wo “Front” dran steht: die befinden sich auf der großen Frontplatte.
Die CNC kann wie bisher auf 2 Arten gesteuert werde: manuell mit der Joystick-Einheit oder vom PC + Estlcam.
Die CNC-Funktionen werden vom Controller (CFM9620D) verwaltet. Im manuellen Betrieb kommen die Kommandos von der Einheit ”Joystick”
(CFM9620J). Dort sind die 4 Tasten “START”, “STOPP”, “Nach Hinten”, “REF0,0” und ein Joystick mit 3 Schaltern. Und der Umschalter von
Manuell auf AUTO (= Estlcam). Über den 15poligen SubD X13 gehen die Leitungen zum Controller/X11. Die 4 Tasten sind parallel auch auf der
Front vorhanden.
Über Controller/X10 werden die 4 Schrittmotor-Treiber und das Relais K2 für die Spindel gesteuert.
Am Controller/X9 sind die 6 Endschalter angeschlossen. Über den X9.1 > X5.1 wird die Arduinobox eingeschaltet. Der Controller schaltet die
Leitung “USB-Stop” (X5.1) zur Arduinobox auf +12V wenn die Steuerung vom PC/Estlcam erfolgen soll. Falls der Umschalter auf AUTO steht
und kein Endschalter aktiviert ist.
Am 25poligen SubD X5 ist die Arduinobox angeschlossen. Die Signale für die Schrittmotoren sind parallel zu denen vom Controller
angeschlossen. Können aber nur aktiv werden wenn über X5.1 die 12V vom Controller kommen. Es gehen 3 wichtige Leitungen zur
Arduinobox: START, JSS (=STOP) und Tiefe (X16, Tastplatte). In der Arduinobox werden über Optokoppler 4 Eingänge Bedient und wie folgt
in Estlcam gesetzt:
•
Eingang 1 = Endschalter, geht an die 12V vom Controller, daran erkennt Estlcam einen aktivierten Endschalter
•
Eingang 2 = Sensor, geht zur Tastplatte
•
Eingang 3 = Programm Start, geht zur Taste
•
Eingang 6 = Programm Stopp, geht zur Taste
Endschalter
An dieser Stelle mal ein Wort über die Endschalter. Nach meiner Ansicht muss das Anfahren eines Endschalter zum normalen Betrieb gehören.
Auf keinen Fall sollte das ein Ausnahmefall oder gar Notaus sein. Im manuellen Betrieb fahre ich beim Einrichten oder Reinigen usw meine
Maschine immer bedenkenlos bis auf den Endschalter . In meiner Firmware ist speziell dafür eine sehr kurze Bremsrampe enthalten. Damit
werden Schrittverluste wegen zu abrupten Bremsen vermieden. Besonders wichtig für die Y-Achse, weil die mit 2 Motoren ohne mechanische
Verbindung arbeitet.
Als Endschalter verwende ich mechanischen Schalter, oft “Schnappschalter” genannt. Die sind nach meinen Erfahrungen präziser und
zuverlässiger als Näherungsschalter. Ich fahre direkt auf den Schalter zu, also nicht seitwärts. Wenn die Achse am Endschalter stehen bleibt,
also am Ende der Bremsrampe, bleiben noch 0,6mm bis zum mechanischen Anschlag des Schalters.
Für 2 Spindeln vorgesehen
Mit S1 wird zwischen der 1,5kW 3-Phasen-Spindel und einer Proxxon am Schukostecker X14 gewählt. Die Drehzahl wird nicht von EstlCAM
vorgegeben sondern durch ein Drehknopf am Umrichter oder direkt an der Proxxon.
Mit S16 oder S10 kann eine Spindel auch manuell gestartet werden.
Das Netzteil
für die CNC ist wie vorher nur ein Netztrafo mit Gleichrichter und Elko, also nicht stabilisiert. Wird mit X25 von der übrigen Schaltung trennbar
für Servicezwecke. Die Spannung beträgt etwa 28V.
Die XYZ-Anzeige und Steuerung für den Laserkopf
Diese Baugruppe besteht aus der Platine XYZ9620 mit drauf gesteckten Display und der
Zusatzplatine XYZ9620L für den Laser.
Platine XYZ9620
Verwendet wird ein 3,5” TFT mit einer Auflösung von 320x480. Der Treiber ist der ILI9486. Wird
mit 8 bit parallel angesteuert. Die Stiftleisten am Display sind für einen Einsatz am Uno
vorgesehen. Ich habe stattdessen eine eigene Platine und Firmware mit den
dsPIC33EP128GP504 entwickelt. Als Textanzeige mit folgenden Funktionen:
•
Zeichen #1: Fenster 16x26, 30 Char, 12 Zeilen, Rest 0x8, Zeit = 0,77ms
•
Zeichen #2: Fenster 32x52, 15 Char, 6 Zeilen, Rest 0x8, Zeit = 3,1ms
•
Zeichen #3, Fenster 48x78, 10 Char, 4 Zeilen, Rest 0x8, Zeit = 6,9ms
•
Zeichen #4, Fenster 64x104, 7 Char, 3 Zeilen, Rest 32x8, Zeit = 12,3ms
Die Zeit gilt für einen einzigen Char. Die Farben sind wählbar und man kann auch pixelweise in
X- und Y-Richtung verschieben. Grafiken habe ich nicht vorgesehen.
Für die Positionsanzeige verwende ich #3, für die Laser-Anzeigen #1.
Die Signale von den Schrittmotor-Treibern werden über Spannungsteiler und eine Z-Diode auf
den 3V-Pegel begrenzt. Die X- und Y-Takte lese ich per Interrupt ein
Die 3 Tasten S1, S2 und S3 setzen die Positionsanzeige auf 0. U6 ist ein Mäuseklavier, ich
verwende hier nur einen Schalter zur Auswahl der Drehrichtungen.
Der Prozessor läuft mit 3,3V. Den Stabi U3 (+ C11) musste ich nachträglich aus die Platine
löten. Der 3,3V-Stabi auf dem Display geht nicht zu den Stiftleisten obwohl das täuschender
weise an den Stifleisten dran steht.
Platinen XYZ9620L und
CFM9620LK
Ein Laser war zuerst nicht
eingeplant. Die nicht
benötigten Pins vom
Prozessor waren an
Stiftleisten vorhanden und
konnten für die Steuerung
eines Lasers verwendet
werden.
Dazu ist eine Platine
(XYZ9620L) über die
Anzeigeplatine angeordnet
und mit diese verbunden.
Die Anschlüsse X3 und X4
sind mit der Anzeigeplatine
verbunden. Der Anschluss
X5 ist die Verbindung zur
übrigen Maschinen-
Verdrahtung.
Die Betriebsspannung von
12V wird mit den Stabi U1
aus der Betriebsspannung
der CNC erzeugt. Der
benötigte Strom beträgt
0,8A. Das ist für den in der
CNC bereits vorhandenen
12V-Stabi zu viel. Deshalb
ein extra Stabi mit großen
Kühlkörper.
Eingeschaltet wird die
Laserfunktion sobald der
Stecker vom Laserkopf an die Front gesteckt
wird. Der Widerstand R1 soll den Stromimpuls
durch den C2 begrenzen. Zum Schutz der
Kontakte im Stecker.
Am Laserkopf befindet sich in ein kleines
Gehäuse die Schaltung CFM9620LK.
Die Stellung des Wippschalters S1 oder Potis
RV1 wird über eine analoge Spannung vom
Prozessor erkannt.
Zum Laserkopf gehen 3 Leitungen:
•
“12V-LK” Betriebsspannung 12V
•
“PWM” PWM zur Leistungseinstellung
•
“GND-LK” Bezugspotential
Die Steuerung des 3D-Druckers
Der 3D-Drucker wird mit der Original-Steuerung vom A8 betrieben. Der Z-Motor der CNC wird auch für den 3D verwendet. Dazu wird die
Leitung zum Z-Motor mit Relais K1 (CFM9620) mit der 3D-Platine verbunden.
Der 3D-Teil geht in Betrieb wenn die Netzspannung (3DL, 3DN) mit den Schalter S8 (CFM9620) auf “3D” geschaltet wird. Außer das originale
Netzteil vom A8 wurde ein zweites 12V-Netzteil dazu in Reihe geschaltet. Weil das vom A8 nicht genug leistet und ich außerdem für das
Heizbett 24V benötige. Für das Heizbett ist der Leistungstreiber CFM9620H nötig.
Weil die Motoren etwas mehr Strom benötigen sind folgende Änderungen auf der 3D-Platine nötig:
X-Treiber: Widerstand R10 = 100k durch 68k ersetzen
Y-Treiber: Widerstand R17 = 100k durch 33k ersetzen
Z-Treiber: Trimmer auf Maximum stellen
E-Treiber: keine Änderung
Downloads
Wie alle meine Berichte ist auch dieser keine Bauanleitung! Also: mach damit was Du willst, aber auf eigene Verantwortung!
Die Schaltpläne sind mit KiCAD 5.01 gezeichnet worden. Diese Version ist, soweit ich es probiert habe, die letzte Version die noch mit XP
funktioniert. Die Dateien sollte man in ein extra Verzeichnis entpacken. Darin sind 9 Projekte enthalten, die alle in ein Verzeichnis gehören.
Dann zuerst das Projekt mit den Hauptschaltplan CFM9620 starten. KiCAD will dann (manchmal?) die Libs zuordnen. Danach funktionieren
die Projekte mit den Unterschaltungen ebenfalls.
Die 9 Projekte:
CFM9620 = Hauptschaltplan, enthält alle Schaltpläne in Hierarchien. Für Schaltungen, die eine Platine brauchen, habe ich Projekte mit
der selben Schaltplandatei (= Kopie) angelegt:
CFM9620ABL = ABL-Sensor (Auto-Bett-Leveling)
CFM9620C = Arduinobox
CFM9620D = Controller
CFM9620H = Heiztreiber
CFM9620R = Relaisprint
CFM9620S = Steckerprint
XYZ9620 = Anzeige + Laser
XYZ9620L = Laser-Erweiterung
Download für KiCAD CFM9620.zip (156kB)
Download Hex-Datei für den Controller: CPP9620V1.zip (2,2kB)
Die Firmware für die XYZ-Anzeige mit Laser-Steuerung ist nur für meine Anwendung entwickelt worden. Falls jemand diese für eigene
Anwendungen ändern möchte, zum Beispiel für andere Schritte pro mm, muss die Firmware entsprechend geändert werden. Damit das
möglich ist, kann das Projekt komplett mit Quellen herunter geladen werden. Ist komplett in Assembler geschrieben.
Ich hatte das mit folgenden Werkzeug entwickelt: “MPLAB IDE v8.91” und “PICKIT 3”.
Download Projekt XYZ9620.zip (208 kB)
Korrektur: statt dsPIC33EP128GP504 wurde dsPIC33EP64GP504 verwendet