LabVIEWForum.de - Probleme mit DMA/Interrupt + Darstellung

LabVIEWForum.de

Normale Version: Probleme mit DMA/Interrupt + Darstellung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich möchte mit LabVIEW 7 mittels 3 DAQ-Assistenten und der NI-Messkarte BNC 2090 folgende Aufgaben bewältigen: 7 mal anloge Eingangsspannung (0-10 V) einlesen, 1 mal Analogausgangsspannung setzen (0-10 V) und digitale Frequenzmessung (0-130 kHZ, möglichst mit beiden verfügbaren Zählern der Karte).
Mein Problem ist, dass sobald ich den 3ten DAQ-As. hinzufüge und starte immer ein Fehler kommt, dass nicht genügend DMA-Kanäle zur Verfügung stehen. Ist da die externe Karte selbst die Ursache oder der Computer (ich glaube mit Isa-Einsteckkarte)? Ich habe versucht die Karte auf Interrupt-Betrieb umstellen, welche Einstellung ich aber nicht gefunden habe, macht man das im Automation-Explorer, bei den Windows (NT SP 6) - Einstellung oder im LabVIEW selbst bzw. wie kann ich das Problem lösen?
Und ein weiteres Problem tritt bei der Diagramm-Darstellung auf, es werden immer nur die 100 Messwerte der 7 analogen Eingänge dargestellt (=100 ms bei 1000 Hz Abtastung) und dann beginnt der Graph wieder bei der Zeit 0 (obwohl er es in der Datei mit fortlaufender Zeit speichert). Wenn ich es mit relativer Zeit probiere läuft es zwar ordentlich, fängt aber immer bei einer sehr großen Zahl um die 3 Mio. an zu zählen und nicht bei 0. Ich habe schon Graph und Diagramm probiert, bekomme es aber nicht ordentlich hin, es soll halt bei jeder Messung bei 0 beginnen und die Sekunden bis zum Programmabbruch hochzählen. Was kann ich da noch machen?

Würde mich freuen, wenn mir jmd. paar Tipps geben könnte, bin noch LabVIEW-Anfänger Rolleyes
' schrieb:Hallo,
ich möchte mit LabVIEW 7 mittels 3 DAQ-Assistenten und der NI-Messkarte BNC 2090 folgende Aufgaben bewältigen: 7 mal anloge Eingangsspannung (0-10 V) einlesen, 1 mal Analogausgangsspannung setzen (0-10 V) und digitale Frequenzmessung (0-130 kHZ, möglichst mit beiden verfügbaren Zählern der Karte).
Mein Problem ist, dass sobald ich den 3ten DAQ-As. hinzufüge und starte immer ein Fehler kommt, dass nicht genügend DMA-Kanäle zur Verfügung stehen. Ist da die externe Karte selbst die Ursache oder der Computer (ich glaube mit Isa-Einsteckkarte)? Ich habe versucht die Karte auf Interrupt-Betrieb umstellen, welche Einstellung ich aber nicht gefunden habe, macht man das im Automation-Explorer, bei den Windows (NT SP 6) - Einstellung oder im LabVIEW selbst bzw. wie kann ich das Problem lösen?
Und ein weiteres Problem tritt bei der Diagramm-Darstellung auf, es werden immer nur die 100 Messwerte der 7 analogen Eingänge dargestellt (=100 ms bei 1000 Hz Abtastung) und dann beginnt der Graph wieder bei der Zeit 0 (obwohl er es in der Datei mit fortlaufender Zeit speichert). Wenn ich es mit relativer Zeit probiere läuft es zwar ordentlich, fängt aber immer bei einer sehr großen Zahl um die 3 Mio. an zu zählen und nicht bei 0. Ich habe schon Graph und Diagramm probiert, bekomme es aber nicht ordentlich hin, es soll halt bei jeder Messung bei 0 beginnen und die Sekunden bis zum Programmabbruch hochzählen. Was kann ich da noch machen?

Würde mich freuen, wenn mir jmd. paar Tipps geben könnte, bin noch LabVIEW-Anfänger Rolleyes

