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 

Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten



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!

25.11.2010, 22:41
Beitrag #1

JackBlack Offline
LVF-Grünschnabel
*


Beiträge: 33
Registriert seit: Sep 2010

Studenten Version 8.5 und LV2009
2010
de_en

74xxx
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Hallo zusammen

Wir sind in unserem Projekt auf ein Problem gestoßen. Ich möchte es kurz schildern.

Wir wollen mit dem DAQ-Assistenten Analogwerte mit einer Sample-Rate von 25kS pro Kanal einlesen (16 Analogkanäle).
Dazu verwenden wir das USB-6212 von Ni.

Unser Vi ist so erarbeitet das zu jedem Zeitpunkt ein Analogsignal (Spannung) vorhanden sein muss.
Diese Spannung dient dazu einen Bewertung des Prüflinges (Taster->Übergangswiderstand) zu treffen.
Die Bewertungskriterien sind von Eingestellten Sollwert und einer einstellbaren Zeit abhänging (Messzeit).

Nun bekommen wir vom Ausgang "Daten" des DAQ-Assistenten unsere Werte geliefert.
Da Problem ist nun, das bei der Wandlung der Werte (1D Array??) in einen für uns benötigten Skalar nicht so
funktioniert wie wir uns vorgestellt haben.

Es wird nur der letzte Wert weitergegeben der in das Sample geschieben wurde. Die restlichen Werte werden
verworfen und können von uns nicht mehr bewertet werden.

Meine Frage ist nun: Können wir alle Analogwerte sichern (nicht in Form einer Datei, sondern nur so lange
bis der erfasste Wert bewertet wurde, und danach verfällt dieser wieder) und einem nach den andern Abarbeiten
lassen??

Hierzu sind auch gundsätzliche Fragen zum Thema Samples aufgekommen. Welchen Sinn macht es Werte in ein Sample
zu schreiben, aber nur der letzte geschrieben verwendet werden kann??

Wir sind über jede Hilfe dankbar die Licht ins Dunkle bringt.

MfG JackBlack

Rechtschreibfehler sind Eigentum des Verfassers
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.11.2010, 23:58
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Ohne VI-Upload eurerseits fällt eine konkrete Antwort schwer.

Hauptproblem dürfte der DAQ-Assi mit seinem unnötig komplizierten DDT-Datenformat sein.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.11.2010, 09:10
Beitrag #3

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Ladet mal Euer VI hoch und beschreibt bitte nochmal etwas genauer, was für einen Datentyp ihr habt und was für einen Datentyp ihr möchtet. Glas1. . . . Glas2

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.11.2010, 17:04 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2010 18:19 von Y-P.)
Beitrag #4

JackBlack Offline
LVF-Grünschnabel
*


Beiträge: 33
Registriert seit: Sep 2010

Studenten Version 8.5 und LV2009
2010
de_en

74xxx
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Hier is das Vi mit allen dazugehörigen SubVis

Mfg JackBlack


Sonstige .rar  2010_11_25_Projektarbeit_1_Taster.rar (Größe: 296,18 KB / Downloads: 572)

Lv09_img2

Rechtschreibfehler sind Eigentum des Verfassers
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.11.2010, 18:21
Beitrag #5

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Ihr wandelt Eure Daten ja auch in einen Doublewert, bzw. habt am SubVI-Eingang ein Double-Control.
Da solltet ihr schon ein Array verwenden.
Und was soll das:
    Unsure

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.11.2010, 18:34
Beitrag #6

JackBlack Offline
LVF-Grünschnabel
*


Beiträge: 33
Registriert seit: Sep 2010

Studenten Version 8.5 und LV2009
2010
de_en

74xxx
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Hallo

Erstmal Danke für die schnelle Antwort.

Unsere Hauptfrage ist, wenn wir alle unsere Analogwert als Array verarbeiten würden, müssten wir unser ganze Schaltung
dan umschreiben? Da unsere komplette Schaltung auf die verarbeitung einzelner Werte ausgelegt sein sollte.
Können wir jeden Wert der im Array steht mit einem Sollwert vergleichen?? (Bsp kann man eine >= Operation mit einem Array
durchführen so das jeder Wert berücksichtigt wird).

Oder liegen wir mit unseren Denkansatz zur Datenverarbeitung über den Daq-Assistenten grundsätzlich daneben??

Aus diesem Grund auch die wandlung das Analogwertes in einen Skalar, um diesen zu verarbeiten.

Eine weiter Frage wie läuft die Aufzeichnung der Analogwerte ab?? Wird immer ein Sample erzeugt und verarbeitet,
Und beim nächsten Sample das alte Überschrieben?? (Ein Sample nach dem andern verarbeitet)

MfG JackBlack

Rechtschreibfehler sind Eigentum des Verfassers
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.11.2010, 22:59 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2010 23:03 von Lucki.)
Beitrag #7

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
' schrieb:Meine Frage ist nun: Können wir alle Analogwerte sichern (nicht in Form einer Datei, sondern nur so lange
bis der erfasste Wert bewertet wurde, und danach verfällt dieser wieder) und einem nach den andern Abarbeiten
lassen??
Genau das leistet doch die normale gepufferte Datenerfassung völlig kostenlos ohne jegliche.
Programmierarbeit.
Man sampled kontinuierlich mit einer konstanten Datenrate, also z.B. 25kHz.
Die Daten kommen dann erst mal in einen FIFO-Buffer - das ist Standard.
Ob Du diese Daten dann mit DAQmx Read in einer Schleife als Datensätze (Arrays) von je 10 oder 100 Stück oder aber als Einzelwerte ausliest (und jeden sofort verarbeitest), ist Deine Sache.
Der Werte "verfallen" durch Auslesen aus dem Buiffer - dann sind sie nämlich nicht mehr drin.

Ich bin aber nicht auf Express-VIs geeicht. Ob Deine Express-Vis in dieser Hinsicht korrigierbar sind, kann ich nicht sagen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2010, 16:25
Beitrag #8

JackBlack Offline
LVF-Grünschnabel
*


Beiträge: 33
Registriert seit: Sep 2010

Studenten Version 8.5 und LV2009
2010
de_en

74xxx
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Hallo zusammen


Zitat:Genau das leistet doch die normale gepufferte Datenerfassung völlig kostenlos ohne jegliche.
Programmierarbeit.
Man sampled kontinuierlich mit einer konstanten Datenrate, also z.B. 25kHz.
Die Daten kommen dann erst mal in einen FIFO-Buffer - das ist Standard.
Ob Du diese Daten dann mit DAQmx Read in einer Schleife als Datensätze (Arrays) von je 10 oder 100 Stück oder aber als Einzelwerte ausliest (und jeden sofort verarbeitest), ist Deine Sache.
Der Werte "verfallen" durch Auslesen aus dem Buiffer - dann sind sie nämlich nicht mehr drin.

Ich bin aber nicht auf Express-VIs geeicht. Ob Deine Express-Vis in dieser Hinsicht korrigierbar sind, kann ich nicht sagen


Erst mal danke für die schnelle Antwort. Wir haben das schon mit dem DAQ Assistenten versucht. Mit einer kontinuierlichen Aufzeichenung und 1 Sample, nur bei einer Abtastrate von 25khz bekommen wir immer diesen fehler:


Fehlercode 200279

Wenn wir die Rate runtersetzten läuft wie es soll, da wir keinen Überlauf des Puffers bekommen. Dies können wir aber nicht machen da die Tastrate für unsere Anwendung zu gering ist.

Das Express-Vi das wir verwenden ist unter anderm aus dem DAQmx Read aufgebaut. Daher denken wir nicht das sich das Problem damit beheben lässt wenn wir das Express vi "nachbauen"

DAQ Assisten im Anhang mit Einzel Vis aufgebaut

Ich versuche an dieser Stelle das Problem nochmal an Hand einiger Beispielwerte zu erklären:

Unser problem ist das wir am Eingang unsers Vis zum vergleich einen einzelenen Wert brauchen. Da mit der kontinuierlichen
Aufzeichnung nicht jeder Wert des Samples sonder nur der zu letzte aufgezeichete Wert ausgewertet wird.

Samplegröße: 10
Gesampelte Analogwerte: 3.2,3.19,2.7,1.87,0.94,0.36,0.334,1.3,2.7,3.2

Nun wollen wir alle Werte die im Sample stehen am Eingang prüfen, in unserm Fall wir aber nur der letzte wert also 3.2 ausgewertet
und unser Programm erkennt nicht das der Taster betätigt wurde. Erst wenn wir jeden Wert einzelt vergleichen haben, kann das Programm
verstellen ob der Taster betätigt (wenn der anstehende Wert kleiner ist als der eingestellte Wert von 2,7)
worden ist und die dementsprächende Auswertung (nach einem weitern Vergleich ob dieser Wert zu dieser Zeit in der Toleranz liegt) beginnen.

Daher ist unser Frage wie können wir das machen??

MfG JackBlack


Angehängte Datei(en) Thumbnail(s)
   

Rechtschreibfehler sind Eigentum des Verfassers
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2010, 22:28
Beitrag #9

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
' schrieb:Mit einer kontinuierlichen Aufzeichenung und 1 Sample, nur bei einer Abtastrate von 25khz bekommen wir immer diesen fehler:
Fehlercode 200279

Wenn wir die Rate runtersetzten läuft wie es soll, da wir keinen Überlauf des Puffers bekommen. Dies können wir aber nicht machen da die Tastrate für unsere Anwendung zu gering ist.
Windows ist kein Echtzeitbetriebssystem. Das macht so viel nebenher, das glaubst du gar nicht.
Eine Einzelwerterfassung mit 25 kHz würde bedeuten, dass das Betriebssystem zuverlässig alle 0,04 ms die Auswertung vornimmt. Das kannst du vergessen.

Der DAQmx-Treiber ist genau aus dem Grund so ausgelegt, dass du dir mehrere Messwerte auf einmal abholen kannst. Lies also nicht einen einzelnen Wert aus, sondern z.B. immer 5000 auf einmal. Diese 5000 Werte erhältst du z.B. als Double-Array.
Verbindest du das mit einer For-Schleife (Auto-Indizierung aktiv lassen), dann kannst du die 5000 Werte in der For-Schleife durchlaufen und auswerten. Im Endeffekt betrachtest du dann auch die Einzelwerte.

Die For-Schleife hat für die 5000 Werte somit 200 ms Zeit und das funktioniert unter Windows. Es wird dann nicht zu einem Pufferüberlauf kommen.

Viel schneller als 200 ms kannst du vermutlich eh nicht auf Änderungen reagieren, da du - wie gesagt - hier kein Echtzeitbetriebssystem, hast. Dort würde das anders aussehen.
Also: Lies die Werte blockweise aus und verarbeite diese in einer Schleife, in der du auf jeden einzelnen Wert zugreifen kannst. Das ist auch kontinuierlich, aber im genannten Beispiel im 200- und nicht im 0,04-Millisekunden-Takt.

Diese Einstellung funktioniert meines Wissens auch mit dem DAQ-Assistemt. Dort kannst du unten irgendwo einstellen, wie viele Werte auf einmal ausgelesen werden sollen.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.12.2010, 21:38
Beitrag #10

JackBlack Offline
LVF-Grünschnabel
*


Beiträge: 33
Registriert seit: Sep 2010

Studenten Version 8.5 und LV2009
2010
de_en

74xxx
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Hallo zusammen

Erstmal fettes Danke für die sehr schnelle Antwort


Bei der Einzelwertverabreitung von Arrays wird er Wert innerhalb der Schleife richtig angezeigt, außerhalb der Schleife
wird nur nach jedem Durchlauf von einem Schleifenzyklus ein Wert angezeigt und nicht alle.

Wie bekommen wir die ausgelesenen Einzelwert die innerhalb der Schleife sind nach außen?

Wenn wir einen Tunnel verwenden müssen wir die zu zählenden Schleifen auf den Wert Samples stellen (in unserem Beispiel 5000) wenn wir eine
Auto-Indizierung verwenden bekommen wir eine Datentyp Unverträglichkeit
siehe Bild im Anhang

Woran liegt das?

MfG JackBlack


Angehängte Datei(en) Thumbnail(s)
   

Rechtschreibfehler sind Eigentum des Verfassers
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CANopen Daten erfassen Titus85 2 4.024 24.04.2021 06:44
Letzter Beitrag: Titus85
  Delay für kontinuierliche Datenerfassung zwingend? Philipp841 9 6.635 12.07.2018 10:27
Letzter Beitrag: GerdW
  Kontinuierliche Datenerfassung mit USB 6003 Tobolf 18 12.291 02.02.2017 16:54
Letzter Beitrag: GerdW
  kontinuierliche Datenerfassung in Array speichern Jonas_02 2 4.871 04.09.2015 16:17
Letzter Beitrag: Trinitatis
  Kontinuierliche Messung Ringpuffer dbuckl 9 8.092 07.04.2015 09:19
Letzter Beitrag: dbuckl
  DI-DO einlesen, verarbeiten, ausgeben Nico1992 8 7.607 31.03.2015 14:48
Letzter Beitrag: GerdW

Gehe zu: