Hallo,
ich versuche gerade, meine "alten" LabVIEW Treiber für GPIB Kommunikation auf die entsprechenden VISA VIs umzustellen. Dabei habe ich folgendes Problem: Meine Software verwendet zur Initialisierung die Eingänge GPIB Bus, GPIB Address und GPIB Mode. Daß ich die GPIB Address und GPIB Bus in der VISA Resource name in der Form GPIB[board]::address::INSTR einbinden muß, hab ich schon rausgefunden. Was aber mache ich mit dem "GPIB Mode" Eingang? Ich finde nirgends, wo ich diesen hinverbinden muß. In der alten Version (mit den nicht-VISA GPIB VIs) wurde der Mode bei dem "Send" VI verbunden. Kann mir jemand sagen, was ich jetzt bei den VISA VIs damit machen muß? Ich kann ihn ja sicher nicht unverbunden lassen, richtig?
Vielen Dank im Voraus für Eure Hilfe!!!
Gruß,
Gabs
Moin!
Also ich habe nur anfangs mit den alten GPIB VIs gearbeitet, bin dann aber schnell auf die VISA-VIs umgestiegen, weil die sind leichter zu handhaben.
Bei den VISA-VIs brauchst du wirklich nur die Ressource angeben. Den Rest regelt LabVIEW im Hintergrund.
Ich hab dir mal ein Miniprogramm geschrieben, dass einen String an ein Oszilloskop sendet und auch eine Antwort bekommt. Hab die Stringparameter mal als Defaultwerte gespeichert, damit du mir glaubst. :-p
Ich hoffe ich konnte helfen, sonst Bescheid sagen!
Björn
P.S.: Ich habe nur Version 7.1, aber in deinem Profil steht die Version ja auch drin. Demnach müsstest du das ja öffnen können.
Nachtrag:
Hab die Erfahrung gemacht, dass du bei vielen Geräten etwas warten musst bis du sie auslesen kannst. Das Oszilloskop, das ich in dem Beispiel oben verwendet habe ist sehr schnell.
Also ggf. ein Sequenzframe in die Mitte (oder ins 1. Frame) einbauen und dort etwas warten.
Hallo Björn,
danke für Deine Antwort! Na, ich glaub Dir's ja
Aaaaber: was mache ich nun mit dem "Mode" Eingang, den meine Software auf der Oberfläche als Control besitzt? Aus Kompatibilitätsgründen kann ich das Control nicht entfernen. Also einfach unverbunden lassen? :?: Ist das wirklich die Lösung? Ist VISA so intelligent, daß es den Modus (also ob es ein LF oder EOI an die zu sendende Nachricht mitschicken muß oder nicht) selbst herausfindet oder warum braucht man das nicht mehr? Die von meiner Software anzusteuernden Geräte sind übrigens nicht IEEE-conform, sondern haben eine eigene Kommandosprache - macht das einen Unterschied für die Verwendung der VISA-VIs?
Und gleich noch eine Frage - hast Du zufällig auch noch ein kleines Beispiel-VI, wie ich ein TCP-IP-Gerät mit VISA ansteuere, also was ich da zur Initialisierung machen muß und was ich sonst beachten muß??? Wäre ja klasse...
Viele Grüße,
Gabs
Wenn es klappt, lass den Mode doch unverbunden. Ist zwar nicht schön, aber die einfachste und schnellste Methode. Ich weiß ja nicht, wofür du dein Programm einsetzen willst. Ob es nur ein Hilfsprogramm ist oder deine Diplomarbeit!
Zum Mode: Nein, das musst du manuell machen. Ich hab das immer einfach ausprobiert. Und dann halt ggf. das Zeichen an den Sendestring gehängt. (LF, CR, usw. findest du bei den Stringkonstanten)
TCP/IP mit VISA? Das geht? Ich hab mit VISA bisher nur GPIB und RS232 angesprochen.
Warum benutzt du denn nicht die "normalen" VI's im Menüpunkt "Communication"? Die habe ich mal verwendet. Leider waren die Ports hier im Netzwerk (natürlich) nicht freigegeben und es kam ne Fehlermeldung, mir würden die Recht fehlen... Also ich weiß auch nicht, ob es funktioniert hätte. Hab das bisher nur in C/C++ gemacht.
Björn
Hallo Björn,
ähm - meine Diplomarbeit ist schon ne ganze Weile her 8)
Es handelt sich um einen Software-Treiber für unsere eigenen Positioniersysteme, der mit verschiedensten Hardware-Schnittstellen umgehen muß. Ich habe vorher auch die generischen Kommunikations-VIs benutzt. Da aber anscheinend dort einige Bugs drin sind, die wohl bei VISA entfernt wurden, wurde mir von NI mehrfach geraten, die Treiber komplett auf VISA umzustellen. Mit Ausprobieren ist da leider nix, der Anwender gibt die Randbedingungen vor (Protokoll und Parameter, daher die Controls), der Treiber macht den Rest.
Gibt es sonst jemanden, der mir hier weiterhelfen kann? :?: :?: :?: