Den Dexd da geid's bloß in Hochdeutsch

Krampus CNC-Steuerung

Version 5.1
1.) Vorwort
2.) Allgemeines
   Not-Aus-Schalter
   Systemvoraussetzung
   Bekannte Bugs
   Screenshot
3.) Programmübersicht
   Startbildschirm
   Dateimodus
   Programmieren
   Prüfen
   Simulation
   Referenzfahrt
   Antasten
   Berechnungshilfe
   Automatikmodus
   Parameter
   Uhr
4.) Programmierbefehle
5.) Anschluß der SMC
6.) Fehlercodes
7.) Kontakt

Vorwort

Diese Software habe ich in erster Linie für mich selbst geschrieben, um die Funktion einer CNC-Maschine kennen zu lernen. Und ich habe dadurch auch das Programmieren gelernt. Sicherlich stecken sehr viele Fehler in dieser Software. Damit kann ich aber leben. Denn ich kann sie ja selber ändern ;-) Dabei bin ich aber oft auf die Hilfe anderer angewiesen. Aus diesem Grund möchte ich mich hier erst mal bei den Leuten der Newsgroup comp.lang.pascal.borland für die Hilfe bedanken. Da ich im Internet auch einige Leute getroffen habe, die sich mit ähnlichen Sachen beschäftigen und mir gerne ihr Wissen zur Verfügung gestellt haben, habe ich mich schon vor einiger Zeit entschlossen, diese Software frei zur Verfügung zu stellen. Auch wenn es keine Profisoftware ist, so mag sie doch dem einen oder anderen gute Dienste leisten. So ganz umsonst soll sie aber nicht sein ;-) Als Gegenleistung möchte ich gerne Erfahrungsberichte. Vielleicht wird die Software dann noch besser. In diesem Zuge möchte ich auch auf den Eagle-SMC-Converter hinweisen, den mir Gerhard Strini zur Verfügung gestellt hat. Diesen finden Sie ebenfalls auf meiner Internetseite.

Wichtiger Hinweis:
Ich übernehme keinerlei Haftung für eventuelle Schäden an Hardware und Software

Allgemeines

Das Programm wird nur mit der Tastatur bedient. Eine Maus kann nicht verwendet werden. In der Menüzeile sind alle Funktionen gelistet. Der Joystick ist nur in der Ansicht "Antasten" verwendbar.

Ältere Versionen dieser Steuerung hatten noch ganz andere Fahrbefehle. Da ich diese Befehle nicht mehr für tauglich halte, habe ich die Programmbefehle komplett umgestellt. Die neuen Befehle lehnen sich stark an die üblichen G-Befehle an. Wer ältere Versionen der Steuerung benutzt, kann von mir ein Umwandlungsprogramm in die neuen Befehle haben. Einfach mal kurz ein Email schreiben.

Die Frage nach der Drehmaschine...
Die Steuerung ist eigentlich für eine Graviermaschine gedacht gewesen. Danach habe ich die Z-Achse doch noch richtig mit eingebaut. Natürlich kann man die Steuerung auch für eine Drehmaschine verwenden. Man muß dann einfach nur eine Achse weglassen. Allerdings ist es dann halt nicht weit her mit der Simulation.

Not-Aus-Schalter

Die Software verfügt über einen Software-Not-Aus und Software-Endschalter. Es wird dringend angeraten, den Harware-Endschalter ebenfalls mit anzuschliessen. Siehe Anschließen der SMC

Systemvoraussetzungen

Prozessor ab 80286 (nicht getestet auf Rechnern schneller als 600 MHz)
Arbeitspeicher350 kB unterer Arbeitsspeicher
Festplattenspeicher150 kB
GrafikkarteStandard VGA mit mindestens 16 Farben
Betriebssystem ab MS-DOS 5.0
Windows 98 im DOS-Fenster (Andere habe ich nicht probiert)
Linux mit DOSemu (Wer hier den LPT zum laufen gebracht hat, bitte melden)
SteuerungskarteSMC 800
Anschlüsse1x Parallel

Bekannte Fehlfunktionen

  • Gelegentlich kommt es vor, daß nach dem Programmstart der Schalteingang der SMC nicht frei ist. Danach bleibt nur noch eine Referenzfahrt. Es ist aber sowieso ratsam zuerst eine Referenzfahrt zu machen, da man oft mal nicht weis, ob vorher vielleicht der Notaus betätigt wurde.
  • Die Vorschau im Dateimodus zeichnet gelegentlich über den Bereich hinaus
  • Game-Controller wird zwar erkannt, digitaler Joystick funktioniert aber dennoch nicht
  • Prüfung findet fehlende Koordinaten nicht zuverlässig
  • Es können keine Daten von anderen Laufwerken gelesen werden
  • Es können keine Vollkreise werden. Da Start- und Endwinkel dabei gleich sind, gibt's irgendwo eine Division durch 0. Dann stürzt das Programm ab.
