UDF > Visa >


_viSetTimeout

Définit le délai d'expiration de VISA, en millisecondes

#include <Visa.au3>
_viSetTimeout ( $hSession, $iTimeoutMS )

Paramètres

$hSession Le descripteur de VISA (string) ou le handle de session VISA (integer).
Voir Remarques de _viExecCommand() pour plus d'info.
$iTimeoutMS Le délai d'expiration, en millisecondes, pour les opérations Visa (principalement pour les requêtes GPIB)
Si vous le définissez à 0 les tiemouts sont désactivées.
Si vous le définissez à "INF", les opérations VISA n'expireront jamais.
Soyez prudent avec ce paramètre car il pourrait facilement bloquer votre programme si votre instrument ne répond pas à l'une de vos requêtes.
Selon le type de bus (GPIB, TCP, etc..) le délai d'expiration ne peut pas être défini sur la valeur exacte que vous demandez. En revanche, le délai d'expiration le plus proche valide, plus grand que celui que vous avez demandé sera utilisé.

Valeur de retour

Succès: Retourne 0.
Échec: Retourne -1 et définit @error <> 0 si la dll VISA ne peut pas être ouverte
ou une valeur non nulle représentant le code d'erreur VISA (voir le guide du programmeur VISA).

Remarques

La plupart du temps il n'est pas nécessaire d'appeler cette fonction, car _viExecCommand() a un troisième paramètre optionnel $iTimeoutMS qui peut également être utilisé pour définir le délai d'expiration de VISA.

Comme pour toutes les fonctions VISA les bibliothèques de Visa doivent être installées (vous pouvez vérifier si visa32.dll est dans {WINDOWS}\system32) et une carte GPIB doit être installée (comme par exemple une carte PCI-GPIB National Instruments NI ou une carte GPIB Agilent 82350B PCI de haute performance)

* Pour une description détaillée des descripteurs VISA les plus courants, regarder Remarques de l'aide sur la fonction _viExecCommand().

En relation

_viClose, _viExecCommand, _viOpen, _viSetAttribute

Exemple

; - Cet exemple suppose que vous avez installé l'instrument à l'adresse GPIB 3
; Si vous avez un instrument à une adresse différente, changez "GPIB::3::0" en un descripteur correspondant. Faites de même pour l'appel à _viOpen.
; Il montre comment utiliser la fonction _viExecCommand en mode autonome et combiné avec _viOpen et _viClose.
; Il montre également la fonction _viGTL

#include <MsgBoxConstants.au3>
#include <Visa.au3>

Local $h_Session = 0

; Interroge l'ID de l'instrument à l'address GPIB 3
MsgBox($MB_SYSTEMMODAL, "Étape 1", "Simple requête GPIB à l'aide d'un descripteur VISA")
Local $s_Answer = _viExecCommand("GPIB::3::0", "*IDN?", 10000) ; 10 secs timeout
MsgBox($MB_SYSTEMMODAL, "Résultat de la requête GPIB", $s_Answer) ; Affiche la réponse

; C'est la même chose que d'utiliser la fonction _viSetAttribute en premier:
MsgBox($MB_SYSTEMMODAL, "Étape 2", "_vOpen + timeout à l'aide de _viSetAttribute + requête GPIB")
Local $h_Instr = _viOpen(3)
_viSetTimeout($h_Instr, 10000) ; 10000 ms = 10 secs

$s_Answer = _viExecCommand($h_Instr, "*IDN?") ; Pas besoin de définir timeout maintenant
MsgBox($MB_SYSTEMMODAL, "Résultat de la requête GPIB", $s_Answer) ; Affiche la réponse

MsgBox($MB_SYSTEMMODAL, "Étape 3", "Ferme la connexion de l'instrument à l'aide de _viClose")
_viClose($h_Instr) ; Ferme la connexion de l'instrument