INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

automatische Auswahl der VISA Adresse



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!

27.03.2017, 10:19
Beitrag #1

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



automatische Auswahl der VISA Adresse
Hallo Labview-Community,

ich hoffe ihr habt eine Idee, wie ich weiter verfahre.
Es geht darum, dass ich eine Programmierung erstellt habe, in der man unterschiedliche Geräte auswählen kann.
Zu Beginn meines Programms kann man unter Einstellungen das Gerät auswählen, welches man benutzt.
Dadurch werden dann die richtigen Treiber in meinen Programmablauf implementiert (durch einen entsprechenden Case einer Case Struktur).
Allerdings müsste man nun auch noch die Visa Adresse auswählen (Geräte sind über GPIB mit dem PC verbunden), was so zu sagen doppelt gemoppelt ist.
Nun zu meiner Frage:
Habt ihr eine Idee, wie ich dieses eleganter lösen kann.
Am Ende soll nur noch das Gerät ausgewählt werden und es soll dadurch automatisch die richtige, dem Gerät entsprechende VISA Adresse gewählt werden.

Meine Idee war es bisher, alle Ports abfragen zu lassen, dann die Geräte nach der Identität zu fragen und so irgendwie die Adresse automatisch festzulegen bzw zu bestimmen. Allerdings scheitere ich an der Ausführung.

Hoffe ihr habt Anregungen für mich!
Habe schon das Forum durchforstet, aber nichts entsprechendes gefunden.

Liebe Grüße,
Jenni
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.03.2017, 10:30
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: automatische Auswahl der VISA Adresse
Hallo Jenni,

Zitat:Am Ende soll nur noch das Gerät ausgewählt werden und es soll dadurch automatisch die richtige, dem Gerät entsprechende VISA Adresse gewählt werden.
Dein entsprechender Gerätetreiber geht die Liste der vorhandenen Ports durch und prüft, ob/auf welchem Port sein Messgerät antwortet…

Zitat:Meine Idee war es bisher, alle Ports abfragen zu lassen, dann die Geräte nach der Identität zu fragen und so irgendwie die Adresse automatisch festzulegen bzw zu bestimmen. Allerdings scheitere ich an der Ausführung.
Genau so würde ich es auch machen.
Woran scheitert denn deine Ausführung?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.03.2017, 10:40 (Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2017 10:49 von Jenni.)
Beitrag #3

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: automatische Auswahl der VISA Adresse
Hallo Gerd,

danke schon einmal für die Antwort.

Ich habe gerade bemerkt, dass das Problem wohl daran liegt, dass mein Gerät mir manchmal antwortet und manchmal nicht.
Manchmal ist der read buffer leer und manchmal gibt er mir die Identität zurück.
Dann gilt es jetzt erstmal diesen Fehler zu beheben..

Dies ist wahrscheinlich eher dem Gerät zu verschulden und nicht Labview oder?

Allerdings:
In den Fällen, in denen ich eine Rückmeldung bekomme, kann ich ja nicht einfach den String als Visa Adresse angeben.
Wie mache ich das?
Wenn ich dort eine Konstante angebe und sich zwischenzeitlich der Name ändert oder die Adresse, wenn ich keinen Namen vergebe, funktioniert es nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.03.2017, 11:46
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: automatische Auswahl der VISA Adresse
Hallo Jenni,

Zitat:Dies ist wahrscheinlich eher dem Gerät zu verschulden und nicht Labview oder?
KA
Glas1 Das könnte an deinem VI liegen. Oder am Gerät. Oder am Kabel. Oder… Glas1

Zitat:In den Fällen, in denen ich eine Rückmeldung bekomme, kann ich ja nicht einfach den String als Visa Adresse angeben.
Warum kannst du das nicht?
VISAFindResource gibt dir zwar Strings zurück, die kannst du aber problemlos als VISAAdresse verwenden!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.03.2017, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2017 12:46 von Jenni.)
Beitrag #5

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: automatische Auswahl der VISA Adresse
Ach ok stimmt, ich kann den String einfach mit dem Eingang der VISA Adresse verbinden! Danke!

Wie könnte ich das am elegantesten aufbauen?
Ich habe 6 Ports, die ich abfrage.
Ich könnte also 6 ineinander verschachtelte Case Strukturen nehmen. Wenn der abgefragte Name gleich dem ist, den ich haben möchte, wird der String mit dem Eingang der VISA Adresse verbunden. Wenn das falsch ist, baue ich eine weitere Case Struktur in die vorhandene ein, u. s. w..
Ist das die beste Möglichkeit, oder könnte ich das geschickter machen?

Edit:
Nun habe ich ein weiteres Problem. Habe es mit den verschachtelten Case Strukturen lösen wollen.
Allerdings wird ein Fehler angezeigt, wenn nicht an jedem Port ein Gerät angeschlossen und angeschaltet hängt. Dadurch entsteht ein Timeout in VISA Read.
Ich dachte man würde eher einen leeren String als Antwort erhalten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.03.2017, 12:50
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: automatische Auswahl der VISA Adresse
Hallo Jenni,