Wenn sie weiter Fehler in der Software finden, schreiben Sie mir doch bitte eine Email.

Screenshots

Startbildschirm

Simulationsmodus

Automatikmodus



Programmübersicht

Systemstart

Bei Programmstart werden die Parameterdatei und die letzten gespeicherten Maschinenwerte geladen. Ist beides oder auch nur ein Teil nicht vorhanden (z.B. beim ersten Start), so werden die nötigen Dateien neu angelegt. Außerdem wird eine Datei namens "programm.tmp" erzeugt und geladen. Sie besteht lediglich aus einer Zeile ";leere Programmzeile". Das soll verhindern, daß Programmteile gestartet werden, ohne eine CNC-Datei zur Verfügung zu haben. Diese Datei erscheint aber nicht im Dateimodus, da dort ein Filter sitzt, der nur *.cnc Dateien anzeugt.
Beim Beenden der Software werden die letzten Maschinenwerte in eine Datei namens "kcnc51.dat" gespeichert. Die Parameter findet man in "kcnc51.par"
Nach dem ersten Start der CNC-Steuerung befinden sich folgende Dateien auf ihrer Festplatte:
kcnc51.exe, kcnc51.par, kcnc51.dat, hinweis.txt, programm.tmp und gelegentlich editor.tmp
Achtung! Wir die CNC-Steuerung unter Windows oder mittels einer Batch-Datei gestartet, so muß darauf geachtet werden, daß das Startverzeichnis diese Dateien enthält.

Dateimodus

Der Dateimodus ist die zentrale Stelle zum Laden der Dateien für Prüfung, Simulation, Automatik und Programmieren. Bevor man eine Datei nutzen kann, muß sie hier geladen werden. An anderer Stelle gibt es keine Möglichkeit mehr. Die Funktionen sind sehr begrenzt. Man kann die Dateien mit den Pfeiltasten auswählen. Danach besteht nur Möglichkeit einer Vorschau, die eigentlich eine Kombination aus Prüfung und Schnellsimulation ist. Um nun mit der gewählten Datei arbeiten zu können, muß sie mit der [Enter]-Taste ins Programm geladen werden. Die ausgewählte Datei ist nun im Werte-Fenster zu sehen und ist in allen Programmteilen verfügbar. Wird ein Verzeichnis gewählt, so kommt man ebenfalls mit der [Enter]-Taste dort hinein.
Hinweis: Ein Punkt [.] bedeutet, sie bleiben im aktuellen Verzeichnis. Zwei Punkte [..] bedeutet Sie springen ein Verzeichnis höher.
Achtung: Es werden nur Dateien mit der Endung .cnc angezeigt.
Vorschau: Linien in weis deuten auf Fahrwege unterhalb Z<=0, grüne Linien auf Z>0.

Programmieren

Die Ansicht "Programmieren" wird wie ein Texteditor verwendet. Wird eine neue Datei erstellt, so wird diese beim Speichern in das aktuell im Dateimodus ausgewählte Verzeichnis gespeichert.
Wird keine neue Datei angelegt, so startet der Programmeditor am Anfang des geladenen Programms.
Neu angelegte Dateien bekommen automatisch die Dateiendung ".cnc"
Beim Befehl "Zeile löschen" wird die aktuell ausgewählte Zeile gelöscht. Bei "Zeile einfügen" wir eine Zeile nach der aktuell ausgewählten Zeile eingefügt.
Achtung: Die Datei wird nicht automatisch gespeichert. Also aufpassen beim Ändern von Dateien!

Prüfen

Die zu prüfende Datei muß vorher im Dateimodus ausgewählt werden. Ansonsten wird die Datei geprüft, die unter in der Werteanzeige steht. Die Datei wird nun auf Satzfehler im Programm untersucht. Es werden allerdings nur ungültige Koordinatenangaben gefunden. Fehlerhafte Zeilen werden mit einem Kommentarzeiche ausgeblendet und zu besseren Lesbarkeit zusätzlich noch mit "F-->" gekennzeichnet.
Achtung: Es werden keine falsch eingegebenen Werte gefunden!

Simulation

Die Simulation stellt eine komplette Maschine für sich dar. Alle Koordinaten werden angezeigt, Verweilzeit wird ausgeführt. Allerdings wird nicht zwischen Arbeits- und Eilgang unterschieden.
Hinweis: Linien in weis deuten auf Fahrwege unterhalb Z<=0, grüne Linien auf Z>0.

Referenzfahrt

Achtung: Referenzrichtung in den Parametern beachten
Die Maschine wird zum Referenzschalter gefahren. Wird der nun betätigt, so fährt die Achse wieder ein Stück davon weg. Somit kann der eine Schalteingang der SMC wieder als Notaus-Schalter bzw. Hardware-Endschalter verwendet werden.

Antasten

Angetastet wird mittels Zahlenblock der Tastatur oder Joystick.
Der Weg pro Tastendruck kann in den Parametern eingestellt werden.
Der Joystick wird durch drücken beider Feuertasten angeschaltet.

Berechnungshilfe

Hier finden Sie Berechnungshilfen für die Parameter. Jede Eingabe muß mit [Enter] bestätigt werden. Erst dann kann die Ansicht wieder beendet werden.

Automatikmodus

Achtung: Referenzrichtung in den Parametern beachten
Vorschau: Linien in weis deuten auf Fahrwege unterhalb Z<=0, grüne Linien auf Z>0.
Rote Linien Zeigen den Fahrweg, der gerade bearbeitet wird.
Hinweis: Der Not-Aus-Schalter kann nicht mehr freigegeben werden. Es muß zuerst die Automatik verlassen werden. Dann ist der Notaus wieder frei.

Parameter

Kurzzeichen Jeder Parametereinstellung muß ein Kurzzeichen gegeben werden.
Anhand des Kurzzeichens wählt das Programm die Einstellungen.
Arbeitsfrequenz Gibt die Schrittfrequenz bei Fahrbefehl "G01" an.
Maximaler Wert ist 5000
Der Vorschub errechnet sich folgendermaßen:
Vorschub = Frequenz * Spindelsteigung / Motorschrittzahl
oder
Vorschub = Frequenz / Faktor
Eilfrequenz Gibt die Schrittfrequenz bei Fahrbefehl "G00" an.
Maximaler Wert ist 5000

Beispiel: Spindelsteigung 3mm , 200 Schritte/Umdrehung
max. Vorschub = 5000 1/s * 3 mm / 200 max. Vorschub = 75 mm/s
Beschleunigung Gibt die Beschleunigungsrampe an.
Maximaler Wert ist 5000
Bremsen Gibt die Bremsrampe an.
Maximaler Wert ist 5000
Antastweg Weg pro Tastendruck in der Ansicht "Antasten"
Die Angabe ist in 1/100 mm
Referenzrichtung Je nach Aufbau der Maschine kann es sein, daß man mal die Motordrehrichtung ändern muß. Hier kann jede Achse "umgepolt" werden.
Mögliche Eingaben sind "0" und "1"
Faktor Da man seinen Fahrweg im mm programmieren will, muß dieser für die Maschine in Schritte umgerechnet werden.
Faktor = Motorschrittzahl / Spindelsteigung
Soft Heir wird der Softwareendschalter festgelegt. Eingegeben wird der maximale Fahrweg in jeder Achse.
Die Eingabe erfolgt in mm.
Beschreibung Jeder Einstellung kann eine lesbare Kurzbeschreibung zugefügt werden.
LPT Hier sollte der benutzte LPT ausgewählt werden. Da aber ältere Rechner verschiedene Hardwareadressen haben, funtioniert diese Einstellung nicht. Kommt vielleicht beim nächsten Update.

Uhr

Die Uhr macht das, was eine Uhr machen soll. Sie zeigt die Zeit an.
In dieser Spezialsoftware sogar das Datum ;-)


Programmierbefehle

Allgemeines
Jede Programmzeile besteht aus einem Fahrbefehl und Koordinatenangaben bzw. Werten. Zwischen jeder Koordinatenangabe MUSS ein Leerzeichen stehen. Die Werte hinter den Koordinaten sollten ohne Leerzeichen angeschlossen werden. Zahlen können mit [komma] oder mit [punkt] eingegeben werden.
Ausnahme sind die "M"-Befehle. Sie verwenden keinerlei Zusatzangaben.
 
';' Kommentarzeile
Beispiel: ;Diese Zeile wird nicht beachtet
Beginnt eine Programmzeile mit einem [strichpunkt], so wird sie einfach überlesen. Kommentarzeichen am Ende einer Programmzeile sind nicht erlaubt und führen zu Fehlern.

