INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

DAQmx & PFN_LIST_CORRUPT Bluescreen



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!

13.01.2009, 14:28
Beitrag #1

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
Hallo,
ich habe eine Applikation in der ich mit DAQmx Funktionen und Timed Loops arbeite. Das VI läuft ohne Einschränkungen und macht auch genau was es machen soll. Wenn ich nun aber das VI bzw. LabVIEW schließe, wird ein Bluescreen erzeugt mit der Beschreibung PFN_LIST_CORRUPT. Laut meinen Google-Recherechen hat es etwas mit dem RAM oder Harddisk zu tun. Hatte jemand schonmal ein ähnliches Problem? Ich kann mir das momentan nicht erklären.

Achso meine verwendete Hardware: NI PCI-6221 (37-Pin).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.01.2009, 15:03
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
Versuch' mal mit einem einfachen Beispielprogramm aus dem Examplefinder Deine Hardware anzusteuern und schau', ob das gleiche passiert.
Wenn Du da das Problem auch hast, dann teste Dein PCI-6221 mal auf einem anderen Rechner.
Wenn Du da das Problem auch hast, dann würde ich mal bei NI nachhaken, ob die was dazu wissen. Vielleicht ist die Karte ja kaputt.

Gruß Markus

' schrieb:Hallo,
ich habe eine Applikation in der ich mit DAQmx Funktionen und Timed Loops arbeite. Das VI läuft ohne Einschränkungen und macht auch genau was es machen soll. Wenn ich nun aber das VI bzw. LabVIEW schließe, wird ein Bluescreen erzeugt mit der Beschreibung PFN_LIST_CORRUPT. Laut meinen Google-Recherechen hat es etwas mit dem RAM oder Harddisk zu tun. Hatte jemand schonmal ein ähnliches Problem? Ich kann mir das momentan nicht erklären.

Achso meine verwendete Hardware: NI PCI-6221 (37-Pin).

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2009, 14:18
Beitrag #3

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:Versuch' mal mit einem einfachen Beispielprogramm aus dem Examplefinder Deine Hardware anzusteuern und schau', ob das gleiche passiert.
Wenn Du da das Problem auch hast, dann teste Dein PCI-6221 mal auf einem anderen Rechner.
Wenn Du da das Problem auch hast, dann würde ich mal bei NI nachhaken, ob die was dazu wissen. Vielleicht ist die Karte ja kaputt.

Gruß Markus
Danke für deine Antwort.
Ich glaube ich habe den Fehler gefunden. Wir benutzen ein Toplevel VI, was unsere Module managed. Das große Problem an diesem Modul ist, dass es wenn man auf Exit klickt einfach LabVIEW beendet auch wenn noch VI's laufen. Ich habe mal ein LabVIEW Example laufen lassen und bin zum "Getting Started" Window. Dort habe ich einfach wärend der Laufzeit des VI's LabVIEW beendet. Siehe da, die gleiche Fehlermeldung. Jetzt dachte ich mir, wenn ich mein VI nicht als Sub VI einbinde sondern dynamisch aufrufe, könnte ich umgehen das mein VI welches mit der NI Karte Kommuniziert einfach abgebrochen wird.

Es ist doch so, dass dynamisch geladene VI's (Call by reference) nach der Ausführung und schließen der Referenz nicht mehr im Speicher sind, oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2009, 14:24
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:Das große Problem an diesem Modul ist, dass es wenn man auf Exit klickt einfach LabVIEW beendet auch wenn noch VI's laufen.
Und da wundert ihr euch?Rolleyes

Zitat:Es ist doch so, dass dynamisch geladene VI's (Call by reference) nach der Ausführung und schließen der Referenz nicht mehr im Speicher sind, oder?
Erstens:
Darauf würde ich mich nicht verlassen.
Zweitens:
Was glaubst du wohl, was passiert, wenn du die Referenz einfach löscht und damit das VI hart abbrichst? Irgendwas in diesem VI wird wieder falsch laufen.

Es gibt nur eine sinnvolle Möglichkeit: Der Reihe nach alles beenden. Zuletzt LV.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2009, 14:28
Beitrag #5

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:Und da wundert ihr euch?Rolleyes
Dafür kann ich nix. ;-) Habs schon als Verbesserungsvorschlag angebracht.

' schrieb:Erstens:
Darauf würde ich mich nicht verlassen.
OK

' schrieb:Zweitens:
Was glaubst du wohl, was passiert, wenn du die Referenz einfach löscht und damit das VI hart abbrichst? Irgendwas in diesem VI wird wieder falsch laufen.

Es gibt nur eine sinnvolle Möglichkeit: Der Reihe nach alles beenden. Zuletzt LV.
Du hast mich glaub ich falsch verstanden. Ich selbst rufe das VI, welches mir die Kommunikation mit der NI Karte regelt nun dynamisch auf und schließe nach dem aufruf nur diese Referenz. Leider hat es nicht den erwünschten Erfolg gebracht.

Hat noch jemand einen Vorschlag?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2009, 16:22 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2009 16:32 von jg.)
Beitrag #6

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
Ich hab den Fehler nun eingegrenzt. Der Bluescreen wird von meiner Timing Source erzeugt. Ich synchronisieren zwei Timed Loops und wenn diese Ihre Arbeit getan haben, werden die Tasks wieder gestoppt und gelöscht. Aber irgendwie scheint genau das nicht so ganz zu funktionieren. Die Timed Loops arbeiten korrekt, aber ich bekomme einen Bluescreen wenn ich mein VI mit der X Taste schließe (obwohl das Sub VI mit den Timed Loops bereits beendet (ohne Fehlermeldung) ist). Verwende ich nun statt des Hardwarecounters das Daqmx VI "Create Timing Source.vi" läuft alles ohne Probleme. Das klingt jetzt alles etwas kompliziert, darum habe ich mal 2 Screenshots zur Verdeutlichung hochgeladen:
Funktioniert:
   

Funktioniert nicht:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.01.2009, 16:19
Beitrag #7

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:Ich hab den Fehler nun eingegrenzt. Der Bluescreen wird von meiner Timing Source erzeugt. Ich synchronisieren zwei Timed Loops und wenn diese Ihre Arbeit getan haben, werden die Tasks wieder gestoppt und gelöscht. Aber irgendwie scheint genau das nicht so ganz zu funktionieren. Die Timed Loops arbeiten korrekt, aber ich bekomme einen Bluescreen wenn ich mein VI mit der X Taste schließe (obwohl das Sub VI mit den Timed Loops bereits beendet (ohne Fehlermeldung) ist). Verwende ich nun statt des Hardwarecounters das Daqmx VI "Create Timing Source.vi" läuft alles ohne Probleme. Das klingt jetzt alles etwas kompliziert, darum habe ich mal 2 Screenshots zur Verdeutlichung hochgeladen:
Funktioniert:
[attachment=43841:Timed_Lo...tioniert.jpg]

Funktioniert nicht:
[attachment=43842:Timed_Lo...rt_nicht.jpg]

Niemand eine ahnung was ich vergessen haben könnte?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.01.2009, 16:59
Beitrag #8

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:Niemand eine ahnung was ich vergessen haben könnte?

Ich würde einfach (und weil du alle Tasks auf einer Karte laufen läßt ist es tatsächlich sehr einfach) die ganze AI/AO Geschichte auf Hardware-Timing umstellen und und auf die Timed Loops komplett verzichten. Beispiele dazu wie das geht gibt's im Example Finder ...

Ich versteh sowieso nicht warum immer wieder Timed Loops statt richtigem Hardware-Timing verwendet werden, nur weil es 'n büschen "komplizierter" ist das zur programmieren?? Ich kann die Dinger nicht leiden. Die einzige Verwendung wo Timed Loops tatsächlich Sinn machen ist IMHO im FPGA Modul wenn man die Singe Cycle Timed Loop verwendet um die Ausführungs-Geschwindigkeit zu optimieren ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 08:30
Beitrag #9

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:Ich versteh sowieso nicht warum immer wieder Timed Loops statt richtigem Hardware-Timing verwendet werden, nur weil es 'n büschen "komplizierter" ist das zur programmieren??
Ich fand eigentlich das es sehr einfach war die zu programmieren. Da ich hier bereits alles habe was ich für meine Applikation brauche (Offset, High-, Lowtime). Aber deine Anregung finde ich nicht verkehrt.

' schrieb:Ich würde einfach (und weil du alle Tasks auf einer Karte laufen läßt ist es tatsächlich sehr einfach) die ganze AI/AO Geschichte auf Hardware-Timing umstellen und und auf die Timed Loops komplett verzichten. Beispiele dazu wie das geht gibt's im Example Finder ...
Bei mir sind es DI/DO. Mit Hardware-Timing habe ich allerdings noch keine Erfahrung. Werde mir mal die Examples ansehen. Danke schonmal.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2009, 10:26
Beitrag #10

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:Ich fand eigentlich das es sehr einfach war die zu programmieren. Da ich hier bereits alles habe was ich für meine Applikation brauche (Offset, High-, Lowtime). Aber deine Anregung finde ich nicht verkehrt.
Bei mir sind es DI/DO. Mit Hardware-Timing habe ich allerdings noch keine Erfahrung. Werde mir mal die Examples ansehen. Danke schonmal.

ich hab grad mal n büschen rumprobiert und komme zu folgendem Ergebnis:

das wird schon etwas kniffliger und bei DI/DO sieht es tatsächlich so aus als müsstest du tatsächlich auf (IMHO die schlechteste aller Lösungen) Software-Timing zurückgreifen, es sei denn du hast
2 Messkarten, die in der Lage sind gepufferte DIO-Operationen auszuführen, oder eine Messkarte die auf 2 Ports gepufferte DIO Operationen ausführen kann (weiß nicht ob NI so eine im Programm hat)

Hintergrund: Hardware-Timing beruht mehr oder weniger darauf, dass man die Karte einmal "richtig" einstellt und die Karte das "harte Timing" machen läßt und mehr oder weniger "locker" einmal innerhalb eines Datenblocks liest oder schreibt. Beispiel: Analoge Erfassung mit 1000 Hz, Blockgröße 100 Samples => alle 100 ms (= Loop-Rate der Lese-Schleife von 10 Hz) holt man einmal Daten ab. Die Karte macht die schnelle Arbeit, die CPU ist relativ gelangweilt mit alle 100 ms mal 100 Werte in den Hauptspeicher übertragen. Bei Software Timing schreibt man (je nach einstellung, ich beschreib jetzt mal den schlechtesten Fall) jeden Wert als Single-Update auf die Messkarte bzw. holt jeden Wert einzeln hab, das ist jedes mal (mindestens ein) ein DLL function call, Kommunikation über den PCI-Bus, etc und das mit der vollen Sample-Rate

Aber: es gibt eine Alternative, die vielleicht gar nicht mal so schlecht ist:
mach die digitale Ausgabe mit einem analogen Ausgang, es ist ja nicht verboten immer 0 Volt oder 5 Volt auszugeben (und kannst sogar noch deinen TTL-Pegel manipulerenWink). Dann hast du einen gepufferte analoge Ausgabe und eine gepufferte digitale Erfassung, du kannst das ganze als synchronisierte Tasks auf der Karte laufen lassen und brauchst kein Software-Timing. Leider unterstützen gepufferte digitale Tasks (ich hab's mit einer 6259 getestet) keine start-Trigger, darum muss man sich als Krücke noch mit einem selbst erzeugten, externen Messtakt behelfen den man mit einem Counter erzeugt ...


   


Sonstige .zip  Syn_DI_DO_Example.LV851.zip (Größe: 44,31 KB / Downloads: 201)

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: