CNC - Faserwickelmaschine

Nach langen G-Code Schreiben, gelang es mir leider nicht eine 1/4 Ellipse, die um den letzten Punkt gespiegelt wird, zu erzeugen...
Dadurch war eine Proportionale Wickelung bisher nicht möglich...:(

Mit G-Code kann man prinzipiell nur lineare und kreisförmige Bewegungen direkt programmieren. Ellipsen und anderes "exotische" muß man als Folge kurzer linearer Abschnitte programmieren.
Am einfachsten geht das, wenn man sich die gewünschte Kurve in einem CAD Programm erstellt und daraus zB mit BOcnc oder dxf2gcode den gcode erzeugen lässt.
Dazu gibt es G-Code Funktionen, um die Ecken abzurunden (G61, G64).
Problematisch dürfte in deinem Fall die Synchronisation der beiden Achsen sein.

Zumindest bei semi-professionellen Lösungen wie EMC ist das der bisher übliche Weg.

Es gibt inzwischen auch "experimental" G5.2 G5.3 NURBs Block in EMC.
Ich hab das noch nie probiert, vielleicht machst du mal einen Versuch.

Ein erwas anderer Weg:
In gewisser Weise hat das Faserwickeln ja Ähnlichkeit mit Gewindeschneiden auf der Drehbank.
Dafür sind cnc Systeme wie EMC gut gerüstet.
Dazu kann zB eine oder auch mehrere Achsen mit einer beliebigen anderen Bewegung synchronisiert werden.
G33 Spindle-Synchronized Motion.

Vielleicht helfen die Anregungen ein bisschen weiter.

Grüße, Gerd
 
so gemächlich wie deine Maschine läuft.

Als ich die Maschine Konfiguriert habe, habe ich eingestellt, dass ich, wenn ich bei EMC2 1 eingebe, meine Maschine 1mm weiter läuft oder 1/100 Umdrehung macht.
Bei einer Geschwindigkeit von 4000mm/s wollte der Jog nicht mehr...
Die Strecke hieß dann Y0 ->Y17000 mit F30000
Ich wollt eigentlich nur die Geschwindigkeitsgrenze ausprobieren...
Jetzt habe ich das so eingestellt, dass, wenn ich bei EMC 1 eingebe, dann fährt die Maschine 1cm weiter oder dreht 1/10 Umdrehung.
Die Geschwindigkeit jetzt reicht aber völlig aus.

MC2 kommt mit dem Jog nicht hinterher

EMC kann die Maschine nicht mehr mit der Software abgleichen und sagt "JOG ERROR"

---------------------------------------------------------------------------------------------------

Dazu gibt es G-Code Funktionen, um die Ecken abzurunden (G61, G64).
Das werde ich mal versuchen. Wie muss ich G61, G64 anwenden?
So?:

G1 X0 Y0 Z0
G1 X2 Y0 Z0
G61
G1 X2 Y2 Z0

Problematisch dürfte in deinem Fall die Synchronisation der beiden Achsen sein.

Warum wird das problematisch? Bis jetzt hat EMC die Achsen doch von alleine sehr gut synchronisiert.

"experimental" G5.2 G5.3 NURBs Block in EMC.

Guck ich mal...

Dazu kann zB eine oder auch mehrere Achsen mit einer beliebigen anderen Bewegung synchronisiert werden.

Warum muss ich die Achsen noch zusätzlich synchronisieren?

Gruß Philipp :D
 

quirli

User
Hallo Philipp,

da EMC letzlich die Bewegungen - wie von Gerd schon gesagt - in lineare Bewegungen diskretisiert, mache ich mir für etwas komplexere Verläufe ein Tabellenkalkulationsblatt (Excel/Calc).

Dabei kannst du es in der Form aufbauen:

| G01 X | veränderlicher X-Wert | Y | Formel für Y-Wert, in deinem Fall Formel für Ellipse |

Diese Zeile nach unten kopieren, so hast du auf die Schnelle den Bahnverlauf für die Ellipse, in der Genauigkeit mit der du den X-Wert veränderst.
Dann selektierst du den gewünschten Bereich und fügst ihn in ein Textdokument mit dem entsprechenden Header ein. Das kann man natürlich noch beliebig automatisieren. Ich habe so etwas mal für einen Rippen-Strak gemacht...

Ach ja, falls du - wie üblich bei uns - als Komma ein echtes Komma in der Tabellenkalkulation eingestellt hast, dann musst du nachher noch Ersetzen "," -> "." machen.. :D

Gruß Klaus.
 
Ok, Danke Klaus,

Ich werde das dann am Wochenende mal probieren.
Leider muss ich ja immer die Phasenverschiebung in die Ellipse einbringen und so immer eine neue Tabelle fertigen. Oder?
 
Warum wird das problematisch? Bis jetzt hat EMC die Achsen doch von alleine sehr gut synchronisiert. D
Das geht dann nicht mehr so von alleine, du muss ja jeden kleinen linear Schritt selber synchronisieren, befürchte ich.
Letzlich läuft es darauf raus, dass das Verhältnis der Geschwindigkeiten beider Achsen nicht mehr konstant bleibt.

Warum muss ich die Achsen noch zusätzlich synchronisieren? D
Nicht zusätzlich, ich habe ja gesagt dass das ein anderer Weg ist.
Also bleib erst mal bei deinem bisherigen Verfahren.
 
Zuletzt bearbeitet:

quirli

User
...und so immer eine neue Tabelle fertigen. Oder?

Das kommt darauf an, ob die Form der Ellipsen immer gleich bleibt und nur eben um einen bestimmten Drehwinkel verschoben.
Wenn das so ist, dann kannst du mit O-Wörtern arbeiten, also einem Unterprogramm. Die Form der Ellipse wäre dann komplett im Unterprogramm und du addierst über einen bestimmten Offset (z. B. i=2,4,....) deinen X-Wert.

Wie die Systematik bei den O-Wörtern ist, findest du hier.

Gruß Klaus
 

FamZim

User
Hi
Ich hab mir den Film jetzt ein paar mal angesehen !!
Das Verhältnis zwischen drehen und Längsfahrt gefällt mir da nicht so .
Das drehen geht mir zu schnell (Vollgas) und zu weit herum ! .
Ich denke da reichen schon etwas mehr als 180 ° Drehung.
Ich würde Seilscheiben mit dem 3 fachen D nehmen, da der Motor schon Vollgas läuft ? !
Runterregeln geht sicher besser ?
Die Bandfürung mit dem " Auge " ist schon sehr gut, aber zu nidrig eingestellt.
Dadurch wird der Rovingstrang durcheinander kommen, und nicht so glatt laufen wie das Band!
Die Fürung muß so hoch laufen das alles IMMER im unteren Bereich des Auges hin und her läuft, es darf nicht bei der Wende frei kommen (nach oben) .
Dann teile mal den Umpfang durch die Bandbreite --- rechne es in ° um, und so weit sollte der Null- oder Startpunkt beim wickeln zur vorigen Windung versetzt werden .
Dadurch legt sich dann immer eine Windung neben die vorige Windung.
Das muß fest programiert werden, und nicht dem Zufall überlassen bleiben.
Mal so zur Anregung .

Gruß Aloys.
 
Als ich die Maschine Konfiguriert habe, habe ich eingestellt, dass ich, wenn ich bei EMC2 1 eingebe, meine Maschine 1mm weiter läuft oder 1/100 Umdrehung macht.
Bei einer Geschwindigkeit von 4000mm/s wollte der Jog nicht mehr...
Die Strecke hieß dann Y0 ->Y17000 mit F30000
Ich wollt eigentlich nur die Geschwindigkeitsgrenze ausprobieren...
Jetzt habe ich das so eingestellt, dass, wenn ich bei EMC 1 eingebe, dann fährt die Maschine 1cm weiter oder dreht 1/10 Umdrehung.

Ich verstehe das mit dem Jog immer noch nicht. Ich kenn auch keinen "Jog Error".
(Das muss aber nix bedeuten ich kenn sicher nicht alle Fehlermeldungen.:D)

Dadurch dass du die skalierung veränderst, ändert sich ja an der Physik nichts.
Waren die Geschwindigkeits- oder Positionsgrenzwerte nicht entsprechend angepasst ?

Hast du die Y-Achse als linear- oder Dreh-Achse konfiguriert ?

Wenn du die Y-Achse als Linear-Achse auffasst, und zwar bezüglich der Faserbewegung, dann
ist eine Umdrehung der Spindel gleich dem Umfang der Spindel (zB in mm). Wenn du es so skalierst,
dann ist die Geschwindigkeit, die du mit F... programmierst, mit guter Näherung die Fasereinzugsgeschw. in mm/min
siehe auch: http://www.linuxcnc.org/docview/html/common_machining_center.html#sub:Feed-Rate
Beachte: die Angaben im ini File sind immer Einheiten/sec !

Du kannst dann, wie von Klaus beschrieben, in linearen Abschnitten programmieren.
Und mit G61, G64 siehe: http://www.linuxcnc.org/docview/html/gcode_main.html#sub:G61,-G61.1,-G64:
die Übergänge "weich" machen.
Oder mit splines bzw NURBS experimentieren:
http://www.linuxcnc.org/docview/html/gcode_main.html#r1_7

Ich bin nicht ganz sicher was passiert, wenn du die Y Achse als Drehachse programmierst.

Grüße, Gerd
 

quirli

User
Hallo Philipp,

das mit dem Jog verstehe ich auch nicht.

Ich nehme an, du meinst damit, dass du unter AXIS im manuellen Mode den Schieberegler "Jog" ganz weit nach rechts geschoben hast und dann manuell mit einem Vorschubwert von 30 m/s (= 108 km/h!!) fahren wolltest? (Mag ja sein, dass man bei der Programmierung von EMC unrealistische Werte - abhängig von den Beschleunigungswerten - ausgeschlossen hat?)
Oder meinst du die Jog-Buttons im StepConf?

Wie auch immer, ich hätte da schon mal zwei Vorschläge:
1. Konfiguriere deine Maschine so, wie sie ist. Das soll heißen, 1 mm auf der Maschine bedeutet 1 mm bei EMC. Das hat den Vorteil, du musst nicht mit utopischen Werten arbeiten und kannst dir vorstellen was passiert.
2. Sofern die Motoren schon bei der Geschwindigkeit, die das Video zeigt, Schrittverluste haben, hast du vermutlich viel zu hohe Beschleunigungen (Anfahren, Abbremsen) eingegeben. (-> Wenn du mit StepConf konfigurierst, kannst du direkt etwas spielen, bis du vernünftige Werte hast, wenn nicht, dann kannst du die Werte unter der *.ini für jede Achse einstellen. AXIS jedes mal neu starten.)

Gruß Klaus.
 
Lassen wir das mit dem Jog... :D

Das Problem, dass ich habe, wenn ich mit mm arbeite ist, wie soll ich die Y-Achse, also die Spindel Konfigurieren? 1mm = 1 Umdrehung? Dann währe der Wickelwinkel zumindest bei knapp 90°.

Für die Programmierung werde ich jetzt in Exel eine viertel Ellipse, die ich aus f(X)=x² bekomme , berechnen und dann alle Werte in Variablen umformen um bei verschiedenen Rohren einfach die Variablen anpassen zu können.

Gruß Philipp :D
 

quirli

User
Das Problem, dass ich habe, wenn ich mit mm arbeite ist, wie soll ich die Y-Achse, also die Spindel Konfigurieren? 1mm = 1 Umdrehung? Dann währe der Wickelwinkel zumindest bei knapp 90°.
Du kannst dir das für einen "Standarddurchmesser" mit mm einstellen (Umfangsweg) oder aber, was zweifellos sinnvoller wäre, wie Gerd geschrieben hat, als Drehachse konfigurieren.

Für die Programmierung werde ich jetzt in Exel eine viertel Ellipse, die ich aus f(X)=x² bekomme , berechnen...
Nun, wenn mich nicht alle mathematischen Kenntnisse im Stich lassen, dürfte das Ergebnis eher eine Parabel sein.... Sieht aber der Ellipse sehr ähnlich. ;)
Für eine Ellipse (ohne weitere Parameter) würde ich es eher mit y(x) = Quadratwurzel(2x-x²) probieren....

