11.02.2008, 19:26
Beitrag #1
|
Schwand
LVF-Stammgast
Beiträge: 276
Registriert seit: Nov 2007
2014
2006
DE
31789
Deutschland
|
Mein Programm wird immer langsamer
Moinmoin,
Ich hab folgendes Problem. Mein Programm nimmt von zwei analogen Eingängen Daten auf über DAQ. Das soll es alle 500ms machen. hab auch schon 1000 probiert, aber das bringt auch nichts. Nach etwa 5-6 Minuten werden aus den 500 dann 1s, dann 2s usw.
Ich glaube, nachdem ich hier schon mal geschaut hab, dass es daran liegt, dass ich in der Schleife die Datenerfassung immer neu starte und wieder schließe. Aber wenn ich für beide Eingänge die Initialisierung nach draußen lege, bekomme ich ne Fehlermeldung. Soweit ich weiß, kann man ja immer nur einen Kanal/Task zur Zeit ansteuern. Im Grunde müsste ich also noch eine Abfrage machen, wann der erste Kanal fertig gemessen hat und der zweite starten kann. Dann würde ja aber wieder alles in einer Schleife sein.
Versteht jemand mein Problem und weiß ne Lösung? Oder liegt der Fehler woanders?
Anbei mal das Programm, wie es momentan ist:
...oder auch nicht. Klappt hier nicht mit dem hochladen, probiers zuhause dann mal
|
|
|
11.02.2008, 20:46
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Mein Programm wird immer langsamer
Schon mal vorab (bevor du dein VI hochlädst):
1. Sammelst du Daten per Build-Array Funktion & Shift-Register? Das führt bei längerer Ausführung zur Fragmentierung des Speichers, da LV dauerd neuen Speicher allocieren muss für das immer größer werdende Array.
2. Wieso fasst du nicht die Erfassung der beiden Kanäle in ein Task zusammen? Dann brauchst du nicht dauernd die Tasks zu starten und zu stoppen.
MfG, 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.
|
|
|
11.02.2008, 22:53
(Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2008 22:56 von Schwand.)
Beitrag #3
|
|
|
11.02.2008, 23:05
Beitrag #4
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Mein Programm wird immer langsamer
Ah ja, du hast im Prinzip doch ein sich dynamisch vergrösserndes Array, nämlich das String-Array, das du am Ausgang der While-Loop per AutoIndex sammelst. Da LabVIEW bei der While-Loop natürlich nicht im voraus weiss, wie gross das Array, hast du wohl ebenfalls (ähnlich wie bei Build-Array) das Problem mit der Defragmentierung des Speichers.
Dann die Frage: Du willst also jede halbe Sekunde einen Messwert von Kanal ai4 und Kanal ai5 erfassen. Wieso dies nicht per Hardware-Timing? Und immer beide Kanäle. Dann übernimmt der DAQmx-Treiber sowie die DAQ-Karte (Zwischenfrage: welche?) für dich das korrekte Timing. Und du musst nicht die Tasks neu starten und stoppen.
Beispiele dazu im NI-Examplefinder sind die Continous-Acquisations-VI's mit Internal Clock.
MfG, 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.
|
|
|
12.02.2008, 00:04
Beitrag #5
|
|
|
12.02.2008, 14:26
(Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2008 20:50 von jg.)
Beitrag #6
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Mein Programm wird immer langsamer
Hallo, hier mal ein Bsp zur Erfassung der 2 Kanäle mit 2 Hz:
[attachment=38242:Read2AI.vi]
EDIT: Anhang gelöscht, da Datei offenbar korrupt.
Die Wandlung in Strings würde ich erst nach Abschluss der Messung machen (was erwartest du denn so als Maximaldauer?).
Ich habe das mal mit "simulierter DAQKarte" laufen lassen, hatte nach halber Stunde noch keine Probleme. Nachteil des Bsp: Auch hier wird dynamisch die Waveform immer weiter vergrößert, was auf Dauer nicht gerade das ideale für den Speicher des Computers ist.
MfG, 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.
|
|
|
13.02.2008, 16:25
Beitrag #7
|
|
|
13.02.2008, 16:43
Beitrag #8
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Mein Programm wird immer langsamer
Ich kann die Fehlermeldung bestätigen. Lad' das VI doch bitte nochmal hoch, Jens.
Gruß Markus
' schrieb:Hallo Jens,
danke für das VI, aber mein LabVIEW mag das nicht aufmachen. Es gibt ne Fehlermeldung: "The File is not a resource File. ...not valid" (sinngemäß).
Ich hab mal mit den Beispielen rumgespielt und da kam auch was bei rum. Werds nachher mal hochladen, weil das hier auf der Arbeit nicht funktioniert.
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
13.02.2008, 17:52
Beitrag #9
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Mein Programm wird immer langsamer
Tja, was ist den da schiefgegangen?! OK, neuer Versuch:
Read2AI.vi (Größe: 34,25 KB / Downloads: 254)
MfG, 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.
|
|
|
14.02.2008, 11:10
|
Schwand
LVF-Stammgast
Beiträge: 276
Registriert seit: Nov 2007
2014
2006
DE
31789
Deutschland
|
Mein Programm wird immer langsamer
Hier mal das Programm, was bei mir aus dem NI-Beispiel entstanden ist.
Kann ich die Waveform eigentlich auch als Zahlenwert darstellen, also mit einer numerischen Anzeige?
Version ist 8.2
Konstant_berwachung_Neu2.vi (Größe: 43,15 KB / Downloads: 245)
|
|
|
| |