INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Servomotor steuern mit Ni my DaQ



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!

24.04.2014, 12:02
Beitrag #1

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
Servomotor steuern mit Ni my DaQ
Hallo,

ich bin ein Labview- Anfänger und möchte einen Servomotor mit Labview steuern.

Ich habe mich für die Hardware NI myDaQ entschieden und möchte den Servomotor darüber steuern.
Das PWM Signal möchte ich über einen Analogen Output rausgeben.
Mit dem Funktions Generator kann ich mittels eines Rechtecksignals , einer Amplitude von 5V,Offset von 2,5V 50 Hz mittels dem Duty Cycle von 2-13 % um 180 Grad bewegen.

Jedoch muss ich das jetzt mit Labview realisieren.

Wie kann man mit den Labview-Bausteinen auf den MydaQ zugreifen und sagen, dass ich das PWM Signal über den Analogen Output Port 0 herausgeben, setzen möchte?

Ich habe mir ein Beispiel herausgesucht , jedoch wurde es mit Arduino realisiert (siehe Anhang) und ich möchte es ja mit dem MyDaq versuchen.

Ich hoffe ihr könnt mir weiterhelfen.


12.0 .vi  Labview File for DC Motor Control.vi (Größe: 40,05 KB / Downloads: 339)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.04.2014, 12:35
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Servomotor steuern mit Ni my DaQ
Bitte Profil_ergaenzen. Da steht noch LabVIEW 2011. Dein VI ist aber für LabVIEW 2012.

Zu Deinem Problem:
Hast Du schonmal im Examplefinder geschaut. Da gibt es einige Beispiele zur analogen Ausgabe über DAQmx.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.05.2014, 21:37
Beitrag #3

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Servomotor steuern mit Ni my DaQ
Hey,

ja ich habe die Beispielsuche angeguckt und es hat mir sehr geholfen.
Danke dafürSmile
Ich habe mir nun ein Signal erstellt und kann es nun über die Hardware zum Servomotor senden.
Soweit so gut. Wenn ich bei einem Duty Cycle von 95 habe und dann auf 96 ändere, so bewegt sich der Servomotor einen Schritt.
Insgesamt fährt der Motor von 0 bis 180 grad, also 26 Schritte ( 13 Schritte bis zur Mittelstellung von 90 grad).
Da ich ja um einen Schritt zu fahren 1 mal von 95 bis 96 Duty schalten muss und dann wieder zurück, habe ich mir etwas mit einer case schleife gebaut, um ständig einen Schritt fahren zu können.
Nun möchte ich mit LV realisieren, dass ich, wenn ich z.B ein Bedienelement von 5 habe, der Motor 5 Schritte fährt, also muss ich meine Case Operation 5 mal aktivieren.
Leider komme ich an dem Punkt nicht weiter, ich habe schon soviel probiert...ich hoffe ihr könnt mir weiterhelfen.

Herzliche Grüße HC


11.0 .vi  PWM.vi (Größe: 29,87 KB / Downloads: 326)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.05.2014, 07:58
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Servomotor steuern mit Ni my DaQ
Hallo chemische Formel,

Zitat:Ich habe mir nun ein Signal erstellt und kann es nun über die Hardware zum Servomotor senden.
Das bezweifle ich aber stark…
Du erstellst eine Waveform mit 1000 Samples, benutzt aber DAQmxWrite in der "1Kanal 1Sample"-Variante. Wieviele Samples werden von den 1000 in der Waveform wohl ausgegeben werden?

Zitat:Soweit so gut. Wenn ich bei einem Duty Cycle von 95 habe und dann auf 96 ändere, so bewegt sich der Servomotor einen Schritt.
Echt? Der reagiert auf Duty-Änderung von 1% mit dem Fahren eines Schrittes? Geiler Motor…

Zitat:Nun möchte ich mit LV realisieren, dass ich, wenn ich z.B ein Bedienelement von 5 habe, der Motor 5 Schritte fährt, also muss ich meine Case Operation 5 mal aktivieren.
Das hört sich an, als wenn man eine FOR-Loop nutzen sollte…

Warum nutzt du eigentlich den AO, um Rechteckpulse auszugeben? Hast du keinen DO zur Verfügung?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.05.2014, 17:56 (Dieser Beitrag wurde zuletzt bearbeitet: 16.05.2014 18:03 von Hydrogencarbonat.)
Beitrag #5

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Servomotor steuern mit Ni my DaQ
ja ich weiss ..ein sample zurzeit <,p
Ich habe mir jetzt aus einer Case-Schleife einen Regler gebaut, damit kann ich jede Stellung anfahren...jedoch reagiert der Motor wie schon geschrieben nur bei 95 suf 96 Duty Cycle und er fährt nur in einer Richtung ...wie kann ich den Motor in die andere Richtung steuern?

MFG HC
Achja und nochmal zum AO? ...Was spricht denn dagegen? ..ja ich habe noch freie Plätze beim DO

Gruss HC
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2014, 17:34
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Servomotor steuern mit Ni my DaQ
Hallo Carbonat,

Zitat:jedoch reagiert der Motor wie schon geschrieben nur bei 95 suf 96 Duty Cycle
Solche Motoren kenne ich bisher nicht…

Zitat:er fährt nur in einer Richtung
Was sagt denn das Handbuch des Motors dazu? Was erwartet der Motor für Signale/Pegel, um in eine beliebige Richtung zu fahren?

Zitat:wie kann ich den Motor in die andere Richtung steuern?
Steht das nicht im Handbuch/Datenblatt zum Motor?

Zitat:zum AO? ...Was spricht denn dagegen? ..ja ich habe noch freie Plätze beim DO
- Beim DO musst du dich nicht um die Signalpegel kümmern (Standard ist 5V-TTL).
- Bei besseren NI-Karten hast du auch CTR, PWM etc. zur Verfügung. Damit kann man sehr genaue PWMs erzeugen oder Pulsfolgen ausgegeben - ohne dass man diese händisch zusammenstückelt…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.05.2014, 12:16
Beitrag #7

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Servomotor steuern mit Ni my DaQ
Hi again,
ich habe leider kein Datenblatt, da es sich um ein altes Model handelt und ich nach langer Suche nichts im Internet gefunden habe.
Es ist ein Modelcraft S-12 Servomotor.

Ich kann mit der Software Ni Elvis ein Funktionsgenerator auswählen und den Servo über Nidaq-Karte angesteuern und der Motor steuert mit meinen Werten( oben im Beitrag genannt) bei einem Duty- Cycle von 2- 13 Rückwärts und Vorwärts.

Ich weiss nicht was ich falsch mache, ich habe zwar eine Steuerung mit LV erstellt und kann in einer Richtung jeden Winkel anfahren, jedoch ist ein Schritt von 95 auf 96 Duty Cycle ja nicht der Normalfall und ich musste es wie folgt prgrammieren, da ich auf keine andere Lösung kam.

Also habe ich den einem Vorwärts- Schritt mit 2 case-schleifen erstellt und an den Duty Eingang meines LV Baustein, in dem ich das Signal erzeuge , angeshlossen.

Im Case 1: Fall1(True) erstellt ein Zahlengenerator immer 1sen und nullen gibt die diese Werte an den Eingang des case1, damit ich Dauerhaft einen Schrit fahren kann, wenn Case 1 True ist. Bei false passiert nichts

Im Case 2:Fall 1(True): 95+1, (False)Fall 2: 96-1. Hier regel ich wie eben Beschrieben den einen Schritt.

An den Eingang vom case 1 ist dann wieder ein case angeschlossen, bei dem ich mit einem selbgebauten Zälher zb. bei Schritt 90 grad in der case-Schleife 23 Schritte hochzähle und dabei eine 1 ausgäbe, sodass diese 1 in den Case 1 gelangt und fall True aufruft.
Ist er runtergezählt so bekommt der case 1 eine 0 und nicht passiert, der Motor hält die Position von 90 grad.

Das habe ich dann in 5 grad schritten realisiert und den Eingang diese Zähler case an ein Bedienellement regler angeschlossen und kann bei einer Skala von 0-180 die 36 Positionen wunderbar anfahren.

Jedoch ist die Frage , wie realisiere ich die Steuerung in die andere Richtung, wenn der Motor nur bei 95 auf 96 Dutx Cycle einen Schritt in eine bestimmte Richtung macht?


---------------------------------------------------------------------------------------------------------------------------------------
Vlt. muss ein neuer Lösungsansatz her und ich mache etwa falsch!!!!!!!!
Oder ist mein Rechtecksignal falsch ?
---------------------------------------------------------------------------------------------------------------------------------------
Im Normalfall erstellt man doch ein Signal von Länge 20 ms und bei 1- 2ms ist entweder der High oder Lowpegel erreicht.
Die Impulsdauer in der ersten Phase eines Servosignals ist zwischen 1ms und 2ms lang. Wobei das jeweils die Endstellungen des Servos sind, an denen es noch nicht mechanisch begrenzt wird. Eine Pulslänge von 1.5ms wäre dann Servomittelstellung. Für die Positionsauswertung des Servos haben die 20ms Wiederholdauer keine besondere Bedeutung, sieht man einmal davon ab, dass ein Servo bei kürzeren Zeiten entsprechend öfter Positionsimpulse bekommt und daher auch öfter die Position gegebenenfalls korrigiert, was möglicherweise in einem etwas höheren Stromverbrauch resultiert.

Und dieses Siganl verändert man dann mit dem Duty Cycle

Muss ich mir vlt. einen PID-Regler mit Ist und Sollwert bauen.ALso den Istwert mit der Servoposition und den Sollwert der Position.

Ist es denn möglich das ich das mit nidaq read (Istwert) und nidaq write (Sollwert) realisiere?

Geht das überhaupt?
Da ich eine externe Stromquelle,Netzteil 5v verwende und ich nicht für + und - die vorhandenen vorhandenen analogports der nidaq.Karteverwende, da ansonsten der Stromverbrauch zu gross wird und ein Fehler im programm angezeigt wird.

Soll ich den Spannungsverlust eventuell mit einem Kondensator ausgleichen?

Ich hoffe mir kann geholfrn werden und ich habe es einigermassen verständlich geschrieben.

MFG HC
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.05.2014, 12:23
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Servomotor steuern mit Ni my DaQ
Per Counter (falls bei MyDAQ vorhanden) würde ich das so lösen wie hier gezeigt.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.05.2014, 20:24
Beitrag #9

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Servomotor steuern mit Ni my DaQ
leider ist kein Counter in mydaq vorhanden.


Wieso kann ich denn mit dem Ni Elvis den Servomotor in beide Richtungen steuern ?
Habe den Motor an einer externen Spannungsquelle und nur das Steuersignalkabel im analog Output 0.

Was macht Elvis was ich nicht mache ?

Gruss HC
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.05.2014, 08:07
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Servomotor steuern mit Ni my DaQ
Laut Doku hat das myDAQ einen Counter, dessen Output du auf PFI 3 routen kannst.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Servomotor regeln johnnyP 1 5.107 25.01.2011 16:31
Letzter Beitrag: RHeil

Gehe zu: