Nach etlichen Versuchen habe ich es selbst herausgefunden.
Erst mit einem Befehl in das Stammverzeichnis und von da aus in das Unterverzeichnis. Wählt man nur das Unterverzeichnis an, so spring man immer zwischen Grundverzeichnis und Unterverzeichnis rum.
:FILE:DIRECTORY:CDIRECTORY "Stammverzeichnis";
:FILE:DIRECTORY:CDIRECTORY "Unterverzeichnis";
So klappt es bei mir.
Servus
Hallo Serial,
ich könnte mir vorstellen, das sowas im Manual zum Messgerät beschrieben wird…
Da hast du recht. Die SCPI Befehle stehen im Programmierhandbuch. Nur muss man erstmal rausfinden, wie das alles so klappt. Dauert halt etwas, aber es klappt dann irgendwann....
Es läuft jetzt soweit alles. Bloß noch ein kleines Problem.
Ich führe eine Messung durch und das Messgerät speichert die Messung automatisch auf der internen Festplatte. Jetzt möchte ich natürlich die Messdaten (in Form einer csv Datei ab besten) zum PC übertragen. Ich habe es per SCPI Befehlen so gemacht, dass der Lesepuffer des Messgerätes ausgelesen wird und in einer FOR-Schleife ein Array der Messdaten gebildet wird.
Dies ist jedoch umständlich, da ich schon ein Programm fertig habe, welches man nur mit einer csv Datei füttern muss. Außerdem dauert es ewig, bis der Lesepuffer alle Datenpunkte (können schonmal Millionen sein) übertragen hat.
Leider finde ich im Programming Handbook keinerlei Hinweise, ob und wie man eine bereits gespeicherte Datei vom Messgerät zu Labview überträgt.
Labview soll also den Speicher des Messgerätes als"externes Speichermedium" sehen. So will ich das machen.
Ist das überhaut möglich oder muss ich den Weg gehen den Lesepuffer auszulesen?
(das kann doch nicht so schwer sein eine Datei zum PC zu kopieren^^)
PS: Ich möchte keine Lösung für das Problem von euch, nur Hinweise die mich auf den richtigen Weg führen.
Gruß
Serial
Hallo Serial,
Zitat:(das kann doch nicht so schwer sein eine Datei zum PC zu kopieren^^)
Genau das sollte im Manual des Gerätes beschrieben sein. Wenn du Dateien im Gerät ablegen kannst, muss es auch eine Möglichkeit geben, diese zur Auswertung weiterzubenutzen!
Also: was sagt das Manual zu diesem Thema?
Zitat:Labview soll also den Speicher des Messgerätes als"externes Speichermedium" sehen. So will ich das machen.
"Wollen" allein reicht nicht. Das Gerät muss diese Möglichkeit auch anbieten/unterstützen…
Wenn sich das Gerät nicht als externes Speichermedium am PC anmeldet (also wie ein USB-Stick o.ä.), dann hast du schlechte Karten. Dann bleibt nur das direkte Lesen des Lesebuffers oder das nachträglich Transferieren der Dateien per SCPI-Befehl…
(04.04.2014 08:46 )Serial schrieb: [ -> ]Labview soll also den Speicher des Messgerätes als"externes Speichermedium" sehen. So will ich das machen.
Wollen ist schön und gut aber wahrscheinlich bleibt es dabei. Das Gerät meldet sich am PC als USBCDC (Communication Device Class) an (also ein virtuelle serielle Schnittstelle) oder eventuel als die mehr spezifisches USBTMC (Test & Measurement Class). Es ist sehr unwahrscheinlich, aber nicht völlig unmöglich, dass das Gerät sich auch als USBMSC (Mass Storage Class) beim Host anmelden kann. Ob und wie das geht müsste im Manual stehen, aber ist ist ziemlich sicher ausgeschlossen, dass das Gerät beide Modi zugleich unterstützt, da das die Firmware des Gerätes ziemlich komplex machen würde.
Vielen Dank für die Antworten.
Nun bin ich dabei, den Puffer des Messgerätes auszulesen. Dabei werden die Messwerte in ein Array geschrieben. Der einzige Nachteil ist jetzt, dass es ziemlich lange dauert, die Messwerte zu übertragen. Dies muss ich wohl jetzt in Kauf nehmen. Solange dies nicht mehrere Stunden dauert ist es eh egal, wie lange die Übertragung dauert. Wäre halt nur zu schön gewesen, die fertige Datei zu übertragen und in das fertige "Analysetool" zu werfen.
ciao
Ich habe da doch nochmal eine kurze Frage.
Es geht darum, dass ich den Puffer auslesen möchte. Die Messwerte in dem Ausgangsstring werden dann in ein 1D Array überführt.
Das Problem besteht darin, dass beim auslesen des Puffers ein Fehler auftritt (410,"Query INTERRUPTED").
Pro Schleifendurchlauf werden 14 Byte gelesen, was einem Messwert+Trennzeichen entspricht. Die Schleife wird so oft durchlaufen, wie Messwerte(+Trennzeichen) vorhanden sind. Theoretisch hat man dann 14 Byte*Anzahl der Messpunkte= Anzahl der gesamten Bytes.
Ich schätze mal, dass im letzten Schleifendurchlauf irgendwie reibereien auftauchen, welche ich mir aber nicht erklären kann.
Ich hänge mal ein Bild an, da das ganze VI ziemlich komplex ist.
Hallo Serial,
Zitat:Ich schätze mal, dass im letzten Schleifendurchlauf irgendwie reibereien auftauchen, welche ich mir aber nicht erklären kann.
Wann immer du etwas "schätzen" musst, solltest du Debugging betreiben!
Schau dir doch mal mit Highlighting an, wann und wo dieser Fehler auftritt…
Du hast in dieser Schleife auch kein ErrorHandling: wenn ein VISA-Fehler auftritt, wird er mit der nächsten Iteration ignoriert.
Ich habe mal mit 10 Schleifendurchläufen probiert. Das heißt, dass der Puffer icht bis zum Ende ausgelesen wird. was ja eigentlich nicht schlimm sein kann.
Der Fehler taucht auf, wenn die Seassion geschlossen wird. Siehe Screenshot.
Habe es nochmal mit allen durchläufen gemacht. Immer wenn das VI "Close" aufgerufen wird, wird ein Fehler angezeigt.