PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : EMC2 mit Schrittmotoren + Encoder



Majuz
08.12.2009, 20:35
Hallo,

da ich gelesen habe, dass hier auch schon einige CNC-Fräsen gebaut wurden und auch einige Personen schon Erfahrungen mit EMC2 gemacht haben Stelle ich meine Frage nun hier.

Ich habe eine kleine CNC-Fräse mit Schrittmotoren gebaut und nutze zur Ansteuerung EMC2. Dies funktioniert soweit auch ganz gut. Dann habe ich die erste Fräsung versucht und irgendwie blieb ein Schrittmotor kurz hängen. Bis ein Richtungswechsel kam, dann hat es wieder funktioniert. Woran das lag weiß ich noch nicht. Damit die Software in Zukunft bei solchen Problemen anhält würde ich gerne Drehgeber verbauen. Bloß das "wie" ist noch so ein Problem. Ich hab schon mal im Integrator-Manual auf Linux-CNC (http://www.linuxcnc.org/docs/EMC2_Integrator_Manual.pdf) geschaut und dort ab Seite 90 auch einen Abschnitt darüber gefunden. Dabei Stelle ich mit nun folgende Fagen:

- Wozu ist der Pin "Phase-Z"? Verstehe ich das richtig, dass dieser zum Zurücksetzen des Zählers dient? Also müsste man den ja nicht anschließen, wenn ich das Schaubild richtig interpretiere geht das ja auch intern über den Reset-Eingang.

- Muss die Encoderscheibe genausoviele Teilungen haben wie der Motor Schritte/Umdrehung macht? Könnte man dafür diesen Encoder (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=135) nehmen? Dieser hat aber nur 120 Teilungen und ich benutze einen 200er Motor im Halbschrittbetrieb (also 400 Schritte/U) und habe dann noch eine Untersetzung von 16:50 (X + Y) bzw 15:80 (Z). Also würde die Encoderscheibe nicht jeden Schritt detektieren.

- Wo bekommt man einen passenden Encoder hier, falls obiger sich nicht eignet?

- Was für eine Schaltung müsste noch zwischen den Encoder und den Druckerport?

Ich hoffe sehr, dass ihr mir helfen könnt!

Gruß
Marius

Yossarian
09.12.2009, 18:13
Hallo
Phase Z wird wohl das Index Signal sein, welches einmal pro Umdrehung vom Encoder geliefert wird.
Der Encoder brauch nicht die gleiche Auflösung wie der Motor zu haben.
Welches Interface Du für einen Anschluß an den LPT brauchst, hängt vom Encoder ab.
Wenn er TTL Signale liefert, kannst Du ihn direkt anschließen.
Allerdings wäre ein Anschluß über Optokopler unter Umständen gesünder für den PC.
Mit freundlichen Grüßen
Benno

Majuz
09.12.2009, 20:10
Hi

Danke für die Antworten.
Daraus lese ich jetzt ab, dass ich den Inkrementalgeber von Robotikhardware verwenden könnte. Das Index-Signal würde aber von diesem nicht ausgegeben. Könnte man evtl. ja selbst was basteln.

Ansonsten hab ich nirgends etwas vergleichbares gefunden. Wo könnte man so etwas noch bekommen?

Ich habs jetzt nochmals probiert. Ich habe ein Grustufenbild mittels EMC2 in G-Code konvertiert (siehe Anhang) und dann fräsen lassen. Ich meine auch erkennen zu können wann es auftritt:
Ich versuche mich mal an einer Erklärung:
Genau dann, wenn die Z-Achse nicht "in einem von oben nach unten" fährt sondern zwischendurch "rumeiert".
Beispiele:
Das erste mal habe ich es in Zeilen abfahren lassen (von oben nach unten) und da ist er am oberen Querstrich des "L" hängen geblieben.
Heute hab ich es Spaltenweise abfahren lassen (von rechts nach links). Das erste mal blieb er dann beim "s" am linken ende hängen, wo ein relativ senkrechter Teil ist, das nächste mal blieb er dann beim senkrechten Strich vom "k" hängen. Es kommt immer darauf an, wie die Fräsbahn gerade hinfällt. Beim senkrechten Teil vom "a" blieb er beispielsweise nicht hängen, da hier eine Fräsbahn noch "ganz unten" war und die nächste schon ganz oben. Ich hoffe man kann verstehen was ich meine.

Gruß
Marius

Yossarian
09.12.2009, 21:18
Hallo
Wenn der Motor Schritte verliert, kann das viele Ursachen haben.
der Motor ist zu schwach auf der Brust
die Mechanik ist schwergängig
die Rampen sind zu steil
die Geschwindigkeit ist zu hoch
der Motorstrom ist zu klein eingestellt

Mit freundlichen Grüßen
Benno

Majuz
09.12.2009, 21:35
Es ist nicht so, dass der Motor im "klassischen Sinne" Schritte verliert. Er bleibt einfach "hängen". Es sieht aus, als würde die Traverse irgendwo anstehen. Dabei ist es aber auch kein mechanisches Problem. Wenn ich Manuell genau über die stellen fahre an denen es aufgetreten ist, funktioniert alles. Meine Motoren haben einen Maximalen Spulenstrom von 2,8A. Dabei ist der X-Motor auf diesen Strom eingestellt und der Y- und der Z-Motor viel Schwächer (etwa 1A). Es ist aber bei beiden Motoren schon aufgetreten. Und auch reproduzierbar.

Das einzige was ich mir vorstellen könnte sind die Geschwindigkeiten und die Beschleunigungen.
Diese habe ich aber mittels des Stepconf-Wizzard konfiguriert und auch erfolgreich getestet. Ich glaube auch kaum, dass es an der Geschwindigkeit liegt, eher an der Beschleunigung. Werde ich morgen evtl. mal testen wenn ich Zeit habe. Im Stepconf-Wizzard bei "Achse Testen" hat es mit 250mm/s² noch funktioniert, und ich habe es jetzt auf 200mm/s² eingestellt. Folgende Werte berechnet der Wizzard:
Zeit bis zum erreichen der max. Geschwindigkeit: 0,0325s
Weg bis zum erreichen der max. Geschwindigkeit: 0,1056mm
Schrittfrequenz bei max. Geschwindigkeit: 4062,5Hz (also etwa 10U/s = 600U/min)
Maßstab der Achse: 625 Schritte/mm

Yossarian
10.12.2009, 08:49
Hallo
Im "klassischen Sinne" verliert ein Schrittmotor keine Schritte.
Wenn er aus dem "Tritt" kommt, bleibt er einfach stehen.
Falls wirklich Schrittfehler vorliegen, liegt das meist an irgendwelchen Störungen.
Ob der Motor ausreichend Drehmoment hat, hängt von der Mechanik ab.
Welche Spindelsteigung, Trapez- oder Kugelgewindespindeln, die verschiedensten Reibmomente, benötigte Fräskräfte usw.
Wie sieht die Spannungsversorgung aus?
Mit freundlichen Grüßen
Benno

Majuz
10.12.2009, 19:46
wie erklärt sich das, dass er einfach stehen bleibt? Ich dachte dass er dann 4 Schritte später (bei Halbschrittbetrieb) weiterläuft wenn wieder die gleichen Spulen angesteuert werden.

Als Spannungsversorgung habe ich ein 24V/3A festspannungsnetzteil. Kann kurzzeitig auch 5A. Hört sich jetzt zu knapp an, aber die Anzeige am Netzteil (Analog) steht irgendwo zwischen 1,5A und 2A. Keine Ahnung warum, denn am am V-Ref eingang des L297 ist die Spannung so eingestellt, dass eigentlich allein am X-Motor etwa 2,6 fließen müssten. Im RN-Wissen steht unter anderem:

Halbschritt Ansteuerung

ist während des Halbschritt nur eine Spule Strom durchflossen; das Drehmoment sinkt gegenüber dem Vollschritt um den Faktor 1/1,414. Intelligente Elektronik erhöht während des Halbschritts den Strom durch die jeweilige Einzelspule um den Faktor 1,414 und kompensiert so das geringere Drehmoment. Diese Stromerhöhung führt aus Motorsicht keinesfalls zu einer thermischen Überlastung, da letztendlich weniger Strom in Summe fließt als im Vollschritt.
Kann es damit zu tun haben?
Wie schon gesagt glaube ich aber nicht, dass es deswegen passiert, denn es ist schon an der X und an der Y-Achse aufgetreten und bei X ist ein dreimal so hoher Strom eingestellt wie bei Y.
Nach etwa 45min betätigung (ohne wirklich ein Werkstück zu bearbeiten) war der X-Motor geschätzte 40° warm (schön handwarm) das Netzteil etwas wärmer (also etwa 50°) und die Schrittmotorplatine (2xL6203) war schon so heiß, dass man nur ganz kurz dranlangen konnte (trotz großem Kühlkörper). Y-Motor und Y-Platine waren kalt, wie wenn der Motor nicht gelaufen wär.

Yossarian
11.12.2009, 09:02
Hallo

Welche Spindelsteigung, Trapez- oder Kugelgewindespindeln,Geschwindigkeit
24V sind nicht viel. Ob das Netzteil 5A oder 50A liefern kann, spielt keine Rolle, wenn die Spannung den Strom nicht treiben kann.
Fahr doch mal wesentlich langsamer und stelle fest, ob die Achse immer noch stehen bleibt.
Zehn Umdrehungen per Sekunde sind bei 24V schon eine Menge.

Mit freundlichen Grüßen
Benno

Majuz
11.12.2009, 15:41
Ich hab einen Kreuztisch mit Trapezspindeln mit einer Steigung von 2mm/U. Diesen hab ich fertig so gekauft.

Ich möchte mir nach Weihnachten sowieso ein neues Netzteil kaufen. Dabei dachte ich an dieses hier (http://www.reichelt.de/?ACTION=3;ARTICLE=85216;GROUPID=;SID=29ifp5Y6wQAR0 AABRXGOod804746c79abdb0bc984910c1b7b10d3)

Mit der Spannung kann ich nicht höher gehen, da ich die 5V für den L297 auf der Platine mittels eines 7805 erzeuge und dieser maximal 35V kann und maximal 25V empfohlen werden. Der L6203 könnte 48V.

Gibt es ein Bauteil, das ich anstelle des 7805 einbauen könnte, das 48V verträgt? Dann könnte ich dieses Netzteil (http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=D481;GROUPID=4164;ARTICLE=85 221;START=0;SORT=artnr;OFFSET=16;SID=29ifp5Y6wQAR0 AABRXGOod804746c79abdb0bc984910c1b7b10d3) nehmen, welches aber schon wieder doppelt so viel kostet :-(

Ich werde es jetzt mal langsamer probieren.

Gruß
Marius

Majuz
13.12.2009, 20:14
Ich habs jetzt mal mit ner langsameren Geschwindigkeit probiert und es hat funktioniert. Also lag es wirklich an der Geschwindigkeit. Die Beschleunigung hab ich nicht geändert.

Was würdet ihr mir bezüglich der Netzteilfrage in meinem vorigen Beitrag empfehlen?

Yossarian
14.12.2009, 08:53
Hallo
Du brauchst kein 500W Netzteil für die drei kleinen Motoren.

Mit freundlichen Grüßen
Benno

Majuz
15.12.2009, 22:03
Meine Motoren haben doch aber 2,8A Phasenstrom. Mal 3 ergibt das 8,4A.
P=U*I -> 48V * 8,4A = 403,2W Mit etwas Reserve um es nicht am Limit zu betreiben: 500W
Oder kann man das nicht so rechnen? Ich würde schon gerne das ganze Potential der Motoren ausnutzen. Evtl. möchte ich auch mal Alu fräsen.

Wie kann ich am einfachsten aus 48V 5V machen? Gibt es da eine einfache Möglichkeit? evtl. so was (http://www.conrad.de/goto.php?artikel=154574) (Ist aber auch wieder ziemlich teuer)

Yossarian
16.12.2009, 08:53
Hallo
Nein, so kann man das nicht rechnen.
P=M*omega/eta
elektrische Leistung gleich Drehmoment*Kreisfrequenz(2pi f)durch Wirkungsgrad

Überschlägig (im allgemeinen ausreichend) kannst Du mit den Motoren rechnen:
z.B.
Spule: 2 ohm; 2,8A
-> P=16W -> * zwei Spulen -> 32W
also drei Motoren 100W

Mit freundlichen Grüßen
Benno