Sinusgenerator --- data queue overflow

Anfängerfragen, die mit LabVIEW zu tun haben
Правила форума
In unserem Forum ist es möglich Foren zu verbergen. Für jede Sprache gibt es eine Gruppe:

hide XXX forums

Wenn du also ein Forum in einer Sprache nicht sehen möchtest, dann musst du einfach in die richtige Gruppe(n) eintreten. Das kannst du in den Profileinstellungen machen.
Ответить
triplelag
interested
interested
Сообщения: 3
Зарегистрирован: 12 ноя 2012, 17:07
Версия LabVIEW: 2009

Sinusgenerator --- data queue overflow

Сообщение triplelag »

Hallo Leute,

ich baue gerade mit Labview 2009 einen Sinusgenerator. Jetzt stehe ich vor dem Problem, dass das Programm nach einiger Zeit den Ausgang abbricht und nur noch DC offset Signale ausgibt (Fehlermodus). Ich muss mein Signal im Betrieb verändern können, was nicht in Echtzeit geschehen muss, jedoch sollte diese Latenz unter einer Sekunde liegen. Setze ich den Ausgangsbuffer auf 20000 Samples, läuft es zwar stabil aber die Verzögerung beträgt einige Sekunden. Setze ich den Buffer auf 4000 Samples wird die Reaktionszeit geringer aber das Programm stürzt irgendwann ab.
Im Highlightmodus erhalte ich bereits beim zweiten Schleifendurchgang des Eingangs immer den Fehler 1020 "data queue overflow".
Wo liegt mein Fehler?

Danke für eure Hilfe!

Max


p.s. Es wird DT Hardware benutzt, also nicht wundern wenn es bei euch nicht funktioniert.
Вложения
sinusgenerator.png
sinusgenerator_3.0.0.vi
(90.88 КБ) 244 скачивания
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Sinusgenerator --- data queue overflow

Сообщение Borjomy_1 »

Im Generator-Modus einmal ist genug, um ein Signal zu bilden. In der Zukunft wird es wiederholt werden aus dem Puffer gespielt. Dass es keine Sprünge an der Verbindungsstelle des Puffers zu dem Puffer ist eine ganze Zahl von Perioden.
triplelag
interested
interested
Сообщения: 3
Зарегистрирован: 12 ноя 2012, 17:07
Версия LabVIEW: 2009

Re: Sinusgenerator --- data queue overflow

Сообщение triplelag »

Ich verstehe nicht genau was du sagen willst und vermute du bist Franzose und hast es Google übersetzen lassen, oder?
Ich muss das Signal verändern können, also reicht es nicht aus das Signal einmal zu bilden. Oder verstehe ich dich falsch?
Kannst du mir sagen was ich tun kann? Denn ich verstehe nicht was du mir sagen willst.

Aber ich danke dir trotzdem!

Max
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Sinusgenerator --- data queue overflow

Сообщение Eugen Graf »

Hi Max!

Ich verstehe auch nicht was er damit sagen will :crazy:
Wahrscheinlich, dass du dein Sinus nur ein Mal generieren solltest (vor der Schleife) und nicht jedes Mal bei jedem Schleifendurchlauf. Und auch um die Sprünge zu vermeiden, solltest du dem Puffer ein Vielfaches von Perioden anschliessen.

Leider kann ich dir selber bei diesem Thema nicht helfen, da ich mich mit dieser HW nicht auskenne.

Gruß, Eugen
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Sinusgenerator --- data queue overflow

Сообщение Borjomy_1 »

Я хочу сказать, что нет необходимости запихивать каждые 200мс полный буфер. Достаточно делать это только по изменению параметров, имеет смысл это попробовать (обычно там есть двойная буферизация). В параметрах вызова функций нет явных указаний, что данные выводятся один раз и по опустошению буфера вывод данных останавливается, поэтому один раз запихнув в буфер, должна быть постоянная генерация.
Сейчас 200мс цикла не равны 200миллисекундам Цапа (тактируется разными генераторами). В результате очень быстро набегает расхождение.

Ich meine, es gibt keine Notwendigkeit, alle 200ms vollen Puffer zu schieben. Genug, um es einfach zu tun, um die Einstellungen zu ändern, ist es sinnvoll, es zu versuchen (in der Regel gibt es einen Double-Buffering). In den Parametern des Funktionsaufrufs keine ausdrücklichen Hinweis, daß die Datenausgabe einmal und Buffer-Underrun-Ausgang Haltestellen, so einmal zapihnuv der Puffer muss konstant Generation.
Jetzt 200ms Zyklus sind nicht gleich 200ms DAC (getaktet durch unterschiedliche Generatoren.) Als ein Ergebnis läuft sehr schnell in die Diskrepanz.

übersetzt von Google
triplelag
interested
interested
Сообщения: 3
Зарегистрирован: 12 ноя 2012, 17:07
Версия LabVIEW: 2009

Re: Sinusgenerator --- data queue overflow

Сообщение triplelag »

@Eugen
Du hast wohl verstanden was borjomi gemeint hat. Ich leider immer noch nicht. :dntknw:
Könntest du mir erklären was das mit den Perioden bedeuten soll?
Ich denke ich kann den Sinus nicht vor der Schleife generieren, denn ich muss ihn im Betrieb verändern. Oder hast du eine Idee wie ich das lösen könnte? Parallele Schleife? Schleife neustarten?

@borjomi
Vielen Dank für deine Bemühungen, leider verstehe ich nicht was du mir sagen willst! Kannst du es vielleicht mal in English versuchen? Denn ich denke, dass du weißt von was du sprichst. :thank:
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Sinusgenerator --- data queue overflow

Сообщение Borjomy_1 »

Нет необходимости записывать полный буфер каждые 200мс. Достаточно делать это только при изменении параметров, имеет смысл это попробовать (обычно там есть двойная буферизация). В параметрах вызова функций нет явных указаний, что данные выводятся один раз и по опустошению буфера вывод данных останавливается, поэтому один раз записав синус в буфер, должна быть постоянная генерация.
Сейчас 200мс цикла не равны 200мс DAC (тактируется разными генераторами). В результате очень быстро набегает расхождение между количеством переданных отсчетов и количеством выданных DAC.

No need to write a full buffer every 200ms. Enough to do this only when the parameters change, it makes sense to try it (usually there is a double-buffering). In the parameters of the function call is no explicit indication that the data is output once and buffer underrun output stops, so once sine writing to the buffer should be a continuous generation.
Now the 200ms cycle is not equal to 200ms DAC (clocked by different generators.) As a result very quickly accumulates discrepancy between the number of counts and the number of transfers issued DAC.
jg69

Professionalism
developer
developer
Сообщения: 265
Зарегистрирован: 14 окт 2008, 00:09
Награды: 1
Версия LabVIEW: 8.x, 20x

Re: Sinusgenerator --- data queue overflow

Сообщение jg69 »

Ответить

Вернуться в «Für Anfänger»