LabVIEWForum.de - Spannung und Strom erfassen

LabVIEWForum.de

Normale Version: Spannung und Strom erfassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo lieber Freunde :-)

ich bin noch anfänger in Labview und muss eine Datenerfassungskart für ein Projekt mit den entsprechen DAQmx zum lesen und schreiben auf die Ein- und Ausgänge anwenden.

Bevor ich das Programm für die Messung anpasse und entwickle, soll ich zuerst eine einfach Sinuns Funktion (Analog Voltage) auf dem Output der Datenerfassungskarte schreiben und an Input der Karte zwei kanäle Konfigurieren (Spanungskanal und Stromkanal) zum lesen, so dass wenn ich der Output mit der Input der Karte verbinde lese ich Grafisch zwei Signalen Spanung und Strom. Strom= Spanung/R(Konstante)

Dabei soll ich eine höhere Samplingsrate anwenden auch nur genau so viele Samples lesen, wie eine Periode des Sinus bei der gewünschten Frequenz braucht.und optimal wäre es wenn das Signal des Stromkanals gleich in Ampere umgerechnet wird :-)
Zusammengefasst: ein Sinus Signal auf dem Output schreiben und duch zwei Kanäle am Input lesen.

Schaut euch bitte den Anhang an, ich habe damit schon angefangen ;-)
ihr könnt auch an das Programm ändern ;-)

Ich wäre euch sehr dankbar, wenn ihr mir dabei helfen könnt !!
vieleicht ist diese Aufgabe für die meistens von euch so einfach :D

VLG

Hallo Abu,

da ich dein VI gerade nicht öffnen kann, folgende Frage:
Wo sind im Einzelnen deine Probleme?
An welchem Punkt benötigst du Hilfe?

Im Moment klingt es für mich eher nach einem: "Ich hab da mal was programmiert, das läuft noch nicht und hoffe jemand macht es mir fertig."
Falls dem so ist, wirst du dir an uns die Zähne ausbeissen. Smile

Also, frag nochmal etwas detaillierter nach, das erhöht die Chance, dass du deiner Lösung schnell näher kommst und dabei ne Menge lernen kannst.

Gruß,
//Tobias

PS: Gerne zu deinem VI auch immer einen Screenshot dazu hochladen, dann haben Leute ohne Zugriff auf LabVIEW auch die Möglichkeit Hilfestellung zu bieten.
Danke Tobias für deine Anwort :-) und sorry wenn das so ankommen ist ;-)

ich benutzt Labview seit kurzer zeit und kann deswegen das Problem manchmal nicht so gut beschreiben, aber ich bemühe mich Big Grin

Mein Problem liegat darin, wie kann ich gleichzeitig zwei Signale (Spannung und strom) durch den write DAQmx auf dem Output schreiben (erste Frame bzw Bild). ?

und zweite Frage ist, wie konfiguriert man zwei kanäle, so dass zb der erste Signal (Spannung) auf dem erste Kanal und der zweite (Strom) auf dem zweite Kanal geschrieben wird.(zweite Frame) ?

Meine dritter Frage ist: wie kann ich genau so viele Samples lesen, wie eine Periode des Sinus bei der gewünschten Frequenz braucht, soll man das was programmieren ?

Bilder sind unter dem folgenden Link -->
https://dl.dropboxusercontent.com/u/3296...sen%20.rar

VLG
Hallo Abu,

Anhänge immer hier im Forum hochladen, nicht auf irgendwelchen externen Seiten...

1. Indem man dem Task zwei Kanäle hinzufügt und beim DAQmxWrite dann ein Array mit 2 Spalten bereitstellt.

2. Siehe 1. Außerdem kann man den Kanälen eine Skalierung verpassen, dann muss man nicht selbst umrechnen.

3. Beim DAQmxRead kann man die Anzahl der Samples vorgeben...

Allgemein:
LabVIEW liefert zu DAQmx jede Menge Beispiele mit. Schau sie dir an, da werden (auch) deine Fragen geklärt!

Zu deinen Bildern:
- Sequenzen sind unnötig, wenn man auf den DATAFLOW vertraut!
- Lokale Variablen sind hier eher hinderlich und führen schnell zu RaceConditions!
- Wenn du mehrere Kanäle mit mehreren Samples ausgeben willst (Frame 0), solltest du bei DAQmxWrite "NChan NSamples" wählen und ein 2D-Array mit Daten bereitstellen...
Danke GerdW, deine infos haben mir weiter geholfen :-)

Aber jtz bei ausführen kommt die folgend Fehlermeldung
"Write cannot be performed, because the number of channels in the data does not match the number of channels in the task.When writing, supply data for all channels in the task. Alternatively, modify the task to contain the same number of channels as the data written."

und in meinem projekt kommt es doch darauf an, dass ich für den Output nur eine Kanal einsetze und für den Input zwei kanäle !!

oder ich verstehe es irgendwie falsch !!?Sad
Hallo Abu,

Zitat:in meinem projekt kommt es doch darauf an, dass ich für den Output nur eine Kanal einsetze und für den Input zwei kanäle

Weiter oben hast du geschrieben:
Zitat:wie kann ich gleichzeitig zwei Signale (Spannung und strom) durch den write DAQmx auf dem Output schreiben
Also was nun? Ein Kanal am Output oder doch zwei?

- In deinem VI ist nur ein Output-Kanal gesetzt: "Dev2/ao0". Du musst dann natürlich DAQmxWrite mit "1Chan NSamples" aufrufen!
- In deinem VI ist nur ein Input-Kanal gesetzt: "Dev2/ai0". Wenn du aber zwei Kanäle einlesen willst, solltest etwas in der Art von "Dev2/ai0:1" schreiben...
- Beim DAQmxRead hast du beim SampleTiming "Finite Messung" mit 250kS/s und 1000 abzufragenden Samples konfiguriert. Mit dem darauffolgenden DAQmxRead liest du aber nur ein einziges Sample pro Kanal ein. Wozu dann die Samplerate-Definition?
Zuerst dankeschön für deine Antwort GerdW :-)
:-( , ich habe mich falsch ausgedrückt, tut mir leid :-(

Also es soll durch den Output der Karte eine Sinus-Signal eingegeben auf einem Kanal und am Input der Karte sollen zwei kanäle konfiguriert werden.
auf einem Kanal soll die Spanung (quasi die eingegebene Sinuns) und auf dem Anderen den Strom gelesen werden. I=U/R(Konstante).

ich weiß nicht, ob man es wie in Anhang realisieren kann ?? leider bis jetzt bekomme ich keine vernünftige Stromwerte !
Hallo Abu,

in deinem VI ist etwas "unlogisch":
Nach der Messung von Spannung und Strom dividierst du die Spannungswerte durch eine Arraykonstante, um den Strom zu berechnen. Die Werte in der Arraykonstante sehen aber etwas "komisch aus":
[attachment=46717]
- Erstens enthält dieses Array nur 3 Werte: Wenn du ein Array mit unbekannter Länge durch ein Array mit 3 Elementen dividierst, bekommst du als Ergebnis ein Array mit maximal 3 Werten! Und das bei 250kHz Samplerate...
- Zweitens ist die Division durch Null mathematisch gesehen Blödsinn. Einen supraleitenden "Widerstand" wirst du ja wohl nicht verbaut haben...
- Drittens kann man dank Polymorphismus sehr gut ein Array durch einen einzelnen Wert dividieren, probier es einfach mal aus!
Ach wie blöd bin ich !!

Danke sehr für deine Hinweise, ich habe es probiert und es klappt :-)

Vielen vielen Dank !!
Referenz-URLs