LabVIEWForum.de
Schrittmotorsteuerung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Schrittmotorsteuerung (/Thread-Schrittmotorsteuerung)



Schrittmotorsteuerung - devilsdoormat - 18.10.2010 10:46

Hallo,

ich benutze den NI-USB 6009 und steuere damit einen Schrittmotor. Das funktioniert auch so weit ganz gut. Zwei kleinere Probleme habe ich allerdings noch.


1. An dem PC mit dem ich die entsprechenden VIs programmiert habe hat die Messkarte die Bezeichnung "Dev1". An anderen PCs kann diese Bezeichnung durchaus abweichen, wenn schon andere Geräte anhängen. Gibt es eine einfache Möglichkeit in allen SubVIs, welche auf die Messkarte zugreifen diese Bezeichnung zu verändern? Wie ich den Zugriff auf das Gerät geregelt habe, kann dem angehängten VI entnommen werden.

2. Ebenfalls in dem VI sieht man, dass ich die Frequenz mit der Impulse an den Motor gesendet werden über eine Wartezeit der For-Schleife regele. Bei hohen Frequenzen (größer 1 kHz), fängt der Motor an unrund zu laufen. Der Motor kann mit solchen Frequenzen eigentlich gut umgehen. Kann es nebst mechanischen Problemen bei der Umsetzung vielleicht auch an meiner Art die Pulse zu erzeugen liegen? Ich schreibe 2000 Samples auf den entsprechenden Kanal, wobei ich 100 auf High und 1900 auf Low setze, so dass ich Rechteckimpulse erhalte. Kann es sein, dass 1 ms oder weniger nicht ausreichen diese 2000 Samples auf den Kanal zu schreiben, so dass es im schlimmsten Fall passieren kann, dass es vom Zufall abhängt, ob während eines Schleifendurchlaufes ein Puls auf den Kanal gegeben wird oder nicht? Wie sähe dann eine stabilere Lösung hierfür aus?

Vielen Dank und lieben Gruß

Lv09_img2


Schrittmotorsteuerung - Y-P - 18.10.2010 12:24

1. Lies' doch die Bezeichnung aus einer INI-Datei. So mache ich das auch, wenn ich das Programm auf mehreren Rechnern laufen lasse.
2. Bei 1 kHz stellst Du eine Verzögerung von 1ms ein. Da spielt Dein Windows nicht mehr mit, weil andere Dinge parallel laufen, d.h. ein Schleifendurchgang könnte dann auch 2 ms laufen. Wenn Du höhere Frequenzen möchtest, solltest Du auf eine Karte mit hardware-Timing umsteigen.

Gruß Markus


Schrittmotorsteuerung - BsaiboT - 18.10.2010 13:06

Hej.

zu 1.) Ich löse es immer so, dass ich eine Ini-Datei in verbindung mit einer FGV (Funktionale Globale Variable - einfach mal danach im Forum suchen) nutze. Eine zweite Möglichkeit ist die, dass man zu Beginn des Programmes nach vorhandener HW sucht und den Nutzer entscheiden lässt, welches Device es ist, sofern man mehrere NI-USB 6009 findet. Dazu kannst du mal etwas in der DAQmx-Palette suchen und auch im Beispielfinder schauen. Da findest du sicher passende VI die dir einen guten Ansatz bieten.

zu. 2.) Y-P hat recht. Windows ist (leider) kein Echtzeitsystem und bei solch kurzen Zeiten macht es dir einen Strich durch die Rechnung. Da muss dann eine HW eingesetzt werden, die einen HW-Timer integriert hat.

Grüsse,
Tobias

PS: Ich konnte leider dein VI nicht anschauen, da ich auf meinem momentanen Auftrag kein LV zur Verfügung habe.


Schrittmotorsteuerung - devilsdoormat - 18.10.2010 13:44

Danke für die Antworten.

zu 1.: ich probiere mein Glück das auf eine der Varianten zu lösen. Falls ich auf Probleme stoße, melde ich mich noch mal.

zu 2.: da kann man dann wohl nichts machen. Ich werde den Motor einfach langsamer laufen lassen. Da er nur gelegentlich bewegt werden soll, ist das kein großer Zeitverlust.


Schrittmotorsteuerung - Lucki - 18.10.2010 19:06

zu 1: alternativ kann man auch im M&A-Explorer die Devices umbenennen, so daß man es in unterschiedlichen PCs dann immer mit dem gleichen Device zu tun hat. (Das funktioniert natürlich dann nicht, wenn bei mehreren Karten, die von mehreren Programmen bedient werden, alle Programme immer DEV1 wollen. Aber so etwas läßt sich organisieren, z.B Deiner Karte immer DEV10 zuweisen, dann gibt es keine Konflikte mehr)

zu 2; Dagegen hilft nur ein bessere Karte, bei der man die Ausgaberate intern takten kann. Die Genauigkeit der Wait-Funktion ist +-1ms, so daß es um so mehr ruckelt, ja mehr die Frequnz sich 1kHz nähert. Kannst es ja mal mit dem Metronom-Wait versuchen, da könnte es geringfügig besser werden.


RE: Schrittmotorsteuerung - könnes - 17.02.2011 13:16

Hallo zusammen,

möchte auch mit einem USB-6009 einen Schrittmotor ansteuern.
hab leider nur ne 8.6labview version.

kann mir die einer mal bitte abwärtskompatiebel abspeichern?

danke im Vorraus.


RE: Schrittmotorsteuerung - NWOmason - 17.02.2011 13:26

Hallo,

habe dir das VI aus dem 1. Beitrag konvertiert.

Beste Grüße,
NWO


RE: Schrittmotorsteuerung - gottfried - 17.02.2011 17:06

> NI schrieb:To use the abort button is like using a tree to stop a car!

genial