Gruß Klaus.
 
Das Problem, dass ich habe, wenn ich mit mm arbeite ist, wie soll ich die Y-Achse, also die Spindel Konfigurieren? 1mm = 1 Umdrehung? Dann währe der Wickelwinkel zumindest bei knapp 90°.

So wie ich geschrieben habe: 1 Umdrehung = Umfang des wickeldorns. Dann hast du realistische Werte, und auch die Geschwindigkeit stimmt.
Wie Klaus geschrieben hat, es erleichtert die Arbeit wenn man nicht ständig im Kopf hin- und herrechnen muss.
Den Wickelwinkel musst du ohnehin separat bestimmen, bzw über den gewünschten Winkel die X-Y Werte rechnen.
Übrigens kannst du auch auf relative Koordinaten umschalten, vieleicht erleichtert das die Programmierung.

Grüße, Gerd
 
Ja, von der Parabel wollte ich dann den unteren Teil nehmen...

Ich probier mal dein f(x)=...

Also muss ich dann halt für jedes Rohr eine Neue Maschinenkonfiguration machen, da sich der Umfang ja ändert.
So ist dann 1mm Schlitten fahren => 18,85mm Weg bei einem 6cm dicken Rohr.

Kann man EMC´s Maschinenkonfigurator nicht Umschreiben und das dann Variabel als G-Code/in den G-Code einbringen?

Was verändert sich dann wenn ich das auf relativ habe? Bekomme ich dann nicht mehr die richtigen Werte?

Gruß Philipp
 
Du kannst dir das für einen "Standarddurchmesser" mit mm einstellen (Umfangsweg) oder aber, was zweifellos sinnvoller wäre, wie Gerd geschrieben hat, als Drehachse konfigurieren.

Bin mir nicht so sicher, was besser ist.
XYZ sind per default kartesische Linearachsen.
Wenn du G1 X.. Y.. F.. programmierst, kriegst du eine linearinterpolation, mit der Bahngeschwindigkeit F.. in der Einheit mm/min in diesem kartesischen System.

Ich bin mir nicht sicher was EMC macht, wenn du Y als Drehachse konfigurierst.
Kann sein dass es genauso funktioniert, da EMC ja nichts von Einheiten weiss, sondern einfach mit den Zahlen rechnet. Dann kann man jedoch große Geschwindigkeitsunterschiede, je nach Wickelwinkel bekommen, abhängig von der zahlenmässigen Skalierung.

Grüße, Gerd
 

quirli

User
Hallo Philipp,

die Entwickler von EMC haben für die Verwendung von Drehachsen vorgesehen, dass man sie als Drehachsen konfiguriert. W a s s p r i c h t d a g e g e n ?
Wenn du StepConf verwendest stellst du bei der PIN-Belegung statt der bisherigen Y-Achse einfach die Achse "A" ein. Diese hat schon alle Vorgaben für eine Drehachse. Einzige Änderung für dich beim Einsatz ist, dass du im G-Code statt "Y" eben "A" schreibst und aber dann die Drehwinkel eingeben kannst....

Gruß
Klaus.
 
Also muss ich dann halt für jedes Rohr eine Neue Maschinenkonfiguration machen, da sich der Umfang ja ändert.
So ist dann 1mm Schlitten fahren => 18,85mm Weg bei einem 6cm dicken Rohr.
Das änderst du mit Texteditor einfach im ini file. Geht sicher schneller, als das Rohr auszutauschen :D

Kann man EMC´s Maschinenkonfigurator nicht Umschreiben und das dann Variabel als G-Code/in den G-Code einbringen?
Mit gcode glaube ich nicht. Evtl als Benutzerdefiniertes Bedienpanel pyVCP.

Was verändert sich dann wenn ich das auf relativ habe? Bekomme ich dann nicht mehr die richtigen Werte?
Wenn du G1 X1 Y-2 in relativen Koordinaten programmierst dann bewegt sich die X Achse um +1 mm, die Y um -2 mm, relativ zur aktuellen Position.

Grüße Gerd
 
Ahh, ok, Entschuldigung, dass ich mich eben etwas dumm gezeigt habe....

Mit dem Winkel ist das natürlich eine schicke Sache!

W a s s p r i c h t d a g e g e n

Nichts! :D

Weiß die Steuerung, dass sie auf einmal A ist und trotzdem noch als Y arbeitet?

