Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
23.12.2012, 13:27 (Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2012 13:31 von LVNeuling.)
Hallo zusammen,
dies ist mein erster Post hier und ich stehe noch ganz am Anfang meiner LabView "Karriere"...
Ich hoffe ich bin richtig im allgemeinen Forum, da mein Fragenkatalog relativ breit gefächert ist.
Zum Problem: Ich möchte mit LabView Messdaten eines DMM abfragen.
Das Hameg 8112-3S hat 8 Scanner Ports, von denen ich 4 nutzen werde. Ziel ist es, alle 4 Ports nacheinander im Abstand von xx ms abzufragen und daraus 2 x-y-Graphen zu schreiben. Es handelt sich jeweils um eine Temperatur und einen dazugehörigen Widerstandswert.
Ich habe das Gerät bereits per USB mit aktiviertem VCP (Com3) mit meinem Rechner verbunden. Per Hyperterminal kann ich auch Befehle senden und erhalte richtige Antworten.
Sämtliche Bibliotheken und VIs von Fa. Hameg stehen mir auch zur Verfügung, nur irgendwie bekomme ich keine Werte angezeigt.
Oder sind diese mitgelieferten VIs keine "Stand-Alone" Funktionen? Sondern muss ich sie immer in ein VI einbinden?
Soweit erstmal meine aktuelle Ratlosigkeit...
Jetzt schon besten Dank für alle, die mir irgendwie weiterhelfen können.
PS: Ich habe auch das Buch "Einführung in LabView" und arbeite mich gerade dadurch, allerdings finde ich nicht wirklich was, was meine oben gestellten Fragen beantwortet.
edit: Bei VISA kann ich zwar einen write ausführen, der ohne Fehler abläuft, allerdings bekomme ich durch read nur Fehlermeldungen. Selbst *IDN? wird mit:
"Read Operation
Error
VISA: (Hex 0xBFFF0015) Zeitüberschreitung, bevor der Vorgang abgeschlossen werden konnte."
beantwortet.
Anschließend musst du die Libraries in LabVIEW einbinden. Im Prinzip sind diese Libraries fertige VIs erstellt durch VISA, also einfache Treiber. Dadurch ersparst du dir das komplette Protokoll neu zu programmieren.
Dann die Beispiele durchackern.
Danke für deine ANtwort!
Die Treiber habe ich bereits und auch sämtliche VIs direkt von Hameg. Allerdings weiss ich nicht, was ich damit genau tun soll... Mit einigen der VI funktioniert es, ich kann mit zb den aktuellen messwert anzeigen lassen.
Dann gibts eine VI "HM8112-3_Set_MUXChannel.vi" wenn ich die öffne, passiert erstmal nichts. Ich verstehe nicht wie oder wo ich eingeben soll, welchen Port er wann scannt und vorallem mit welcher Methode (VDC,VAC, Temp, Resistance...)...
kannst du mal ein Bild von deinem Block Diagramm uploaden? Ich denke das VI "HM8112-3_Set_MUXChannel.vi" wird alleine zu wenig sein. Wenn du anschließend ein READ drauf hängst bekommst dann ein Array von Messdaten?
OK, das war Quatsch, seh ich ein :-)
Blicke so langsam dran lang... Kriege inzwischen aktuelle Messwerte ausgelesen.
Also wäre das Beste (auch die einzige möglichkeit die ich kenne) eine Flat-Sequence, nacheinander die fertigen Block Diagramme darein (Messmethode, logger ON, Kanal wählen...) und einfach alles nacheinander ablaufen lassen?
Mir stellt sich immer noch die Frage, wie ich dann die Zeiten ins spiel bringe. Laut Manual dauert ein Schaltvorgang zwischen den verschiedenen Ports 20 ms. Wieviel Zeit muss ich für eine Messung einplanen? reichen da wohl 10 ms? und dann nach dieser Zeit auf den nächsten Kanal wechseln, andere messmethode usw..
Wie kann ich dann die gemessenen Werte in ein Array schreiben um sie möglichst in Echtzeit in einen x-y-Plot zu schreiben?
So ganz grün bin ich mit LabView noch nicht, wie ihr sicherlich merkt!
Aber dennoch Danke für eure Geduld und hilfreichen Hinweise!
Zitat:Also wäre das Beste (auch die einzige möglichkeit die ich kenne) eine Flat-Sequence
Nein, fang damit am besten erst gar nicht an!
Die VIs des Gerätetreibers bieten doch schon ErrorIn/Out-Anschlüsse, die sich wunderbar zum "Verketten" von VIs nutzen lassen. Dies sollte in den Beispiel-VIs zum Treiber auch so gezeigt sein...
Zitat:Wieviel Zeit muss ich für eine Messung einplanen?
Du greifst über eine serielle Schnittstelle auf dein Messgerät zu, da addieren sich Übertragungszeiten, Ausführungszeiten des Geräts und Messzeiten! Was dich aber nicht unbedingt kümmern muss, da deine Abfrage-VIs ja auf eine Antwort vom Gerät warten müssen. Du kannst also keinen expliziten Takt vorgeben (zumindestens nichts schneller als 10Hz), sondern du wirst automatisch durch den Übertragungskanal (COM-Port) "getaktet"!
Außerdem sollte die Antwort auf deine Frage im Manual stehen...
Zitat:Wie kann ich dann die gemessenen Werte in ein Array schreiben um sie möglichst in Echtzeit in einen x-y-Plot zu schreiben?
Die Antwort dazu findest du garantiert im Forum. Es wurde schon oft gefragt und gezeigt, wie man "live" Daten in einem Plot anzeigt. "Echtzeit"/"Realtime" ist übrigens was ganz anderes...
Die Feiertage sind vorbei und es geht wieder los mit der Plackerei...
Ich hoffe ihr hattet alle angenehme Weihnachten!
Zurück zu meinen Problemen:
Inzwischen stehe ich vor der Problem, dass ich in unten angehängter VI seltsame Messwerte rauskriege.
Ich habe ein PT100 an meinem Messgerät und Frage über "Read_USB.vi" die Messwerte ab.
Zunächst sah ich gar nichts, dann Blockdiagramm geöffnet, die Glühbirne eingeschaltet und ich sehe die Messwerte im Frontpanel. Wenn ich die Glühbirne wieder ausschalte, sehe ich nichts, wie kann das sein?
28.12.2012, 16:19 (Dieser Beitrag wurde zuletzt bearbeitet: 28.12.2012 16:20 von GerdW.)
wenn es mit "Glühlampe" funktioniert, aber ohne nicht, dann ist es eigentlich immer ein Timing-Problem!
Wo könnte bei diesem VI das Timing-Problem liegen?
Tipp: Wieviele Bytes stehen sofort nach Absenden des Gerätebefehls im Empfangsbuffer der seriellen Schnittstelle?
Simpelste "Lösung": Wartezeit vor der Abfrage von BytesAtPort einbauen. (Ist aber eher ein Workaround als eine Lösung!)
Bessere Lösung:
Du verwendest leider die Funktion BytesAtPort - die bei Verwendung der seriellen Schnittstelle (fast) immer überflüssig ist. Es gibt sehr viele Threads zu diesem Thema hier im Forum, die meisten davon enthalten schon sehr gute Erläuterungen (von Lucki), wieso dies so ist und wie man es besser programmiert. Einfach mal suchen!