LabVIEWForum.de
Vier unabhängige Kanäle Signalausgabe "on the Fly" änderbar - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Vier unabhängige Kanäle Signalausgabe "on the Fly" änderbar (/Thread-Vier-unabhaengige-Kanaele-Signalausgabe-on-the-Fly-aenderbar)



Vier unabhängige Kanäle Signalausgabe "on the Fly" änderbar - Klacknack - 07.01.2015 14:31

Hallo zusammen,

ich arbeite momentan an einem Messplatz, den ich mithilfe meines LabView Programms steuere. Dafür benötige ich vier Spannungsausgabekanäle. Diese sollen dabei noch unterschiedliche Signale ausgeben können und diese Signale sollen "on-the-fly" veränderbar sein, d.h. im laufenden Prozess wird die Änderung sofort übernommen. Vier Kanäle auszugeben mit unterschiedlichen Signalen funktioniert einwandfrei, jedoch nicht on-the-fly.

Ich habe den Ausschnitt meines Programmes als Screenshot angehängt, indem die Signale generiert werden. Außen wird der task kreiiert und nachdem das Programm gestartet wird (if-schleife) läuft die Signalausgabe in einer Dauerschleife (while-schleife). Hier soll das Signal veränderbar sein. Dieses Programm funktioniert leider nicht entsprechend den Anforderungen. Wähle ich die Einstellung "Do not allow Regeneration" für die Spannungsausgabe, so gibt er das Signal nur ein einziges Mal aus. Wähle ich "Allow Regeneration", so wird das Signal mehrfach ausgegeben bevor nur ein Gleichspannungssignal ausgegeben wird. Ich habe mich schon Stunden daran gequält, schaffe es aber nicht alle Anforderungen gemeinsam zu lösen.

Ich würde mich freuen wenn jemand eine Idee hat das Problem zu lösen oder jemand bereits dieses oder ein ähnliches Problem gelöst hat und mir da helfen kann? Ich habe zuerst den Ausschnitt als Screenshots eingefügt. Ich habe das VI am Messplatz, falls es dringend notwendig ist, kann ich es morgen nachliefern.

Ich arbeite mit der Messkarte NI PCI6353

Gruß und Danke!
[attachment=51728]
[attachment=51729]


RE: Vier unabhängige Kanäle Signalausgabe "on the Fly" änderbar - GerdW - 07.01.2015 14:57

Hallo Klacknack,

- grobe RaceConditions aufgrund des Missbrauchs lokaler Variablen: Verwende mehr Draht!
- grobe RubeGoldbergs: deine InitArray/ReplaceArraySubset gehören jeweils durch ein BuildArray ersetzt!
- grobe RubeGoldbergs: Konstante Operationen gehören vor eine Schleife, nicht in sie hinein!

Zitat:Ich habe zuerst den Ausschnitt als Screenshots eingefügt
Das VI wäre schöner…


RE: Vier unabhängige Kanäle Signalausgabe "on the Fly" änderbar - Lucki - 08.01.2015 11:19

Da ist noch etwas. Für den Funktionsgenerator sollte für jede Waveform ein eigenes Ikon verwendet werden (Also eine Casestruktur, jeder Case enthält ein eigenes Funktionsgenerator-VI) . Das Vi kann sich nämlich nicht die Statusdaten für mehrere Waveformen merken, es benutzt jeweils die Daten des vorhergehenden Aufrufs.
Gruß Ludwig


RE: Vier unabhängige Kanäle Signalausgabe "on the Fly" änderbar - Klacknack - 08.01.2015 14:29

Hallo,

Danke für die Antworten. Ich habe das VI angehängt, habe aber eure Anmerkungen noch nicht korrigiert. Vermutlich komme ich das nächste Mal erst am Montag an den Messplatz und werde es dann einbringen.

@GerdW ich verstehe nicht was du mit folgender Aussage meinst. Welche konstante Operation?

Zitat:- grobe RubeGoldbergs: Konstante Operationen gehören vor eine Schleife, nicht in sie hinein!

Die anderen beiden Fehler korrigier ich aus, aber ich befürchte, dass es dadurch noch nicht funktionieren wird.

@Lucki Das mit den 4 Waveform-VIs leuchtet mir ein. Ich werde mich mal bemühen dies am Montag umzusetzen.

Ich werde dann nochmal berichten ob es weitergeholfen hat. In dem VI sind glaube ich meine Sub-VIs nicht mit angehängt. Diese sind aber unnötig zur Signalausgabe. Sie beinhalten lediglich ein paar analytische Rechnung um die Messung auszuwerten.


RE: Vier unabhängige Kanäle Signalausgabe "on the Fly" änderbar - GerdW - 08.01.2015 14:47

Hallo Klack,

Profil_ergaenzen
Du scheinst ja nicht mehr mit LV2011 zu arbeiten…

- Wieso muss man in lokale Variablen schreiben, wenn direkt daneben derselbe Wert schon in das Terminal geschrieben wird?
- Wieso muss man so viele lokale Variablen verwenden? Hast du keinen Draht mehr vorrätig?
- Das mit dem BuildArray hast du noch nicht verstanden:
[attachment=51744]
- Das bei diesem riesigen VI überhaupt etwas funktioniert… Hast du da selbst noch einen Überblick?
- Nie das Label von Anzeigen/Controls löschen!

Tut mir leid, aber das VI passt nicht auf meinen Laptop-Bildschirm. Da suche ich nicht weiter…

Bitte teste dein Fehlerverhalten mit einem kleinen, auf das nötigste abgespeckten Test-VI!