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 

Datenübermittlung in Echtzeit - Fehler in der Datenübertragung



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!

08.01.2018, 16:59 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2018 17:09 von LabView-2018.)
Beitrag #1

LabView-2018 Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jan 2018

2012
-
kA



Datenübermittlung in Echtzeit - Fehler in der Datenübertragung
Hallo und einen schönen Nachmittag zusammen,

folgender Stand - kompakt zusammengefasst -bzw. vereinfachter Zusammenhang:

Ein Pulsgenerator liefert ein 40Hz Signal. (Simulation eines gepulsten Lasers)
Eine Kamera wird auf dieses Signal getriggert und schafft es von Seiten der Software (aktueller Stand) aus, bei jedem 10ten Bild auszulösen.

Ich benötige die Leistungswerte der Pulse, bei welchem ein Bild aufgezeichnet wird, um später eine Leistungs-Normierung in den aufgenommen Bilder durchführen zu können.
Dies wird gelöst, indem neben dem Pulssignal das Fire-Signal aufgezeichnet wird, somit können die Pulse dem Bild zugeordnet werden. Vorausgesetzt es werden alle Daten erfasst.

Jetzt zum folgendem Problem, die Datenübertragung zeigt eine lückenhafte Informationsfluss auf. Siehe Bild im Anhang. Zuvor wurde das Kamerasignal mit Pulssignal auf einem Oszi geprüft, bei welchem keine Lücken auffallen - daher liegt das Problem im Ablauf der Software.

Folgendermaßen funktioniert das Programm:
1. Der User bestätigt dem Programm das bereit machen einer Datenaufzeichnung. (Start Aqu.) so lange dieser Button aktiv ist läuft die äußerste While-Schleife. Diese Schleife wird in 10ms abgefragt.
2. Hat der User alle Voreinstellungen Samples, Rate etc. vorgenommen wird der Button Start Image gedrückt. Dieser bleibt entsprechend der Anzahl gewünschter aufzunehmender Bilder - true.
Dieser Schritt wird in einer untergeordneten While-Schleife durchgeführt. Diese läuft auch so lange bis die äußere false wird.
3. Siehe Anhang Code-Teil. Diese ist wie im Punkt zwei auch eine untergeordnete While-Schleife der 1. hier wird die Datenerfassung durchgeführt. Solange bis Start-Image true ist, sollen Sampel-Packete
aneinander gehangen werden. Hier passiert ein Fehler in der Übertragung welche im zweiten angehangenem Bild zu sehen ist. Es fehlen Pulse, bzw. diese sind abgeschnitten.

Leider komme ich nicht darauf woran es liegen könnte. Sample, rate, Timer... Variationen wurden getestet, waren aber ergebens. Ich hoffe es ist klar zur Geltung gekommen, woran es scheitert. Über einen Rat würde ich mich sehr freuen,

Gruß LabView-2018

P.S. das Vi ist nur abgespeckt dargestellt um den Informationsgehalt klein zu halten und zu fokussieren. Die angezeigten Fehler sind nicht in der Hauptdatei vorhanden, sondern nur wegen des Löschens unwichtiger Details entstanden.


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.01.2018, 20:18
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 15.364
Registriert seit: May 2009

09SP1, 11SP1, 17
1995
DE_EN

10×××
Deutschland
RE: Datenübermittlung in Echtzeit - Fehler in der Datenübertragung
Hallo LV2018,

Zitat:3. Siehe Anhang Code-Teil. Diese ist wie im Punkt zwei auch eine untergeordnete While-Schleife der 1. hier wird die Datenerfassung durchgeführt. Solange bis Start-Image true ist, sollen Sampel-Packete aneinander gehangen werden. Hier passiert ein Fehler in der Übertragung welche im zweiten angehangenem Bild zu sehen ist. Es fehlen Pulse, bzw. diese sind abgeschnitten.
Na ja…

