LabVIEWForum.de
zwei Kanäle auf der gleichen Karte unterschiedlich abtasten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: zwei Kanäle auf der gleichen Karte unterschiedlich abtasten (/Thread-zwei-Kanaele-auf-der-gleichen-Karte-unterschiedlich-abtasten)



zwei Kanäle auf der gleichen Karte unterschiedlich abtasten - ita - 29.05.2014 17:16

Hi,

ich möchte mit LabVIEW 2012SP1 5 Analoge Signale (0-10V) aufnehmen (Kanäle: ai0,ai1,ai3,ai4,ai5). Dabei sollen die Signale ai1,ai3,ai4,ai5 einfach in eine TDMS-Datei geschrieben werden mit einer vorgegebenen Aufnahmerate (continuous samples).
Der Kanal ai0 soll aber nur "on demand" abgerufen werden, da ich dieses Signal zum Regeln eines Ventilators noch mit Regelfaktoren multiplizieren muss.

Mit dem DAQ-Assistent geht das schon mal gar nicht weil man da für den Aquisition Mode für eine Karte (NI9201 im Chassis NI9174) nur entweder "on demand" oder "continous" auswählen kann was dann für alle Kanäle gilt. Außerdem kann man pro Hardwarekarte nur einen DAQ Assistenten parallel laufen lassen.

Anschließend habe ich die Möglichkeit hier/aus dem Anhang umgesetzt aber auch da kann ich nicht einfach einen Wert aus dem "fließenden Signalstrom" entnehmen.
[attachment=49870]

Das muss doch irgendwie möglich sein von einer Karte mehrere Signale aufzunehmen und aus einem Signal davon per Trigger den aktuellsten Datenwert auszulesen?!

Viele Grüße


RE: zwei Kanäle auf der gleichen Karte unterschiedlich abtasten - GerdW - 29.05.2014 17:50

Hallo ita,

Zitat:Das muss doch irgendwie möglich sein von einer Karte mehrere Signale aufzunehmen und aus einem Signal davon per Trigger den aktuellsten Datenwert auszulesen?!
Mir ist nicht klar, warum du ein ExpressVI benötigst, um aus einem Messwert-Array einen Wert auszulesen. Ich würde einfach IndexArray verwenden…
Tipp: wenn man sich mehrere Werte pro Kanal liefern lässt, ist der letzte Wert des Kanals der aktuellste! Big Grin


RE: zwei Kanäle auf der gleichen Karte unterschiedlich abtasten - Lucki - 30.05.2014 08:52

Die Karte hat nur einen einzigen ADC, davor befindet sich ein MUX, der auf die einzelnen Kanäle switcht. Da kann man nicht kontinuierliche und Einzelwerterfassung gleichzeitig machen. Man kann aber z.B bei Kanal 0 die Messwerte genaus so kontinuierlich erfassen wie die der anderen kanäle, und dann, statt die Messwerte weiter zu verarbeiten, nur einzelne Werte herauspicken. Das hast du zwar versucht, aber dabei ist es geblieben. Das kommt vor. Aber was soll man dazu sagen, wenn Du daraus den Schluß ziehst, dass das überhaupt nicht geht?
Noch etwas anderes: Nomalerweise liest man die Werte nicht einzeln es dem Datenpuffer, sondern, bei einer Datenrate von 1000 Hz, mindesten 100 Werte pro Schleifendurchlauf. Das hat aber den Nachteil, dass der Einzwelwert, den Du für eine Regelung verwenden willst, nicht sofort zu Verfügung steht, wenn Du ihn brauchst. Unter diesen Umstanden ist es so wie Du es gemacht hast am besten. Da werden dann bei jedem Schleifendruchlauf nur die Werte gelesen, die gerade im Puffer sind, also z.B ein Wert oder einige wenige. Der letzte ist, wie Gerd schon sagte, der aktuellste.
Aber, und jetzt kommst: der Graph akkumuliert nicht, er wird bei jedem Schleifenduchlauf gelöscht und zeigt nur die 1,2, oder 3 Werte an, die zuletzt im Puffer waren. Am einfachsten wäre es hier, den Signalverlaufsgraphen durch ein Signalverlaufsdiagramm zu ersetzen.


RE: zwei Kanäle auf der gleichen Karte unterschiedlich abtasten - ita - 30.05.2014 09:19

Hi,

danke für eure Antworten. Ich hab gestern Abend die Idee von GerdW umgesetzt und bisher funktioniert alles wie ich mir das vorgestellt habe.
Hier die vereinfachte Fassung:
[attachment=49871]

Ich kam nicht darauf dass die Werte in einem Array gespeichert werden.
@Lucki: das mit dem Graph hab ich auch festgestellt und hab den zu einem Chart gemacht.


RE: zwei Kanäle auf der gleichen Karte unterschiedlich abtasten - jg - 30.05.2014 10:49

Deine vereinfachte Version ist immer noch ganz schön kompliziert.
Besser so:
[attachment=49872]
Gruß, Jens


RE: zwei Kanäle auf der gleichen Karte unterschiedlich abtasten - Lucki - 30.05.2014 14:04

Ergänzende Bemerkung zur "vereinfachten Fassung" und der Verbesserung von Jens:
Der Datentyp "Signal" dient zum Datenaustausch zwischen Express-VIs, er wurde extra dafür geschaffen. Das ist eine wunderschöne Sache, wenn man für die Datenverarbeitung nur Exprss-VIs benutzt. Bei Verwendung anderer VIs wird man in der Regel den Datentyp "Signal" in Arrays oder Signaverläufe konvertieren (müssen). Wenn man aber überheupt keine Express-VIs im Programm hat, so gibt es niemals einen vernünftigen Grund, den Typ "Signal" zu verwenden.