LabVIEWForum.de
VISA im subVI - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: VISA im subVI (/Thread-VISA-im-subVI)

Seiten: 1 2


VISA im subVI - brainfreeze - 26.08.2011 08:57

hallo zusammen!

ich bastel grad an einem VI, dass mir die Gerätedaten meines Messgeräts über ne serielle Schnittstelle ausgibt, also mit dem visa scpi Befehl *IDN?\n.
Dazu hab ich einfach das visa IO Beispiel benutzt und nur die Terminals des VIs umgebaut.
Dieses hab ich dann als subVI in mein Programm eingebaut dass den Antwortstring zerlegt und die einzelnen Geräteinfos übersichtlich anzeigt.

soweit so gut - das alles hat einwandfrei funktioniert (3 Tage lang) - jetzt geht es nicht mehr!
(und ich schwöre bei meiner oma ich hab nix verändert)

Sobald ich das komplett VI ausführen will kommt ein timeout-error beim read-VI.
Wenn ich dann das subVI öffne und laufen lasse kommt er wieder, allerdings nur einmal. Starte ich es ein zweites mal klappts, aber eben nur im sub...

hab ich was bei der Verwendung von subVIs nich kapiert/vergessen/übersehen? (aber wieso hat es dann 3 Tage lang gelkappt?)
ich hab einfach keine Idee mehr Bahn

zum Glück gibts hier Leute mit mehr Überblick </schleim>


RE: VISA im subVI - GerdW - 26.08.2011 09:11

Hallo brainfreeze,

irgendwelche Beweise für deine Behauptungen? Wo ist das fragliche VI?

Kann es sein, dass du diese Fragestellung schon in einem anderen Thread geäußert hattest?


RE: VISA im subVI - brainfreeze - 26.08.2011 09:18

(26.08.2011 09:11 )GerdW schrieb:  Hallo brainfreeze,

irgendwelche Beweise für deine Behauptungen? Wo ist das fragliche VI?

ich hängs mal an - nen Beweis dass es anfang der Woche noch funktioniert hat hab ich nich - aber ich habs mir sicher nich eingebildet und war auch nich dicht Angel_not

(26.08.2011 09:11 )GerdW schrieb:  Kann es sein, dass du diese Fragestellung schon in einem anderen Thread geäußert hattest?

ne da gings darum, dass das Gerät überhaupt nich geantwortet hat (lag an einer falschen config Einstellung) danach hats super funktioniert Smile

EDIT jg: LV-Version der Uploads korrigiert


RE: VISA im subVI - GerdW - 26.08.2011 09:21

Hallo brainfreeze,

tut mir leid, aber deine VI sind trotz der Angabe Lv85_img in lv11_img gespeichert...


RE: VISA im subVI - brainfreeze - 26.08.2011 09:40

ich hoff diesmal hats geklappt - mir is nich ganz klar welche version er wohin speichert (ich kann da iwi nur ein Verzeichnis wählen)
Das is wenig intuitiv, da werd ich erst mal nachlesen wies richtig gemacht wird.


RE: VISA im subVI - GerdW - 26.08.2011 09:46

Hallo brainfreeze,

die herunterkonvertierten VIs landen in dem Verzeichnis, das du im Speicherdialog ausgewählt hast. Was gibt's da nicht zu verstehen?

Zu deinem subVI:
- Ich würde die Case-Strukturen entfernen (da du ja eh auf den Default-Buttonstate vertraust) oder die zugehörigen Buttons mit dem Connector verknüpfen...
- Wozu die Abfrage der "Bytes at port", wenn du den Wert nicht benutzt/auswertest und dann stur 60 Bytes abfragst? Kommen überhaupt so viele Bytes vom Gerät an? Sendet es überhaupt ein TermChar mit?
- Funktioniert diese Abfrage in HyperTerm und hast du andere Fehler damit ausgeschlossen?

- Um Kommagetrennte Werte aus einem String zu separieren, kann man prima SpreadsheetStringToArray verwenden...
- IndexArray funktioniert auch ohne explizite Angabe der Indizes...


RE: VISA im subVI - brainfreeze - 26.08.2011 10:05

(26.08.2011 09:46 )GerdW schrieb:  die herunterkonvertierten VIs landen in dem Verzeichnis, das du im Speicherdialog ausgewählt hast. Was gibt's da nicht zu verstehen?

so hatte ichs auch verstanden - dann hab ich vorher beim hochladen irgendwas verplant -> mein Fehler

(26.08.2011 09:46 )GerdW schrieb:  - Ich würde die Case-Strukturen entfernen (da du ja eh auf den Default-Buttonstate vertraust) oder die zugehörigen Buttons mit dem Connector verknüpfen...
- Um Kommagetrennte Werte aus einem String zu separieren, kann man prima SpreadsheetStringToArray verwenden...
- IndexArray funktioniert auch ohne explizite Angabe der Indizes...

hey super - danke für die vielen Tipps! Guru1
so wird das ganze gleich erheblich übersichtlicher Smile - das die cases noch drin sind war zugegebenermaßen Faulheit


(26.08.2011 09:46 )GerdW schrieb:  - Wozu die Abfrage der "Bytes at port", wenn du den Wert nicht benutzt/auswertest und dann stur 60 Bytes abfragst? Kommen überhaupt so viele Bytes vom Gerät an? Sendet es überhaupt ein TermChar mit?

Der Bytes at Port Wert war ursprünglich dazu da dann genau die Anzahl Bytes auszulesen -> das hat eine Warnung verursacht "es könnten noch mehr bytes vorhanden sein..."
wenn ich den Festen Wert 60 angeb (soviele sind es genau) kann ich die Meldung umgehen.
Und ja, es sendet ein TermChar (\n).


(26.08.2011 09:46 )GerdW schrieb:  - Funktioniert diese Abfrage in HyperTerm und hast du andere Fehler damit ausgeschlossen?

Ja damit funktionierts auch, was wären denn noch mögliche Fehlerquellen?


RE: VISA im subVI - GerdW - 26.08.2011 10:10

Halo brainfreeze,

Zitat:wenn ich den Festen Wert 60 angeb (soviele sind es genau) kann ich die Meldung umgehen. Und ja, es sendet ein TermChar (\n).
Wenn TermChar (korrekt konfiguriert natürlich), dann kein BytesAtPort und Anzahl BytesToRead größer als die erwartete Nachrichtenlänge wählen.

Zitat:Ja damit funktionierts auch, was wären denn noch mögliche Fehlerquellen?
SerialPort korrekt konfiguriert?
Also wenn HyperTerm funktioniert, dann auch LV - bei korrekten und gleichen Parametern...


RE: VISA im subVI - brainfreeze - 26.08.2011 10:21

Hi Gerd,

auf jedenfall DANKE erstmal für die viele Mühe! Happy
Grade wenn man so wie ich noch mit den Basics zu kämpfen hat ist das echt spitze!

(26.08.2011 10:10 )GerdW schrieb:  
Zitat:wenn ich den Festen Wert 60 angeb (soviele sind es genau) kann ich die Meldung umgehen. Und ja, es sendet ein TermChar (\n).
Wenn TermChar (korrekt konfiguriert natürlich), dann kein BytesAtPort und Anzahl BytesToRead größer als die erwartete Nachrichtenlänge wählen.

macht absolut Sinn und is auch schon geändert Smile

(26.08.2011 10:10 )GerdW schrieb:  
Zitat:Ja damit funktionierts auch, was wären denn noch mögliche Fehlerquellen?
SerialPort korrekt konfiguriert?
Also wenn HyperTerm funktioniert, dann auch LV - bei korrekten und gleichen Parametern...

Auch im Terminal funktioniert es noch, habs grade nochmal versucht.


Also ich glaub ich hab jetzt zumindest ne Idee was das Problem ist:

Ich übergebe als Befehl die Stringkonstante "*IDN?\n"
Ich hab mal beim durchlaufen das Panel des subVIs öffnen lassen und der eingelesene String lautet: "*IDN?\\n"
Was am Gerät zu nem Syntaxerror führt.
Warum er aber den String falsch einliest is mir ein echtes Rätsel...

Wenn ich dagegen im subVI den Befehl per Hand eintippe, schreib ich das auch richtig. ergo: es klappt.


RE: VISA im subVI - brainfreeze - 26.08.2011 11:40

Weis vielleicht jemand ob ich mir irgendwo anzeigen lassen kann was mit den Daten bei der Übergabe an das subVI passiert?