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 

"Ringbuffer overflow" bei Synchronisation von analog und digital Signal



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!

12.01.2014, 12:44 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2014 12:51 von MNLF.)
Beitrag #1

MNLF Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jan 2014

2013
2013
DE_EN


Deutschland
"Ringbuffer overflow" bei Synchronisation von analog und digital Signal
Hallo LabVIEWForum,

seit kurzem beschäftige ich mich mit Labview (was anfänglich auch relativ gut funktioniert hat), doch nun bin ich an einem Punkt wo ich nicht wirklich weiter komme.

Kurz zu meinem Vorhaben:

Ich möchte mittels eines Laser-Sensors der Firma Micro-Epsilon, Typ optoNCDT 1402 die Veränderung eines Abstandes messen. Der Laser-Sensor ist über einen USB to RS-422 CONVERTER mit dem PC verbunden. Die Implementierung des Sensors in Labview erfolgt mittels eines von Micro-Epsilon zur Verfügung gestellten VI's.
Gleichzeitig möchte ich mit dem Thermoelement-Eingangsmodul NI 9213, welches ich in dem Chassis cDAQ-9171 betreibe eine Temperatur messen.
Bei der Messungen ist es für mich wichtig das Abstands- und Temperaturmessung synchron laufen. Realisiert habe ich dies mittels einer "Zeitgesteuerten Schleife". Einen Sceenshot vom VI habe ich angehängt (Bild: VI).

Bis jetzt genügte es den Abstand mit 50 S/s und die Temperatur mit 5 S/s zu messen. Jetzt würde ich aber gerne den Abstand mit 1000 S/s und die Temperatur mit 100 S/s messen, was auch direkt zu meinem Problem führt. Während der Messung bekomme ich die Fehlermeldung: "Ringbuffer overflow". Ich habe einen Sceenshot hierzu angehängt (Bild: Fehlermeldung).

Woran liegt dies?
Ist es nicht richtig dies mit einer "Zeitgesteuerten Schleife" zu realisieren?

Habe hier im Forum bei ähnlichen Problemen gelesen, dass so etwas mittels Occurences oder Rendezvous gelöst werden kann.
Mittels Occurences und Rendezvous habe ich es ausprobiert, jedoch ohne Erfolg.

Des Weiteren habe ich des häufigeren gelesen, dass es unpraktisch ist, bzw. das es zu Problemen führen kann, so etwas wie den von mir benutzten DAQ-Assistent zu verwenden. Kann dies bei mir ein Problem sein?

Weiß nicht wie ich weiter vorgehen soll...wäre super dankbar wenn Ihr mir weiterhelfen könnt.


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

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
Der Fehler kommt ja aus der Kommunikation zu deinem Laser-Sensor. Ist es überhaupt möglich, über die RS485 hier 1000 Werte/s zu übertragen? Hast du das schon alleine getestet? Was sagt das Handbuch dazu?

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
13.01.2014, 10:54 (Dieser Beitrag wurde zuletzt bearbeitet: 13.01.2014 10:55 von MNLF.)
Beitrag #3

MNLF Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jan 2014

2013
2013
DE_EN


Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
Die Übertragung von 1000 S/s ist möglich, das funktioniert auch. Sobald ich versuche Abstands- und Temperaturmessung zu synchronisieren tritt dieser Fehler auf. Darum denke ich, das Problem steckt in der Synchronisation, da mache ich irgendetwas falsch.
Wenn ich den Laser-Sensor und die Temperaturmessung jeweils in einer While-Schleife laufen lasse (siehe Bild) funktioniert es einwandfrei.

Jetzt ist nur das Problem wie bekomme ich die beiden Messungen synchron?

An dieser Stelle war mein Ansatz eine "Zeitgesteuerte Schleife" zu verwenden, was aber zu dem Problem des Ringbuffer overflows führt.

Gibt es andere Möglichkeiten zu synchronisieren?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2014, 11:06
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
Die Screenshots vom Blockdiagramm helfen leider nicht sonderlich bei der Fehlersuche.

Untersuche mal:
1) Durchlaufzeiten der Schleifen, wenn du sie parallel programmierst. (s. http://www.labviewforum.de/Thread-Schlei...#pid161256 )
2) Wie viele Element enthält das "Micro-Epsilon"-Array?
3) Welche Einstellungen hast du im DAQ-Assi vorgenommen?

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
13.01.2014, 14:36 (Dieser Beitrag wurde zuletzt bearbeitet: 13.01.2014 14:37 von MNLF.)
Beitrag #5

MNLF Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jan 2014

2013
2013
DE_EN


Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
Erstmal danke für deine Mühe.

Habe das VI mal angehängt.
Hoffe das es geöffnet werden kann, da es auf eine Bibliothek zugreift.
Desweiteren habe ich einen Screenshot vom DAQ-Assistent angehängt.

