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!
Die CPU-Auslastung ist konstant bei 2%. Es muss also etwas mit dem virtuellen Speicher zutun haben. Wie kann ich den für Labview vergrößern, bzw. mein programm ändern, sodass keine überlastung auftritt?
Kann ich dazu Änderungen am AI Config vornehmen? Die Labview-Hilfe dazu bringt mich leider auch nicht weiter...
Wobei ich da noch nie etwas daran gedreht habe. LabVIEW macht das alles selber, vorausgesetzt das Programm passt soweit.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Muss es sein, den AI-Task innerhalb der While-Loop dauernd zu starten und zu stoppen?
Also bei einer NI-Karte würde ich das nicht machen.
Nächste Verbesserung: Wenn du das "Statistik-Express-VI" durch das "normale" MW-VI aus der Mathe-Palette ersetzt, dann kannst du auf diese ganzen "Sch..." DDT-Drähte verzichten. Die sind bei dir sowieso für die Katz, da du per Statistik VI sowieso immer einen Reihe von Punkten auf einen MW reduzierst.
Dann hast du (wenn ich richtig gezählt habe) 20 Charts, in denen du jeweils 45000 Waveform darstellst. Das sind, wenn die voll sind, locker 20 MB Datenvolumen, die du dauernd im Speicher hin- und herschubst.
Verwendung von Sub-VIs und die Darstellung der Controls als "Nicht-Icon" im BD würde deinen Code übersichtlicher machen, so scrollt man sich ja einen Ast 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!
Zitat:Muss es sein, den AI-Task innerhalb der While-Loop dauernd zu starten und zu stoppen?
Also bei einer NI-Karte würde ich das nicht machen.
Das habe ich am Freitag probiert und bekam bei Programmstart dauernd einen AI-Fehler. Scheinbar funktioniert es nur, wenn ich es in der Schleife platziere.
Zitat:Nächste Verbesserung: Wenn du das "Statistik-Express-VI" durch das "normale" MW-VI aus der Mathe-Palette ersetzt, dann kannst du auf diese ganzen "Sch..." DDT-Drähte verzichten. Die sind bei dir sowieso für die Katz, da du per Statistik VI sowieso immer einen Reihe von Punkten auf einen MW reduzierst.
Das werde ich am Montag mal machen. Aber das Absturzproblem wird es nicht beheben
Zitat:Dann hast du (wenn ich richtig gezählt habe) 20 Charts, in denen du jeweils 45000 Waveform darstellst. Das sind, wenn die voll sind, locker 20 MB Datenvolumen, die du dauernd im Speicher hin- und herschubst.
Ich habe 4 Hebel auf denen ich Normalkraft,Reibkraft,Temperatur und Verschleiß messe. Das sind 16 Charts. Dann habe ich in einzelnen Reitern nochmal für alle Hebel den Reibkoeffizient, nochmals die Temperatur und den Verschleiß(das sind 12 weitere Charts) und für jeden Hebel die Gradienten dµ/dt,dT/dt und dh/dt. Das sind dann insgesamt 40 Charts. Davon resultieren aber nur 16 aus direkten Messungen(4*(Normalkraft,Reibkraft,Temp.,Verschleiß)). Okay Temp. und Verschleiß sind doppelt drin, also eigentlich 24 Charts. Die restlichen Charts ergeben sich aus diesen Signalen.
Ich habe es am Freitag übrigens geschafft das Programm 24h durchlaufen zu lassen ohne Absturz. Nur hat es sich dann beim Beenden aufgehängt und die gespeicherte TDM-Datei der Messwerte war damit futsch
Ich hatte folgendes geändert damit dies möglich war: Ich habe beim AI-Start die "number of scans to aquire" auf 0 gesetzt und beim AI-Read die "number of scans to read" auf 1. Fragt mich nicht wie ich gerade auf diese Werte kam, ich habe einfach rumgespielt. Doch nun hab ich das Problem, dass er mir nicht wie zuvor pro sec 1 Messwert liefert, sondern jede halbe sec. Das ganze schlägt sich dann auch in der Speicherung nieder, was ich gerne verhindern möchte. Also wie kann ich dafür sorgen, dass ich nur jede sec oder jede 2. sec einen Messwert ausgelesen bekomme? Bzw. wenn das nicht geht, dass er wenigstens nur jede sec. oder jede zweite sec einen Wert speichert? Das wird wohl mit meinem Express-VI zur Datenspeicherung auch nicht funktionieren oder? xD
Weitere Verbesserungen: Deine Erfassungsschleife sollte als State-Machine mit verschiedenen Zuständen aufgebaut werden. Dann gewinnst du vielleicht wieder etwas Übersicht über deine Berechnungen und Datenerfassung. Gleichzeitig dann noch als Consumer-Loop umbauen, die von der Producer-Loop (der Event-Struktur) gesteuert wird.
Weitere Trennungsmöglichkeiten:
Erfassung von Auswertung und Darstellung trennen, quasi 2 Consumer-Loops.
1x Erfassung, 1x Auswertung.
Vielen Dank für deine Hilfe, ich werde versuchen deine Verbesserungsvorschläge am Montag umzusetzen Und dass das Ganze recht unübersichtlich geworden ist liegt daran, dass ich einfach nicht wusste wie man es besser macht xD Aber dafür lerne ich ja^^ Trotzdem nochmals Danke für deine Bemühungen, ich gebe im Laufe der Woche Rückmeldung über den Stand der Dinge.
(11.09.2011 20:40 )jg schrieb: Weitere Tipps:
[list]
[*]Einige deiner Ein- und Ausgaben lassen sich sicher auch als Tabelle darstellen -> bessere Übersicht, da weniger Controls im BD.
das schon, war aber so gewünscht^^ (chef findet die tabellen nicht ansehnlich)
Zitat:[*]Deine Berechnungen von Ableitungen stimmen nicht, denn dafür musst du die Differenz zwischen 2 Messwerten bilden.
Bei Hebel 2-4 stimme ich dir zu, aber bei Hebel 1 hatte ich das bereits geändert. Ich habe angenommen das wäre soweit richtig, da ich ja die Differenz aus 2 Werten bilde. Damit du nich suchen musst habe ich die entsprechende Stelle als Screenshot beigefügt.
Deine anderen Tipps bin ich noch am Bearbeiten
13.09.2011, 12:18 (Dieser Beitrag wurde zuletzt bearbeitet: 13.09.2011 12:38 von jg.)
(13.09.2011 12:10 )Milb3 schrieb: [*]Einige deiner Ein- und Ausgaben lassen sich sicher auch als Tabelle darstellen -> bessere Übersicht, da weniger Controls im BD.
das schon, war aber so gewünscht^^ (chef findet die tabellen nicht ansehnlich)
Dann wäre eine Idee, es in einem Cluster zusammenzufassen?
(13.09.2011 12:10 )Milb3 schrieb: Bei Hebel 2-4 stimme ich dir zu, aber bei Hebel 1 hatte ich das bereits geändert. Ich habe angenommen das wäre soweit richtig, da ich ja die Differenz aus 2 Werten bilde. Damit du nich suchen musst habe ich die entsprechende Stelle als Screenshot beigefügt.
Deine anderen Tipps bin ich noch am Bearbeiten
Denkst du vielleicht. Ist aber nicht so. Durch deine MW-Bildung leitest du bei den DDT-Formaten immer nur 1 Wert weiter. Da kannst du zwar gerne ein 1D-Array draus machen, aber das hat immer nur einem Element. Und damit ist es schwierig, eine Ableitung zu bilden...
Zitat:Denkst du vielleicht. Ist aber nicht so. Durch deine MW-Bildung leitest du bei den DDT-Formaten immer nur 1 Wert weiter. Da kannst du zwar gerne ein 1D-Array draus machen, aber das hat immer nur einem Element. Und damit ist es schwierig, eine Ableitung zu bilden...
Empfehlung: die PTbyPT-Funktion (Derivative x(t) PtByPt.vi)?
Damit kann ich aber doch nur Ableitungen 2. Ordnung erstellen?