Forum: Mikrocontroller und Digitale Elektronik Servoregler/Servoverstärker Verständnislücke


von Alex (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Alex (Gast)


Lesenswert?

>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

von Alex (Gast)


Lesenswert?

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?

von Uli S. (uli12us)


Lesenswert?

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.

von Alex (Gast)


Lesenswert?

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.

von Alex (Gast)


Lesenswert?

>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

von Uli S. (uli12us)


Lesenswert?

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.

von Einer (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.