Hallo zusammen,
ich bin ein Neuling in Sachen Labview und soll im Rahmen meiner Bachelorarbeit ein Programm schreiben, mit dem ich einen Spannungsverlauf aufnehmen und abspeichern kann. Später soll dieser Spannungsverlauf dann genau so wiedergegeben werden. Zur verfügung habe ich dazu das NI 9205 und das NI 9264 sowie ein NIcDAQ-9174.
Die Aufnahme der Spannungskurve und das Schreiben der Werte habe ich soweit schon hinbekommen und ist in der Abbildung "Aufnahme" zu sehen. Auch die Datenrate von min 20kHz wird eingehalten.
Das mit der Ausgabe bekomme ich allerdings nicht hin. In der Abbildung "Ausgabe" ist dazu einer meiner Ansätze zu sehen. Ich habe schon verschiedenes versucht. Mit einer While-Schleifen die durch einen Button beendet wird, habe ich es zumindest schon so weit geschafft, dass die Kurve solange immer wieder abgespielt wird, bis ich das ganze abbreche. Wenn ich versuche die While-Schleife auf andere weisen zu beenden passiert nichts und die Spannung behält den Startwert.
Mein Ziel ist es, dass die Kurve bei Anforderung ein Mal ausgegeben wird und dann die Endspannung behält.
Ich hoffe mein Ausführungen sind halbwegs verständlich..
Für jede Hilfe und jeden Tipp bedanke ich mich schonmal im voraus!
Schöne Grüße
Sabrina
Hallo Sabrina,
, denn mit LV7.1 arbeitest du da nicht!
- Warum verwendest du bei der Ausgabe den DDT?
- Musst du wirklich jedesmal eine TDMS-Datei lesen, wenn du eine Waveform ausgeben willst?
- Warum ist dein "Pfad Messdatei" ein String und kein Pfad?
- Ich sehe kein Fehlermanagement bei der Ausgabe… Gibt es Fehlermeldungen?
Zitat:Wenn ich versuche die While-Schleife auf andere weisen zu beenden passiert nichts und die Spannung behält den Startwert.
Sowas kann man nicht kommentieren, wenn man die "andere Weise" nicht kennt…
Hallo Gerd,
ja stimmt. Ich benutzte Labview 14.0 und habe es soeben korrigiert! Danke für die Info.
Zitat:- Warum verwendest du bei der Ausgabe den DDT?
Öhm.. wofür steht die Abkürzung DDT?
Zitat:- Musst du wirklich jedesmal eine TDMS-Datei lesen, wenn du eine Waveform ausgeben willst?
Ich denke schon, dass ich das muss. Weil ich ja jedes mal genau ein Mal eine bestimmte Waveform ausgeben möchte und danach halt die nächste.. Bitte korrigiert mich, falls ich mich irre oder es eine bessere Lösung gibt!
Zitat:- Warum ist dein "Pfad Messdatei" ein String und kein Pfad?
Den Pfad lese ich aus einer Exceltabelle aus. Zusammen mit mehreren anderen Angaben, wie z.B. der Name des Mitarbeiter, der die Aufnahme gemacht hat und eine Beschreibung der Aufnahme usw. beim einmaligen Auslesen der Exceltabelle schreibe ich alles in ein String-Array.
Zitat:- Ich sehe kein Fehlermanagement bei der Ausgabe… Gibt es Fehlermeldungen?
Das Fehlermanagement habe ich gerade nachgepflegt. Es liegen keine Fehler vor.
Und das mit der While-Schleife habe ich nur angedeutet, damit rüberkommt, dass ich schon einiges versucht habe und ich mit meinem Latein am Ende bin.. Ich weiß gerade nicht mehr weiter und auch nicht mehr was ich noch versuchen kann...
Danke für die schnelle Antwort!
Schöne Grüße
Sabrina
Hallo Sabrina,
Zitat:Das Fehlermanagement habe ich gerade nachgepflegt. Es liegen keine Fehler vor.
Wenn keine Fehler vorliegen, dann wird eine TDMS-Datei gelesen, aus dieser Datei ein Signalverlauf entnommen und auf mehreren Ausgabekanälen ausgegeben.
Wenn keine Fehlermeldung kommt, dann sollte all das funktionieren…
Wir wissen weder, wie deine TDMS-Datei aussieht, welche Daten sie enthält, wie dein DAQmx-Task definiert ist, wann diese Routine aufgerufen wird, …
Hallo Gerd,
Hm okay... Ich werde mich morgen dransetzen alles so gut es geht hier zu beschreiben!
Also wenn der 2. Screenshot das Speichern ist, dann wird das Lesen, so wie du es programmiert hast (mit dem Dynamic Data Type), nicht funktionieren. Wenn du ein 2D-Array schreibst, dann musst du auch ein 2D-Array lesen!
Gruß, Jens
Hallo nochmal,
Da ich bisher zu keiner Lösung gekommen bin werde ich jetzt versuchen so gut es geht mein Programm zu beschreiben.
Der Teil der mir das Problem macht habt ihr ja schon gesehen. Ich habe gerade noch von DDT zum 2D-Array gewechselt, wie Jens es vorschlug, aber das hat leider auch nicht geholfen. Prüfe ich die 2D-Array-Leitung direkt vor dem DAQmx Write Baustein wird mir auch genau mein Verlauf angezeigt. Auf meinem Multimeter tut sich aber gar nichts.. Beim NI cDAQ-9174 leuchtet lediglich kurz (ca. 0,5s) die Leuchte ACTIVE
Um meinen Programmteil zur Ausgabe passiert nichts. Ich möchte einfach auf "Sequenz starten" drücken und die Spannungskurve ausgeben. Die Exceltabelle wird in einer anderen Case-Anweisung abgefragt und auch nur wenn ich einen weiteren Button drücke.
Mein Task zur Aufnahme hat folgende Einstellungen:
2 Kanäle
Min = 0V
Max = 5V
Schaltungsart: Differentiell
Erfassungsmodus: Kontinuierlich
Zu lesende Werte: 1
Rate (Hz): 21k
Mein Task für die Ausgabe sieht derzeit wie folgt aus:
2 Kanäle
Min = 0V
Max = 5V
Schaltungsart: RSE
Signalerzeugungsmodus : Kontinuierlich
Zu schreibende Werte: 1
Rate: 21k
Zwischendurch habe ich aber auch versucht die zu schreibenden Werte hochzusetzen, sowie den Signalerzeugungsmodul auf Endliche Anzahl zu stellen. Das hat aber auch nichts gebracht..
Meine Messdatendatei habe ich mal als Exceldatei in den Anhang gepackt..
Ich hoffe ich konnte mein Programm gut genug beschreiben und man kann mir helfen!
Grüße
Sabrina
Hallo Sabrina,
statt der Messdaten wäre ein VI hilfreich…
Und was sollen uns die Messdaten sagen? Ein Kanal verringert seinen Wert, der andere erhöht ihn etwas später…
Hallo zusammen,
Zitat:Und was sollen uns die Messdaten sagen?
ich weiß auch nicht was euch die Messdaten sagen kann.. ich dachte nur ich füge es hinzu, weil du meintest:
Zitat:Wir wissen weder, wie deine TDMS-Datei aussieht
Naja gut.. Dann werde ich wohl doch mal meine VIs hier hochladen. Eigentlich ist mir das etwas peinlich, weil ich wie gesagt ein blutiger Anfänger bin und mein Programm so zusammengeschustert ist.. aber da muss ich jetzt wohl durch, weil ich sonst nie eine Lösung finde!
Danke nochmal an die Helfenden!