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 

Steuerung eines Servoventils



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!

04.07.2011, 08:48
Beitrag #1

MatthiasM Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Jun 2011

10
2011
DE



Steuerung eines Servoventils
Hallo,

ich plane im Rahmen meiner Masterarbeit einen hydraulischen Prüfstand mit doppeltwirkendem Hydraulikzylinder und MOOG Servoventil mit integrierter Elektronik. Nun bin ich dabei, mit Labview die Regelung zu realisieren. Der Zylinder soll eine kraftgeregelte Schwingung erzeugen. Ich will fünf Prüfsequenzen (Kraft, Kraftamplitude, Frequenz und Dauer) einstellen können, die nacheinander ablaufen. Die Istwerterfassung erfolgt über zwei Drucksensoren (0..10 V) an den Anschlüssen des Zylinders, der Sollwert wird über Labview vorgegeben und als +-10 V Signal an das Ventil überreicht. Die Signalwandlung erfolgt mittels DT9812-10V. Das Ziel ist, die Druckdifferenz zu bilden (und auf die Kraft umzurechnen) und mit dem Solltwert abzugleichen.

Ich hatte bis vor 6 Wochen nie etwas mit Labview zu tun und dementsprechend ist auch mein Wissensstand. Ich habe zig Übungen gemacht und komme eigentlich auch schon gut klar, aber im Moment stellt sich mein Vorhaben als nicht ganz so einfach dar. Ich erzähle vielleicht erst einmal, wie meine Vorgehensweise war, auch wenn das jetzt viel Text wird:

Meine Idee war, zuerst die Benutzeroberfläche mit der Sollwerterstellung zu programmieren. Ich habe also zuerst die Bedienoberfläche so zusammengestellt, wie ich sie gerne hätte und habe mich dann an die Verbindungen gemacht. Funktioniert auch alles so, wie ich es mit vorstelle. Ich gebe also meine Werte vor und kriege als Ergebnis meine Sollkurve (durch die Einheit Newton noch nicht ausgabefähig).

Mit diesem Kurvenverlauf wollte ich mich jetzt der zweiten Aufgabe witmen, nämlich der Istwerterfassung, der Regelung und der Regelkurvenausgabe. Und da beginnen die Problemchen. Ich habe also zwei analoge Eingänge, die ich mit 1 kHz abtasten möchte, und einen analogen Ausgang. Erst erfolgt die Differenzbildung der Eingänge, dann die Regelung mit der Sollkurve im PID-Regler, und die Regelkurve soll dann zum Ausgang. Ich habe mir mit den Beispiel VI's von Datatranslation jetzt halbwegs etwas zurechtgebaut, aber leider auf Basis von Halbwissen. Zur vereinfachten Erklärung habe ich mal das VI und (aus Grund der bestimmt fehlenden SubVIs) einen Screenshot angehängt. Für die Anbindung hab ich LV-Link genutzt, meine Labview Version ist 2010 Student.

Mein Problem ist jetzt auch, dass die Komponenten erst zu einem späteren Zeitpunkt angeschafft werden, so dass ich nicht ausprobieren kann, ob das VI überhaupt funktioniert bzw. wo es hapert. Gibt es also eine Möglichkeit, einfach einen taskin.net zu simulieren? Eine einfache Eingangsimulation mit DAQ9.5 habe ich schon hingekriegt, aber ich würde gerne den endgültigen Aufbau testen.

Ich muss sagen, den rechtenTeil des VIs habe ich zwar zusammengestellt, aber noch nicht richtig verstanden. Z.B. warum habe ich beim AOUT einen Ausgang ins Programm? Wo gehe ich denn mit meiner Regelkurve hin, dass sie am analogen Ausgang anliegt?

Funktioniert die Zeitverzögerung beim Kurvenverlauf überhaupt so, wie ich es mir gedacht habe? Oder ist das Unsinn?

Um alle Fragen und Probleme hier im Forum zu diskutieren ist die Aufgabe wahrscheinlich zu umfangreich, aber über Hilfestellung wäre ich echt dankbar. Vielleicht hätte ich auch alles ganz anders aufbauen sollen. Leider haben wir in der Firma niemanden, der je mit Labview gearbeitet hat und an der HS ist der Experte im Moment beschäftigt.

Ich liste zur vereinfachten Gliederung meine Fragen noch einmal auf:

1. Ist der grundsätzliche Aufbau überhaupt schlüssig?
2. Ist es sinnvoll, die Variablen durch Queues zu ersetzen?
3. Wieso habe ich beim Aout einen Eingang in das Programm?
4. Wozu brauche ich die OLStart VIs? Verstehe den Hintergrund noch nicht ganz.
5. Was hat es mit den OLCloseTask rechts auf sich? Verstehe ich auch noch nicht.
6. Kann ich mein Taskin.net simulieren?
7. Wenn ich eine Sinusspannung als Eingang habe, muss der Reader auf MultipleSample oder Single Sample? Wie kann ich bei Multiple dann die Differenz von Ain0 und Ain1 bilden?
.
.
.
unzählige weitere, aber ich fange erstmal klein an.

Schonmal besten Dank

Matthias


Angehängte Datei(en) Thumbnail(s)
   

8.6 .vi  Teststand.vi (Größe: 148,79 KB / Downloads: 263)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.07.2011, 10:43 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2011 10:44 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Steuerung eines Servoventils
Hallo Matthias,

Zitat:1. Ist der grundsätzliche Aufbau überhaupt schlüssig?
Nun ja: Ein Sequenz mit 5 Frames, die alle genau das gleiche tun? Wäre da nicht eine Schleife effektiver?
Deine AI/AO-Tasks laufen asynchron zum UI, auch hier könnte die Steuerung des Startzeitpunktes sinnvoll sein.

Zitat:2. Ist es sinnvoll, die Variablen durch Queues zu ersetzen?
Welche "Variablen"?

Zitat:3. Wieso habe ich beim Aout einen Eingang in das Programm?
Der AO benötigt einen Wert, den er dann ausgeben soll. Diesen Anschluß hast du beim AO-Block...

Zitat:4. Wozu brauche ich die OLStart VIs? Verstehe den Hintergrund noch nicht ganz.
Du defnierst einen Task ("Aufgabe"). Dieser Task sollte auch irgendwo gestartet werden...

Zitat:5. Was hat es mit den OLCloseTask rechts auf sich? Verstehe ich auch noch nicht.
Der Task sollte auch kontrolliert beendet werden...

Zitat:6. Kann ich mein Taskin.net simulieren?
Ich sehe nirgends ein "Taskin.net"...

Zitat:7. Wenn ich eine Sinusspannung als Eingang habe, muss der Reader auf MultipleSample oder Single Sample
Multi/Single ist von deiner Lesefrequenz abhängig. Wenn dir softwaregetaktete 100Hz ausreichen, geht auch Single. Sonst eben MultiSample.

Zitat:Wie kann ich bei Multiple dann die Differenz von Ain0 und Ain1 bilden?
Genau gleich mit der Subtract-Funktion...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2011, 11:11 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2011 11:12 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Steuerung eines Servoventils
Auch für starr ablaufende Sequenzen ist eine State-machine meist besser. Du kannst dann z.B Pausieren, Messung beenden, das Vi stoppen, auch zwischen den Sequenzen.
Habe mal ein kleines Gerüst erstellt, wie es sein könnte.

Einer der Nachteile von Nicht-NI-Hardware ist, daß Du im Forum kaum Hilfe erwarten kannst, wenn nicht zufällig jemand Erfahrungen damit hat und die Treiber installiert hat. Da Du noch nichts gekauft hast, solltes Du das auch mal unter diesem Gesichtspunkt kalkulieren.


Angehängte Datei(en)
2010 .vi  Teststand 1.vi (Größe: 15,41 KB / Downloads: 273)

0 .ctl  Element 1.ctl (Größe: 4,05 KB / Downloads: 244)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.07.2011, 08:57
Beitrag #4

MatthiasM Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Jun 2011

10
2011
DE



RE: Steuerung eines Servoventils
Hallo,

ich habe jetzt die Sequenzen mit einer State-Machine aufgebaut, funktioniert auch alles einwandfrei.

Dann fange ich mal mit den Fragepunkten an:
1.S.o.
Meinst du damit die Synchronisation zwischen Sollwerterstellung und Ai/Ao Anbindung? Wie könnte man das denn realisieren? auch einfach einen Startzeitpunkt festlegen?

2. Damit meine ich z.B. die Variable für die Kurven Chart in den einzelnen Sequenzen.

6. War ungeschickt ausgedrückt. Die Sub-VIs von DT basieren ja auf OpenLayer.net Technoligie. Der Eingang wird dort als Taskin.net bezeichnet und ich habe gedacht, dass man hier irgenwie einen Kurvenverlauf vorgeben kann.

7. Wenn ich auf Multiple umstelle, funktioniert die Subtract Funktion nicht mehr. Ich kriege die Meldung, dass ein Poly-VI nicht mit einem Subtract verbunden werden kann. ( Abtastfrequenz sollen 1 kHz sein).

Ich habe mir jetzt überlegt, das Programm noch einmal mit einem NI-USB 6211 aufzubauen. Beim 6008 ist mir der Analogausgang zu langsam und das 6211 Modul ist doppelt so teuer wie das von DataTranslation. Aber wenn ich das Programm mit NIDaq aufbaue, kann ich wenigstens den Grundlegenden Aufbau des Programms verifizieren, also wenigstens schonmal für meine Arbeit zeigen, dass es funktioniert wie geplant.

Gruß

Matthias


Angehängte Datei(en) Thumbnail(s)
   

8.6 .vi  Teststand.vi (Größe: 68,2 KB / Downloads: 247)

8.6 .vi  simple_PID[1].vi (Größe: 11,26 KB / Downloads: 227)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.07.2011, 16:19
Beitrag #5

MatthiasM Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Jun 2011

10
2011
DE



RE: Steuerung eines Servoventils
Hallo,

ich habe das VI noch einmal überarbeitet. Mir erscheint der Aufbau jetzt relativ schlüssig, gibt sicherlich noch viel Verbesserungsvorschläge oder Fehler. Wäre echt für jede Anmerkung dankbar.

Gruß

Matthias Müller


Angehängte Datei(en) Thumbnail(s)
   

8.6 .vi  Teststand.vi (Größe: 61,01 KB / Downloads: 240)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: