www.mikrocontroller.net

Forum: PC-Programmierung G-Code Interpreter


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Thomas Irmer (Firma: Siemens AG) (thomasirmer)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo zusammen,
ich arbeite derzeit an einem G-Code Interpreter Projekt. Ziel ist es 
einen OpenSource Interpreter zu verwenden und über den Parallelport 
Schrittmotoren anzusteuern.
Mein Frage dabei ist: Was ist der Output des G-Code Interpreters? Der 
G-Code beherrscht ja lineare, zirkulare u.a. Interpolationen. Aber beim 
Schreiben des G-Codes weiß ich ja nicht, wie die Maschine, also das 
Zusammenspiel der Achsen aussieht. Ebenso weiß dies der G-Code 
Interpreter nicht. Bekomme ich als Output also nur xyz-Koordinaten? Oder 
schon die Steuerungsdaten für den Motor?

Falls sich jemand damit auskennt, würde ich mich sehr über eine Antwort 
freuen...

Beste Grüße
Thomas

Autor: Dennis Heynlein (c-logic)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Du schreibst zwar das du an einem G-Code-Interpreter schreibst, bist dir 
aber nicht sicher was ausgegeben wird ?

Was ausgegeben wird ist doch von der Achsenkontrolle abhängig.
Ob es sich um Schrittmotoren direkt angesteuert handelt oder ein 
separater Achscontroller dazwischen ist.

Im Einfachsten Fall spuckt der Interpreter getaktet für alle Achsen die 
kleinste Positionseinheit aus.

Autor: Zwie Blum (zwieblum)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
schau mal da nach: http://linuxcnc.org/

Autor: MaWin (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
> Was ist der Output des G-Code Interpreters?

Normalerweise Impulse in positive und negative x,y und z Richtung zum 
möglichst genau passenden Zeitpunkt.

> über den Parallelport

Welcher Rechner hat denn so was noch ?

Zudem ist es sehr schwer, einen PC zu so genauer Impulserzeugung
zu bringen.

Schau mal, wie schlecht Mach3 funktioniert, da muß ACPI abgeschaltet 
werden damit nicht irgendwelche Stomsparschaltungen und Taktreduktionen 
zu Fehlverhalten führen.

Autor: Jonas Biensack (jibi)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Echtzeit und Windows? Vergiss es. Lass einen externen Controller die 
Steuerung übernehmen. Grundlagen sind für dich wohl noch zu festigen...

Gruß Jonas

Autor: Pieter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
moin moin,

habe auf einem 8051 System einen G-Code-Interpreter laufen.
Dieser arbeitet grob gesagt 2-Stufig.
"Oben" werden die Bahndaten (Wege) mit ev. Frässradienkorrektur 
berechnet.
"Unten" werden diese Daten zeitrichtig für die Schrittmotore der 3 
Achsen ausgegeben.

>>Aber beim Schreiben des G-Codes weiß ich ja nicht, wie die Maschine, >>also das 
Zusammenspiel der Achsen aussieht.

Das ist CAM, da wird festgelegt wie die Fertigung erfolgt.
Wenn Du z.B. eine Kreistasche fräsen willst, da ist das Zusammenspiel 
der Achsen fest vorgegeben.

Mit Gruß
Pieter

Autor: Uhu Uhuhu (uhu)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
MaWin schrieb:
> Zudem ist es sehr schwer, einen PC zu so genauer Impulserzeugung
> zu bringen.

Mit DOS geht das schon ;-)

Autor: Dennis Heynlein (c-logic)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Pieter, wie hast du die Schneidenradienkorrektur realisiert ?
Für Kreisbogen und Gerade ?
Oder ist das Geheim ?

Autor: Pieter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
moin moin,

die Fräsradienkorrektur ist eigendlich nur angewandte Schulmathematik.
Man braucht allerdings 3 Punkte (woher, der Punkt und wohin).
Realisert habe ich: Linie <-> Linie, Kreis <-> Kreis und Linie <-> 
Kreis.

MfG
Pieter

Autor: Dennis Heynlein (c-logic)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Den Vektor verschieben um den Schneidenradius ist sicherlich nur 
Schulmathematik.
Wie schauts mit Hinterschnitterkennung und Eckenstrategien ?

Autor: Pieter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
moin moin,

>>Hinterschnitterkennung
Hinterschnitte sind im Hobbybereich wohl ehr selten und müstem im CAM 
detailiert beschrieben werden.
Im G-Code selber gibt es dazu keine Kommandos.

>>Eckenstrategien
Ist der Winkel der Winkelhalbierenden
< 180 Innenecke, Eckpunkt mit Winkelhalbierender berechnen
=180(0) grade Stecke, keine Berechnung
> 180 Aussenecke, Kreisbogen (Radius=Toolradius) einfügen
Der Fräser bleibt immer im Kontakt mit dem Werkstück.

MfG
Pieter

Autor: Silvio K. (exh)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Zwie Blum schrieb:
> schau mal da nach: http://linuxcnc.org/

Damit es nicht untergeht, hier die Wiederholung:
http://linuxcnc.org/

