LabVIEWForum.de - Problem mit Dauermessung - immer wieder Absturz

LabVIEWForum.de

Normale Version: Problem mit Dauermessung - immer wieder Absturz
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo,

ich habe ein kleines Programm, das nach mehreren Stunden in unregelmäßigen Abständen immer wieder abschmiert. Dies macht sich durch unterschiedliche Fehlermeldungen in LabVIEW (die auch nicht weiterhelfen laut Forum) und diverse Bluescreens bemerkbar.

Zur Funktion des Programms: Es liest vier Kanäle aus, wertet Maximal- und Minimalwerte aus und speichert diese nach einem bestimmten Intervall in eine Datei. Daneben wird in einem 5. Kanal Spannung gemessen und mit in die Datei geschrieben. Wenn einer der Messwerte in Kanal 1-4 zu groß ist, wird an einem Analogausgang ein 5V-Signal ausgegeben, genauso, wenn sich die Spannung um +/-5% verändert. Das Ganze wird dann noch grafisch ein wenig dargestellt.

Ich verwende die PCI 6229 Karte mit einem 2110er Anschlussblock. Zuerst hatte ich es mit LV 7.1 probiert, unter 8.5.1 wurde es auch nicht besser. Genauso hilft der DAQmx 8.7.1 nicht weiter. Da der Fehler mal nach 2 Stunden, mal nach 12 Stunden auftritt, ist es nur schwer nachzuvollziehen, woran es liegt. Seht ihr irgendwelche kapitalen Fehler im Programm, die einen Absturz verursachen könnten? Leider habe ich in LabVIEW auch nicht die große Erfahrung, so dass ich es selbst sehen könnte.

Das Programm läuft unter XP auf einem ASUS-Board mit Athlon 3000 Prozessor (2 GB RAM). Am Rechner habe ich auch schon alles probiert (andere Hardware deaktivieren, BIOS-Update, neue Mainboardtreiber,...)

Viele Grüße,
ph1211

Lv71_img
Nimm mal das Create Task + Start Task aus der While-Schleife raus, d.h. mach das nur 1x vorher und das Clear nur 1x nachher! Du erzeugst jedes mal eine neuen Task (mit neuer Reference ID) und schließt ihn sofort wieder...das dürfte mit der Zeit ein bisschen stressig werden!

By the way:
Warum machst du aus folgendem Codeabschnitt keine SubVI? Das verwendest du doch häufiger...

[attachment=13842]

Und noch was: BITTE räum mal dein Blockdiagramm auf...ich sags mal krass: in 99,9% der Fälle passt alles auf eine Bildschirmseite, ohne irgend welche funktionalen Einschränkungen! Ansonsten wurde nicht genug nachgedacht...und bitte immer sauber von links nach rechts coden!
' schrieb:By the way:
Warum machst du aus folgendem Codeabschnitt keine SubVI? Das verwendest du doch häufiger...

Und noch was: BITTE räum mal dein Blockdiagramm auf...ich sags mal krass: in 99,9% der Fälle passt alles auf eine Bildschirmseite, ohne irgend welche funktionalen Einschränkungen! Ansonsten wurde nicht genug nachgedacht...und bitte immer sauber von links nach rechts coden!

Das Programm ist leider nicht von mir, und der Programmierer ist nicht mehr da. Ich muss es nur anwenden (was nicht funktioniert). Aber dass das alles übersichtlicher ginge, habe ich mir beim ersten Anblick auch schon gedachtWink
Aber danke für die Tips, ich werde sie mal umsetzen. Das Programm erfüllt dann seinen Zweck wie bisher (wenn der Task nur einmal erstellt wird)?
' schrieb:Aber danke für die Tips, ich werde sie mal umsetzen. Das Programm erfüllt dann seinen Zweck wie bisher (wenn der Task nur einmal erstellt wird)?
Latürnich!
Da fällt mir "Kentucky schreit ficken" von RTL-Samstag Nacht ein.

"Darf ich Sie an die Bheke titten?" Rofl

Gruß Markus

' schrieb:Latürnich!
Offtopic2
' schrieb:Da fällt mir "Kentucky schreit *ZENSIERT DURCH DAS LVF*" von RTL-Samstag Nacht ein.

"Darf ich Sie an die Bheke titten?" Rofl

Gruß Markus

Hey, da hat heute einer nix zu tun! Hast du dich schon um meinen "Spruch" gekümmert? Laber
' schrieb:Latürnich!

Vielleicht noch mal eine Laienfrage, wenn wir schon mal dabei sind. Big Grin

Die Kanäle initialisieren brauche ich nur einmal, kann ich also außerhalb jeder Schleife machen!? Aber wofür brauche ich eigentlich den "Start Task"? Geht es auch ganz ohne? Und wenn ich ihn doch brauche: Muss ich ihn dann mit vorgeschalteter Abtastung (Sampling Clock) aus der Schleife ziehen?
Erzeugen, Konfigurieren, Starten VOR der Schleife...Abfragen/Aktualisieren IN der Schleife...Stop + Clear nach der Schleife
' schrieb:Erzeugen, Konfigurieren, Starten VOR der Schleife...Abfragen/Aktualisieren IN der Schleife...Stop + Clear nach der Schleife
Das hieße in Anwendung auf mein Problem, dass ich diesen kompletten Abschnitt

[attachment=13874]

aus der Schleife ziehen könnte? Oder muss der Block "Analog 1D Wfm..." in der Schleife bleiben?
Sorry, aber mit DAQ hatte ich bisher null Erfahrung und will das jetzt zum Laufen bringen...Huh
alles bis auf das VI mit dem Timeout-Anschluss (Read...siehe die Brille!) aus der Schleife raus!

Und:
Ich verstehe nicht, warum da jeder Kanal einzeln als "AI Voltage"-Task definiert wird...da könnte man einen einzigen Task mit n verschiedenen Kanälen daraus machen und hätte dann beim Lese-VI eine Array of Waveforms...
Seiten: 1 2 3 4
Referenz-URLs