LabVIEWForum.de
Agilent 34970a und Kurvennamen bei Diagramm - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Agilent 34970a und Kurvennamen bei Diagramm (/Thread-Agilent-34970a-und-Kurvennamen-bei-Diagramm)



Agilent 34970a und Kurvennamen bei Diagramm - Schnake - 11.02.2007 15:02

Hallo,

erstmal Kompliment an dieses Forum hier, es hat mir schon das ein und andere mal gut geholfen.
Ich bin ein blutiger Anfänger in Sachen LV Programmierung und mein erstes Projekt ist das Einlesen und Darstellen von Spannungswerten des Datenloggers Agilent 34970a via serieller Schnittstelle.
Bevor ich es vergesse, leider haben wir nur LV 6.1 im Institut.

1) Ich kann zwar auf das Gerät zugreifen leider lese ich aber nicht die Werte aus die eingestellt sind. Hat jmd. Erfahrtung mit diesem Gerät oder kennt das Problem? (anbei das SubEinlese-VI)

2) Ich will alle 20 Kanäle in einem Diagramm darstellen und zwar als Funktion der Zeit und des Datums. Es klappt auch ganz gut allerdings stürzt LV ab sobald ich den Scrollbar als sichtbar einstelle und dann das Progr. starte. Die Fehlermeldung ist : Plotsup2.cpp Zeile 306.
Wenn ich den Scrollbar erst während des Laufen des Progr. sichtbar mache klappt es.

3) Nun soll das Programm so gestrickt sein, dass man für die einzelnen Kanäle Namen eingeben kann und diese dann auch im Diagramm als Legende anstatt Kurve 1, Kurve 2, .... stehen.
Wie kann das am besten realisieren? (anbei das Diagramm2-Vi)
Mit dem Eigenschaftsknoten kann ich irgendwie nur den Namen der ersten Kurve ändern.

Schon mal vielen Dank im Vorraus, ich weiß ist nicht grad wenig aber ich bin auch für Tipps die nicht alle Fragen betreffen dankbar.


Agilent 34970a und Kurvennamen bei Diagramm - Schnake - 11.02.2007 17:10

zu 3) hab ich gerade herausgefunden wie es funktioniert.

Eigenschaftsknoten mit ActPlot

anbei das neue VI.


Agilent 34970a und Kurvennamen bei Diagramm - lynx - 11.02.2007 19:12

Hallo Schnake,

Zum Einlesen der Daten:
Mir ist vor allem aufgefallen, dass Du beim Wandeln des Strings in ein Array zwar Floating Point angibst, dann aber trotzdem wieder in ein Array aus Strings hineinschiebst.
Du solltest als Standardwert ein 1D-Double-Array vorgeben und als Formatierungssyntax %.;%f eingeben. Das Gerät wird wie üblich als Dezimaltrenner einen Punkt setzen; dies berücksichtigst Du mit dem%. Befehl. Dieser schaltet auf das entsprechende Zeichen um.
[attachment=5159]

Generell solltest Du vermeiden, das Gerät ständig zu öffnen, es zu initialisieren und wieder zu schließen. Hauptsächlich benötigt besonders das Reset unnötig Zeit, zum Anderen sind evtl. eingebaute Relais auch nicht so begeistert.
Mein Vorschlag: Öffne das Gerät vor der Schleife, (genauso wie auch die anderen Einstellungen am Plot vor der Schleife geschehen sollten), führe die geöffnete Resource in der While-Schleife weiter und schließe die Schnittstelle am Ende, wenn die While-Schleife terminiert.
[attachment=5160]

Zum Graphen: Ich würde das Einstellen der Plot-Legende außerhalb der FOR-Schleife erledigen (am Besten mit einer extra FOR-Schleife, die einmal ausgeführt wird, ebenfalls in der Initialisierung).

Ich kann Dir leider keine VIs geben, da meine Version nur bis 7.0 runter speichern kann Grrr, deshalb nur ein Screenshot.

gruß
lynx


Agilent 34970a und Kurvennamen bei Diagramm - Schnake - 12.02.2007 18:43

Hallo lynx,

vielen Dank für die schnelle Hilfe. Die Initialisierung der Hardware sowie den Eigenschaftsknoten des Diagramms hab ich vor die Schleife gesetzt. Da das Programm unter Umständen auch mal 1 Woche am Stück laufen soll ist es eine gute Idee auf die Hardware zu achten sowie nur die benötigen Kommunikationsfunktionen mit in die Schleife zu ziehen.
zu meiner Frage 1) habe ich herausgefunden, dass die eingelesen Werte noch skaliert werden müssen (d.h. mit einem Faktor multipliziert).
In meiner Anwendung ist das für Ch.1-10 Faktor 3.2 und für Ch.11-20 Faktor 6.5.
Keine Ahnung warum aber es läuft.
Es gibt auch ein VI in hp34970a.dll welches den Scan konfigurieren und daher auch mit einem gain versehen kann.
Habe ich auch versucht aber es gab nur Fehlermeldungen.

Es läuft jetzt grad ein erster 12 Std. Testrun.

Nochmal Thanx

Schnake

' schrieb:Hallo Schnake,

Zum Einlesen der Daten:
Mir ist vor allem aufgefallen, dass Du beim Wandeln des Strings in ein Array zwar Floating Point angibst, dann aber trotzdem wieder in ein Array aus Strings hineinschiebst.
Du solltest als Standardwert ein 1D-Double-Array vorgeben und als Formatierungssyntax %.;%f eingeben. Das Gerät wird wie üblich als Dezimaltrenner einen Punkt setzen; dies berücksichtigst Du mit dem%. Befehl. Dieser schaltet auf das entsprechende Zeichen um.
[attachment=31542:Einlesen.jpg]

Generell solltest Du vermeiden, das Gerät ständig zu öffnen, es zu initialisieren und wieder zu schließen. Hauptsächlich benötigt besonders das Reset unnötig Zeit, zum Anderen sind evtl. eingebaute Relais auch nicht so begeistert.
Mein Vorschlag: Öffne das Gerät vor der Schleife, (genauso wie auch die anderen Einstellungen am Plot vor der Schleife geschehen sollten), führe die geöffnete Resource in der While-Schleife weiter und schließe die Schnittstelle am Ende, wenn die While-Schleife terminiert.
[attachment=31543:Einlesen_Block.jpg]

Zum Graphen: Ich würde das Einstellen der Plot-Legende außerhalb der FOR-Schleife erledigen (am Besten mit einer extra FOR-Schleife, die einmal ausgeführt wird, ebenfalls in der Initialisierung).

Ich kann Dir leider keine VIs geben, da meine Version nur bis 7.0 runter speichern kann Grrr, deshalb nur ein Screenshot.

gruß
lynx