| Passwort vergessen?
Sie sind nicht angemeldet.  Anmelden

Sprache auswählen:

myhobby-CNC - Kunden Supportforum

GRBL parallele Loop zu Hauptprogramm
 1
27.09.19 17:27
Optimus2312 
GRBL parallele Loop zu Hauptprogramm

Hallo Zusammen,

ich bin an eine Projekt dran, welches einen Nadelpräger ansteuern soll. Für die, die es nicht kennen:
Ein Nadelpräger ist ein System mit zwei Achsen(X und Y). Auf dem Schlutten sitzt ein Zylinder mit Kolben, welcher von einem Ventil mit Druckluft geschalten wird. Der Kolben ist hierbei die Nadel und vom Funktionsprinzip ist es vergleichbar mit einem Presslufthammer. Sprich: Man steuert das Ventil an und die Nadel fährt bzw. schlägt aus und trifft das Material. Dabei wird ein "Krater" hinterlassen. Wenn man sich nun vorstellt, die Nadel fährt während einer XY Bewegung ein- und aus, erhält man bsp. ein genageltes abbild der abgefahrenen Wege/Vectoren.

Damit die Nadel EINMAL ausfährt habe ich zum Testen(Cooling Output) den folgenden G-Code verwendet:
M8
G4 P0.010
M9
G4 P0.020
----> Also Ausgang setzen - 10ms warten(Nadel ist unten angekommen) - Ausgang absteuern - 20ms warten(Nadel ist wieder oben am Totpunkt angekommen.

Das klappt soweit nur ist mein Problem, dass dies während der Fahrt passieren soll.
Nun hätte ich folgenden Gedanken das Problem zu Lösen:
- Es wird ein neuer M-Befehl für das ein- und ausschalten definiert, der nicht direkt auf einen Output gelinkt ist und in der GRBL Firmware nur als Flag dient. Bsp. M100 für TRUE und M101 für FALSE
- Im GRBL benötige ich eine Loop, welche jedoch parallel zu allem anderen abgearbeitet wird - sprich bei einem Delay wird nicht alles andere verzögert. In dieser Loop soll mit delay die Wartezeit erzeugt werden und direkt der Cooling Ausgang angesteuert werden(ich glaube Output_13).
Dies passiert jedoch nur, wenn M100 gesendet wurde und zwar so lang in Dauerschleife bis ein M101 eingelangt.

Ich habe viel an Programmier und Hardwareerfahrung sowie ebenso in der CNC Technik kenne ich mich aus. Jedoch bin ich mit dem Arduino nicht so gut vertraut um einschätzen zu können, ob dies so machbar ist bzw. wie man es angeht. Themen wie Multithreading lassensich ja nur über Umwege lösen.

Nun wären meine Fragen dazu folgende:
- Was meint ihr zu der Idee? Ich würde ungern einen weiteren Arduino für diese Logik verwenden müssen.
- Wie erstelle ich die parallel Loop
- Wie legt man custom commands an(M100/M101)
- Wie kann ich die Delays(aktuell 10ms AN und 20ms AUS) ebenso per Befehl senden um diese auch bei Bedarf abändern zu können? Hier wäre es cool die $$ Befehle zu erweitern oder eben auch einen M-Befehl bzw. zwei.

Im Prinzip stelle ich es mir vom G-Code her so vor wie man bsp. einen Laser ansteuern würde(EIN/AUS). Im Hintergrund wird jedoch mit gewissen Zeiten getaktet.

Bin gespannt was ihr dazu sagt und hoffe ihr könnt mir weiterhelfen - vielen Dank vorab!

30.09.19 09:41
crix

nicht registriert

Re: GRBL parallele Loop zu Hauptprogramm

Hi,
das geht jetzt dann etwas zu tief in die Firmware/Atmega Programmierung.. wir sind ja hier ein Supportforum für im zugehörigen Shop gekaufte Fräsen..
Ich würde mal bei Github im GRBL projekt das Forum für solche Fragen empfehlen..
Grundsätzlich sollte es irgendwie möglich sein, die 3 Achsen werden ja auch "parallel" bewegt.
Gruß
crix

Zuletzt bearbeitet am 30.09.19 09:41

 1
Hauptprogramm   Presslufthammer   Supportforum   abgearbeitet   Programmier   einschätzen   hinterlassen   zugehörigen   angesteuert   weiterhelfen   angekommen   Nadelpräger   Hardwareerfahrung   Funktionsprinzip   Multithreading   Grundsätzlich   Programmierung   Dauerschleife   vergleichbar   abgefahrenen