Advantech USB 4716 - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: Hardware (/Forum-Hardware) +---- Forum: 3rd Party Hardware (/Forum-3rd-Party-Hardware) +---- Thema: Advantech USB 4716 (/Thread-Advantech-USB-4716) |
RE: Advantech USB 4716 - Milb3 - 09.09.2011 13:19 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... RE: Advantech USB 4716 - Y-P - 09.09.2011 15:14 http://zone.ni.com/reference/en-XX/help/371361D-01/lvhowto/enable_lrg_ad_aware/ Wobei ich da noch nie etwas daran gedreht habe. LabVIEW macht das alles selber, vorausgesetzt das Programm passt soweit. Gruß Markus RE: Advantech USB 4716 - jg - 09.09.2011 15:33 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 RE: Advantech USB 4716 - Milb3 - 10.09.2011 10:13 Danke für die Antworten Zitat:Muss es sein, den AI-Task innerhalb der While-Loop dauernd zu starten und zu stoppen? 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 Danke für eure Geduld mit mir^^ RE: Advantech USB 4716 - jg - 11.09.2011 11:56 Number of Scans=0 bei AI-Start bedeutet "Continous"-Modus. Eigentlich genau das, was du brauchst. Als Ansatz hier eine entsprechende Umkonfiguration und schon mal das Löschen des Express-MW-VI: [attachment=35797] 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. Mögliche Zustände: "Warten", "Erfassung-Start", "Erfassen", "Berechnen", "Ende", ... Ich würde dir ja gerne den Code noch weiter aufräumen, aber bei dem BD scrolle ich mir nen Wolf, und verliere die Lust. Gruß, Jens RE: Advantech USB 4716 - Milb3 - 11.09.2011 18:26 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. RE: Advantech USB 4716 - jg - 11.09.2011 20:40 Weitere Tipps:
RE: Advantech USB 4716 - Milb3 - 13.09.2011 12:10 (11.09.2011 20:40 )jg schrieb: Weitere Tipps: 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 RE: Advantech USB 4716 - jg - 13.09.2011 12:18 (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.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.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)? Gruß, Jens RE: Advantech USB 4716 - Milb3 - 13.09.2011 12:29 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... Damit kann ich aber doch nur Ableitungen 2. Ordnung erstellen? |