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 

Winkelregelung mit DAQ und IK220



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!

12.12.2013, 09:30
Beitrag #1

Absoluter_Beginner Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Dec 2013

2011
-
DE



Winkelregelung mit DAQ und IK220
Hallo zusammen,
ich hoffe, mein Thema ist hier richtig untergebracht.
Zunächst mal muss ich sagen, dass ich ein totaler LabView-Neuling bin und mich gerade einmal mit ein paar Grundfunktionen vertraut gemacht habe.

Mein Ziel ist die Winkelregelung (Positionsregelung) eines Drehtisches mit LabView - genau genommen mit Hilfe des Contol Design Tools.

Zu den technischen Details:
Als Aktor habe ich einen Gleichstrommotor der mittels einer H-Brücke und einem PWM-Signal
ausgeregelt werden soll. Dieses Signal soll mit dem DAQ-Assistenten und der die Multi I/0-Karte von NI [6321 PCI-Express] erzeugt werden. Das Signal wird dann an einen Connector-Block (ebenfalls NI) SCB-68A an die H-Brücke (Typ L298N) weitergeleitet.
Als Sensoren habe ich zwei Leseköpfe "ERO 78" und eine Messkarte "IK220", beide von Heidenhain.

Ich habe mich von dem Beispiel http://www.ni.com/white-paper/12944/de/
inspirieren lassen, in dem die Drehzahlregelung eines Gleichstrommotors erklärt wird.
Hier wird die Signalausgabe zur Regelung des Motors als auch das Auslesen der Istposition über den DAQ-Assi realisiert. Da ja die Messkarte IK220 nicht von NI ist, funzt bei mir ja nicht der Gleichnamige. Ich füge stattdessen mein VI ein.

Nun meine Frage(n):
Was muss ich dem DAQ-Assistenten vorgeben, um die Regelung via PWM zu ermöglichen?
Da ich in der Regelungstechnik einigermaßen fit bin weiß ich, dass der ja eigentlich einen
Winkel bekommt, und eine Ankerspannung als Ausgangssignal bekommen muss (PWM).
Ich weiß nämlich nicht, welchen Port ich am Eingang des DAQ "anzapfen" muss.
Geschweige denn weiß ich nicht, ob alle Datentypen und -leitungen passen, da ich nicht wirklich Ahnung vom Control Design Tool habe. Ich dachte anhand des Beispiels des Drehzahlreglers eigentlich an eine recht simple Umsetzung...

Die notwendigen Programme ("Striche Umrechnen-VI" konnte ich nicht mehr hochladen) sowie die Library habe ich angehängt. Das Hauptprogramm
soll die Winkelregelung sein.

Ich hoffe, ihr könnt mir helfen..Besten Dank im Voraus!
(Ein fast verzweifelter Studi Wink

mfG
Martin


Angehängte Datei(en)
11.0 .vi  Karten_einlesen_test_neu.vi (Größe: 11,45 KB / Downloads: 144)

11.0 .vi  Winkelregelung.vi (Größe: 259,01 KB / Downloads: 144)

11.0 .vi  IK220_Werte_einlesen.vi (Größe: 11,99 KB / Downloads: 127)

11.0 .vi  IK220_initialisieren.vi (Größe: 19,36 KB / Downloads: 134)

0.0 .llb  IK220.llb (Größe: 1,29 MB / Downloads: 196)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.12.2013, 10:04
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Winkelregelung mit DAQ und IK220
Hallo Martin,

Zitat:Die notwendigen Programme ("Striche Umrechnen-VI" konnte ich nicht mehr hochladen)
Das es sowas wie ZIP-Archive gibt, weißt du aber schon?

Zitat:mich gerade einmal mit ein paar Grundfunktionen vertraut gemacht habe.
   
Und wer bringt den Leuten immer bei, man müsse Arrays mit Cluster-Funktionen auslesen?
Ich denke, bei den Tutorials, die NI anbietet, wird sowas nicht gezeigt...

Zitat:Ich weiß nämlich nicht, welchen Port ich am Eingang des DAQ "anzapfen" muss.
Die Karte bietet PWM-Ausgänge. Die sind auch im Manual zur Karte beschrieben. Welche Pins du für den von dir gewählten PWM-Ausgang du anschließen musst, verrät dir entweder das Manual oder auch MAX (Measurement Explorer), wenn du dort einen entsprechenden DAQ-Task konfigurierst.

Zitat:genau genommen mit Hilfe des Contol Design Tools.
Ist das Pflicht für diese Aufgabe? Oder reicht da das PID-Toolkit nicht auch aus?
Mit einem einfachen P-Regler wie in deinem VI wirst du wohl nicht weit kommen...

Zitat:anhand des Beispiels des Drehzahlreglers eigentlich an eine recht simple Umsetzung...
Drehzahl- und Positionsregelung sind schon zwei unterschiedliche Dinge...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2013, 10:17
Beitrag #3

Absoluter_Beginner Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Dec 2013

2011
-
DE



RE: Winkelregelung mit DAQ und IK220
Hallo,

erstmal vielen Dank für die schnelle Antwort.
Ich muss noch ergänzend sagen, dass ich das Programm zum Initialisieren
und Auslesen der Karte von einem anderen Studi übernommen habe und ich nicht
wirklich mit den Feinheiten - wie von dir im Screenshot angegeben - vertraut bin.
Meine eigentliche Aufgabe war die Simulation des Systems mit Matlab/Simulink und
die komplette Konstruktion des Antriebs inkl. Getriebe. Mit LabView war ich bis dato null vertraut, aber mein Prof will nun mal, dass die Ansteuerung und Regelung mit LabView realisiert wird...

Meine Frage bezüglich den Anschlüssen der Karte bezog sich eigentlich nicht auf
die Hardware, sondern auf die Software. Ich weiß nicht, was im DAQ-Block als Eingang
eingeben muss.
Wie ich am Connector-Block verkabeln muss, ist klar. Die Ausgabe des PWM-Signals funktioniert einwandfrei.

Bezüglich des Control Design Tools: Ist das PID-Toolkit einfacher zu handeln und wie darf
ich das verstehen? Ich bin wie gesagt über google auf die Umsetzung der Drehzahlregelung
gestoßen und dachte eigentlich nur ein paar Dinge daran ändern zu müssen...
Da ich ja durch die Integration von Winkelgeschwindigkeit auf Drehwinkel schon einen Integrator habe, reicht ein P-Regler vollkommen aus. Da es um Positionieraufgaben geht brauche ich auch keine Dynamik.
Das Positions- und Drehzahlregelung zwei paar Schuhe sind, ist mir schon klar Smile

Nun das fehlende VI im Anhang. An WIN-RAR und co. hatte ich gerade nicht gedacht, sorry!

viele Grüße
Martin[/quote]


Angehängte Datei(en)
11.0 .vi  Striche_umrechnen_G-M-S.vi (Größe: 9,46 KB / Downloads: 119)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2013, 10:36 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2013 10:42 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Winkelregelung mit DAQ und IK220
Hallo Martin,

zum letzten VI eine Anregung:
   
(Es gibt eine Funktion, die auf ">=0" prüft. Und es gibt eine Abs()-Funktion...)

Zitat:Ich weiß nicht, was im DAQ-Block als Eingang eingeben muss.
Wenn ich einen PWM ausgeben wollte, erwartete LabVIEW bisher immer einen Wert zwischen 0 und 1. Ich habe aber immer die "normalen" DAQmx-Funktionen genutzt und nicht das ExpressVI...

Zitat:Ist das PID-Toolkit einfacher zu handeln und wie darf ich das verstehen?
Das PID-Toolkit bietet dir fertige PID-Regler als VIs an. Du musst dann nur die passenden PID-Parameter bereitstellen...
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2013, 10:48
Beitrag #5

Absoluter_Beginner Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Dec 2013

2011
-
DE



RE: Winkelregelung mit DAQ und IK220
Hallo nochmals,

ich besitze - wie leider feststellen musste - zwar das Control Design Packet, nicht
aber das von dir erwähnte PID-Toolkit Sad

Zudem kenne ich mich mit DAQmx überhaupt nicht aus. Gibt es den keine Möglichkeit
die Regelung mit dem "normalen" DAQ-Assistent zu realisieren?

Ich verzweifle langsam echt an dieser Geschichte. Wenn man das Signal mit dem MAX und
DAQ "einzeln" ausgeben kann, muss es durch iwie möglich sein dies in einem Regelkreis
umzusetzen..
Wenn nicht muss ich wohl versuchen, es mit DAQmx zu probieren. Da gibt es dann hoffentlich
auch Beispiele, wie man ein PWM-Signal rausjagen kann.

so long
Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2013, 10:54 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2013 11:00 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Winkelregelung mit DAQ und IK220
Hallo Martin,

Zitat:Da gibt es dann hoffentlich auch Beispiele, wie man ein PWM-Signal rausjagen kann.
Jede Menge Beispiele: LabVIEW-Hilfe-Menü -> "Beispiele suchen..."

Zitat:Wenn man das Signal mit dem MAX und DAQ "einzeln" ausgeben kann, muss es durch iwie möglich sein dies in einem Regelkreis umzusetzen..
Das wird man auch mit dem DAQ-Assi umsetzen können. Aber: der DAQ-Assi ist weder für Geschwindigkeit noch für "Anschaulichkeit" optimiert!
- Der Assi enthält viel Overhead, den du in der Regelung nicht brauchst.
- Der Assi arbeitet gern mit Datentypen, die dir (hier) nichts bringen (DDT, Waveforms).
Deshalb mein Vorschlag: nutze die "normalen" DAQmx-Funktionen. In der Regelschleife hast du dann üblicherweise ein DAQmxWrite, um den neuen Stellwert auszugeben und evtl. ein DAQmxRead, um den neuen Istwert zu lesen. Fertig...

P.S.: Kannst du die unnötigen Zeilenumbrüche weglassen? Smile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2013, 11:03
Beitrag #7

Absoluter_Beginner Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Dec 2013

2011
-
DE



RE: Winkelregelung mit DAQ und IK220
Ok,
leider erhalte ich folgende Meldung beim Öffnen der gesuchten und gefundenen Beispiele:
   
Irgendwie ist da der Wurm drin.
Nochmal kurz zum Schema.
Der aufgebaute Regelkreis im Hauptprogramm ist soweit in Ordnung?
(Das Auslesen des Winkels mit dem SubVi...) Statt dem DAQ muss ich nun
"nur" ein DAQmx verwenden, richtig?


Grüssle
Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2013, 11:17 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2013 11:29 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Winkelregelung mit DAQ und IK220
Hallo Martin,

zum Fehler: entweder den WebService nicht deaktivieren, evtl. mal die Firewall-Einstellungen überprüfen oder LabVIEW reparieren/neu installieren. Oder selbst unter Programme/NatInst/LabVIEW2011/examples suchen...

Zitat:Der aufgebaute Regelkreis im Hauptprogramm ist soweit in Ordnung?
Da ich das CDS-Toolkit nicht habe, kann ich es nicht vollständig beurteilen. Es sah aber ziemlich nach einem P-Regler aus...


Nachtrag:
Es gab gerade erst einen Thread, in dem es um eine "einfache" Regelschleife ging. Dort wurde der uralte, aber immer wieder schöne SimplePID verwendet: hier...
Vom Prinzip her hast du den gleichen Aufbau: Istwert -> PID -> Stellwert!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2013, 13:44
Beitrag #9

Absoluter_Beginner Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Dec 2013

2011
-
DE



RE: Winkelregelung mit DAQ und IK220
Ich habe jetzt mal ein fertiges Programm zur Erzeugung eines PWM-Signals gefunden.
Das Signal wird erfolgreich von meiner NI-Karte an den Motor abgegeben. So weit - so gut
Kann ich dieses Programm jetzt irgendwie als VI für den Regelkreis nutzen?
Zum Auslosen der Istposition brauche ich ja das VI "Karten_auslesen_test_neu" oder
geht das auch mittels DAQmx?

schönen Nachmittag
Martin


Angehängte Datei(en)
8.0 .vi  Complete PWM.vi (Größe: 33 KB / Downloads: 123)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2013, 15:33
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Winkelregelung mit DAQ und IK220
Hallo Martin,

Zitat:Kann ich dieses Programm jetzt irgendwie als VI für den Regelkreis nutzen?
Nicht direkt, aber du kannst dich daran orientieren! Warum kannst du das VI nicht direkt nehmen? Weil es aufgrund seiner eigenen Schleife auf eine Benutzereingabe wartet und damit den DATAFLOW behindern würde...

Du musst:
- den Teil vor der Schleife (Task-Initialisierung) auch vor deiner Regelschleife platzieren
- den Teil in der Schleife (im Grunde nur das DAQmxWrite) in deiner Regelschleife nutzen
- den Teil nach der Schleife (ClearTask) auch nach deiner Regelschleife platzieren

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: