So um die 300kHz.
So um die 300kHz.
Das sind recht viele Daten. Bei optimaler Kodierung (und wenn ich richtig rechne) kommst du auf 7.15 MB an Daten, die du vorhalten willst. Das geht nicht in den RAM von (zB) einem AVR. Ein externes Speichermedium (zB SD Karte) wäre groß genug, aber intuitiv würde ich sagen, dass du da dann auch schon mit den Datentransferraten am oberen Ende bist, wenn du mit 300 kB/s (2 Bit pro Byte verschenkt) lesen willst. Da habe ich aber keine praktischen Erfahrungen, vielleicht kann jemand anderes etwas dazu sagen.
Gruß
Malte
Vielen Dank erstmal für deine Hilfe.
Da es nicht so sehr auf die Geschwindigkeit ankommt, wäre das jetzt erstmal kein Problem. Kennst du (oder jemand anderes hier) denn eine Möglichkeit wie man solche Schritttabellen einfach auf externer Hardware speichern und anschließend die Takt- Richtungssignale erzeugen lassen kann? Ich habe leider keinerlei Erfahrung auf dem Gebiet der MC Programmierung und würde daher eine Art Fertiglösung bevorzugen...
Was soll das ganze denn überhaupt werden?
Für was du diese riesige anzahl an Datenmengen benötigst, ist mir nicht ganz klar, deswegen wäre gut, um zu wissen, um was es sich denn genau handelt. Ich kann mir nur schwer vorstellen, das es notwendig ist, 10Millionen einzelpositionen speichern und nacheinander ausgeben musst. Evtl. lässt sich das ganze ja dann auch über eine art g-code oder einer inversekinematik einfacher/besser lösen.
Alleine die 300kB/s über SPI sind mit einem kleinen mikrocontroller nichtmehr machbar. Wenn dann noch ein FAT dateisystem dazu kommen funktionierst erst recht nicht, ich glaube da ist man bei ca. 10kB/s.
Die 300kHz finde ich auch etwas hoch, für einen Schrittmotor (außer mit µstepps) wir sprechen hier von 15k U/min bei Vollschritten. Normale Schrittmotoren packen maximal 3000U/min. Deine Treiber können auch nur maximal 50Khz im takt richtungsmodus.
Also, was hast du denn genau vor zu realisieren, vlt. benötigst du ja auch gar keinen schrittmotor?
Hallo Robin,
Also: es sollen 2 Linearaktuatoren über ein Gelenk A miteinander verbunden werden. Die Beiden (ebenfalls drehbaren) Aufhängungen B und C der Aktuatoren bilden also mit A ein Dreieck. Durch Längenänderung der Linearaktuatoren lässt sich der Punkt A somit beliebig in der Ebene positionieren.
Ich möchte den Punkt A beliebige Bahnen fahren lassen.
Mein Plan war es nun die Kinematik, zu welcher noch ein weiterer Teil gehört (weshalb ich im Eingangspost von 3 Motoren sprach) in Matlab zu implementieren und dort die einzelnen nötigen Schritte für die 3 Stepper zu berechnen. Zusätzlich könnte ich dort dann die auftretenden statischen und dynamischen Kräfte berechnen und somit für die nötigen Beschleunigungs- und Bremsrampen sorgen.
Das ganze wäre für mich eben viel einfacher, da ich in einer bekannten Programmierumgebung bleiben könnte.
Falls es jedoch nicht so geht wie ich mir das vorgestellt habe, könnte ja dein Stichwort "Inverse Kinematik" genau das richtige sein, da jeder Punkt A durch eindeutige Schenkellängen AB und AC gekennzeichnet ist.
Allerdings vermute ich, dass ich in diesem Falle wieder nicht um die MC Programmierung herum komme.
Gemeint sind natürlich Mikrosteps. Ich habe Schrittmotoren für die richtige Wahl gehalten, da ich bei Verwendung von Servus die beiden Linearaktuatoren nicht richtig synchronisiert bekomme und somit meine Bahn nicht stimmt.
dafür brauchst du nie im Leben 300 kHz! deine Steuerung kann ja gerade einmal 50 kHz...
Normale Standard Schrittmotoren haben eine Auflösung von 200 Schritten pro Umdrehung, dh du weißt dass sich der Schrittmotor pro Schritt um 1,8° dreht. Mikroschrittendstufen können dies teilen, dass heißt zum Beispiel bei Halbschritt brauchst du 2 Step Signale, damit sich der Motor um 1,8° dreht, bei einem Schritt dreht sich der Motor ungefähr um 0,9°. Wenn man eine CNC Maschine auf Mikroschritt umbaut verbessert sich also keineswegs die Genauigkeit der Maschine, allerdings führt Mikroschritt zu einem saubereren, weniger ruckligen lauf der Motoren.
Mal als Beispiel:
Meine ISEL CNC Fräse hat Standard Schrittmotoren im Halbschrittbetrieb an Kugelumlaufspindeln mit einer Steigung von 5mm. Die maximale Verfahrensgeschwindigkeit beträgt 8m/min =~133 mm/s, in einer Sekunde muss sich die Spindel also ~26,6 mal drehen.
26,6*200(schritte)*(Halbschritt)= 10666 Schritte pro Sekunde, also benötige ich maximal 11kHz. Die Steuerungskarte könnte also mehr, es hängt aber vor allem von der Mechanik ab, welche Verfahrensgeschwindigkeit möglich ist.
MfG Urs
Der Punkt an der hohen zeitlichen Auflösung könnte sein, dass diese das kleinste Geschwindigkeitsinkrement bzw -dekrement bestimmt. Es muss also garnicht darum gehen, Steps mit 300 kHz zu triggern, sondern evnt darum, die Geschwindigkeit fein genug variieren zu können.
Aber das ist natürlich nur mal so spekuliert, dazu müsste sich der TO äußern.
Gruß
Malte
Lesezeichen