Hallo, ich habe viel gelesen, aber keine Antwort auf meine Fragen gefunden. Datenblatt habe ich durchgelesen, leider zu wenig Wissen vorhanden, kann die richtige Stellen nicht finden. Das Datenblatt habe ich angehängt. Ich hatte bis jetzt nichts mit Servomotoren zu tun gehabt. Es liegt hier ein Servoverstärker mit Servomotor von Sanyo Denki. Soll für ein Projekt benutzt werden, weil es eh schon da ist. Bis jetzt ist der Stand so: Servoregler ist an der Steckdose. Motor und im Motor eingebauter Inkrementalgeber sind dran. An den Eingängen CN1 26 und 28 habe ich PWM Signale. Der Motor soll also in position mode (Systemparam. page08, 02) betrieben werden. Ich kann mit den PWM Signalen den Motor in beide Richtungen drehen. Ab hier wird es kompliziert. Das Datenblatt ist sehr umfangreich, ohne Vorkenntnisse schwer für mich. Die Drehzahl wird per PWM Frequenz gesteuert. Ok. Funktioniert. Ich finde nicht, die Anzahl der Impulse um die Welle um 360° zu drehen. Ich habe gesehen, da gibt es noch Übersetzungen. Das alles durchgelesen, komme trotzdem nicht weiter. Habe erst man f1=f2 gelassen. Ich dachte, der position mode würde so funktionieren: angenommen man braucht 10.000 Pulse für eine Drehung. Schickt man die 10.000 Pulse mit 1kH dreht sich der Motor langsamer, als die 10.000 Pulse mit 100kHz. Das scheint aber falsch zu sein. Der Motor fährt zwar langsamer, aber ganz sicher nicht die gleiche Strecke. Ich habe noch einige Fragen, aber möchte die Nachricht nicht zu lang halten. Das sind Basickenntnisse, die mir fehlen. Ich weiß. Ich bin auch nicht faul zum lesen, habe viel gelesen. Nur nicht das gefunden, was ich suche. Die Anzahl der benötigten Pulse scheint mit dem Inkrementalgeber zusammen zu hängen, das habe ich schon herausgefunden. Aber es fehlt noch was. Wie gesagt, 10.000 Pulse mit 1kHz fahren 10 Mal langsamer und 10 Mal kürzer als mit 10kHz. Inkrementalgeber ist der richtige in den Parametern eingestellt. Wer kann helfen, bitte helfen. Liebe Grüße.
>Wie gesagt, 10.000 Pulse mit 1kHz fahren 10 Mal langsamer und 10 Mal >kürzer als mit 10kHz. Sorry, diese Aussage ist falsch. Fährt die gleiche Strecke. Könnte schwören, dass nicht
Bitte nicht steinigen, andere Frage. Der Servomotor bewegt einen Wagen auf dem Linearschlitten. Keine Spindel. Riemen. Da die Fahrstrecke vom Wagen immer flexibel ist, kann es passieren (passiert eigentlich immer) dann die ausgerechneten Pulse zum Fahren für einen gewünschten mm Weg mit Komma sind. Pulse mit Komma schicken habe ich versucht, komma geht nicht durch :D Mit der Zeit vom hin und her Fahren baut sich der Rundungsfehler selbstverständlich auf. Was machen die Profis, wenn die so eine unschöne Situation bekommen? Einen externen Positionsgeber wollte ich mir aus einigen Gründen sparen. Versuchen die gefahrene Pulse und mit den Sollpulsen(die mit Komma) zu verrechnen und ab und zu ausgleichen? Oder ab und zu home Position antasten?
PWM heisst, du veränderst das Verhältnis der Rechteckspannung, so wie beim Modellbauservo. da ist die Frequenz auch fest eingestellt, aber die impulslänge ist variabel. Einfacher geht das ganze analog, da wird mit der Spannung die Geschwindigkeit reguliert. Prinzipiell dasselbe verhalten, wie mit PWM. Aber da reicht schon ne ganz simple Batterie um den Motor zum laufen zu bringen. Mit nme Poti lässt sich die Geschwindigkeit einstellen. Aber keine Ahnung, ob man den Motor auch rein analog über +/- 5 oder 10V ansteuern kann. Die Beschreibung ist alles andere als anwenderfreundlich aufgebaut.
Beim PWM lasse ich Tastverhältnis immer bei 50%. Ändere nur die Periode für Geschwindigkeitssteuerung. Analoge Eingänge können für velocity und torgue control mode benutzt werden. Habe mich für position control mode entschieden, weil es mit Pulsen einfacher ist eine definierte Strecke zu fahren. Das Datenblatt ist wahrscheinlich für erfahrene Anwender erstellt. Da wird nicht einem erzählt, wie es funktioniert. Tausende Parameter zum Einstellen, wo 90% für mich keine Begriffe sind. Das Teil funktioniert in PWM Ansteuerung schon mal. Habe aber wie bereits geschrieben ein anderes Problem. Eigentlich ist das gleiche Problem wie bei allen, die Schrittmotoren nutzen. Ich habe den Motor an einem Linearschlitten dran. Das heißt die Drehbewegung wird in einen linearen Vorschub umgewandelt. Eine Motorumdrehung ergibt 70mm linearen Weg. Eine Motorumdrehung braucht 131072 (oder so aus dem Kopf) Pulse. Möchte ich jetzt 31,5mm links verfahren, brauche ich 58.982,4 Pulse. Dann fahre ich noch 112mm links, dann wieder 80,7mm, dann 64,7mm zurück, dann ganz nach links bis Anschlag und wieder komplett nach Rechts auf die Startposition. das ist nur ausgedacht jetzt. Es sind mehr Positionen und mehr Richtungswechsel dabei. Nach 20 Vorgängen, ist die Startposition natürlich nicht mehr die wie am Anfang. Pulse mit Komma werden gerundet und der Fehler baut sich immer weiter auf. Die "Arbeitspositionen" wo der Schlitten anhält so auf zu bauen, dass Pulse ohne Komma sind wäre zwar möglich, aber jede Änderung ist sehr aufwendig und unflexibel das Ganze. Als möglichen Lösungsansatz habe ich jetzt 2 Sachen im Sinn. Entweder alle 10 Vorgänge zum Home Sensor fahren und dort die Schritte nullen oder soll und ist Schritte zählen und immer wieder verrechnen.
>oder soll und ist Schritte zählen und immer wieder verrechnen
Habe es so gemacht, funktioniert.
Mit 2 Variablen. Eine als float, andere int.
In der Float werden die Soll-Schritte mit Komma zusammengezählt und in
der Int Variable - tatsächlich gefahrenen.
Alle 10 Bewegungen wird der Fehler ausgeglichen, indem man einfach
nachfährt.
Vielen Dank
Wegen deinem Schrittproblem gibts ja das elektronische Getriebe. überleg dir eine sinnvolle Übersetzung, bei der du bei deinen 70mm dann halt z.B 140.000 Pulse brauchst, das Verhältnis musst du dann bei deinen 2 Getriebewerten eingeben. Falls keine Kommawerte erlaubt sind, dann halt entsprechend grosse Zahlen.
Alex schrieb: > Möchte ich jetzt 31,5mm links verfahren, brauche ich 58.982,4 Pulse. Überlege Dir erstmal, was 0,4 Impulse in Millimeter bedeutet. > Dann fahre ich noch 112mm links, dann wieder 80,7mm, dann 64,7mm zurück, > dann ganz nach links bis Anschlag und wieder komplett nach Rechts auf > die Startposition. Du musst (solltest/könntest) nach folgenden zwei Positionierart unterscheiden: a.) Absolute Positionierung b.) Relative Positionierung Im Fall a positionierst Du immer von Deinem Nullpunk (meistens auch Referenzpunkt) aus. D.h. du sagst nicht 123,5 Millimeter nach rechts oder links, sondern z.B. fahre auf Position 505,0 Mullimeter, danach auf Position 628,5 Millimeter. Meistens sind doch die Positionen bei solchen Maschinen absolute Positionen, bei Dir bestimmt auch, oder? > Was machen die Profis, wenn die so eine unschöne Situation bekommen? Entspannt bleiben und mehrere Koordinatensystem und unterschiedliche Maßeinheiten benutzen die ineinander umgerechnet werden. Grundlegend hast Du schon mal das Maschinen-Koordinatensystem. Du fährst auf die Referenz und definierst diesen Punkt als Nullpunkt. Dazu gibt es zwei Positionen, die Ist-Position und die Soll-Position. Die Einheit dieser Positionen sind Impulse, nicht Millimeter! Dann hast Du z.B. Dein metrisches Maschinen-Koordinatensystem, z.B. in Millimeter (Du könntest ja auch Zoll haben). Dazu hast Du eine Skalierung. Die besteht aus Zähler und Nenner. Wenn Du Millimeter in Impulse umrechnen willst, multiplizierst du mit 70 und teilst mit 131072. So kannst Du die Maschinenkoordinate von Millimeter in Impulse umrechnen und umgekehrt. Usw. Eigentlich ist es mir zuviel, das alles zu erklären. Du wirst schon klar kommen, irgendwie...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.