LabVIEWForum.de - Keithley2000 Messdatenerfassung

LabVIEWForum.de

Normale Version: Keithley2000 Messdatenerfassung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11
Hallo K2000,

Zitat:ok das verstehe ich. Aber wenn ich das richtig verstehe ändert das nichts am Programm selbst oder?
Das Programm bleibt im Grunde so, wie es ist.
Aber eben aufgeräumter und besser lesbar. Und mit passender Doku (subVI-Icon, VI-Description, …)!

Zitat:Weist du was genau Martin mit seiner Nachricht meint und hältst du das für richtig. Du kannst da glaube ich viel mehr herauslesen als ich. Vielleicht kannst du mir ja mit einem neuen VI helfen.
Ein VI kann ich dir nicht erstellen, ich habe den DeviceDriver nicht installiert (und auch nicht vor, das zu tun).

Zu Martins Message:
Zitat:Du konfigurierst einen Scan. Du löst jedoch keinen Trigger aus damit das Gerät den Scan auch durchführt. Dann stehen keine Daten mehr im Puffer und du bekommst auch nichts mehr. Du löst den Fehler indem du das Initialize innerhalb der While Schleife jedes mal durchführst. Dass das so Funktioniert ist auch eigenartig, ist aber erst einmal off-topic. Konfiguriere einen Trigger, lasse diesen Trigger zum Beispiel automatisch alle 10 Sekunden auslösen und dann bekommst du alle 10 Sekunden neue Daten vom Multimeter. Du kannst den Trigger auch als manuellen Trigger konfigurieren, jedoch musst du in diesem Fall in der While Schleife (vor dem auslesen der Daten) den Trigger manuell auslösen.
Das sehe ich auch so: so funktionieren Messgeräte nun einmal!
Du konfigurierst eine Messaufgabe (Scan) und musst diese Aufgabe eben auch starten (Trigger). Für diesen Trigger gibt es verschiedene Möglichkeiten, von "geht regelmäßig automatisch von allein" über "Befehl vom Computer aus"/"Signal von anderem Messgerät" bis hin zu "User muss Button am Gerät betätigen". Du willst wahrscheinlich "Befehl vom Computer senden" und musst das in deinem VI eben implementieren.

Nochmal: alles das steht im Manual zu deinem Messgerät. Die Manuals von Keithley habe ich als sehr gut/umfangreich in Erinnerung (auch mit dem K2000 habe ich schon gearbeitet)! Musst du eben mal lesen und dich einarbeiten: erst am Gerät die nötigen Schritte ausprobieren, dann die dazu passenden Befehle (und deren Optionen) im Manual nachlesen, dann das VI dazu erstellen…
(Das gehört dazu, wenn man Mess-Software erstellen will/soll/darf.)
Hallo ihr zwei,

ok, ich weis glaub was zu tun ist. Also mit einem Trigger starte ich quasi den Scan. In der Palette im Blockdiagramm gibt es auch noch den icon "configure trigger". Bedeutet das, dass ich den trigger zuerst konfiguriere, danach erst der eigentliche trigger kommt und dann das "configure scan". Oder reicht es einfach den passenden Trigger vor die Messaufgabe zu setzten ohne den Trigger zusätzlich zu konfigurieren?

Also in diesem Programm wird der Trigger nicht extra konfiguriert. Es läuft auch, aber was mich etwas verwirrt ist, dass auf dem Display des Gerätes die Channels mehrmals durchlaufen werden. Im Arraqy "Data" wird zwar alle 10 sekunden nur ein neuer Messwert pro Kanal angezeigt aber auf dem Display des Messgerätes sieht man, dass es mehrere Male die einzelenen Kanäle durchläuft. Hab euch mal rausgeschrieben was unter "Action Init Trigger" steht.

"This VI is used to initiate the trigger sequence of the instrument for single or continuous operation" (glaube das müsste der richtige trigger sein um den Scan zu triggern)


[attachment=61069]
Hallo K2000,

Zitat:Bedeutet das, dass ich den trigger zuerst konfiguriere, danach erst der eigentliche trigger kommt und dann das "configure scan". Oder reicht es einfach den passenden Trigger vor die Messaufgabe zu setzten ohne den Trigger zusätzlich zu konfigurieren?
Das weiß ich nicht.
Die Antwort steht aber sicher im Manual deines Messgeräts…
Hallo,

in diesem VI habe ich das "configure route" VI noch zugeschaltet und er misst immerhin nur einmal wie ich es will. Die Werte sind allerdings etwas unglaubwürdig. In der Kontexthilfe zu diesem VI steht " this VI controls the switch functionality of an internal or external scanner card. it can be used to open or close one or more channels. "
Note: "This is a polymorphig VI. You can wire a single channel number or an array of channel numbers to configure multiple channels at once "

Ich kann das zwar übersetzten aber so 100% verstehe ich nicht was das heißt und warum es funktioniert wenn ich dieses VI zuschalte.


[attachment=61070]
Also das mit einem Beispiel oder Änderung deines VIs ist etwas schwierig. Ich habe aktuell kein solches oder ähnliches Multimeter irgendwie griffbereit und auf gut Glück dir irgend etwas zu schicken ist so eine Sache. Es gibt da ein Beispiel-VI beim Treiber: "Keithley 2000 Read Single.vi", das zeigt es ganz gut.

Aber du bist ja schon auf dem richtigen Weg :-)

Erst einmal die vermutlich einfachere Variante, welche für dich vermutlich auch vollkommen ausreichend ist:

Erst die Messung und den Trigger konfigurieren: Beim Trigger den Eingang "Source" auf "Bus" stellen. Dann beginnt die Schleife. Dort drin das VI "Action Send Trigger.vi" ausführen und anschließend die Messdaten so wie bisher abholen.

Bei der nächsten Iteration wird dann auch erst "Action Send Trigger.vi" ausgelöst und anschließend die Messdaten gelesen.

Damit ist dann Öffen, Konfigurieren und das Schließen nicht mehr in der While-Schleife.

Ich habe mal das Beispiel "Keithley 2000 Read Single.vi" durch eine While Schleife ergänzt, damit du siehst, wie es gemeint ist.



Ich habe mal dein TRIGGERTEST2.vi Beispiel genommen und etwas modifiziert, so wie ich mir vorstelle, dass es funktionieren sollte.
Hallo Martin,

- danke für deine Hilfe aber leider funktioniert es nicht. Warum holst du diesen "action send trigger" ? Das Programm muss irgendwie anders aussehen. Also folgendes Programm funktioniert und er geht auch nur einmal jeden Kanal durch. Weis nicht ob ich da jetzt noch was ändern muss.

- Warum ist die Konfiguration in dem Beispiel "read single" in einer Case Struktur und "Daten lesen" ist außerhalb der Schleife usw..

- ich versuche dir mal nochmal kurz zu erläutern was mein Programm machen soll. Wenn ich auf den "Run button" drücke soll das Keithley2000 alle 10 sekunden jeden Kanal einmal messen und ausgeben. Ein Programm zur weiterverarbeitung bzw speicherung dieser Rohdaten hab ich bereits geschrieben. Das Keithley2000 soll solange messen bis ich den "Stopp Button" drücke. Beispielsweise ist dieser "Action send trigger" nur dafür da, dass ich jeden Messwert manuell aufnehmen muss, was ich aber ja nicht will. Da Programm soll einfach alle 10 Sekunden jeden Kanal einmal auslesen un die Werte ausgeben.


[attachment=61073]
Hatte ich geschrieben, dass das exakt so funktioniert? Ich glaube nicht :-)

Vom Prinzip her gesehen halte ich mich einfach an das Beispiel von Keithley und so hatte ich das auch beim überfliegen des Handbuchs verstanden. Im Detail kann es auch ein klein wenig anders sein. Das musst du anhand Handbuch und DMM herausfinden :-)

Im Moment gehe ich erst einmal davon aus, dass das Beispiel von Keithley funktioniert.

Sehe dir doch erst einmal die Beispiele zum Treiber im unveränderten Zustand genauer an. Es sind ja nur zwei sehr einfache Beispiele. Versuche nachzuvollziehen was dort gemacht wird (siehe dazu auch im Handbuch zum DMM). Von den Beispielen ausgehend kannst du dein Programm erstellen. Es hilft reichlich wenig, wenn du irgendwelche VIs aus dem Treiber zu einem Programm zusammen klickst - dafür ist dieses DMM einfach zu komplex.
Hallo Martin,

die Beispiele habe ich mir schon mehrfach angeschaut und die lesen entweder einen Wert aus einem Kanal oder 10 Werte aus einem Kanal. Aber du hast recht, irgendwie in dieser Art muss es ja gehen. Ich werde mal schauen was sich machen lässt. Danke für deine Hilfe
Ich hatte mit Absciht das Beispiel Keithley 2000 Read Single.vi herangezogen, weil nur dort der Trigger (Messung) über das VI Action Send Trigger.vi ausgelöst wird.

Im Beispiel Keithley 2000 Read Multiple.vi erfolgt die Auslösung des Triggers bereits in Configure Trigger.vi, weil dort als Source "Immediate" eingestellt ist.
Hallo nochmal,

also das mit dem Daten lesen klappt jetzt alles wie es sein soll. Ich muss nun ein Programm schreiben in dem die Rohdaten weiterverarbeitet (berechnet) werden. Ich habe einige Polynome von Temperatursensoren oder anderen Messfühlern. Des weiteren wird es Benutzereingaben auf dem Frontpanel geben, mit denen ebenfalls bestimmte Größen berechnet werden sollen. Bin dabei alles in einen Formelknoten reinzupacken. Mein Frage ist, wie verfährt man denn mit Sinus, Cosinus, Exponenten usw...? Und in wie weit ist es wichtig Klammern zu setzten? Könnte ihr mir vielleicht ein paar Beispielformeln schreiben, die man genau so in Labview eingeben könnte?
Seiten: 1 2 3 4 5 6 7 8 9 10 11
Referenz-URLs