LabVIEWForum.de
"Ringbuffer overflow" bei Synchronisation von analog und digital Signal - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal (/Thread-Ringbuffer-overflow-bei-Synchronisation-von-analog-und-digital-Signal)

Seiten: 1 2


RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal - MNLF - 14.01.2014 19:34

1 Sekunde denke ich

Was mich irritiert ist das Zusammenspiel der Temperaturmessung mit der zeitgesteuerten Schleife.

In der zeitgesteuerten Schleife wähle ich nun, aufgrund des Lasers, ein dt von 20ms. Dies, um auf 1 kHz zu kommen.
Entsprechend würde das für mich heißen, dass die Temperaturmessung auf 5 zu lesende Werte definiert werden muss. Dies um die 100 Hz zu realisieren, beides (Abstands- und Temperaturmessung) in einer Schleife zu haben und damit es synchron läuft.

Was mache ich falsch?


Viele Grüße

Manuel


RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal - jg - 14.01.2014 20:57

Think DATAflow:
Eine LabVIEW-Struktur wird dann gestartet/beendet, wenn alle Ein- bzw. Ausgänge anliegen.

Was heißt das für die Schleife, wenn du den DAQ-Assi auf 5 Werte bei 5 Hz Erfassungsrate einstellst? Idee
Genau, die Durchlaufzeit wird ca. 1 Sekunde betragen.
Da kannst du noch so sehr 20 oder 50 ms Loop-Time eintragen.

Gruß, Jens


RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal - MNLF - 15.01.2014 11:05

Sehe ich das richtig, dass dann von dem Laser nicht 50 Werte pro Schleifendurchlauf (in einer Sekunde) abgefragt werden müssen sonder 1000?
Dem Laser ist es doch egal, der produziert seine 1kHz.

Somit könnte ich die Temperaturmessung einstellen auf:

zu lesende Werte: 100
Rate (Hz) : 100

und hätte meine 1kHz beim Laser und 100Hz bei der Temperaturmessung.


Viele Grüße

Manuel


RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal - jg - 15.01.2014 11:27

(15.01.2014 11:05 )MNLF schrieb:  Sehe ich das richtig, dass dann von dem Laser nicht 50 Werte pro Schleifendurchlauf (in einer Sekunde) abgefragt werden müssen sonder 1000?
Dem Laser ist es doch egal, der produziert seine 1kHz.
Wenn das deine VIs hergeben? Laut deiner Aussage kannst du aber nirgendwo angeben, wieviele Werte dein ProcessDataILD pro Aufruf zurückgibt, die 50 Werte sind mglw. hardcodiert. Glas1 Alles Spekulation, ich kenn die VIs nicht.
(15.01.2014 11:05 )MNLF schrieb:  Somit könnte ich die Temperaturmessung einstellen auf:

zu lesende Werte: 100
Rate (Hz) : 100

und hätte meine 1kHz beim Laser und 100Hz bei der Temperaturmessung.
Ja schon, aber solange dein ProcessData-VI nur 50 Werte pro Aufruf liefert, landest du wieder im Bufferoverflow. Wall

Alternative: Versuch doch mal, den Takt der Temperaturerfassung durch geschickte Wahl an den Takt des ProcessData anzupassen.

Ob es am Ende wirklich klappt, steht noch auf einem anderen Papier. Die Durchlaufzeit des "ProcessData" ist nicht sonderlich konstant.

Gruß, Jens


RE: "Ringbuffer overflow" bei Synchronisation von analog und digital Signal - MNLF - 20.01.2014 12:15

Nach langem Suchen habe ich die Einstellung für die Abfrage der Werte gefunden.
Scheint so, als hat die TransferData die Limitierung auf 50 abzufragende Werte von der vorgelagerten Schleife erhalten.

Habe hierzu mal 2 Screenshots anghängt.
Einmal wie die Verbindung "vorher" zur TransferData bestand und "nachher", nach meiner Änderung.

Fehlermeldung bekomme ich nun auch nicht mehr.

Jetzt frage ich mich nur: Ist das nun "relativ" synchron?
Klar, wie du schon sagtest Jens, gibt es Einflüsse wie die RS-422 (schwankend), aber grungsätzlich?



Viele Grüße und Danke für deine Hilfe Jens.

Manuel