Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Ich programmiere gerade eine Schrittmotorsteuerung - in einer VI werden insgesamt 4 Motoren gesteuert, diese VI soll auf einem cRio-9104 laufen. Die Steuerung ist momentan nach einem NI-Beispiel für 8-Kanal-PWM programmiert: http://zone.ni.com/devzone/cda/epd/p/id/1499 , so dass in einem Memory Block die Frequenz und die geforderte Schrittzahl vom RT-Host geschrieben werden. Die FPGA-VI liest dann die Memory-Angaben und generiert den Schrittmotor-Takt für die vier Motoren.
Das Problem ist nun, dass einer der Motoren mit einer Rampe anfahren muss. Hat jemand eine Idee, wie man so was effizient auf eine FPGA ausführen kann. Ich dachte an ein zweites Memory, in dem die Rampe (z.B. sinusförmig) beschrieben ist und die dann entsprechend der gewünschten Endfrequenz und Schrittanzahl zu skalieren bzw. zu interpolieren (z.B. im Memory befinden sich 20 Punkte, die eine Sinuskurve abbilden - die sollen auf die Frequenz für die erste 500 Schritte interpoliert werden). Wie kann man so eine Interpolation effizient auf der FPGA machen oder sollte man es besser vom RT-Host erledigen lassen? Oder kennt jemand eine elegantere Methode eine Anfahrtrampe zu programmieren?
Ich werde mich auf alle Hinweise freuen, danke im Voraus.
Viele Grüße,
svet77
Anzeige
15.08.2008, 10:28 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2008 10:29 von Lucki.)
Also, ich habe schon einige Schrittmotorsteuerungen mit LabVIEW realisiert, aber Dein Problem hatte ich noch nicht. Warum nicht? Weil in den Schrittmatorsteuerungen solche Kommandos schon ingegriert sind, bei der Programmierung geht es dann z.B. nur noch darum, die entprechenden Parameter für die Rampe zu übergeben.
Bei den Schrittmotorsteuerungen, die meist eine serielle Schnittstelle haben, gibt es zwei Stufen des
Komforts.
Bei den einfacheren mußte man selbst die serielle Schnittstelle bedienen
Bei den besseren hast Du eine DLL mit allen Funktionen, und diese DLL beorgt Dir die Kommunikation mit der Schrittmotorsteuerung.
Warum also das Rad neu erfinden, wenn es das alles schon gibt?
' schrieb:Also, ich habe schon einige Schrittmotorsteuerungen mit LabVIEW realisiert, aber Dein Problem hatte ich noch nicht. Warum nicht? Weil in den Schrittmatorsteuerungen solche Kommandos schon ingegriert sind, bei der Programmierung geht es dann z.B. nur noch darum, die entprechenden Parameter für die Rampe zu übergeben.
Bei den Schrittmotorsteuerungen, die meist eine serielle Schnittstelle haben, gibt es zwei Stufen des
Komforts.
Bei den einfacheren mußte man selbst die serielle Schnittstelle bedienen
Bei den besseren hast Du eine DLL mit allen Funktionen, und diese DLL beorgt Dir die Kommunikation mit der Schrittmotorsteuerung.
Warum also das Rad neu erfinden, wenn es das alles schon gibt?
Hallo lucky,
ich hab eigentlich nur eine Endstufe, kein Controller, die Steuerung selbst soll über die FPGA des CompactRIO erfolgen.
Der Driver ist TMCM-035 von Trinamic.
15.08.2008, 13:09 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2008 13:24 von Lucki.)
' schrieb:ich hab eigentlich nur eine Endstufe, kein Controller, die Steuerung selbst soll über die FPGA des CompactRIO erfolgen.
Der Driver ist TMCM-035 von Trinamic.
Habe mir das mal angeschaut, du hast zwar recht. Der TMCM-035 ist aber nur die Hälte des Ganzen. Dazu passend gibt es den "Control Modul TMCM-100". Der hat dann die serielle Schnittstelle, und man hat u.a. einen Befehl für "Automatic S-shaped and trapazoid ramps". Man kann auch sein eigenes Programm hineinflashen und das Ganze im stand-alone betreiben.
Wenn Du es aber so machen willst wie Du gesagt hast, dann würde ich erst mal recherchieren, ob sich der Zukauf des Motion-AddOns für LabVIEW lohnt. Ich würde davon ausgehen, daß da so ein Rampenprogramm fertig in der Werkzeugkiste liegt. Kann das hier jemand bestätigen?
' schrieb:Habe mir das mal angeschaut, du hast zwar recht. Der TMCM-035 ist aber nur die Hälte des Ganzen. Dazu passend gibt es den "Control Modul TMCM-100". Der hat dann die serielle Schnittstelle, und man hat u.a. einen Befehl für "Automatic S-shaped and trapazoid ramps". Man kann auch sein eigenes Programm hineinflashen und das Ganze im stand-alone betreiben.
Ja, das mit dem TMCM-100 ist mir bekannt, aber wir haben deswegen die NI-Hardware gekauft, damit wir die komplette System-Steuerung über die machen, wird in dem Fall vielleicht komplizierter, aber so sind die Gegebenheiten. Danke trotzdem.