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 

DAQ-Anzeige in seperatem VI und Speicherung in TDMS Format



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!

18.11.2015, 14:51
Beitrag #5

m.werle Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: Sep 2015

2010
2015
EN


Deutschland
RE: DAQ-Anzeige in seperatem VI und Speicherung in TDMS Format
Einzeln durch DAQmx ausgelesene Datenpakete zu einem Array (Datenstream) zusammenfassen:
Zitat:Entweder wird diese Arbeit vom Sample-VI gemacht. Dann wird das komplette Array per Melder (nicht per Queue) verschickt.

Mit Sample-VI ist das VI gemeint, das die Daten durch DAQmx ausliest nehme ich an. Also nutze ich Notifier nur, wenn ich einzelne Datenpakete statt einer langen Schlange aus Datenpaketen übermitteln möchte. (Queue hat ja beliebig viele Elemente, beim Notifier wird das eine überschrieben, wenn es vorher noch nicht ausgelesen wurde.) An sicht, macht mein Notifier aber doch das selbe wie eine Queue, oder?

Zitat:Oder diese Arbeit wird vom Anzeige-VI erledigt. Dann werden die einzelnen, gelesenen DAQ-Daten per Queue (nicht per Melder) verschickt. Dieses Verfahren muss man anwenden, wenn die Zyklusdauer groß oder gar "unendlich" ist.

Hier habe ich die Möglichkeit viele Datenpakete vom Sample-VI hintereinander in die Queue einzureihen und in dem Anzeige-VI entsprechend darauf zurück zu greifen. Richtig? Von welcher Zyklusdauer redest du hier?

Ich habe einmal eine Updaterate meiner DAQmx, wie viele Datenpakete mit jeweils so und so vielen Samples ich erhalte. Danach richtet sich die Zyklusdauer der Whileschleife im Sample-VI.
Und ich habe eine wesentlich kleinere Updaterate meiner Anzeige. (Vermutlich ungefähr 4Hz, wie du vorgeschlagen hast.)

Ich gehe jetzt einfach mal davon aus, dass ich das richtig verstanden habe. Ich kann eine Queue benutzen, mein Sample-VI speichert immer wieder Werte in die Queue und mein AnzeigeVI ruft ab und zu diese angehäuften Datenpakete auf einmal ab und erneuert die Anzeige.
_____________________________
FGV
  • Ich entwerfe ein FGV welches die Queue mit mehreren Datenpaketen für die Anzeige bereit hält. Diese Datenpakete wurden im Sample-VI um den Analogen Output (mein Steuersignal für den Generator) erweitert.
  • Cluster mit folgenden Parametern und Stats: Updaterate des Anzeige-VIs sowie des Sample-VIs, Samplerate (Samples/Update für DAQmx), neuster berechneter AVG/RMS/Peak-Wert, Zeitfenster dt für AVG/RMS/Peak, aktueller Wert des AO-Signals)

Aufgaben des FGVs
[list]
[*] Queue Initialisieren
[*] Queue Referenz ausgeben
[*] Cluster einlesen
[*] Cluster ausgeben

Ist es sinnvoll die Funktionen des FGVs "Cluster ausgeben" und "Queue Ref ausgeben" zu einer Output-Funktion zu bündeln?

Aufbau des Sample-VIs
Außerhalb der Whileschleife
1.) Meine Queue in meinem FGV initialisieren,
2.) Parameter aus dem Cluster aus dem FGV auslesen und den DAQmx-Task starten.
3.) Mit den ausgelesenen Parametern auch die Cluster myAVG, myRMS und myPeak initialisieren

Innerhalb der Whileschleife
mit meiner Updaterate_DAQ Datenpakete über das DAQmx von meinem Gerät auslesen. Aus diesem Datenstream lese ich die notwendigen Werte für die RMS/AVG/Peak-Werte aus, außerdem den aktuellen AO-Signal-Wert. Die berechneten RMS/AVG/Peak-Werte werden vom FGV wieder eingelesen und der ausgelesene AO-Signal-Wert wird an den Datenstream aus meinem DAQmx angehängt und anschließend in die Queue gespeichert.

Die berechneten AVG/Peak/RMS-Werte werden in einer Eventstructure bei einem Valuechange mit ihrem Grenzwert verglichen, um zu testen, ob ein Alarm ausgelsöt werden muss und die Maschine gestoppt.

Ist es überhaupt möglich die Cluster myAVG, etc. dynamisch bei Aufruf des Sample-VIs zu erstellen, entsprechend der eingestellten Sampleanzahl/Updaterate/Größe des Zeitfensters. Ein ein dimensionales Array mit N Elementen zu initialisieren geht ja. Aber wenn ich verschiedene Daten zu einem Cluster zusammenfüge (Bundle), dann brauche ich doch ein Prototyp Cluster, dass bereits die richtige Form hat... mh.

Anmerkungen zu meinem Analogen Outputsignal
Das AO-Signal wird in einem Regelkreis (RK) berechnet. Es gibt verschiedene VIs mit unterschiedlichen RK, je nach Betriebszustand des Generators. Der RK entnimmt aus dem FGV die neusten Messwerte und berechnet das neue Analoge Ausgangssignal, speichert dieses im FGV ab und sendet es per DAQmx an meine Maschine.

Speicherung der Messwerte
Dies kann ich einfach im Anzeige-VI erledigen, da die Zykluszeit hier entsprechend hoch ist, und ich hier sowieso sämtliche Messdaten aus der Queue auslese, um diese anzuzeigen. Richtig?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: DAQ-Anzeige in seperatem VI und Speicherung in TDMS Format - m.werle - 18.11.2015 14:51

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Signal-Speicherung mit definierter Messdauer gifo 27 16.269 25.11.2015 14:03
Letzter Beitrag: gifo
  Echtzeit graphische Darstellung der Daten und Speicherung auf Kommando nusser 44 28.649 25.02.2014 11:31
Letzter Beitrag: nusser
  Simultane Datenerfassung +Speicherung mit Trigger NI PXI 5102 Sg. Neuling 2 4.343 19.04.2013 14:13
Letzter Beitrag: Sg. Neuling
  Speicherung eines Triggersignales mit TDMS-Dateimonitor pwgt90 0 3.172 29.03.2012 08:56
Letzter Beitrag: pwgt90
  Messwerterfassung und Speicherung bronko 13 11.965 24.03.2011 12:38
Letzter Beitrag: GerdW
  Genaue Zeiterfassung und -speicherung zählergestützter Messungen homunculus87 2 8.823 14.02.2011 22:26
Letzter Beitrag: homunculus87

Gehe zu: