-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Takt- Richtungssignale erzeugen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    20.10.2013
    Beiträge
    5

    Takt- Richtungssignale erzeugen

    Anzeige

    Hallo Forengemeinde,

    Ich bin neu hier im Forum und habe auch sonst bisher wenig Erfahrung auf diesem Gebiet.
    Ich lese hier schon seit einer Weile mit und bin deshalb recht zuversichtlich, dass ihr mir bei der folgenden Frage helfen könnt.

    Es geht um die Steuerung von 3 Schrittmotoren welche beispielsweise über 3 SMCI33 von Nanotec betrieben werden mithilfe von Takt- Richtungssignalen.
    Die Signale für die 3 Schrittmotorsteuerungen sollen synchron getaktet sein, sprich wenn zwei Motoren einen Schritt in eine Bestimmte Richtung gleichzeitig ausführen sollen muss das auch wirklich absolut GLEICHZEITIG geschehen! Ich vermute nach dem was ich hier und in anderen Foren gelesen habe, dass so etwas ganz einfach über einen Mikrocontroller zu realisieren ist welcher die Signale für alle 3 SMCI33 erzeugt.

    Die genauen Bewegungsabläufe werden separat berechnet und stehen quasi in der folgenden Form zur Verfügung:

    Takt Motor1 Motor2 Motor3
    1 Schritt nach rechts kein Schritt Schritt nach rechts
    2 Schritt nach rechts kein Schritt kein Schritt
    3 kein Schritt Schritt nach links Schritt nach links
    ...
    Gibt es eine Einfache Möglichkeit (am besten ein fertiges Bauteil) welches die insgesamt 6 Takt- Richtungssignale erzeugen kann und auf welchem ich unterschiedliche Bewegungsabläufe speichern und im Stand-Alone Betrieb ausführen lassen kann? Die Tabellengröße ist jedoch nicht zu unterschätzen (ca. 1e7 Takte pro Bewegungsprofil), weshalb entsprechend Speicher zur Verfügung stehen sollte. Am liebsten wäre mir eine kommerzielle Lösung bestehend aus Hardware und zugehöriger Software zum übertragen der Bewegungsabläufe.

    Vielen Dank für eure Hilfe!

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Wie hoch soll denn die Rate sein? Also mit welcher Frequenz sollen die Daten ausgegeben werden?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    20.10.2013
    Beiträge
    5
    So um die 300kHz.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    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

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    20.10.2013
    Beiträge
    5
    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...

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    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?

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    20.10.2013
    Beiträge
    5
    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.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    23.08.2013
    Beiträge
    8
    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

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    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

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Das ganze klingt für mich nach einer art delta roboter nur mit 2 armen.

    Schrittmotoren sind nicht schlecht, kann man falls man geschwindigkeit braucht später immernoch durch servomotoren ersetzen.

    Da das ganze standalone werden soll, könnte es mit einem Raspberry Pi funktionieren. Darauf läuft linux+matlab drauf (so weit mir bekannt), die frage ist nur, ob es schnell genug für dich ist und ob/wie du die Ein- und Ausgänge ansteuern kannst.
    Zur not gibt es ja immernoch USB oder RS485, hier könnten die Treiber probleme machen, aber einfacher wird es für dich kaum möglich sein (vlt. noch mit einem nettop oder netbook), wenn du kein C programmieren willst.

    Ich würde das ganze persönlich (ohne das projekt zu kennen) mit einem µController aufbauen der die inverse kinematik berechnet (formeln hast du ja schon in matlab) und eine SD-karte auf der G-Code gespeichert ist. Je nach komplexität kann man dann auch noch ein display anschliesen, mit dem man verschiedene programme wählen kann.
    Das ganze sollte für Anfänger/Künstler auch mit einem arduino machbar sein, mit etwas C kenntnissen und einarbeitung, natürlich vorrausgesetzt.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 15
    Letzter Beitrag: 30.04.2013, 16:42
  2. Takt dür den Schrittmotor erzeugen
    Von sahra im Forum Assembler-Programmierung
    Antworten: 9
    Letzter Beitrag: 19.10.2010, 16:17
  3. CLK Takt höher als Datenbus Takt (SDRAM)
    Von saoirse im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 25.08.2007, 18:12
  4. 455kHz - Takt erzeugen
    Von sigo im Forum AVR Hardwarethemen
    Antworten: 7
    Letzter Beitrag: 11.03.2006, 11:28
  5. 1Herz takt erzeugen..Atmega16 evt. DCF77?
    Von tms2002 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 08.03.2006, 12:25

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •