G code Befehle

Gast #4324366
Lesenswert?

Hallo ich habe eine kleine CNC fräse gebaut, welche ich über einen 
Arduino in Kombination mit der Grbl Software ansteuern. Als G-code 
Sender benutze ich den universal G code Sender.
Die Ansteuerung der verschiedenen Positionen klappt ziemlich gut. 
Allerdings habe ich das Problem, dass nicht alle G-code files bei mir 
funktionieren. Einen handschriftlich generierten Code  wie :
(mit universal G-code Sender ausgeführter Code)
Grbl 0.9j ['$' for help]
>>> G17G20G90G94G54
>>> G0Z0.25
>>> X-0.5Y0.
>>> Z0.1
>>> G01Z0.F5.
>>> G02X0.Y0.5I0.5J0.F2.5
ok
funktioniert.
G codes welche ich mit makerCAM generiert habe machen nur irgend ein 
Unfug mit der Z Achse, ansonsten nicht wirklich ihren job:

>>> G21G90G40
>>> (follow path 1)
>>> G0Z1
>>> G17
>>> M3
>>> G0X17,7396Y16,1269
ok
ok
ok
ok
>>> G1Z-1.5F800
>>> G1X19,2157Y16,1269F1500
>>> G1X20,6675Y16,1269
>>> G1X22,0964Y16,1269
>>> G1X23,5051Y16,1269
ok
ok
error: Expected command letter
>>> G1X24,8883Y16,1269
ok
>>> G1X26,2487Y16,1269
error: Expected command letter <<<<<<<<<???? Warum ist der Befehl 
falsch?
Hat jemand eine Erklärung oder einen Tipp?
Schoneinmahl vielen Dank im voraus für eure Unterstützung.
Gast #4324382
Lesenswert?

Im normalen Editor stehen in beiden Fällen punkte.
hier noch mal ein teil des zweiten Codes.( im Editor)

G21 G90 G40

(follow path 1)
G0 Z1

G17
M3
G0 X17.73959390862944 Y16.126903553299492
G1 Z-1.5 F800
G1 X19.215736040609137 Y16.126903553299492 F1500
G1 X20.66751269035533 Y16.126903553299492
G1 X22.096446700507613 Y16.126903553299492
G1 X23.50507614213198 Y16.126903553299492
G1 X24.888324873096444 Y16.126903553299492
G1 X26.248730964467004 Y16.126903553299492
G1 X27.586294416243653 Y16.126903553299492
G1 X28.903553299492387 Y16.126903553299492
#4324550
Lesenswert?

CNC-Fräser schrieb:
> Es liegt wirklich an der länge der Koordinaten.

Dann ist grbl fehlerhaft,
denn der G-Code Standard sagt

A number consists of (1) an optional plus or minus sign, followed by (2) 
zero to
many digits, followed, possibly, by (3) one decimal point, followed by 
(4) zero to
many digits - provided that there is at least one digit somewhere in the 
number

Numbers may have any number of digits, subject to the limitation on line 
length (oftmals 80 oder 256).


(Zeilennummer und Labels sind auf 5 Stellen begrenzt)
Gast #4324552
Lesenswert?

CNC-Fräser schrieb:
> Wie kann ich den G-code erzeugen ohne, dass ich alle Stellen per Hand
> änder muss?

Normalerweise kann man die Anzahl der Nachkommastellen eingeben. Und 
erzähl nicht dass deine Fräse auf 1 millionstel Atomdurchmesser genau 
fräst.

Das Programm ist sowieso absurd: das sind lauter kleine Teilstücke einer 
Geraden, 2 Zeilen reichen dafür.

Vielleicht solltest du makerCAM wegschmeissen?

Georg
Gast #4325100
Lesenswert?

Man darf den GRBL-Buffer nicht überlaufen lassen -  da muss der 
GCode-Sender aufpassen "This briefly stores up to 127 characters of data 
received from the host PC until Grbl has time to fetch and parse the 
line of G-code. "

Also nach 4 solcher Zeilen: "G1 X28.903553299492387 Y16.126903553299492" 
(da die 5. nicht mehr reinpasst), wenn die Maschine nicht schnell genug 
ist die Koordinaten abzufahren.

Hier steht's: 
https://github.com/grbl/grbl/wiki//Interfacing-with-Grbl#writing-an-interface-for-grbl
Gast #4325250
Lesenswert?

MaWin schrieb:
> Grbl ist open source, den bug könnte ja jemand fixen, nur mit Leuten wie
> dir wird das natürlich nichts.

Im Gegensatz zu dir habe ich dafür ein Programm geschrieben, das mit o.g 
Code einwandfrei funktioniert. Soviel bla bla von solchen wie du wird's 
nicht.
Auch hier gilt: wenn man nicht über Thema weiß, einfach Klappe zu 
halten!

sven schrieb:
> Man darf den GRBL-Buffer nicht überlaufen lassen -  da muss der
> GCode-Sender aufpassen

So ises! Der Buffer ist nur 128 Byte lang. Eine Nachkommastelle zuviel 
könnte ihn zum Überlauf bringen.

Nemesis schrieb:
> Wie muss man sich den Sender real vorstellen?

http://zapmaker.org/2014/05/grbl-controller-3-6-1-released-for-windows/
http://www.jtronics.de/software/jcnc-cnc-steuerung.html
Beitrag "Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega"
...
Das von Albert geschriebene Programm funktioniert mit o.g. Code 
einwandfrei und mit Abstand das beste Programm, was ich bis jetzt 
getestet habe.
#4326625
Lesenswert?

Michael B. schrieb:
> Dann ist grbl fehlerhaft,
> denn der G-Code Standard sagt
>
> A number consists of (1) an optional plus or minus sign, followed by (2)
> zero to
> many digits, followed, possibly, by (3) one decimal point, followed by
> (4) zero to
> many digits - provided that there is at least one digit somewhere in the
> number
>
> Numbers may have any number of digits, subject to the limitation on line
> length (oftmals 80 oder 256).

Arduino UNO Steuerungen wie GRBL oder Estlcam müssen mit 2048 Byte RAM 
auskommen - da tut jede unnötige Nachkommastelle die als Text 
zwischengespeichert werden muss weh.

G-Code ist in der Realität eher ein Pseudostandard - es schaut zwar 
alles irgendwie ähnlich aus - nur im Endeffekt halten sich nicht mal 
Industriesteuerungen an die ursprüngliche DIN Spezifikation. Deswegen 
schleppt jedes CAM Programm auch eine ellenlange Liste mit 
Postprozessoren mit, da Code A auf Steuerung B oft einfach nicht 
funktioniert.

Fazit: beim schreiben von G-Code bzw. verwenden von CAM Programmen muss 
man immer die Eigenheiten der Steuerung berücksichtigen.

Christian
#4326636
Lesenswert?

Christian K. schrieb:
> Arduino UNO Steuerungen wie GRBL oder Estlcam müssen mit 2048 Byte RAM
> auskommen - da tut jede unnötige Nachkommastelle die als Text
> zwischengespeichert werden muss weh.

Sie muss ja nicht.

Niemand hindert den Programmierer daran, beim Empfang der Ziffern z.B. 
nach der 5. Stelle einfach keine weiteren Ziffern mehr zu speichern 
sondern nur noch einen Exponenten hochzuzählen.

Dafür muss man natürlich programmieren können und richtige 
Entscheidungen bei der Implementation des Standards fällen.

Faulheit und "wir bohren dort weil dort das Brett am dünnsten ist" 
gelten nicht als Ausrede, obwohl ich hier in dem Thread viele Leute 
sehe, die mehr Mühe in die Ausreden als in die Lösung stecken.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren