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 

Hilfe bzgl. kontinuierlicher Datenerfassung gefragt



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!

03.09.2020, 14:38
Beitrag #1

Philipp841 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: Mar 2018

LV 2015 SP1 32bit
2016
DE

28359
Deutschland
Hilfe bzgl. kontinuierlicher Datenerfassung gefragt
Hallo wertes Forum,

mein Anliegen ist das beigefügte (sehr große VI) dahingehend zu modifizieren, dass die Datenerfassung (bzw. das Bilden von Mittelwerten) mit konstanter (oder zumindest nahezu konstanter) Rate erfolgt.

Konkret geht es um die Aufgabe acht analoge Kanäle mit einer zeitlichen Auflösung von 50Hz abzubilden. Dabei wird jeder Datenpunkt aus 200 Samples gemittelt. Die AI-Rate ist mit 10kHz/Kanal festgelegt bzw. darauf begrenzt um Crosstalk und Ghosting zu vermeiden.

Der Zeitbedarf für die (m.E.) relevanten Prozesse habe ich in dem (temporären) blauen Diagramm auf der rechten Seite dargestellt. Wie es scheint, varriert der Zeitbedarf für einen Schleifendurchlauf der Main-while-loop sehr stark. Dies führt (u.A.) dazu, dass die Datenaufzeichnung nicht kontinuierlich erfolgt, sondern quasi in Paketform (siehe Screenshot). Besonders wird dies deutlich, wenn man auf die Registerkarte "Live" wechselt. (Zumindest verhält es sich bei mir, mit simulieter USB-6216 Karte, so).

Dieses Verhalten möchte ich gerne eliminieren. Mein Wunsch ist, bei der Vorgabe von 50Hz, 8x50 (gemittelte) Datenpunkte/Sekunde mit einem gleichbleibenden Abstand von 20ms zu erhalten. (Sollte eine gewisse Variabilität zwingend notwendig sein würde ich gerne die Anzahl der Samples die für einen Datenpunkt gemittelt werden vorübergehend reduzieren. So, dass einige Datenpunkte z.B. dann nur aus 180 (anstatt 200) Samples berechnet werden.

Leider fehlt es mir an einer praktikablen Idee.Construction

Wie immer, für jeden konstruktiven Beitrag dankbar!

Grüße,
Philipp

File im Anhang ist geschrieben mit LV2019.

** Für diejenigen, die die Software kennen und sich schon mehrfach darüber ausgelassen haben, wie unübersichtlich doch alles ist und dass man doch alles neu machen müsse: Ich habe nach bestem Wissen aufgeräumt. Groß ist die Main jedoch immer noch. Wer sich so daran stört, möge meinen Post bitte ignorieren. danke **


Angehängte Datei(en) Thumbnail(s)
   

0.0 .zip  20200902_DSDL6_Universal.zip (Größe: 3,08 MB / Downloads: 190)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.09.2020, 08:08 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2020 08:57 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Hilfe bzgl. kontinuierlicher Datenerfassung gefragt
Hallo Philipp,

Zitat:Wie immer, für jeden konstruktiven Beitrag dankbar!
VI aufräumen.
Lokale Variablen vermeiden. (Du scheinst es darauf anzulegen, wirklich alles mit lokalen Variablen statt ein paar Drähten zu erledigen - schon mal was von THINK DATAFLOW gehört?)
Bessere Datenverwaltung implementieren.
Rube-Goldbergs vermeiden.
Vernünftige Programmstruktur implementieren.

Zitat:Leider fehlt es mir an einer praktikablen Idee.
Wie wäre es mit einer Producer-Consumer-Struktur?
Dein DAQ-Producer wäre dann ausschließlich damit beschäftigt, deine 8 AI-Kanäle mit 10kHz Samplerate und 200 Samples pro Abfrage einzulesen…

Zitat:Für diejenigen, die die Software kennen und sich schon mehrfach darüber ausgelassen haben, wie unübersichtlich doch alles ist und dass man doch alles neu machen müsse: Ich habe nach bestem Wissen aufgeräumt.
Da ich wohl zu dieser Gruppe gehöre, muss ich leider diesen Kommentar abgeben: Wenn das dein "bestes Wissen" ist, dann solltest du die Links in meiner Signatur durchgehen…

Beispiel aus deiner Main-Loop:
   
Ein Rube-Goldberg in der Case-Struktur. (Man könnte auch einfach den Vergleich zu ">0" ändern…)
Ein Rube-Goldberg nach der Case-Struktur. (Man kann IndexArray vergrößern, um mehrere Outputs zu bekommen. Und die Index-Konstanten benötigt man auch nicht, wenn man von 0 beginnend Elemente haben will.)
Und die "DO1"-Werte werden natürlich per lokaler Variable an eine andere Schleife weitergereicht - Race-Conditions lassen grüßen!
Diese Dinge ziehen sich durch den kompletten Code, da hast du noch wirklich viel zu tun…

Nachtrag:
Es ist jetzt schon fast ein Jahr her, seit ich dir diese Ratschläge gegeben habe. Irgendwie kann ich da leider kaum Fortschritte erkennen…

Noch ein Beispiel:
   
Eines deiner subVIs, nur
- ohne Sequenzrahmen
- ohne lokale Variablen
- ohne While-Loop, dank FeedbackNode
- weniger Funktionen, da man nicht zweimal auf die gleiche Bedingung prüfen muss und deshalb nur eine (äußere) Case-Struktur benötigt
- nach Cleanup mit möglichst geraden Drähten…
Wie oben geschrieben: diese Probleme finden sich in allen deinen VIs…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.09.2020, 12:30
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Hilfe bzgl. kontinuierlicher Datenerfassung gefragt
(03.09.2020 14:38 )Philipp841 schrieb:  ** Für diejenigen, die die Software kennen und sich schon mehrfach darüber ausgelassen haben, wie unübersichtlich doch alles ist und dass man doch alles neu machen müsse: Ich habe nach bestem Wissen aufgeräumt. Groß ist die Main jedoch immer noch. Wer sich so daran stört, möge meinen Post bitte ignorieren. danke **

Nachdem ich zu dieser Gruppe gehöre, und Gerd schon so viel moniert (was ich auch schon mal moniert habe), sollte ich mir deinen Upload also lieber nicht anschauen...

Gerds Vorschlag mit dem DAQ-Service kann ich aus vollem Herzen zustimmen!

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
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Stabile Datenqualität - Expertenwissen gefragt Philipp841 2 3.451 10.09.2018 10:58
Letzter Beitrag: Philipp841
  Datenerfassung cDAQ + NI9203 keine synchrone Datenerfassung dieseldunst 5 6.555 24.06.2016 14:49
Letzter Beitrag: jg
  Kontinuierlicher analog Ausgang mit Änderung des Signals in der Programmausführung lumaxo 5 8.062 06.05.2014 10:53
Letzter Beitrag: Lucki
  Oft gefragt, keine Lösung - geeignete Optokoppler für DO an USB-6008 Nukular 9 10.893 12.06.2013 12:31
Letzter Beitrag: Lucki
  Mittelwert bei kontinuierlicher DAQ Eggord 7 10.844 24.11.2011 13:47
Letzter Beitrag: lavoh
  Suche eine Hilfe über die Datenerfassung joxbee 0 3.220 18.03.2011 14:09
Letzter Beitrag: joxbee

Gehe zu: