PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe! C++ Programmierung für Faulhaber Motion Controller



wlan
10.08.2005, 12:36
Hallo liebe Leute!

ich habe einen Roboter konstruiert. Dafür habe ich 3 Motoren (MCBL 3603 Brushless DC-Sercomotor) von der FirmaFaulhaber und 3 entsprechende Motion-Controller-Karten gekauft.

Ich habe nun die Frage: wie kann man die Ansteuerung der Motoren in C++ programmieren? Ich nehme RS232 als Schnittstellen. Für die Schnittstellen-Kommunikation benutze ich PComm Library von MOXA, was einwandfrei fonktioniert.

Ich würde die Befehle (z.B. Geschwindigkeit, Drehrichtung, Stop-Befehl, Beschleunigung usw.) alle 10 oder 20ms an die Hardware schicken Es sieht jetzt so aus, dass der Motor (oder die Controller-Karte) nicht so schnell reagieren kann.

Hat vielleicht jemand schon ähnliche Karte benutzt? Ich würde mich sehr freuen wenn jemand mir helfen könnte!

Vielen Dank!

WLAN

frobo
12.08.2005, 19:35
Hallole,
eigentlich sollte man dem Controller nur ganz gelegentlich einen Befehlsstring rüberschieben, wenn eine Änderung von Drehzahl oder Richtung etc. ansteht. Denn die Steuerung/Regelung des Motors ist ja dessen Hauptaufgabe. In diesem Zusammenhang verstehe ich den 10/20 ms Abstand der Steuerstrings nicht. Oder sehe ich da etwas daneben? - ich hatte mal mit dem 3564Kxxx ein wenig gespielt.

Gruß
frobo

Joe23
24.01.2014, 00:21
Hi wlan, hi frobo.

Die 10ms sind mir klar. Vermutlich willst du die 3 Motoren synchronisieren bzw. interpolieren. Hier wir die Achsbewegung aufgeteilt und im Raster des Interpolationstakts (z.B. 10 ms) die geweilige Soll-Position der Achse errechnet. Die Steuerungen selbst laufen nicht im Positionier-Modus, denn hier würde die Achse ja immer beim Erreichen des Zielpunkts über eine Rampe abbremsen und somit keine Geschwidigkeit aufnehmen. Stellt man diese hingegen auf Geschwindigkeitsregelung, kann man durchgängig interpolierte Bahnen abfahren. Hierzu wird im Interpolationstakt die nächste Sollposition der Achse übermittelt. Die Steuerung selbst verechnet diese mit der Ist-Position. Zusammen mit dem festen Interpolationstakt errechnet die Steuerung die neue Sollgeschwindigkeit und regelt auf diese.
Je kleiner der Interpolationstakt, desto besser verhält sich in der Regel die Bahngenauigkeit.

Jetzt aber zu deiner Frage:

Hier fehlt noch etwas die Hardwarebeschreibung...
Du sagst du steuerst die Karten über Rs232 an, hast aber 3 Karten. Wie schließt du 3 Teilnehmer an eine RS232-Schnittstelle an?
Verwendest du USB-RS232-Adapter?
Werden deine Karten als Virtuelle Com-Ports angelegt?
Baudrate schon auf das Maximum für Rs232 gestellt?

Hilfreich wäre auch eine Bezeichnung für die Montion-Controller-Karten.

Gruß

oberallgeier
24.01.2014, 09:04
Hi wlan, hi frobo ... Jetzt aber zu deiner Frage ... Hilfreich wäre auch ...Hallo Joe23. Der wlan hatte das am 10.08.2005, 12:36 geschrieben, gute acht Jahre her, auch in diesem Forum (klick) (http://www.labviewforum.de/Thread-Steuerung-eines-Roboters) und der Nick ist auch seit Ende 2005 nicht mehr online gewesen.