Zitat:Ich habe 6 Ports, die ich abfrage. Ich könnte also 6 ineinander verschachtelte Case Strukturen nehmen.
Du könntest auch eine FOR-Loop nehmen, die einfach (für ein Gerät) die 6 Ports nacheinander prüft…

Zitat:Nun habe ich ein weiteres Problem. … Dadurch entsteht ein Timeout in VISA Read.
Wieso ist das ein Problem?
Über den Timeout-Fehler lässt sich doch prima feststellen, dass das gesuchte Gerät NICHT an diesem Port hängt!
Fehlermeldungen sind dazu da, dass der/die Programmierer/in sie auswerten kann…

Zitat:Ich dachte man würde eher einen leeren String als Antwort erhalten.
Bekommst du den leeren String denn etwa nicht?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.03.2017, 08:31
Beitrag #7

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: automatische Auswahl der VISA Adresse
Guten Morgen,

ich stehe etwas auf dem Schlauch, wie ich den Timeout Fehler "behebe".
Wie schaffe ich es, dass das Programm zur nächsten Case Struktur übergeht, wenn der Timeout Fehler angezeigt wird (nach Möglichkeit sollte dieser dem Anwender später nicht ersichtlich sein).

Und wie gestalte ich alles mit For Schleifen um?
An den Schleifenzähler würde die Anzahl der Ports kommen, also in meinem Fall 6?
Und wie bestimme ich, dass ein Port nach dem anderen geprüft wird? Mit einem Shift Register?

Ich hänge mal einen Screenshot von meiner jetzigen Gestaltung an.
Im Screenshot ist auch mein SubVi zu sehen, in dem ich die Identität der Geräte abfrage, die ggf an den Ports hängen. Hier taucht auch der Timeout Fehler auf.

Liebe Grüße,
Jenni


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2017, 08:43 (Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2017 08:45 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: automatische Auswahl der VISA Adresse
Hallo Jenni,

Zitat:Wie schaffe ich es, dass das Programm zur nächsten Case Struktur übergeht, wenn der Timeout Fehler angezeigt wird
Indem man zumindest etwas rudimentäre Fehlerbehandlung programmiert: "IF error THEN do something"!
Ich schrieb doch oben schon mal: "WENN Timeout-Fehler DANN Gerät nicht gefunden"…

Zitat:nach Möglichkeit sollte dieser dem Anwender später nicht ersichtlich sein
Bisher bekommt der Anwender diese Fehlermeldungen zu sehen, weil DU bisher keine Fehlerbehandlung programmiert hast!

Zitat:Und wie gestalte ich alles mit For Schleifen um? … wie bestimme ich, dass ein Port nach dem anderen geprüft wird?
Anstatt nach dem VISAFindResource das Array per IndexArray in seine Elemente aufzudröseln, verbindet man das Array lieber mit einer FOR-Loop - die dann per Autoindexing einzeln abarbeitet…
Die "Autoindizierung" gehört zu den LabVIEW-Grundlagen! (Die Links in meiner Signatur hast du bemerkt und auch durchgelesen?)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2017, 09:06
Beitrag #9

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: automatische Auswahl der VISA Adresse
Hallo Gerd,

die habe ich bemerkt und auch schon durchgelesen (manche Stellen genauer als andere Blush).
Mache mich aber sofort an die Fehlerbehebung.
Danke für die Tipps!
Hast mir sehr geholfen!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2017, 11:05 (Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2017 11:05 von Jenni.)
Beitrag #10

Jenni Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Aug 2016

2012
-
EN



RE: automatische Auswahl der VISA Adresse
Hallo Gerd und alle anderen,

ich bekomme den Umgang mit dem Fehler nicht wirklich hin..
Ich habe die ganze Zeit an den Case Strukturen rumgebastelt.
Es wird aber nur die erste Case Struktur abgearbeitet. Wenn dort direkt ein Timeout Fehler auftritt wird der Rest nicht mehr geprüft.
Ich habe versucht, das über weitere Case Strukturen zu lösen.

Und wenn ich das über die For Schleifen lösen will weiß ich nicht, wie ich es schaffe, dass nur die VISA Adresse weitergeleitet wird, die von dem erwarteten Gerät ist und die anderen verworfen werden.

Wie schaffe ich es, dass der nächste Port geprüft wird, wenn entweder ein Timeout Fehler vorliegt, oder die Antwort des Gerätes nicht der erwarteten entspricht?

Liebe Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  PXI-8232: GPIB-Adresse für VISA finden jusaca 0 3.470 14.06.2016 14:52
Letzter Beitrag: jusaca
  Adresse via HART auslesen Thor 2 3.982 11.03.2015 12:28
Letzter Beitrag: Thor
  VISA: (Hex 0xBFFF0015) bei VISA read und im VISA Test Panel rick 3 13.192 10.11.2013 12:16
Letzter Beitrag: Y-P
  Messgeräte Adresse an exe übergeben cbahn 3 4.024 06.09.2012 09:28
Letzter Beitrag: cbahn
  GPIB Adresse wird nicht als Visa Ressource Name akzeptiert Artiskon 1 5.735 07.07.2011 08:07
Letzter Beitrag: BNT
  VISA-belegte Schnittstellen bei Auswahl ausblenden jan91 4 4.651 21.10.2009 08:13
Letzter Beitrag: jan91

Gehe zu: