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!

22.01.2009, 12:55
Beitrag #11

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 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 ...
[attachment=43897:sync_di_do.png]

[attachment=43896:Syn_DI_D...le.Lv85_img1.zip]
Danke für die interessante Ausführung. Die Idee Analoge Ausgänge mit den entsprechenden Pegel auszugeben ist simple und das wiederum ist super:DDas müsste ich mal ausprobieren. Ich verwende eine PCI-6221 (37Pin) Karte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.01.2009, 17:31
Beitrag #12

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:Danke für die interessante Ausführung. Die Idee Analoge Ausgänge mit den entsprechenden Pegel auszugeben ist simple und das wiederum ist super:DDas müsste ich mal ausprobieren. Ich verwende eine PCI-6221 (37Pin) Karte.

du kannst es direkt ausprobieren, in dem du das Beispiel runterlädstWink

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
02.02.2009, 10:49
Beitrag #13

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
DAQmx & PFN_LIST_CORRUPT Bluescreen
' schrieb:du kannst es direkt ausprobieren, in dem du das Beispiel runterlädstWink
Ok, dein Beispiel funktioniert super. Ich habs aber irgendwie nicht richtig verstanden. Kann ich die Schaltzeiten irgendwie zur laufzeit ändern? Z.b. das ich 100ms High und 50ms Low Abstände habe?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: