Überlauf des Speichers - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: Überlauf des Speichers (/Thread-Ueberlauf-des-Speichers) Seiten: 1 2 |
Überlauf des Speichers - Prince Amir - 24.09.2009 11:25 hm. ich hab jetzt mit Queue die Daten Einlesen von DAQ und bearbeiten in 2 schleifen verbunden. aber irgendwie bekomme ich die Daten Typen nicht hin!! brauche ich eine transformation? Siehe Screenshot PS: Ich will eigentlich beim LESEN mit 1000 HZ. genau 1000 werte in der Sekunde speichern. sind dann meine einstellungen für Sampels Pro kanal beim DAQ Lesen und Timing und Einzelwerte HW getaktet richtig? nicht dass ich es total falsch verstanden habe!! und dann mittels software abtastung nochmal mit 100 / 10 / 1 Hz abtasten! für langsame sensoren. viele Grüße, Überlauf des Speichers - IchSelbst - 24.09.2009 11:36 ' schrieb:was meinst du genau mit konzept ändern?die schleife mit task lesen meinst du bestimmt.Jawohl. Zitat:kannst du bitte näher erklären, was ich da ändern soll?Das ist ganz einfach gesagt: Das Lesen der Daten aus der Task, also das DaqMX-Rd, aus diesem Datenfluß entfernen. Dieses Entfernen entspricht einem Herausnehmen aus der Schleife. Versuch mal folgendes: Mach eine weitere parallele While-Schleife, in der du die Task ausliest. Du ließt hier aber nicht einen (1) Wert aus, sondern gleich 100 oder tausend Werte. Beachte, dass dann ein Timeout am LeseVI angegeben werden muss. (Am besten gefiele mir allerdings mit -1 als Anzahl auszulesen und in diese While-Schleife eine Wartezeit von z.B. 100ms einzufügen). Die Daten, die du hier ausließt, schreibst du - wie sie aus dem Lese-VI herauskommen in eine Queue. In der bestehenden While-Schleife ersetzt du das bisheriege LeseVI durch das Element "Queue auslesen". Aus der Queue kommt prinzipiell das selbe heraus wie aus dem LeseVI. Die Queue bewirkt eine Entkopplung des (notwendigen) Auslesens der Task von der (zeitraubenden) Verarbeitung in der großen Schleife. Sie stellt praktisch einen vergrößerten Task-Puffer dar. Kennst du dich mit Queues (und Meldern) aus? Nein? Dann wird's Zeit! Zitat:PS: Ich will eigentlich beim LESEN mit 1000 HZ. genau 1000 werte in der Sekunde speichern. sind dann meine einstellungen für Sampels Pro kanal beim DAQ Lesen und Timing und Einzelwerte HW getaktet richtig?Ich würde die Task auf kontinuierlich einstellen mit einer Taktrate von 1kHz und einem Puffer für 5 Sekunden. Zitat:und dann mittels software abtastung nochmal mit 100 / 10 / 1 Hz abtasten! für langsame sensoren.Wenn das denn unbedingt sein muss, dann kann man das Messwertarray entsprechend reduzieren. Für 100Hz jeden 10ten nehmen, für 10Hz jeden 100ten usw. Anhang: Jetzt hab ich was so schönen geschrieben. Das lass ich jetzt aber so stehen.^_^ Überlauf des Speichers - IchSelbst - 24.09.2009 11:39 Na guck, hast du doch alles selbst hinbekommen! ' schrieb:aber irgendwie bekomme ich die Daten Typen nicht hin!!Gehe wie folgt vor: Erstelle am Ausgang des DaqMX-Rd eine Konstante! Diese Konstante gibst du auf den Typ-Eingang der Queue. Du hast das Element "Queue anfordern" zweimal gemacht. Das ist nicht notwendig. Lass das rechte Element einfach weg und nimm den Datenfluß aus dem linken Anfordern. Überlauf des Speichers - Prince Amir - 24.09.2009 12:36 Hallo IchSelbst, ' schrieb:Na guck, hast du doch alles selbst hinbekommen! super sache, danke hats super funktioniert. keine pufferprobleme mehr.super alles. Nun gibts ein problem. wenn ich programm abbreche und Stopp taste drucke, komme diese fehler meldung! hab aber alles richtig gemacht, weiss nicht warum es vorkommt! ich hab aber jetzt mit dem aufbau DAQ Tast lesen in der schleife drin gelassen, soll ich auch mit dem jetzigen aufbau aus der schleife nehmen ? dank nochmal. hab dazu viel gelernt, und weitergekommen. ich häge die 2 screenshots (Fehler und mein Aufbau) Grüße Überlauf des Speichers - IchSelbst - 24.09.2009 14:08 ' schrieb:wenn ich programm abbreche und Stopp taste drucke, komme diese fehler meldung! hab aber alles richtig gemacht, weiss nicht warum es vorkommt!Das ist kein Fehler! Das Element "Queue lesen" warten so lange, bis etwas in der Queue ist. Erst dann wird dieses Element beendet und es geht in deiner While-Schleife weiter (mit den 100 Messwerten). Was ist aber, wenn in die Queue nichts mehr hineinkommt? Oder wenn jemand die Queue schließt? So wie du das gemacht hast, nachdem die Sample-Schleife durch "STOPP KEY" beendet wird. Durch das Löschen der Queue wird automatisch das Element Queue-Lesen beendet! Erst dadurch kann deine Auswerteschleife auch beendet werden. Die Fehlermeldung verschwindet, wenn du an den Error-Ausgang des Queue-Lesen-Elementes ein Error-Anzeige-Element hängst. Zitat:ich hab aber jetzt mit dem aufbau DAQ Tast lesen in der schleife drin gelassen, soll ich auch mit dem jetzigen aufbau aus der schleife nehmen ?Was heißt "soll ich auch mit dem jetzigen aufbau aus der schleife nehmen"? Das verstehe ich leider nicht. Macht aber nix. Lass alles so wie in dem Bild. Überlauf des Speichers - schrotti - 26.09.2009 17:48 Jetzt guck ich das grad auf die Übersicht im Allgemeinen und lese als Threadtitel "Überfall des Speichers". Hab da aus unerfindlichen Gründen immer noch so ein Grinsen im Gesicht. |