uiuiuiui ... mal vorweg:
das BNC 2090 ist ein Anschlusspanel, gedacht für E-Serie Messkarten, man kann aber auch eine M-Serie anschließen.

Für DAQ-Assistenten gilt: am besten nur einen pro VI verwenden, und ich möchte noch hinzufügen, dass man den DAQ-Assistenten erst dann benutzen sollte, wenn man weiß, wie was wann und warum man messen will.

Wenn du tatsächlich noch eine ISA-Karte verwendest, dann muss es sich ja eigentlich um eine alte AT-MIO-xx handeln. Da hilft dir der DAQ-Assistent gar nicht weiter, weil diese Karten von DAQmx nicht unterstützt werden. Da du aber offensichtlich Daten einlesen kannst (mit einem DAQmx-Task) hab ich nun wiederum Zweifel daran, dass es eine AT-MIO-xx Karte ist ??Wacko

Für das Hochzählen bis zum Abbruch der Messung brauchst du vermutlich sowas wie einen Ringspeicher, oder du schreibst die Daten alle auf die Platte. Bei Messungen unbestimmter Länge rate ich davon ab alle Samples in den Hauptspeicher des Rechners zu schreiben.

Wenn du als Datentyp der Erfassung "Waveform" auswählst und die Daten in einem Waveform-Graph (zu deutsch Signalverlaufs-Diagramm) anzeigen läßt, dann sollte der Zeitstempel korrekt angezeigt werden ...
Hallo und danke erstmal,
wie, wann und was ich messen will ist klar: es soll über einen analogen Ausgang die Solldrehzahl vorgegeben werden für eine ASM mit angeschlossener Hydraulikpumpe. Gleichzeitig sollen analog 2 Drücke, 2 Volumenströme, das Drehmoment, die Temperatur und die elektr. Leistung gemessen werden und weiterhin digital die Drehzahl. Ich mach dies im Rahmen einer Studienarbeit an der Uni und hab vorher noch nicht mit so einer NI-Karte gearbeitet, dass es eine Isa-Karte ist hab ich nur vermutet, da im Bios Einstellung dafür gemacht waren, muss aber nicht sein. Auf jeden Fall kann ich im Moment die analoge Spannung ausgeben und gleichzeitig 7 Kanäle mit 2 DAQ einlesen (allerdings manchmal noch mit Fehlermeldung nach einer Weile).
Wie kann ich denn den DAQ-As. umgehen, um zum Beispiel die Zähler für die Frequenzmessung auszulesen? Oder muss ich für jeden DAQ ein eigenes VI machen und diese untereinander mit globalen Var. verbinden?
Eine weitere Frage wäre noch, ob es Flip Flops bzw. latch in LabVIEW gibt? Es geht darum das bei einen kurzen 0-1-0 Impuls (= bei Änderung der Sollwertvorgabe) der Ausgang dauerhaft auf 1 gehalten werden soll. Ich hatte das über das Ersatzschaltbild eines latches mit 4 Nand-Gliedern gemacht, was zwar funktioniert, aber sicher auch einfacher geht?
Wegen den Graph muss ich nochmal schauen, mit der Speicherung klappt es soweit ganz gut.

Würde mich über weitere Antworten freuen, Joster Smile
noch zur Info: es ist ein BNC 2090 Panel und eine PCI-6014 B-Serie-Messkarte, ich nutze DAQmx.
Die Karte hat nur einen DMA-Kanal laut Datenblatt, den sich alle Resourcen teilen. Wie schon oben beschrieben kommt es bei der Nutzung von mehr als 2 DAQ-Assistenten zu einer Fehlermeldung, dass die DMA-Kanäle nicht ausreichen (3 brauche ich). Die Umstellung auf Interrupt über einen Baustein im Blockdiagramm habe ich versucht, wird aber so nicht von der Hardware unterstützt, im MAX habe ich aber auch keine Umstellmöglichkeit gefunden.
Wie kann ich das Problem lösen, um gleichzeit digital und analog auszulesen und analog zu schreiben ???
Referenz-URLs