Wie wäre es für den Anfang, einfach mal ein Autocleanup durchlaufen zu lassen? Dann würde man wenigstens sehen, wo die Drähte langgehen, die bei dir mehrfach "irgendwo" und "unkoordiniert" verlaufen. Wie soll LabVIEW da die Daten fließen lassen? Big Grin
Außerdem sind da 2 Fehler im Bild markiert, wie soll das VI da überhaupt laufen?
Warum hängst du die Datenpakete nicht wirklich an, sondern baust 2D-Arrays, die du dann erst wieder in 1D-Arrays umformst? (Rechtsklick auf BuildArray und den Concat-Mode wählen!)
Ist sichergestellt, dass "Start image" immer TRUE bleibt, solange die Datenerfassung läuft?
Kommt es evtl. zu Fehlern bei der Datenerfassung? Immerhin machst du keine Fehlerbehandlung in der Schleife…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.01.2018, 08:10
Beitrag #3

Freddy Offline
LVF-Freak
****


Beiträge: 529
Registriert seit: Aug 2008

2017, NXG 2.0 BETA
1996
DE

76275
Deutschland
RE: Datenübermittlung in Echtzeit - Fehler in der Datenübertragung
Hallo LV2018,
Zitat:2. Hat der User alle Voreinstellungen Samples, Rate etc. vorgenommen wird der Button Start Image gedrückt. Dieser bleibt entsprechend der Anzahl gewünschter aufzunehmender Bilder - true.
Dieser Schritt wird in einer untergeordneten While-Schleife durchgeführt. Diese läuft auch so lange bis die äußere false wird.
Eine äußere While schleife kann erst enden, wenn die innere beendet ist. Da ich hier keine äußerer Schleife sehe, stimmt die Aussage nicht wirklich. Die innere Schleife wird durch Start Aqu gestoppt.

Zitat: Siehe Anhang Code-Teil. Diese ist wie im Punkt zwei auch eine untergeordnete While-Schleife der 1. hier wird die Datenerfassung durchgeführt. Solange bis Start-Image true ist, sollen Sampel-Packete
aneinander gehangen werden. Hier passiert ein Fehler in der Übertragung welche im zweiten angehangenem Bild zu sehen ist. Es fehlen Pulse, bzw. diese sind abgeschnitten.
Wenn die eigentliche Aufnahme im False - Teil liegt, solltest Du auch diesen darstellen.Confused

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.01.2018, 08:41
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.533
Registriert seit: Feb 2005

11, 14, 15, 17
-
DE

97437
Deutschland
RE: Datenübermittlung in Echtzeit - Fehler in der Datenübertragung
Und dann wäre es auch noch sehr gut, wenn du den Error-Ausgang des Sample-VIs auswerten würdest. Da steht möglicherweise "Daten verpasst" drin. Wegen und für die Überprüfung des Errorclusters ist es ratsam, den Errorcluster-Tunnel auf der While-Schleife durch ein Schieberegister zu ersetzen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.01.2018, 10:32 (Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2018 10:47 von LabView-2018.)
Beitrag #5

LabView-2018 Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jan 2018

2012
-
kA



RE: Datenübermittlung in Echtzeit - Fehler in der Datenübertragung
Hallo GerdW,

(08.01.2018 20:18 )GerdW schrieb:  [quote] Warum hängst du die Datenpakete nicht wirklich an, sondern baust 2D-Arrays, die du dann erst wieder in 1D-Arrays umformst? (Rechtsklick auf BuildArray und den Concat-Mode wählen!)
Ist sichergestellt, dass "Start image" immer TRUE bleibt, solange die Datenerfassung läuft?

vielen Dank für deine Denkanstöße. Als erstes habe ich sichergestellt und dies per Probe überprüft, das Start Image wirklich immer true ist. Ist der Fall.
Allerdings war der Tipp mit dem Array der richtige Ansatz. Anscheinend lag ein Fehler beim zusammensetzten der Arrays vor. Gelöst habe ich das Problem über die Funktion Feedback Node.
Jetzt werden die Werte ohne Fehler aufgezeichnet.

Betreff des Problems einer Fehlerbehandlung: im inneren Case, in welchem die Messwerte aufgezeichnet werden, habe ich momentan noch keine Fehlerbehandlung.

Vielen Dank,
Gruß LV2018


Hallo Freddy,

(09.01.2018 08:10 )Freddy schrieb:  [quote]
Eine äußere While schleife kann erst enden, wenn die innere beendet ist. Da ich hier keine äußerer Schleife sehe, stimmt die Aussage nicht wirklich. Die innere Schleife wird durch Start Aqu gestoppt.

Das ist korrekt, auf dem Bild war diese nicht vorhanden, die äußerste while wird false, wenn der User einen Stop Button drückt. Das Programm ist so groß und mit weiteren unter VI-Verknüpft und hätte den Rahmen gesprengt. Verzeihung wegen dem gekürzten und unsortiertem VI-Screenshoot.

Gruß,
LV2018




(09.01.2018 08:41 )IchSelbst schrieb:  Und dann wäre es auch noch sehr gut, wenn du den Error-Ausgang des Sample-VIs auswerten würdest. Da steht möglicherweise "Daten verpasst" drin. Wegen und für die Überprüfung des Errorclusters ist es ratsam, den Errorcluster-Tunnel auf der While-Schleife durch ein Schieberegister zu ersetzen.

Hallo IchSelbst,
Vielen Dank- für den Tipp.
Da ihr alle die Fehlerbehandlung angesprochen habt, möchte ich diese nun angehen.
Zum einem habe ich mir überlegt, man sollte in die innere Case-Anweisung - False einfügen, dass der Array Inhalt geleert wird, wenn Start Image - false wird (heißt wenn die Aufnahmen beendet sind, sollen die Array bereit sein für eine neue Aufnahme und nicht die alten Werte überschreiben, denn das könnte eine Fehlerquelle werden). Dafür habe ich allerdings noch keinen Ansatz. Ich bin mir nicht sicher, ob es ausreicht eine Konstante auf Null zu setzten?
Des weiteren wäre ein Aufruf- Daten verpasst eine sehr gute Idee, doch wann weiß ich das wirklich Daten verpasst werden?

Viele Grüße,
LV2018
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.01.2018, 17:40 (Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2018 17:46 von LabView-2018.)
Beitrag #6

LabView-2018 Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jan 2018

2012
-
kA



RE: Datenübermittlung in Echtzeit - Fehler in der Datenübertragung

Akzeptierte Lösung

(09.01.2018 10:32 )LabView-2018 schrieb:  Hallo GerdW,


Zitat: Warum hängst du die Datenpakete nicht wirklich an, sondern baust 2D-Arrays, die du dann erst wieder in 1D-Arrays umformst? (Rechtsklick auf BuildArray und den Concat-Mode wählen!)
Ist sichergestellt, dass "Start image" immer TRUE bleibt, solange die Datenerfassung läuft?

vielen Dank für deine Denkanstöße. Als erstes habe ich sichergestellt und dies per Probe überprüft, das Start Image wirklich immer true ist. Ist der Fall.
Allerdings war der Tipp mit dem Array der richtige Ansatz. Anscheinend lag ein Fehler beim zusammensetzten der Arrays vor. Gelöst habe ich das Problem über die Funktion Feedback Node.
Jetzt werden die Werte ohne Fehler aufgezeichnet.




und ..... Das zurücksetzten der Arrays auf Null wurde über eine Case-Anweisung und einem Register-Shift gelöst, indem gefragt wird bin ich bereits bei einem neuen Start der Messung durch die Feedback Node, falls nicht setzte alles auf Null - falls schon, dann laufe mit den bereits aufgenommen Werte weiter durch die Loop.


LV2018
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  15 Digitale Output Signale in echtzeit erfassen galilio 8 1.264 04.05.2017 14:38
Letzter Beitrag: GerdW
  Kraftverlauf in Echtzeit abri 3 1.758 01.03.2016 10:05
Letzter Beitrag: GerdW
  Echtzeit graphische Darstellung der Daten und Speicherung auf Kommando nusser 44 11.853 25.02.2014 11:31
Letzter Beitrag: nusser
  Signal in "echtzeit" in eine lokale Variable schreiben. Tobs 25 9.884 21.04.2011 18:58
Letzter Beitrag: Tobs
  Messwerte in Spalten statt Zeilen mit Echtzeit Labormichel 2 2.757 29.06.2010 15:10
Letzter Beitrag: GerdW
  Datenerfassung / Datenübertragung olmethn 1 1.558 16.08.2008 08:48
Letzter Beitrag: jg

Gehe zu: