LabVIEWForum.de - Fehlermeldung mit Absturz vonLabVIEW

LabVIEWForum.de

Normale Version: Fehlermeldung mit Absturz vonLabVIEW
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo erstmal,

in meiner Software habe ich ein Programm geschrieben, welches sich nur um den Hardwarezugriff kümmert und diesen Regelt.
Nun habe ich ab und zu eine Fehlermeldung die seltsamerweise nicht immer kommt. Wenn sie aber kommt ist LabVIEW komplett abgestürzt.
Zu meinem Programm:
-es wird über unser Firmennetzwerk aufgerufen und gestartet (könnte vielleicht eine Fehlermöglichkeit sein)
-es Fragt mehrere Kanäle sequentiell ab und das auch nicht immer

Seltsam ist, dass die Fehlermeldung beim Aufrufen des Programms kommt. Dann muss ich LabVIEW und das Programm neu starten. Das Ganze muss ich 4-5mal machen und dann läuft das Programm ohne zu murren.

In den Anhang packe ich mal die Fehlermeldung.

Ich hoffe ihr könnt mir helfen.

Robin
Schau' mal dort:

http://forums.ni.com/ni/board/message?boar...ssage.id=262370

Erzeugst Du irgendwo in Deiner Schleife jedes mal einen neuen Task?

Gruß Markus
Hallo,

ja ich muss in einer Schleife einen Task erzeugen. Das sollte aber doch kein Problem sein, wenn ich ihn in dieser Schleife auch wieder beende, oder?
Am Treiber könnte es vielleicht liegen, hab es noch nicht an einem anderen PC ausprobiert. Werd ich demnächst mal machen.

Gruß
Robin
Erzeuge doch den Task vor der Schleife, schreibe/lese in der Schleife und beende ihn wieder nach der Schleife. Sonst kann es zu Problemen kommen.

Gruß Markus
Ich hänge mal mein Programm an, damit du einen Überblick darüber bekommst warum ich das gemacht habe.
Vielleicht kannst du mir ja auch eine elegantere Lösung geben.
Ich bin für Vorschläge dies bzgl. immer offen.
Lv71_img
:wacko:Erzeuge doch alle Tasks, die Du brauchst und schreibe sie in ein Schieberegister (per Array oder Cluster). In Deiner Schleife schließt Du dann jeweils den benötigten Task an. Nach der Schleife schließt Du alle Tasks wieder. Das kannst Du ja dann (wenn Du ein Array verwendest) mit einer indizierten For-Schleife machen. Bei Deinem Programm habe ich irgendwie den Durchblick verloren. Jedenfalls öffnest Du dort Tasks, wie es Dir gerade gefällt. Big Grin

Gruß Markus
Sehr seltsames Programm, das du da geschrieben hast.

1. Was für eine DAQ-Hardware hast du? Mehrere AI-Tasks auf den einfacheren Karten geht eigentlich nicht.
2. Wieso hast du in der Regel das Start-Task-VI immer nach dem Read-VI? Normales Vorgehen: Task Config - Start - Read - Stop - Clear.
3. Teilweise hast bleiben deine Task-Refnums "in der Luft" hängen. Im unteren Teil deines VIs gehen ja nach Case plötzlich 2 Task-Refnums auf ein Stop-Task außerhalb der While-Schleife. Sehr seltsam, was soll das?

Gruß, Jens
' schrieb:Erzeuge doch alle Tasks, die Du brauchst und schreibe sie in ein Schieberegister (per Array oder Cluster). In Deiner Schleife schließt Du dann jeweils den benötigten Task an. Nach der Schleife schließt Du alle Tasks wieder. Das kannst Du ja dann (wenn Du ein Array verwendest) mit einer indizierten For-Schleife machen.

kannst du mir das mal bitte Beispielhaft skizzieren? (Bild von einem Beispiel VI)
Nur damit ich eine Vorstellung habe, ob ich in die richtige Richtung denke.

@Jens:
zu 1.: NI PCI-6052E habe ich bei mir im Rechner, genau wegen dieser Aussage habe ich mir das VI geschrieben, um mehrere Kanäle kurz nacheinander abzufragen.
zu 2.: da hab ich oftmals Probleme gehabt. Z.B. wurden dann andere Kanäle nicht mehr abgefragt oder es kam eine Fehlermeldung. Ist schon ne Weile her seit ich das geschrieben habe (Mussten es bisher immer so verwenden.) und weiß keine Einzelheiten mehr darüber.
zu 3.: Meinst du mit in der Luft hängen, dass sie durch die Case Struktur dann nicht mehr abgefragt werden? (zwei Tasks auf ein Stopp) -> da ja durch die Casestruktur sowieso nur ein Task weitergeleitet wird.

Gruß
Robin
Offtopic2
Und warum schließt du eine lokale Variable an den Formula Nodes an, wo doch das eigentliche Anzeigeelement auch direkt daneben beschrieben wird? Schließ doch den Datenausgang auch direkt am Formula Node an...sonst weißt du nämlich sowieso nicht, ob erst der Node mit einem evtl. "alten" Variablen-Eingang ausgeführt wird und dann erst die Variable selbst vom Read neue Daten bekommt oder ob es umgekehrt ist...

A.
Ich meinte so:

[attachment=22617]

Gruß Markus
Seiten: 1 2
Referenz-URLs