Da ist alles schon fertig, offen und universell.
Eine Neuentwicklung macht eigentlich wenig Sinn.

Gruß

Autor: Pieter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
moin moin,

ich habe kein Linux und ich will an der Fräse auch keinen PCs haben!
..und nun?

G-Code-Interpreter ..habe fertig

MfG
Pieter

Autor: Steffen H. (avrsteffen)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Pieter schrieb:
> moin moin,
>
> ich habe kein Linux und ich will an der Fräse auch keinen PCs haben!
> ..und nun?
>
> G-Code-Interpreter ..habe fertig
>
> MfG
> Pieter

Hallo Pieter,

Möchte sehen! Und außerdem, hast du schon mal etwas von Grbl gehört? Ist 
auch ein G-Code Interpreter für einen ATmega168 oder ATmega328.

Habe den Code für einen ATmega644 angepasst und implementiert, den ich 
für mein 3-Achs-Stepper-Driver-Board verwende.
Beitrag "3-Achs Schrittmotorsteuerung mit Trinamic TMC260 und AVR"

Gruß Steffen

Autor: Pieter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
moin Steffen,

Grbl kenne ich nicht, arbeite nur mit 8051.
Als Motortreiber nutze ich derzeit noch TB6560AHQ, die Platinen für den 
THB6064AH kommen erst noch.

Zu meiner Fräse siehe hier:
http://forum.zerspanungsbude.net/viewtopic.php?f=5...

Mit Gruß
Peter

Autor: Steffen H. (avrsteffen)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo Pieter,

Schöne Fräse!
Wenn ich mir das Blockschaltbild von deiner Elektronik so anschaue, 
stelle ich mir folgende Frage:
Hast du zur Steuerung der Motortreiber mehrere 8051 Kerne verwendet? 
Sehe ich das richtig?

Und welche Befehle + Parameter werden bei deinem G-Code-Interpreter 
alles verstanden?

Gruß Steffen

Autor: Pieter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
moin Steffen,

jeder Motortreiber hat seinen eigenen 8051, der macht folgendes:
-Einschaltreihenfolge nach Achse
-SPI Einlesen, Rückgabe als Wire-Or (Fehlerbit, Endlagen- 
Referenzschalter)
-Stromabsenkung für TB6560

Der G-Code:
   ;  REM-Zeile          ok.
;M02  ProgrammEnde OHNE Rücksprung      ok.
;M03  Spindel, Uhrzeigersinn    mit Relais  ok.
;M05   Spindel halt      mit Relais  ok.
;M06T  Werkzeugwechsel      per Hand    fast ok.
;M06D  Werkzeug Durchmesser setzen      ok.
;M30  ProgrammEnde MIT Rücksprung      ok.
;G00  Eilgang            ok.
;G01  Geradeninterpolation        ok.
;G02  Kreisinterpolation im Uhrzeigersinn      ok.
;G03  Kreisinterpolation gegen Uhrzeigersinn    ok.
;G40 V  Radienkorrektur aus        ok.
;G41  Radienkorrektur links        ok.
;G42  Radienkorrektur rechts        ok.
;G54  Setze Nullpunkt auf X,Y,Z        ok.
;G70  Eingabesystem Zoll        ok.
;G71 V  Eingabesystem Metrisch        ok.
;G73  Parkposition anfahren         fast  ok.
;G74  Parkposition anfahren, Werkzeughöhe bestimmen   fast  ok.
;G83  Planfläche          ok.
;G84  Lochreihe          ok.
;G85  Kreistasche          ok.
;G86  Rechtecktasche          ok.
;G90 V  Koordinaten absolut        ok.
;G91  Koordinaten relativ        ok.
;Lxxx  Sprung Line Nxxx          ok.
;Nxxx  Sprungmarke          ok.
;Fxx  Vorschub            ok.
;Sxx  Spindeldrehzahl        geplant
;Wxx  Wartezeit          ok.

Mit Gruß
Peter

Autor: Steffen H. (avrsteffen)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Pieter schrieb:
> ;G70  Eingabesystem Zoll        ok.
> ;G71 V  Eingabesystem Metrisch        ok.

ist das nicht:
;G20  Eingabesystem Zoll
;G21 V  Eingabesystem Metrisch

???

>jeder Motortreiber hat seinen eigenen 8051
Wie funktioniert da die Kommunikation bei der Interpolation? Oder ist 
das Timing dabei so genau?

Autor: Pieter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
> ;G70  Eingabesystem Zoll        ok.
> ;G71 V  Eingabesystem Metrisch        ok.

...da kochen verschiede Köche, habe jetzt G20 == G70 und G21 == G71.

Auf SPI kommt ein Byt:
(SM/FU)|Reserve|ZP|ZN|YP|YN|XP|XN
-P Step in Plusrichtung
-N Step in Minusrichtung
(SM/FU) Byte für Schrittmotore oder FrequenzUmrichter (der wird dann 
über Z gesteuert)

Zürückgegeben wird dann das Byte vom FU oder die Bits der jeweiligen 
Achse.
Da mit einem Byte bis zu 3 Motore gesteuert werden, sind alle Figuren 
abfahrbar.

Mit Gruß
Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net