G01 Lineare Bewegung
Beispiel: G01 X26.3 Y73.9 Z-1.3
Dieser Befehl führt eine geradlinige Bewegung mit Arbeitsfrequenz innerhalb aller Achsen aus. Werden Koordinatenangaben weggelassen, so werden die aktuellen Achsenpositionen der fehlenden Koordinaten verwendet. Es muß aber mindestens eine Koordinate definiert werden.
 
G00 Lineare Bewegung im Eilgang
Beispiel: G00 X0 Y0 Z10
Dieser Befehl ist geanu wie G01. Allerdings wird im Eilgang gefahren.

G02 Kreisbogen im Uhrzeigersinn
Beispiel: G02 X185.36 Y135.36 I150 K100
Es wird ein Kreisbogen von der aktuellen Position bis zum angegebenen Endpunkt gefahren. Der Radius errechnet sich aus dem Radiusmittelpunkt.
X = Endpunkt absolut des Bogens auf der X-Achse
Y = Endpunkt absolut des Bogens auf der Y-Achse
I = Radiusmittelpunkt absolut auf der X-Achse
K = Radiusmittelpunkt absolut auf der Y-Achse
Die Z-Achse darf dabei nicht verwendet werden!
 
G03 Kreisbogen gegen Uhrzeigersinn
Beispiel: G03 X30.87 Y146.19 I50 K100
Beschreibung wie G02
 
F01 Vorschubgeschwindigkeit
Beispiel: F01 1.0
Die Vorschubgeschwindigkeit wird in mm/s angegeben.
 
G04 Verweilzeit
Beispiel: G04 200
Die Verweilzeit wird in 1/100 Sekunden angegeben. Im Beispiel wird eine Verweilzeit von 2 Sekunden erzeugt. Allerdings ist zu beachten, dass die angebene Verweilzeit mit der Geschwindigkeit verschiedener Computer etwas variieren kann. Vorher also erst mal testen.
 
M00 Pause
Beispiel: M00
Dieser Befehl unterbricht das Programm. Er muss per Hand mit [ESC] frei gegeben werden.

M03 Spindelmotor einschalten
Beispiel: M03

 
M05 Spindelmotor ausschalten
Beispiel: M05

 
Beispiel
;Beispielprogramm
;programmstart
G00 X50 Y100 Z0
F01 5.0 G01 X100
M03
G01 Z-0.5
G03 X96.19 Y119.13 I50 K100
G03 X85.36 Y135.36 I50 K100
G03 X69.13 Y146.19 I50 K100
G03 X50 Y150 I50 K100
G04 500
G03 X30.87 Y146.19 I50 K100
G03 X14.64 Y135.36 I50 K100
G03 X3.81 Y119.13 I50 K100
G01 Z1
G03 X0 Y100 I50 K100
G03 X3.81 Y80.87 I50 K100
G03 X14.64 Y64.64 I50 K100
G03 X30.87 Y53.81 I50 K100
G03 X50 Y50 I50 K100
G03 X69.13 Y53.81 I50 K100
G03 X85.36 Y64.64 I50 K100
G03 X96.19 Y80.87 I50 K100
G03 X100 Y100 I50 K100
G01 X100
M05
;programmende

Anschließen der SMC

Der Anschluß der Motoren sollte keine Schwierigkeiten machen.
Alle Schalter von allen Achsen müssen parallel geschalten werden.
Beispiel für eine Achse:
Notausschalter wird separat irgendwo befestigt.
Endlagenschalter am Anfang und am Ende des Schlittens.
Ein Endschalter dient als Referenzschalter.

Fehlercodes

Nummer Kurzbeschreibung Bemerkung
0System i.O. Ist eigentlich kein Fehler und sollte Dauerzustand sein
1Treiberdatei fehlt kommt in Version 5.1 nicht vor
2Treiberversion kommt in Version 5.1 nicht vor
3Treiber defekt kommt in Version 5.1 nicht vor
4T-reset gescheitert Das Programm hat sich aufgehängt und muß neu gestartet werden
5Parameterdat fehlt Die Parameterdatei fehlt. Kommt das beim Programmstart vor, so wird automatisch eine neue Parameterdatei erzeugt. Diese beinhaltet Standardwerte. Bitte sofort anpassen
6Parameterdat beschd. Die Parameterdatei ist beschädigt. Hier hilft nur noch das Löschen der Datei. Beim nächsten Programmstart wird dann automatisch eine neue erzeugt. Ratsam ist eine Sicherung der Datei.
10Funktionsaufruf Das Programm hat sich aufgehängt und muß neu gestartet werden
11Soft-Interupt aktiv kommt in Version 5.1 nicht vor
12Break Fehler Das Programm hat sich aufgehängt und muß neu gestartet werden
13In Bewegung Fehler Das Programm hat sich aufgehängt und muß neu gestartet werden
14Software Endschalter Die Maschine hat den in den Parametern festgesetzten Software-Endschalter erreicht.
15Software Ende setzen Der Wert für den Software-Endschalter ist ungültig
16Hardware Endschalter Die Maschine ist auf den Hardware-Endschalter gelaufen. Hier hilft nur noch eine Referenzfahrt
17In Bearb. Hard End. kommt in Version 5.1 nicht vor. (Nur für Roboter)
18Referenzfahrt Fehler Die Maschine kann den Referenzpunkt nicht anfahren. Referenzrichtung in der Parameterdatei überprüfen!
19Handbewegung Fehler kommt in Version 5.1 nicht vor. (Nur für Roboter)
20Stop Fehler kommt in Version 5.1 nicht vor. (Nur für Roboter)
21Teach In Fehler kommt in Version 5.1 nicht vor. (Nur für Roboter)
22Kreis Fehler Die Kreisberechnung kann nicht gemacht werden. I- und K-Werte überprüfen!
26Geschwindigkeit Ungültiger Wert für Frequenzen
32Bitnummer Fehler Das Programm hat sich aufgehängt und muß neu gestartet werden
33Portnummer Fehler Das Programm hat sich aufgehängt und muß neu gestartet werden
34Beweg. Ausgabeport kommt in Version 5.1 nicht vor. (Nur für Roboter)
35Geheimcode Fehler kommt in Version 5.1 nicht vor
40Dat nicht gefunden Datei wurde nicht gefunden. Bitte im Dateimodus auswählen!
41LW nicht bereit Laufwerk ist nicht bereit
42Dat ist vorhanden Datei ist schon vorhanden. Bitte unter einem anderen Namen speichern
43Dateiname falsch Ungültiger Dateiname
50unbek. Fahrbefehl Fahrbefehl nicht bekannt.
51X Koordinate Fehlender oder ungültiger Wert für die X Koordinate
52Y Koordinate Fehlender oder ungültiger Wert für die Y Koordinate
53Z Koordinate Fehlender oder ungültiger Wert für die Z Koordinate
54I Koordinate Fehlender oder ungültiger Wert für die I Koordinate
55K Koordinate Fehlender oder ungültiger Wert für die K Koordinate
56Verweilzeit Fehlender oder ungültiger Wert für die Verweilzeit
60Norm-Frequenzwert Fehlender oder ungültiger Wert für den Arbeits-Frequenzwert
61Eil-Frequenzwert Fehlender oder ungültiger Wert für den Eil-Frequenzwert
62Referenz Achsen Zeitüberschreitung beim Anfahren der Referenzpunkte. Programmneustart nötig!
66Soft Endschalter X Software-Endschalter der X-Achse erreicht
67Soft Endschalter Y Software-Endschalter der Y-Achse erreicht
68Soft Endschalter Z Software-Endschalter der Z-Achse erreicht
69Programmierfehler Programmierfehler. Bitte Leerzeichen beachten
70Stromvers. allgem kommt in Version 5.1 nicht vor
71Stromver. Schalter kommt in Version 5.1 nicht vor
72Stromvers. X Achse kommt in Version 5.1 nicht vor. (Nur für Roboter)
73Stromvers. Y Achse kommt in Version 5.1 nicht vor. (Nur für Roboter)
74Stromvers. Z Achse kommt in Version 5.1 nicht vor. (Nur für Roboter)
75Schlüsselschalter kommt in Version 5.1 nicht vor. (Nur für Roboter)
80NOT-AUS Software Software NOT-AUS wurde betätigt
81NOT-AUS Hardware Hardware NOT-AUS wurde betätigt
82X Endschalter Soft siehe Soft Endschalter X
83Y Endschalter Soft siehe Soft Endschalter Y
84Z Endschalter Soft siehe Soft Endschalter Z
85X Endschalter Hard Hardware-Endschalter der X-Achse wurde ausgelöst
86Y Endschalter Hard Hardware-Endschalter der Y-Achse wurde ausgelöst
87Z Endschalter Hard Hardware-Endschalter der Z-Achse wurde ausgelöst
99unbekannter Fehler Sagt doch schon alles, oder?