Wenn du G1 X1 Y-2 in relativen Koordinaten programmierst dann bewegt sich die X Achse um +1 mm, die Y um -2 mm, relativ zur aktuellen Position.

Ok, danke für die Erläuterung!

Ich werde das dann erst mal mit der Drehachse versuchen.

Welche Maschine soll ich dann in der Maschinenkofiguration auswählen XYZ?
 
die Entwickler von EMC haben für die Verwendung von Drehachsen vorgesehen, dass man sie als Drehachsen konfiguriert. W a s s p r i c h t d a g e g e n ?
Wenn du StepConf verwendest stellst du bei der PIN-Belegung statt der bisherigen Y-Achse einfach die Achse "A" ein
Einzig die Geschwindigkeitsproblematik spricht dagegen. Ich kenne das Problem von der Styroschneide.
Sobald bei G1 eine der Achsen XYZ im Spiel ist, bezieht sich F ausschliesslich auf diese Achsen. Das könnte hier zum Problem werden, wenn man einen sehr kleinen X und einen großen A Wert programmiert hat. Dann fährt EMC den kleinen X wert mit der vorgegebenen Geschwindigkeit, und die A Achse versucht in der gleichen Zeit den viel größeren Weg zu fahren.

Grüße, Gerd

Edit:
Hier käme dann evtl die Lösung mit der Spindelsynchronen Bewegung zum Tragen, die ich in einem der Beiträge vorher erwähnt habe.
Das sähe dann so aus, dass du die Achsen quasi koppelst, die Geschwindigkeit der einen Achse wird nicht mehr absolut angegebn sondern.
Bin aber nicht sicher was es da noch für Stolpersteine gibt.
 
Naja, probieren kann ich das ja trotzdem.
Klappt das indem ich wirklich nur Y zu A mache?

Das änderst du mit Texteditor einfach im ini file. Geht sicher schneller, als das Rohr auszutauschen

Was soll ich dazu sagen :D :D :D :confused: :confused: :confused:

-----------------------------------------------------------

Aber mit der Drehachse kann ich den Wickelwinkel dann ja auch nur mit Stufen anpassen.

Da hilft mir meine schöne Kurven Schlange nichts mehr.

-------------------------------------------------------
Aber, wenn ich die Achsen koppel, und beide gleich schnell laufen, dann ist ja eine Achse früher fertig und dann ist alles Käse.
Synchroner als das beide Achsen gleich starten und gleich ankommen geht doch nicht?
 
Ansicht hell / dunkel umschalten
Oben Unten