###User Defined Function###
_viExecCommand

###Description###
Sendet einen Befehl/Abfrage an ein Instrument/Gerät durch den VISA Anschluss (GPIB / TCP)

###Syntax###
#include <Visa.au3>
_viExecCommand($h_session, $s_command, $i_timeout_ms = -1)


###Parameters###
@@ParamTable@@
$h_session
	Ein VISA descriptor (Zeichenfolge) oder ein VISA session handle (Ganzzahl). Ein "VISA DESCRIPTOR" ist eine ZEICHENFOLGE, die die Ressource spezifiert, mit der die Kommunikations-Sitzung etabliert werden soll. Ein Beispiel für einen VISA Descriptor ist "GPIB::20::0". Die Funktion unterstützt alle gültigen VISA Descriptoren, inklusive GPIB, TCP, VXI und serieller Interface Instrumente (ASRL). Eine ausführliche Erläuterung von VISA Descriptoren ist weiter unten unter "Bemerkungen" zu finden. Als Kurzangabe kann auch eine Zeichenfolge angegeben werden, die nur die Adressnummer eines GPIB Instruments enthält (z.B. "20" andstelle "GPIB::20::0"). Ein "VISA session handle" ist eine GANZZAHL, die von _viOpen zurückgegen wird. Es wird empfohlen, mit _viOpen und VISA session handles zu arbeiten, wenn geplant ist, wiederholt mit einem Instrument/Gerät zu kommunizieren, da ansonsten, immer wenn das Instrument angesprochen wird, ein unnötiger Overhead für das Öffnen und Schließen der Kommunikations-Verbindung aufgebaut wird. Wenn die Verbindung nicht mehr benötigt wird, muss Sie mit _viClose geschlossen werden.
$s_command
	Befehl/Abfrage zum Ausführen (z.B. "*IDN?" or "SOURCE:POWER -20 dBM"). Eine Abfrage muss ein Fragezeichen enthalten. Wenn der Befehl eine Abfrage ist wartet die Funktion automatisch auf die Antwort des Instrumentes (immer oder bis zur Zeitabschaltung [times out] der Operation). $i_timeout_ms
	Optional: Die Zeitabschaltung der Operation in Millisekunden.
	Dieser optionale Parameter ist vor allem für Abfragen wichtig.
	Wenn keine Zeitabschaltung angegeben wurde, wird die zuletzt gesetzte genommen. Wurde noch nie
	eine zuvor gesetzt, wird die Vorgabe Zeitabschaltung (abhängig von der VISA Implementation) genommen.
	Zeitabschaltungen können auch separat mit der _viSetTimeout Funktion gesetzt werden.
	Abhängig von der Anschlussart (GPIB, TCP, etc) wird die angegebene Zeitabschaltung 
	eventuell auf den nachsthöheren Wert gerundet.
@@End@@

###ReturnValue###
Der ReturnValue ist abhängig davon, ob der Befehl eine Abfrage war
oder nicht und ob die Operation erfolgreich war oder nicht.

* Befehl, keine Abfrage:
 Bei Erfolg:     Gibt  0 zurück.
 Bei Misserfolg: Gibt -1 zurück, wenn die VISA DLL nicht geöffnet werden konnte 
                 oder einen nicht 0 Wert entsprechend dem VISA Fehlerkode (siehe: VISA programmer's guide).
* QUERY:
 Bei Erfolg:     Gibt die Antwort des Instruments auf die Abfrage zurück.
 Bei Misserfolg: Gibt -1 zurück, wenn die VISA DLL nicht geöffnet werden konnte.
                 Gibt -3 zurück, wenn die VISA DLL eine unerwartete Anzahl von Ergebnisse zurückgibt oder
                 oder einen nicht 0 Wert, der einen VISA Fehlerkode repräsentiert (siehe: VISA programmer's guide).
 Diese Funktion setzt im Falle eines Fehlers immer @error = 1.             

###Remarks###
* Die VISA Abfragen gibt nur die 1. Zeile der Geräte Antwort zurück.
Das ist in den meisten Fällen kein Problem, da die meisten Gerätetreiber immer
mit in einer Zeile antworten.

* Folgend eine Beschreibung der bekanntesten VISA DESCRIPTORS.
Es sind nicht alle Typen aufgelistet. Mehr Informationen sind
im VISA programmer's guide (available at www.ni.com) zu finden.
Optionale Elemente werden in eckigen Klammern ([]) angegeben.
Erforderliche Elemente, die ausgefüllt werden müssen, werden in 
(<>) angezeigt.

Interface   Syntax
------------------------------------------------------------
GPIB INSTR      GPIB[board]::primary address
                [::secondary address] [::INSTR]
GPIB INTFC      GPIB[board]::INTFC
TCPIP SOCKET    TCPIP[board]::host address::port::SOCKET
Serial INSTR    ASRL[board][::INSTR]
PXI INSTR       PXI[board]::device[::function][::INSTR]
VXI INSTR       VXI[board]::VXI logical address[::INSTR]
GPIB-VXI INSTR  GPIB-VXI[board]::VXI logical address[::INSTR]
TCPIP INSTR     TCPIP[board]::host address[::LAN device name]
                [::INSTR]

Das GPIB Schlüsselwort wird benutzt für GPIB Instrumente.
Das TCPIP Schlüsselwort wird benutzt für TCP/IP Kommunikation.
Das ASRL Schlüsselwort wird benutzt für serielle Instrumente.
Das PXI Schlüsselwort wird benutzt für PXI Instrumente.
Das VXI Schlüsselwort wird benutzt für VXI Instrumente via "eiDasr embedded"
oder MXIbus Controller.
Das GPIB-VXI Schlüsselwort wird benutzt für VXI Instrumente via einen GPIB-VXI
Controller.

Die Vorgabe Werte für optionale Parameter werden nachfolgend gezeigt.

Optionales Element        Vorgabe Wert
---------------------------------------
board                     0
secondary address         none
LAN device name           inst0


Examplee für Resource Zeichenfolgen:
--------------------------------------------------------------
GPIB::1::0::INSTR     Ein GPIB Gerät an erster Adresse 1 und
                      zweiter Adresse 0 in GPIB Interface 0.

GPIB2::INTFC          Interface oder Resource für GPIB
                      Interface 2.

TCPIP0::1.2.3.4::999::SOCKET    TCP/IP Zugang via Port 999
                                an der spezifizierten IP Adresse.

ASRL1::INSTR          Ein serieller Ausgang verbunden mit Interface
                      ASRL1.  VXI::MEMACC Board-level Register
                      Zugang zu VXI interface.

PXI::15::INSTR        PXI Device Nummer 15 an Bus 0.

VXI0::1::INSTR        Ein VXI Device an logischer Adresse 1 in VXI
                      Interface VXI0.

GPIB-VXI::9::INSTR    Ein VXI Device an logischer Adresse 9 in einem
                      GPIB-VXI controlled system.

###Related###
_viFindGpib, _viOpen, _viClose, _viSetTimeout, _viGTL, _viGpibBusReset

###Example###
@@IncludeExample@@