Bei der Untersuchung der Durchlaufzeiten der Schleifen sehe ich, wenn ich es richtig gemacht habe, dass diese stark schwanken.


Vielen Dank

Manuel


Angehängte Datei(en) Thumbnail(s)
   

13.0 .vi  ILD1700-RS232-Test.vi (Größe: 68,76 KB / Downloads: 245)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2014, 15:09
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
(13.01.2014 11:06 )jg schrieb:  2) Wie viele Element enthält das "Micro-Epsilon"-Array?
Und??
(13.01.2014 14:36 )MNLF schrieb:  Habe das VI mal angehängt.
Hoffe das es geöffnet werden kann, da es auf eine Bibliothek zugreift.
Ja, aber hilft nicht viel weiter, da wohl die allerwenigsten deine ME-SubVIs installiert haben. Wo kann man da Scanrate und Anzahl der Werte pro Abfragezyklus einstellen?
(13.01.2014 14:36 )MNLF schrieb:  Bei der Untersuchung der Durchlaufzeiten der Schleifen sehe ich, wenn ich es richtig gemacht habe, dass diese stark schwanken.
Und, wie sind die Ergebnisse konkret, also in Zahlen bzw. Zeiten? Besteht ein Zusammenhang zur Anzahl der zurückgemeldeten Werte?

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
14.01.2014, 14:34
Beitrag #7

MNLF Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jan 2014

2013
2013
DE_EN


Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
- das Micro-Epsilon Array enthält 50 Elemente

Durchlaufzeiten der Schleifen:

- Temperaturmessung: 1000ms +/- 4ms
- Abstandsmessung: es ist bei den Werten zu sehen, dass diese stark um 50ms schwanken --> 50ms +/- 40ms


Zu deiner Frage: Wo kann man da Scanrate und Anzahl der Werte pro Abfragezyklus einstellen?

Bis dato habe ich dies entweder über teach-in am Sensor oder über ein separates Programm von Micro-Epsilon gemacht.
So wie ich das in einem der Sub-VI's sehe, werden 50 Werte pro Abfragezyklus abgefragt.
Sehe ich das richtig das dies zu den Elementen des Arrays passt?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2014, 14:58
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
Aha, jetzt wird einiges klar, fassen wir zusammen:

Das Mikro-Epsilon-Read VI gibt dir immer 50 Werte zurück.

Wenn du also per externer Software oder am Laser-Sensor selbst eine Erfassungsrate von 1 kHz einstellst, muss das VI im Schnitt 20x pro Sekunde laufen, um nachzukommen. Dass dabei die Durchlaufzeit pro Abfrage ziemlich stark schwankt, wundert mich zwecks RS-485 Anbindung nicht sonderlich.

In deinem ersten VI hast du bei der zeitgesteuerten Schleife aber eine Durchlaufzeit von 1s eingetragen, kein Wunder also, dass du irgendwann einen Buffer-Overflow vom Sensor erhälst, schließlich fragst du nur 50 anstatt 1000 Werte ab.

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
14.01.2014, 16:58
Beitrag #9

MNLF Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jan 2014

2013
2013
DE_EN


Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
Achso, du hast recht:

Habe gerade ausprobiert, nur den Sensor in der zeitgesteuerten Schleife laufen zu lassen:

- wie vorher mit 1s gleiche Fehlermeldung wie mit der Temperaturmessung
- dt auf 20ms eingestellt: !!!keine Fehlermeldung!!!

Vielen Dank erstmal bis hierhin!


Jetzt die Frage: Wie binde ich jetzt die Temperaturmessung wieder mit ein?

Gehe ich her und setze im DAQ-Assistent:

zu lesende Werte: 5
Rate (Hz) : 5

oder was macht da sinn?


Viele Grüße

Manuel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2014, 17:42
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal
(14.01.2014 16:58 )MNLF schrieb:  Gehe ich her und setze im DAQ-Assistent:

zu lesende Werte: 5
Rate (Hz) : 5
Überleg mal, wie lange dauert es, bei 5 Hz Erfassungrate 5 Werte auszulesen?

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  mit Ringbuffer Werte einer Minute speichern mikadm 14 7.246 08.09.2020 11:00
Letzter Beitrag: GerdW
  Synchronisation mehrerer Geräte BenW 1 3.404 03.04.2016 11:19
Letzter Beitrag: IchSelbst
  Synchronisation atul 6 6.051 28.09.2013 19:48
Letzter Beitrag: Trinitatis
  Synchronisation mit Queues Masterg4941 9 8.236 25.09.2013 12:24
Letzter Beitrag: GerdW
  CAN Kommunikationsschaltkreis Overflow DrRino 2 3.816 24.07.2013 14:42
Letzter Beitrag: DrRino
  Ringbuffer Bachelor 3 4.725 19.06.2012 12:24
Letzter Beitrag: GerdW

Gehe zu: