LabVIEWForum.de
Problem bei Signalausgabe - Druckversion

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



Problem bei Signalausgabe - waterman - 07.01.2011 15:02

Hallo,

habe eine Funktionsgenerator zusammengestellt mit dem ich eine Periode ausgeben möchte. Wenn ich mehrere Perioden ausgebe muss zwischen diesen eine Pause von mindestens einer Sekunde sein. Stelle ich diese Pause ein wird nur der Anfang der Peiode dargestellt dann beginnt auch schon die entsprechende Pause. Das VI dient zur Steuerung von Dauerschaltungen einer Schwingprüfanlage.

Danke im Voraus

[attachment=31562] LabView 2010


Problem bei Signalausgabe - Richard - 07.01.2011 23:12

Hallo Waterman,

wenn ich dein VI richtig verstehe machst du folgendes:

-Du initialisierst die Bedienelemente über Eigenschaftsknoten. (Entweder solltest du das über Lokale Variablen, oder noch besser gleich über den Standardwert machen.)
-Du erstellst den Signalverlauf mit Hilfe vieler Variablen, obwohl du genausogut vier Drähte ziehen könntest.
-Anschließend gibst du den Signalverlauf in einer While-Schleife aus, in der sich eine einmal durchlaufenen While-Schleife befindet.

Nun zu den Fragen.
Warum initialisierst du in einer Eventstruktur, die nicht genutzt wird?
Warum verbindest du keine Drähte?
Wesalb benutzt du eine While-Schleife mit True-Konstante?

Zu den Ratschlägen:
Benutz eine State-Machine.
Initialisiere den Ausgabe Task ausserhalb der Schleifen.
Wenn du die Anzahl der Iterationen vorher weißt, nimm die For-Schleife.
Ganzzahlen sind Integer, keine Double, das ist wie mit Kanonen auf Spatzen Schießen.

Gruß Richard


Problem bei Signalausgabe - waterman - 10.01.2011 10:29

Hallo Richard,

vielen Dank für deine Antwort.

Zu den Fragen:

1. Die Eventsruktur während der Initialisierung ist unnötig --> habe diese entfernt
2. Ich erstelle damit die nötigen Bedienelemente und rufe deren Werte über lokale Variablen auf ... also muss ich doch nicht verdrahten oder?
3. An dieser Stelle liegt mein eigentliches Problem. Die While-Schliefe soll nur einmal durchlaufen und eine Periode soll ausgegeben werden. Danach folgt die Pause und anschließen wird wieder die entsprechende Periode ausgegeben.
Ob mit oder ohne Schleife, es wird immer nur ein Teil der erzeugten Periode ausgegeben und dann beginnt schon die Pause. Somit erhalte ich nicht das gewünschte Signal.

Nehme mich erstmal deinen Ratschlägen an und bastel das VI entsprechend um.

Danke


Problem bei Signalausgabe - Richard - 10.01.2011 19:29

Die Verdrahtung dient zum einen einer Übersichtlichkeit des Codes, zum anderen werden bei der momentanen Konfiguration die Werte der Bedienelemente erst in der nächsten Iteration der Schleife aus den Lokalen Variablen ausgelesen.

Da die Eventstruktur nur ausgeführt wird, wenn die While-schleife nicht läuft ist das Frontpanel entweder die meiste Zeit gesperrt, oder die Eventqueue läuft über.

Daher bietet sich eine Producer-Consumer Struktur in zusammenspiel mit einer Statemachine an.

Gruß Richard


Problem bei Signalausgabe - waterman - 18.01.2011 14:29

vielen Dank Richard,

hab dass Program entsprechend umgeschrieben und mich dabei gleich mal mit der Producer-Consumer Struktur... alles klaapt jetzt ...