TABLE DES MATIERES DETAILLEE *
AVERTISSEMENT - COPYRIGHT *
CE DOCUMENT EN UN CLIN D'OEIL *
MANUEL D'INSTALLATION - LICENCES *
MANUEL DE L'UTILISATEUR - LABTAB *
MANUEL DU PROGRAMMEUR - IOX *
PROGRAMMATION AVANCEE *
EXEMPLE DE PILOTE *
UTILISATION INTERNET ET INTRANET DE LABTAB *
CONCLUSIONS *
TABLE DES MATIERES *
TABLE DES MATIERES DETAILLEE *
AVERTISSEMENT - COPYRIGHT *
CE DOCUMENT EN UN CLIN D'OEIL *
MANUEL D'INSTALLATION - LICENCES *
CARACTERISTIQUES DE LABTAB2 *
CARACTERISTIQUES GENERALES *
Public de non-programmeurs ou de programmeurs *
Compatibilité matérielle *
Compatibilité logicielle *
Avantages de LabTab2 pour l'instrumentation *
CARACTERISTIQUES MATERIELLES *
Support des principales marques de contrôleurs GPIB *
Support des ports série et parallèle *
CARACTERISTIQUES LOGICIELLES *
Accès à LabTab2 pour des non-programmeurs - Fonction Excel *
Barre d'outils et bibliothèque *
Arguments - Paramètres - Type et valeur de retour *
Objets et classes de LabTab2 *
Utilisation des classes de LabTab2 avec COM/ActiveX *
Création des objets de LabTab2 avec COM *
Création d'objets de LabTab2 avec "New" *
Création d'objets de LabTab2 avec "CreateObject" *
Création d'objets COM pour LabTab2 avec LabVIEW *
Création d'objets COM pour LabTab2 avec Visual C++ 6 *
Appel de LabTab2 comme une DLL conventionnelle *
Aide au format HTML *
Utilitaire de test universel *
Traitement des tableaux de Variant *
Mesure du temps à la microseconde - Objet Clk *
Stockage de Variant sur fichier binaire *
INSTALLATION - CREATION DE DISQUE D'INSTALLATION - DESINSTALLATION *
Installation avec un fichier compressé au format auto-extractible WinZip® *
Installation avec un disque d'installation *
Création d'un disque d'installation *
Désinstallation *
TESTS APRES INSTALLATION *
Tests de la barre d'outils *
Tests programmés *
Test avec Microsoft Internet Explorer *
Test avec Microsoft Excel *
Test avec Microsoft Internet Explorer et Microsoft Excel *
Test avec LabVIEW *
VERSIONS - LICENCES *
Version de démonstration *
Version OEM - Utilisation de pilotes d'instruments intégrés à LabTab *
Version complète *
MANUEL DE L'UTILISATEUR - LABTAB *
CONFIGURATION DE LABTAB *
Création d'un raccourci vers LabTab2 sur le bureau *
Barre d'outils *
Copyright - Activation du logiciel *
Modes de fonctionnement de LabTab2 *
Activation du logiciel *
Config - Configuration des ports *
Configuration des ports de LabTab2 *
Premier niveau de configuration - Port "Iox" *
Deuxième niveau de configuration - Port "Gpib" *
Deuxième niveau de configuration - Port "Ser" *
Deuxième niveau de configuration - Port "Par" *
Troisième niveau de configuration - Ports "Ser1" et "Ser2" *
Troisième niveau de configuration - Ports "Par1" et "Par2" *
Troisième niveau de configuration - Ports Gpib1 à Gpib4 *
Quatrième niveau de configuration - Ecran Hewlett-Packard / Agilent *
Quatrième niveau de configuration - Ecran Iotech *
Quatrième niveau de configuration - Ecran Keithley-Metrabyte *
Quatrième niveau de configuration - Ecran National Instruments *
Quatrième niveau de configuration - Ports "COM1" et "COM2" *
Utilisation de la configuration des ports de LabTab2 par la bibliothèque de LabTab2 *
"Help" - Utilitaire d'aide à l'écran *
"Test" - Utilitaire de test *
METTRE DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB *
Ce dont vous avez besoin *
Ce que vous devez faire *
Imaginez la suite *
FORMATER DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT *
Ce dont vous avez besoin *
Ce que vous devez faire *
Imaginez la suite *
MANUEL DU PROGRAMMEUR - IOX *
INSTALLATION DE LA BIBLIOTHEQUE IOX *
INTERFACE NATIVE – INTERFACE COM *
OBJETS DE LA BIBLIOTHEQUE *
DECLARATION DES FONCTIONS DANS EXCEL-VBA *
Ouverture d’un nouveau classeur Excel *
Ouverture de VBA et insertion d’un module de programmation *
Ajout d’une référence à la DLL de LabTab2 - Iox2c *
Sauvegarde de votre classeur *
Ouverture ultérieure d’un classeur Excel utilisant LabTab2 *
CARACTERISTIQUES DE LA BIBLIOTHEQUE *
Type des arguments – Pointeur de variant *
Contenu des paramètres – Variant contenant une Valeur *
Valeur de retour et code d'erreur des fonctions de Labtab2 *
Classes et fonctions de LabTab2 *
Convention de nom pour les fonctions *
OBJETS ET FONCTIONS *
Objet Excel - Transferts de données à Excel *
Utilisation *
Fonction *
LabTab (Workspace_Fullname, Worksheet_Name, Row_Value, Column_Value, Address, Output_String, Wait_Value, LabScript_Format) *
LabScript ( Workspace_Fullname, Worksheet_Name, Row_Value, Column_Value, Labscript_Variable, LabScript_Format) *
VbaExcel ( Workspace_Fullname, Worksheet_Name, Row_Value, Column_Value, VbaExcel_Variant, LabScript_Format) *
Objet VbaExcel - transferts vers VbaExcel *
Utilisation *
Fonctions *
LabTab(VbaExcel _Variant_result, Address, Output_String, Wait_Value, LabScript_Format) *
LabScript(VbaExcel_Variant_result, LabScript_Variant, LabScript_Format) *
Objet VBScript - transferts vers VBScript *
Utilisation *
Fonctions *
LabTab(VBScript_Variant_result, Address, Output_String, Wait_Value, LabScript_Format) *
LabScript(VBScript _Variant_result, LabScript_Variant, LabScript_Format) *
Objet LabScript - transferts vers le format LabScript *
Utilisation *
Fonctions *
LabTab(LabScript_Variant, Address, Output_String, Wait_Value, LabScript_Format) *
VbaExcel (LabScript_Variant, VbaExcel_Variant, LabScript_Format) *
Objet Clk - Gestion du temps *
Utilisation *
Wait (seconds ) *
Seconds (t) *
Objet Iox - Programmation des ports d'entrée-sortie *
Utilisation *
Fonctions d'entrée-sortie *
Appairement des instructions Configure-Unconfigure *
Fonctions *
Configure *
Define *
Enter (adr , data, [format] ) *
Output (adr , data, [format]) *
Unconfigure() *
Objet Gpib - Programmation spécifique du bus GPIB *
Utilisation *
Instructions communes avec l'objet Iox *
Instructions spécifiques de l'objet Gpib *
Fonctions *
Ppoll (Byte_Value) *
Spoll (Address, Byte_Value) *
Send String_commands *
Gpib bus commands *
Objet Ser - Programmation spécifique de la liaison RS-232 *
Utilisation *
Instructions communes avec l'objet Iox *
Instructions spécifiques de l'objet Ser *
Fonctions de programmation de bas niveau des lignes d'entrée RS-232: *
Fonctions de programmation de bas niveau des lignes de sortie RS-232: *
Objet Par - Programmation de la liaison CENTRONICS *
Utilisation *
Programmation de bas niveau des lignes de sortie du port parallèle *
Objet Lvx - Fonctions utilitaires de LabTab2 pour les variants *
Utilisation *
Longueur en octets d'un Variant *
Transferts rapides avec une feuille Excel *
Conversion entre format variant et binaire *
Conversion entre variant et fichier *
Fonctions *
Len_Variant (Len, Data ) *
Variant_Range (Matrix,Workbook_FullName, Sheet_Name,lin1, col1, lin2, col2) *
Range_Variant (Workbook_Name, Sheet_Name,lin1, col1, lin2, col2,Matrix ) *
Variant_Binary (R , B , I , J, [P]) *
Binary_Variant (B , I , J, R , [P]) *
File_Variant (File , V) *
Variant_File( V , File) *
Objet Mix - Fonctions utilitaires diverses *
Utilisation *
Changement de séparateur decimal *
Affichage de fichier HTML *
Fonctions *
DecimalSeparator ( data , lang1, lang2) *
HtmlFileShow ( F ) *
UTILISATION AVEC D'AUTRES LANGAGES QUE VBA *
Introduction *
Interface native de la bibliothèque de LabTab *
LabVIEW *
Microsoft Internet Explorer - VBScript – ASP – IIS *
Compilation de modules LabTab2 en C, C++ et Visual Basic *
Visual Basic *
Visual C++ version 6.0 *
Listing C++ *
Visual C++ version 6.0 utilisé avec COM *
Listing C++ *
Listing d’appel depuis Excel *
COMPATIBILITé *
Utilisation de LabTab2 avec LabTab1 dans Excel-VBA *
Ré-utilisation de code LabTab1 dans LabTab2 *
Excel-VBA *
Microsoft Office - VBA *
Visual Basic et Internet Explorer-VBScript *
LabVIEW et Visual C++ *
Utilisation de la barre d’outils *
PROGRAMMATION AVANCEE *
Choix parmi les objets de LabTab2 pour la programmation *
Utilisation de plusieurs ports en séquence *
Utilisation de plusieurs ports simultanément *
Traitement des arguments optionnels *
Synthèse et mesure de signaux logiques *
Emission d'une impulsion *
Mesure d'une largeur d'impulsion *
Comportement multitâche sous VBA - DoEvents *
DoEvents - Interruption d'un programme en cours *
Programmation de délais d'attente non bloquant *
EXEMPLE DE PILOTE *
UTILISATION INTERNET ET INTRANET DE LABTAB *
CONCLUSIONS *
LabTab version 2 ou LabTab2 est un logiciel d
'instrumentation. Les éléments de LabTab2 sont notamment des fichiers contenant
des séquences de codes représentatifs d'un programme informatique et d'une
documentation. LabTab2 et ses éléments sont protégés par le droit d’auteur en
France et soumis aux lois sur le "copyright" dans de nombreux pays.
Les programmes d'application qui font appel
aux séquences de codes du programme de LabTab2 sans inclure aucune de ces
séquences sont sans redevances.
Que LabTab2 est un logiciel protégé par le
droit d’auteur signifie notamment, que vous ne devez pas faire de copies des
éléments de LabTab2 sur quelque support que ce soit , sans autorisation, c’est
à dire sans que l’auteur reçoive une redevance qui lui convienne. Aucune phrase
contenue dans ce manuel ne peut être interprétée dans un sens contraire au
contenu de ce paragraphe.
Que les programmes d’application sont sans
redevances, signifie que si vous écrivez des programmes qui font appel à des
séquences de codes du programme de LabTab2, sans inclure aucune de ces
séquences, vous n’avez à demander aucune autorisation à l’auteur de ces
séquences pour distribuer ces programmes d'application.
LabTab2 Version c – © Copyright Mai 2002, Iox Corp.
Documentation Version FR2© Copyright Mai
2002, Iox Corp.
Visual Basic Edition Applications, Microsoft
, Excel , Windows sont des marques déposées de Microsoft corporation.
LabVIEW est une marque de National
Instruments.
National Instruments, Hewlett packard ,
Iotech , Keithley-Metrabyte sont des marques déposées de ces compagnies.
Centronics est une marque déposée.
Ce document sur LabTab2 comprend:
MANUEL D'INSTALLATION - LICENCES
Public de
non-programmeurs ou de programmeurs
LabTab2 est un logiciel sous Windows pour les
chercheurs, les ingénieurs et les OEM travaillant dans le domaine de
l'instrumentation de laboratoire.
La caractéristique principale de Labtab2 est
de pouvoir être utilisé par les non-programmeurs sous Excel ou par les
programmeurs avec tout langage sous Windows.
Il leur permet de:
LabTab2 comprend notamment:
La caractéristique essentielle de LabTab2 est
de définir, pour le programmeur, des ports d’entrée-sortie de données pour les
fonctions de la bibliothèque et de fournir, aux utilisateurs, des outils de
configuration de chemins d’entrée-sortie de données correspondants.
Les programmes écrits avec les fonctions de
la bibliothèque de LabTab2, sont indépendants de la configuration, en
particulier matérielle, des chemins d’entrée-sortie de données.
Le format de la bibliothèque de LabTab2, DLL
se conformant à la spécification COM, permet de l’utiliser dans tous les
langages de programmation sous Windows, non inclus dans LabTab2, parmi
lesquels:
En particulier, la traduction des programmes
écrits avec LabTab2 dans des langages autorisant leur compilation en composants
COM ou en DLL Windows, permet leur utilisation par tous les logiciels sous
Windows.
La version 1 de LabTab fonctionnant sous
Excel et VBA, ce manuel a été rédigé principalement pour cet environnement.
LabTab2 est néanmoins aussi bien adapté à Internet Explorer et VBScript ou à
LabVIEW et Visual C++.
Avantages de
LabTab2 pour l'instrumentation
Pour les constructeurs ou les détenteurs
d’appareils de mesure munis d’une ou plusieurs interfaces , LabTab2 permet
l’écriture et la maintenance d’un seul pilote d’instrument pour tous les
contrôleurs GPIB du marché, pour tous les ports RS232 ou GPIB d’un même
instrument et pour tous les langages de programmation.
Une bibliothèque de pilotes d’instruments
écrite avec LabTab2 apparaît ainsi durable et largement utilisable.
Support
des principales marques de contrôleurs GPIB
LabTab2 prend en charge des contrôleurs de
bus GPIB de différentes marques:
Support
des ports série et parallèle
LabTab2 prend en charge les ports:
Accès à LabTab2
pour des non-programmeurs - Fonction Excel
LabTab introduit pour tous les objets, la
fonction "Excel" qui simplifie les transferts vers Excel. Avec cette
fonction, vous pouvez entrer des données binaires directement dans les colonnes
d'Excel, simplement en fournissant à la fonction une chaîne, écrite avec la
notation "LabScript" de LabTab2 et décrivant le format binaire des
données entrées. Vos données s'écoulent alors littérallement dans votre feuille
de calcul, sans effort de programmation.
Comme la fonction Excel peut être utilisée
seule, vous pouvez réaliser des pilotes avec la même unique ligne de code,
simplement en changeant les valeurs du paramètre de format. Ceci permet aux
non-programmeurs de maîtriser LabTab2 facilement avec les mêmes vitesses de
transfert que celles atteintes par les programmeurs chevronnés.
Barre d'outils et
bibliothèque
LabTab2 est constitué de la barre d'outils
exécutable " LabTab2c.exe " et de la bibliothèque Windows
"Iox2c.dll".
La barre d'outils est lancée par l’icône
" Labtab2c " du bureau Windows ( si vous avez défini ce
raccourci) ou par exécution du fichier "c:\LabTab\2c\LabTab2c.exe".
Elle peut être fermée ou ouverte indépendamment de l’exécution des programmes
appelant la bibliothèque et elle n'affecte pas les programmes en cours.
La bibliothèque est située dans le fichier
"C:\Windows\Iox2c.dll".
Arguments -
Paramètres - Type et valeur de retour
Les arguments des fonctions sont tous de type
"pointeur sur un variant". Les paramètres (valeurs des arguments) doivent
être de type "variant contenant une valeur", le type de retour est un
entier sur 4 octets et la valeur de retour est strictement inférieure à 1 sur
erreur.
Ces choix simplifient à l'extrême la
déclaration et l'utilisation des fonctions de LabTab2 sous Windows.
Ainsi, en VBA, tout argument "X"
d'une fonction de LabTab2 définie à l'aide de l'instruction "Declare"
peut être mentionné seulement par son nom dans la liste des arguments et le
paramètre "x" qui lui lui correspond lors de l'appel à la fonction
peut être déclaré par la seule instruction "Dim x". Le type de retour
est toujors "long".
Par exemple, la fonction
"Clk_Seconds" qui renvoie dans son seul argument T un compteur à la
microseconde est déclarée et utilisée en VBA par le code suivant:
Declare Function Clk_Seconds Lib
"Iox2c.dll" (T) as long
Sub Test
Dim t
R= Clk_Seconds(t)
Msgbox(t)
End sub
En C++, un argument de fonction est de type
"VARIANT *" et un paramètre de "variant contenant une
valeur", n'a pas l'attribut "VT_BYREF" dans son champ
"vt". Le type de retour est toujours "int".
Les fonctions de la bibliothèque de labTab2
sont divisées en sous-ensembles appelés objets. Chaque objet reçoit un nom
unique dans la bibliothèque. Les objets principaux sont:
Pour les utilisateurs de Windows, les objets
sont associés à des "classes" dont les noms sont formés par la
réunion du nom d'un objet et d'un caractère de soulignement ("_")
comme dans "Iox_ "pour "Iox".
Utilisation
des classes de LabTab2 avec COM/ActiveX
La bibliothèque de LabTab2 est installée en
tant que DLL COM et les classes LabTab2 sont installées en tant que classes
COM.
Création des objets de LabTab2 avec COM
Les classes de LabTab2, installées en tant
que classes COM, peuvent servir à définir des objets COM dans toute application
qui a défini une référence COM à LabTab2.
Par exemple, en VBA, il est possible de créer
un objet COM "Iox" à partir de la classe "Iox_" à l'aide de
l'expression: "dim Iox as new Iox_".
On voit donc qu'en donnant le même nom à un
objet COM que celui de l'objet LabTab2 associé à la classe, une application
peut "créer" les objets de LabTab2.
Les objets de LabTab2 peuvent ainsi être
utilisés en dehors d'Excel-VBA par toute application supportant la création
d'objets COM ou ActiveX. Ce qui inclut notamment : Microsoft Office, Visual
Basic 6, Visual C++6, LabVIEW, VBScript, etc …
Après la création d'objets COM ou ActiveX
d'après les classes de LabTab2, les fonctions de LabTab2 peuvent être alors
obtenues comme des membres ordinaires (méthodes) de ces objets.
Si votre langage ne supporte pas les objets
COM ou ActiveX, reportez-vous à la section "Appel de LabTab2 comme une DLL
conventionnelle".
Création d'objets de LabTab2 avec "New"
Dans les langages comportant le mot-clé
" new " (Microsoft Office,Visual Basic), la création
d'objets COM d'après les classes de LabTab2 est simple.
Il suffit de déclarer une référence à
" Iox2c 1.0 Type Library " , la bibliothèque de LabTab2
contenue dans le fichier " C:\LabTab\2c\Iox2c.dll ".et de
créer, par exemple, l’objet " Iox " d'après la classe
"Iox_" de LabTab2, par les instructions :
" Dim
Iox as new Iox_ "
Création d'objets de LabTab2 avec "CreateObject"
Dans les langages comportant seulement le
mot-clé " CreateObject " (VBScript, Internet Explorer),
l’objet " Iox " est obtenu directement par :
" Dim
Iox as object : Set
Iox=CreateObject(" Iox2c.Iox_ ") "
Un exemple est fourni dans les répertoires
"c:\LabTab\2c\Excel" et "c:\LabTab\2c\IE"
Création d'objets COM pour LabTab2 avec LabVIEW
En LabVIEW, il est possible de définir un
objet ActiveX " Iox2c 1.0 Type Library " comme un objet
ActiveX ordinaire. Reportez-vous à la documentation de LabVIEW. Un exemple est
fourni dans le répertoire "c:\LabTab\2c\LabVIEW"
Création d'objets COM pour LabTab2 avec Visual C++ 6
En C++ , vous utiliserez la directive #import
du compilateur. Vos composants LabTab2 compilés avec C++ peuvent être utilisés
dans toute application Windows.Un exemple est fourni dans le répertoire
"c:\LabTab\2c\VC6"
Appel de LabTab2
comme une DLL conventionnelle
La bibliothèque de LabTab2 est utilisable
comme une DLL conventionnelle, sans support COM. Pour utiliser cette accès dit
"natif", le nom de chacune des fonctions peut être simplement déduit
de son appel par COM en remplaçant le point "." par un "_"
et en remplaçant le nom de l'objet par le nom de sa classe. Par exemple, si la
fonction "Configure" de l'objet "Iox" est appelée depuis un
langage supportant COM par :"Iox.Configure" alors le nom exporté par
la bibliothèque de LabTab2 sera "Iox_Configure" avec les mêmes
arguments.
L’aide de LabTab2 est au format HTML.
Un nouveau bouton
" Test " de la barre d’outils de LabTab permet d’envoyer
des commandes en utilisant le port " Iox " de LabTab2 et
d’afficher les résultats à l’écran. Il est accessible même en mode
démonstration.
Traitement
des tableaux de Variant
Les fonctions
"Output/ Enter " de LabTab2, supportent en second argument
les tableaux de données de type Variant, de complexité arbitraire . Il est
ainsi possible de décrire précisément toute entrée de données, par la
définition d’une structure, avant une instruction Enter , puis de remplir cette
structure en une seule fois par cette instruction. Le résultat en est
l ‘écriture de pilotes encore plus lisibles et compacts avec seulement
quelques instructions de LabTab et un portage facile du code.
Au cas où aucune directive n'est donnée aux
fonctions "Enter" sur la structure du résultat, un format
"binaire" est utilisé par LabTab pour privilégier la vitesse de
transfert. L'interface "a_Lvx" fournit alors la fonction
"Variant_Binary" pour convertir le format "binaire" en
"variant" de complexité arbitraire et "Binary_Variant" pour
l'opération inverse. Il est ainsi possible d'utiliser les tableaux de variants
"a posteriori" sur les résultats de "enter".
Mesure du
temps à la microseconde -
Objet Clk
Dans l'objet "Clk" (Clock) sont
disponibles les fonctions:
A titre de comparaison, l'objet Vbx,
compatible avec la version 1 ne fournit une instruction "Delay"
qu'avec une incertitude de 55ms environ.
Stockage
de Variant sur fichier binaire
Lvx introduit des fonctions
supplémentaires : File_Variant, pour sauvegarder un tableau de variants
dans un fichier et Variant_File pour charger un fichier dans un tableau de
variants.
INSTALLATION -
CREATION DE DISQUE D'INSTALLATION - DESINSTALLATION

Installation avec un
fichier compressé au format auto-extractible WinZip®
Utiliser les options de la barre d'outils
normalement ( cf ci-dessous)
Installation avec un
disque d'installation
Utiliser les options de la barre d'outils
normalement ( cf ci-dessous)
Création d'un disque
d'installation
Pour créer un disque d'installation sur
"A:":
"MakeDisk" fonctionne avec tout
répertoire autre que "A:" et préserve entièrement l'installation de
LabTab.
Pour désinstaller LabTab d'une machine:
"Uninstall" fonctionne avec tout
répertoire autre que "A:" et est réversible immédiatement, en
cliquant le bouton "Install", apparaissant en fin d'opération. Une
simple installation ultérieure restaure aussi LabTab à l'identique.
Après l'installation de LabTab2, vous êtes en
mode de démonstration.
Dans ce mode, toutes les fonctionnalités de
la barre d'outils de LabTab sont accessibles et en particulier l'utilitaire
"Test" qui vous permet de dialoguer à l'écran avec votre instrument.
Toutes les fonctions de la bibliothèque de
LabTab2 sont disponibles à des fins d'évaluation. Notamment:
Des exemples de programmes utilisant ces
fonctions sont fournis dans les répertoires de
Tous les tests programmés supposent que vous
ayez:
Test avec
Microsoft Internet Explorer
Test avec
Microsoft Internet Explorer et Microsoft Excel
Ce test est un exemple d'utilisation des
fonctions Excel de LabTab2
Après l'installation de LabTab2, celui-ci
fonctionne en mode démonstration.
Les sorties de données arbitraires sur les
ports "GPIB" "RS-232" et "CENTRONICS" sont
désactivés dans cette version de LabTab , vous pouvez seulement envoyer les
caractères "*IDN?". Pour activer les sorties arbitraires de données,
veuillez vous reporter ci-dessous, à la section "activation du
logiciel".
Version OEM -
Utilisation de pilotes d'instruments intégrés à LabTab
Vous pouvez avoir reçu LabTab en version OEM,
dans laquelle LabTab est utilisé comme pilote d'un instrument particulier, par
exemple un voltmètre "HP34401A". Dans ce cas, après installation
normale de LabTab, l'écran de copyright affiche "Licensed for HP34401A
voltmeter" dans le champ "Product Status" et continue d'afficher
le numéro du produit LabTab complet et le champ d'entrée du numéro de licence
pour LabTab.
Dans cette version, en plus de toutes les
fonctions de la version de démonstration, vous avez accès par programme aux
entrées-sorties de données prévues pour votre instrument, rassemblées dans une
classe LabTab2 nommée usuellement, comme votre instrument , comme
dans"HP34401A_". L'objet prévu pour votre instrument s'utilise alors
dans vos programmes comme les objets de LabTab2. Vous pouvez donc vous référer
à la présente documentation pour obtenir la mise à disposition de ses fonctions
dans vos programmes. Pour toute autre information, vous devez vous reporter à
la documentation fournie avec votre pilote ou contacter votre fournisseur.
Les sorties de données arbitraires sur les
ports "GPIB" "RS-232" et "CENTRONICS" sont
désactivés dans cette version de LabTab, vous pouvez seulement envoyer les
caractères "*IDN?". Pour activer cette fonctionnalité, veuillez vous
reporter ci-dessous, à la section "activation du logiciel".
Cette version est obtenue après communication
de votre numéro de produit, obtention de votre clé de produit et activation de
votre logiciel. Toutes les sorties de données de LabTab sont actives dans ce
mode.
Pour activer LabTab2, veuillez vous reporter
ci-dessous, à la section "activation du logiciel".
MANUEL DE L'UTILISATEUR - LABTAB
LabTab2 comprend un fichier exécutable,
" LabTab2c.exe ", qui affiche à son lancement une fenêtre
de type barre d'outils munis de boutons cliquables, correspondant à des
"outils" , pour l'utilisateur. Vous quittez l'écran barre d'outils de
LabTab2 en cliquant sur la croix en haut à droite de l'écran ou en appuyant sur
tout bouton libellé "Exit".
Après installation de LabTab2, le fichier
exécutable " LabTab2c.exe" peut être utilisé, depuis
l'emplacement "C:\LabTab\2c\LabTab2c.exe", pour:
Création d'un
raccourci vers LabTab2 sur le bureau
|
|
Vous pouvez lancer LabTab2 en exécutant le
fichier "c:\LabTab\2c\LabTab2c.exe" après l'installation.
Cependant, Il est fortement recommandé d’en installer un raccourci sur votre
bureau Windows. Un simple double click sur ce raccourci vous permet alors de
lancer LabTab2c et d'afficher comme écran de démarrage, la barre d'outils de
LabTab2 avec ses utilitaires. |
Ces outils sont au nombre de quatre:
"Copyright" , "Config", "Help" et "
Test"
|
|
|
Affiche l'utilitaire de "Copyright" et d'activation de LabTab2. |
|
|
Permet d'afficher l'utilitaire de configuration des ports de LabTab2. |
|
|
|
Permet d'afficher le présent document à l'écran. |
|
|
|
Permet d'afficher l'utilitaire de test manuel de LabTab2 |
Copyright -
Activation du logiciel
Modes de
fonctionnement de LabTab2
Si vous pensez que LabTab2 peut vous être
utile dans sa version complète, vous pouvez acheter à votre revendeur une clé,
qui permet d’activer les fonctionnalités d’entrées-sorties arbitraires de
données sur les ports de LabTab2.
L’outil " Copyright "
permet d’effectuer ou de vérifier l’activation de LabTab2.
L'utilitaire "Copyright" affiche
l'un des deux écrans ci-dessous (avec vos propres numéros de produit et de
licence) :
|
|
|
Pour activer votre logiciel, communiquez, à
votre revendeur local ,votre numéro de produit qui peut être:
Utilisez ensuite votre numéro de licence,
transmis par votre revendeur local, de l'une des façons suivantes:
Avec un numéro de licence valide, LabTab2 est
pleinement activé avec l'une de ces opérations.
Config -
Configuration des ports
Le bouton " Config "
permet d'afficher la suite des écrans de l'outil de configuration de LabTab2.
Chaque écran comporte une barre d'outils
identique dans sa partie supérieure avec quatre boutons:
|
|
|
Permet de quitter l'outil de configuration sans sauvegarder les changements qui y ont été effectués. |
|
|
Permet de quitter l'outil de configuration en sauvegardant les changements qui y ont été effectués |
|
|
|
Revient à l'écran précédent s'il existe |
|
|
|
Sauvegarde les changements effectués pour cet écran et passe à l'écran suivant s'il existe. |
Outre cette barre d'outils, les écrans de
configuration comportent des listes à choix multiples en nombre et en contenu
variables. Vous effectuez la configuration en choisissant dans les listes
proposées et en validant par "OK".
Vous naviguez à l'aide des boutons
"<<" et "OK".
Lorsque vous sortez de la fenêtre de
configuration en utilisant le bouton "Save/Exit", votre configuration
est sauvegardée automatiquement et vous êtes assurés de la retrouver à la
prochaine ouverture. En sortant avec "Exit" ou en fermant la fenêtre,
aucun de vos changements même validé par "OK" n'est sauvegardé.
Configuration
des ports de LabTab2
Les ports de la bibliothèque de LabTab2, sont
les objets munis de fonctions d'entrée et de sortie de données. Ils sont
identifiés par leurs noms: "Iox", "Gpib", "Gpib1"
etc. … et par leur type égal à "a","b" ou "c".
L'utilitaire de configuration peut accéder
aux descriptions des ports de LabTab2 et de ports physiques correspondant à du
matériel de l'ordinateur hôte, sur lequel l'installation a été effectuée.
Les ports sont traités par l'utilitaire de
configuration comme des variables pouvant contenir soit:
Les fonctions de la bibliothèque de Labtab2
explorent récursivement, au moment de leur appel, le contenu des ports de
LabTab2 pour trouver les paramètres d'un port physique, utilisés pour
l'émission ou la réception de données.
L'utilitaire de configuration de LabTab2
permet de définir commodément le contenu des ports de LabTab2. Ils sont, pour
cela, organisés en une hiérarchie descendante dans laquelle un port ne peut
être relié qu'à un port de niveau inférieur.
Il y a trois niveaux de configuration,
correspondant aux types des ports.
Le premier niveau de configuration comprend
le port de type "a" "Iox"
Le deuxième niveau de configuration comprend
les ports de type "b"
"Gpib","Par","Ser"
Le troisième niveau de configuration comprend
les ports de type "c":
Chaque marque de port GPIB est citée deux
fois afin de pouvoir configurer deux ports de la même marque. Ce cas se
présente s'il existe deux cartes GPIB du même constructeur sur l'ordinateur où
est installé LabTab2.
Les trois premiers niveaux de configuration
concernent des ports communs à tous les fabricants de matériel. Les noms de ces
ports sont les seuls définis dans la bibliothèque de LabTab2. Leurs noms sont
rappelés ci-dessous:
Un quatrième niveau de configuration permet
de donner les paramètres du contrôleur GPIB de la marque sélectionnée, qui est
physiquement présent sur l'ordinateur où est installé LabTab2.
Ce niveau permet aussi de préciser les
paramètres des ports "COM".
Premier niveau de configuration - Port "Iox"
|
|
A ce niveau, le port "Iox" de
LabTab2 peut être relié à l'un des ports "Gpib", "Ser" ou
"Par". Le choix définit le type de liaison à configurer: liaison GPIB, série ou parallèle, respectivement. |
Deuxième niveau de configuration - Port "Gpib"
|
|
A ce niveau, le port "Gpib" de
LabTab2 peut être relié à l'un des ports "Gpib1",
"Gpib2", "Gpib3" ou "Gpib4". Le choix définit le numéro de la liaison
GPIB à configurer. |
Deuxième niveau de configuration - Port "Ser"
|
|
A ce niveau, le port "Ser" de
LabTab2 peut être relié à l'un des ports "Ser1" ou
"Ser2". Le choix définit le numéro de la liaison série à configurer. |
Deuxième niveau de configuration - Port "Par"
|
|
A ce niveau, le port "Par" de
LabTab2 peut être relié à l'un des ports "Par1" ou
"Par2". Le choix définit le numéro de la liaison parallèle à configurer. |
Troisième niveau de configuration - Ports "Ser1" et "Ser2"
|
|
A ce niveau, le contenu des ports
"Ser1" et "Ser2" de LabTab2 peut être affecté du nom d'un
port RS232 physique, présent sur l'ordinateur où est installé LabTab2. Ce port est décrit par son nom (COM1,COM2). |
Troisième niveau de configuration - Ports "Par1" et "Par2"
|
|
A ce niveau, le contenu des ports
"Par1" et "Par2" de LabTab2 peut être affecté du nom d'un
port physique CENTRONICS présent sur l'ordinateur où est installé LabTab2. Ce port est décrit par son nom (LPT1,LPT2,…). |
Troisième niveau de configuration - Ports Gpib1 à Gpib4
|
|
A ce niveau, le contenu des ports
"Gpib1", "Gpib2", "Gpib3" ou "Gpib4"
de LabTab2 peut être affecté de la description d'un port GPIB physique décrit
par sa marque . Le choix d'une marque de contrôleur GPIB
peut être:
Chaque marque de contrôleur GPIB est
proposée une deuxième fois avec le suffixe "(2)" pour permettre de
configurer deux ports GPIB de même marque présents sur un ordinateur. |
Quatrième niveau de configuration - Ecran Hewlett-Packard / Agilent
|
|
Cet écran permet de décrire le contrôleur
GPIB d'un port Hewlett-Packard ou Hewlett-Packard(2). Le choix du champ "Board type"
est optionnel et utilisé à des fins de différentiation des cartes présentes. Le choix du champ Board Name est obligatoire. Il peut être trouvé dans l'utilitaire de configuration fourni par le constructeur du matériel, il y correspond à la valeur du champ "SICL name" et varie de hpib7 à hpib15. |
Quatrième niveau de configuration - Ecran Iotech
|
|
Cet écran permet de décrire le contrôleur
GPIB d'un port Iotech ou Iotech(2). Le choix du champ "Board type"
est optionnel et utilisé à des fins de différentiation des cartes présentes. Le choix du champ Board Name est obligatoire. Il peut être trouvé dans l'utilitaire de configuration fourni par le constructeur du matériel, il prend une valeur de "IEEE0" à "IEEE3" pour une à quatre cartes installées. |
Quatrième niveau de configuration - Ecran Keithley-Metrabyte
|
|
Cet écran permet de décrire le contrôleur
GPIB d'un port Keithley-Metrabyte ou Keithley-Metrabyte (2). Le choix du champ "Board type"
est optionnel et utilisé à des fins de différentiation des cartes présentes. Le choix du champ Board Name est
obligatoire. Il prend la valeur 0 à 3 pour une à quatre cartes installées. Le choix champ I/O address est facultatif pour les cartes au format PCI, la valeur par défaut &h2B8 est dans ce cas conseillée mais optionnelle. Pour les cartes au format ISA, la valeur de cette adresse doit être relevée sur les interrupteurs de la carte et mise sous forme hexadécimale. |
Quatrième niveau de configuration - Ecran National Instruments
|
|
Cet écran permet de décrire le contrôleur
GPIB d'un port National Instruments ou National Instruments (2). Le choix du champ "Board type"
est optionnel et utilisé à des fins de différentiation des cartes présentes. Le choix du champ Board Name est obligatoire. Il peut être trouvé dans les dans la rubrique National Instruments du gestionnaire de périphériques de Windows, sa valeur est GPIB0 à GPIB3 pour 1 à 4 cartes installées. |
Quatrième niveau de configuration - Ports "COM1" et "COM2"
|
|
A ce niveau, les paramètres RS-232 des
ports physiques "COM1" et "COM2" de Microsoft peuvent
être précisés. Ces paramètres sont identiques à ceux de la
commande MODE du DOS:
Les choix définissent les paramètres de la
liaison série à configurer. Les protocoles sont en petit nombre , et en cas de refus de communiquer , vous pourrez les essayer tous , en commençant par aucun protocole. L’utilisation des protocoles nécessite en général un câble adéquat. |
Utilisation de la
configuration des ports de LabTab2 par la bibliothèque de LabTab2
Lorsque le contenu des ports de LabTab2 a été
défini et que vous sortez de la fenêtre de configuration par
"Save/Exit", votre configuration est sauvegardée de façon permanente
sur disque. Elle détermine alors un nouveau chemin d'entrée-sortie des données
par défaut pour les fonctions de la bibliothèque de LabTab2.
Cependant les applications en cours
d'exécution au moment de cette sauvegarde et qui utilisent la bibliothèque de
LabTab2 ne sont pas affectées et continuent d'utiliser la configuration de
LabTab2 existant au moment de leur lancement. Pour leur faire prendre en compte
la nouvelle configuration, vous devez les relancer.
Les choix de configuration sauvegardés
s'appliquent par défaut dans la bibliothèque de LabTab2 aux fonctions
"Excel" de tous les objets et "Define" , qui définissent le
chemin d'entrée-sortie des données, des objets Iox, Gpib , Ser , Par , Gpib1 à
Gpib4 , Ser1, Ser2, Par1 et Par2 de LabTab2. Lorsque ces fonctions n'utilisent
aucun paramètre, leur chemin d'entrée-sortie est alors déterminé
automatiquement par le contenu des ports de LabTab2, qui est exploré
récursivement jusqu'à rencontrer la description d'un port physique.
Il est ainsi possible avec les mêmes appels
aux fonctions de LabTab2, donc un même programme, d'échanger des données via le
port "Iox" avec différents ports physiques. Simplement en changeant
la configuration.
L'utilitaire de configuration permet
véritablement aux programmes utilisant les fonctions de LabTab2 d'être
réutilisables tels quels sur de nombreux matériels.
"Help" -
Utilitaire d'aide à l'écran
Cet utilitaire permet d'afficher le présent
document à l'écran.
Rq: Avec NT4 service pack 1, ou avec les
versions d'Internet Explorer jusqu'à la version 2 incluse, l'aide n'est pas
accessible à partir du bouton "Help" de la barre d'outils de LabTab2.
Elle peut néanmoins être affichée en
double-cliquant sur le fichier "c:\LabTab2\2c\Help\Iox2c.htm".
Cet utilitaire est disponible dans la version
de démonstration. Pour qu'il fonctionne correctement, l'utilitaire de
configuration doit avoir été utilisé préalablement pour relier le port
"Iox" à un port physique présent sur l'ordinateur.
Pour effectuer cette opération,
reportez-vous, si nécessaire, à la rubrique "Utilitaire de
configuration" ci-dessus.
L'utilitaire de test est un exemple de
programme d'entrée-sortie "universel" réalisable avec LabTab2.
Le programme de test, en prenant en compte
les valeurs affichées dans l'écran ci-dessous, est l'équivalent du programme
VBA suivant:
Sub Test
With Iox
.Define
.Configure
.Output 22,
"*idn?"
Clk.Wait 0.1
.Enter 22,a
.Unconfigure
End with
Msgbox a
End Sub
|
|
Permet d'exécuter une fois le programme |
|
|
|
Sort
de la fenêtre |
|
|
|
Lance
une exécution en boucle |
|
|
|
Stoppe l'exécution en boucle |
|
|
Address |
Entrée
d'une adresse GPIB : 0 à 30 ( ignorée pour un port RS-232 ) |
|
|
Output String |
Reçoit une chaîne à émettre |
|
|
CR |
Envoie ASCII(13) à la fin de Output. |
|
|
LF |
Envoie ASCII(10) à la fin de Output |
|
|
|
Rq: CR et LF peuvent être cumulés dans cet ordre |
|
|
Value |
Reçoit le délai entre Output et Enter |
|
|
offset |
Délai réel = Value + offset |
|
|
Enter
String |
Accueille
la chaîne reçue |
|
|
|
Efface de l'écran "Enter String", le "Error report" et "Address" dans "Enter" |
METTRE DES
MESURES DANS EXCEL EN 5 MN AVEC LABTAB
Si vous n'avez pas de distribution de LabTab, vous pouvez la télécharger sur le site Internet : www.LabTab.com
Vous devez disposer d'un ordinateur de type
IBM PC ou compatible muni de Windows 95 ou ultérieur.
Vous devez avoir installé sous Windows, selon
les instructions de leur constructeur, un contrôleur GPIB ou IEEE-488 de marque
National Instruments, Hewlett-Packard/Agilent , Keithley-Metrabyte/CEC ou
Iotech.
Vous devez avoir raccordé un instrument de
mesure compatible IEEE-488 à ce conrôleur, avec un câble IEEE-488. Votre
instrument doit être capable de répondre à une interrogation de type
"*idn?" et vous devez connaître son "adresse IEEE-488" que
nous prendrons, par exemple, égale à 22.
Vous devez disposer d'Excel 5 ou ultérieur.
A partir du site de LabTab, téléchargez
LabTab et décompressez-le sur votre disque "C". Cette opération est
réversible sans qu'aucune trace de LabTab ne subsiste sur votre ordinateur par
simple désinstallation ultérieure.
En fin de téléchargement, vous devez disposer
d'un fichier à l'emplacement "C:\LabTab\2c\LabTab2c.exe". Ouvrez-le
d'un double click, la "barre d'outils" de LabTab apparaît.
Cliquez sur "Config" et
sélectionnez "Gpib" dans la sélection proposée puis cliquez sur
"OK". Dans les écrans suivants choisissez de même "Gpib1"
puis "National Instruments" et enfin l'identificateur "GPIB0"
en appuyant une dernière fois sur "OK". Choisissez
"Save/Exit" pour revenir à la barre d'outils. Pour les autres
marques, procédez de manière identique en choisissant comme identificateur de
contrôleur "IEEE0" pour "Iotech" , "hpib7" pour
Agilent/HP et "&2B8" pour "CEC/Keithley".
Cliquez sur "Test" et entrez
"*idn?" dans le champ "Output string" , entrez l'adresse
GPIB de l'instrument dans le champ correspondant et appuyez sur "OK".
Vous devez obtenir l'identification de votre instrument dans le champ
"Enter string".
Ouvrez "Excel" puis "Visual
Basic pour Applications" (VBA), en appuyant sur "Alt" et
"F11" simultanément. Dans le menu "Outils", choisissez
"Références", allez à la ligne indiquant "Iox2c type
Library" et cochez la case de cette ligne.Dans le menu "Insertion",
choisissez "Module", un module VBA vierge apparaît. Dans ce module,
tapez :
Dim
Excel as new Excel_ ' n'oubliez pas le "_"
Sub
Test
W = ThisWorkbook.FullName
S = ThisWorkbook.Worksheets(1).Name
R=
Excel.LabTab(W,S,1,1,22,"*idn?",0.3, F)
End
Sub
Placez votre curseur sur le texte de votre
code et cliquez une fois, puis appuyez sur F5 pour lancer le code.
La réponse de votre instrument, apparaît dans
la cellule en haut à gauche, dans la première feuille de votre classeur.
LabTab permet d'utiliser le même programme
que ci-dessus pour introduire les données de n'importe quel instrument dans
votre feuille Excel ! Pour cela, il suffit de payer pour la licence et
remplacer la commande "*idn?" et la chaîne de format F (vide dans
l'exemple ci-dessus) par des valeurs adaptées à chaque instrument
Vous pourrez ainsi très facilement entrer une
forme d'onde d'un oscilloscope Lecroy ® avec tous ses paramètres dans une
feuille Excel et donc, dans tous vos rapports d'expériences sous Word en un
temps record. Vous pourrez aussi utiliser LabTab sous LabVIEW® pour transférer
vos données dans Excel sans programmation
FORMATER DES
MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT
Le programme de la partie précédente doit
fonctionner correctement avec le paramètre F vide en entrée. Vous devez savoir
entrer une chaîne de caractères entre guillemets à la place de F dans l'appel à
LabTab.Excel ou dans une ligne: F="" avant cet appel.
La fonction "Excel.LabTab" possède
un dernier argument que nous avons laissé vide dans l'exemple précédent.
Lorsque son argument est une chaîne de
caractère non-vide se conformant à la notation LabScript, décrite plus loin, la
fonction met en forme les données automatiquement dans les colonnes d'une
feuille Excel. Pour voir apparaître les données d'un instrument dans un
classeur Excel, il vous suffit donc de founir une chaîne LabScript adaptée à
son flux de données, en vous conformant à la syntaxe de LabScript exposée
maintenant.
Une chaîne LabScript valide est constituée
d'un ou plusieurs descripteurs de colonnes séparés par des virgules et sans
espaces blancs, comme dans
"I2,S(10),I4[5],R8{8},NS(15)<English>".
Chaque descripteur de colonne comprend
toujours le nom d'un type binaire commun à toutes les cellules de la colonne
comme "I2" et si nécessaire la taille en octets de ce type entre
parenthèses comme " S(10)", le nombre de cellules à remplir dans la
colonne entre crochets I4[5], une période d'inversion des octets entre accolades
comme "R8{8}"et le nom en anglais du langage d'origine des octets
entre signes d'inégalité stricte inférieure et supérieure comme
"NS(10)<English>". L'ordre de ces champs est arbitraire dans un
descripteur. Ainsi, sachant que l'expression "I4[3](4){2}<English>"
est un descripteur valide, "[3]<English>(4){2}I4" l'est aussi.
Par exemple, la réception d'un octet 255 puis
d'un octet 0 , en provenance d'un instrument peut être entrée dans Excel comme
le nombre signé -128, en lui associant le format "I2". La séquence
inverse 0 puis 255, associée au format "I2{2}", y entrera aussi le
nombre -128.
Le nom du type binaire est choisi parmi:
La taille en octet du type binaire apparaît
nécessaire seulement pour les types chaînes "S","S2" et
"NS" qui sont de longueur variable. Ainsi "S(10)" désigne
une chaîne occupant 10 octets à 1 octet par caractère soit 10 caractères. Pour
les autres types, cette indication est optionnelle et "I4" est
équivalent à "I4(4)".
Le nombre de cellules est pris par défaut à 1
et " I4[1]" est équivalent à "I4".
La période d'inversion des octets peut être
nécessaire pour transformer les octets les plus significatifs en moins
significatifs pour les types de taille en octet supérieure à 1 soit
"I2", "I4", "R4","R8" et
"S2". Cette période doit être un diviseur de la taille en octets. Sa
valeur par défaut est 1, qui correspond à l'absence d'inversion. Ainsi
"I2" est équivalent à "I2{1}".
Enfin le langage, pris par défaut,est le
langage de l'utilisateur d'Excel. Le langage est explicitement mentionné
surtout avec le type "NS" car il permet alors de transformer le
séparateur décimal utilisé dans le flux d'octets en séparateur décimal de
l'utilisateur. La chaîne résultante peut alors être utilisée dans les formules
par Excel comme un nombre.
Tous les types ci-dessus sont adaptés aux
applications sous Windows. Ils correspondent à une transmission des octets les
moins significatifs en premier, comme des caractères ASCII entre 0 et 255. Pour
décrire du binaire codé avec 2 caractères hexadécimaux par octet et où le
caractère hexadécimal de poids fort de chaque octet est transmis en premier,
LabScript comprend les types "hexadecimaux" suivants:
Par exemple, la suite "8000" en
hexadécimal, associée au format un "I2H2" est entrée dans Excel comme
les octets 128 et 0 et donc -128.
Pour les types hexadécimaux, il est possible
de préciser une suite d'un maximum de 4 périodes de renversement de l'ordre pour
les octets du type. Il suffit de les séparer par des points-virgules
";" entre les accolades. L'ordre des périodes de permutation est
indifférent et "I2H2{4;2}" est identique à "I2H2{2;4}". Les
périodes omises ou incorrectes sont mises à 1 par défaut.
Exemple: la suite "0080" en
hexadécimal doit être associée au format un "I2H2{4;2}" pour être
entrée dans Excel comme les octets 128 et 0 et donc -128. En effet l'inversion
sur 4 octets donnera d'abord "0800" puis sur 2 octets
"8000".
Voici quelques exemples de formats LabScript:
"I" déclare 1 octet dans le flux
comme un entier sur un octet destiné à la colonne 1 et la cellule 1 de la
feuille
"I[40]" déclare 40 types
"I" pour les lignes 1 à 40 de la colonne 1
"I[10],I[30]" déclare 10 entiers
pour la colonne 1 et 30 pour la colonne 2.
"S(40) déclare 40 octets pour les
caractères d'une chaîne à 1 octet par caractère pour la colonne 1 ligne 1.
"S2(40) déclare 40 octets pour les
caractères d'une chaîne à 2 octets par caractère pour la colonne 1 ligne 1.
"S(8)[5]" déclare 5 chaînes de 8
octets pour la colonne 1 ligne 1
"S(8)[5], S(2)[20]" rentre 5 et 20
chaînes dans les colonnes 1 et 2.
"I4{4}[1000]" déclare 1000 entiers
sur 4 octets dans la colonne 1 en inversant leur ordre.
"NS(20)<English>" déclare une
chaîne de 20 octets représentant un nombre décimal en anglais. Pour les
utilisateurs dont les langages le nécessitent, le point décimal sera converti
en virgule.
Comme vous le montrent tous ces exemples,
vous pouvez mettre très rapidement dans Excel, sans connaissances de
programmation particulières, les données de tout instrument. Il vous suffit de
déclarer dans une chaîne LabScript , le format binaire de la réponse de
l'instrument , en vous aidant de sa documentation et de la transmettre en argument
de format à la fonction "Excel.LabTab".
Avec les types hexadécimaux, il est aussi
possible de transporter des données et leur format "LabScript"par des
canaux uniquement textuels (WWW, HTTP , HTML,XML , etc… ) vers Excel ou toute
autre application sous Windows.
Pour cela, il est possible d'utiliser sur un
serveur la fonction "LabScript.LabTab" qui convertit les données
d'instruments en "LabScript", d'envoyer à un client les données et
leur format, puis d'envoyer les données dans Excel en respectant leur format à
l'aide de la fonction "Excel.LabScript" chez le client. Aucune
licence de "LabTab" n'est nécessaire pour les clients et seule une
seule licence est requise pour le serveur.
INSTALLATION
DE LA BIBLIOTHEQUE IOX
LabTab2 installe une
" bibliothèque " contenant des
" fonctions " regroupées en " objets".
Elle est contenue dans le fichier
" C:\Windows\Iox2c.dll " et reconnue par Windows comme une
" DLL " (conventionnelle) et une " DLL
COM " (conforme à COM). Elle utilise par défaut la configuration de
LabTab.
INTERFACE
NATIVE – INTERFACE COM
Pour les programmes qui peuvent appeler des
DLL, la bibliothèque exporte ses fonctions en tant que
" procédures " et Windows fournit les moyens d’appeler ces
procédures, via la section d’interface native de la bibliothèque.
Pour les programmes qui peuvent appeler des
DLL COM, la bibliothèque expose des " classes " et Windows
fournit d’abord les moyens pour créer les objets de la bibliothèque en tant qu’
" instances " de ces classes puis les moyens d’appeler les
fonctions de ces objets en tant que " méthodes " de ces
instances, via le section d’interface " COM " de la
bibliothèque.
A titre de comparaison, l’interface COM peut
être utilisée avec tous les logiciels sous Windows mais les composants
utilisant cette interface nécessitent un enregistrement manuel de l’utilisateur
lors du déploiement. Inversement, les composants utilisant l’interface native
ne fonctionnent pas avec les langages de " script " comme
VBScript mais ne nécessitent aucun enregistrement.
L’interface COM est utilisée par défaut
ci-dessous.
Les objets de la bibliothèque sont divisés en
objets orientés "applications" et en objets "orientés
ports". Les objets "orientés applications" sont plus simples à
utiliser et plus concis pour une application donnée. Les objets "orientés
ports" sont divisés en "ports" munis de fonctions
d’entrée-sortie de données et en " utilitaires " pour le
traitement des données. Ils conviennent à toutes les applications sous Windows
et permettent d'utiliser toutes les possibilités de LabTab au détriment de la
concision des programmes.
Les objets "orientés applications"
sont : "Excel" ,"VbaExcel" et "LabScript". Leur
fonction principale est la fonction "LabTab" qui permet d'effectuer
des entrées-sorties à l'aide du chemin "Iox" défini dans la
configuration de LabTab à une valeur "Gpib", "Ser" ou
"Par".
Les objets "orientés ports"
sont associés à un type " a " ,
" b " ou " c " selon leur liaison
croissante au matériel :
Les utilitaires sont tous de type
" a " (indépendants du matériel) :
DECLARATION DES FONCTIONS DANS EXCEL-VBA
Pour utiliser, pour la première fois, les
fonctions de LabTab2, dans un module VBA d’un classeur Excel, vous devez :
ouvrir un nouveau classeur Excel
ouvrir l’éditeur de Visual Basic édition
Applications (VBA) et insérer un module VBA
définir une référence à Iox2c, la
bibliothèque de LabTab2, dans le classeur Excel
sauver le classeur Excel, muni de la
référence à Iox2c.
A chaque ré-ouverture du classeur Excel
sauvegardé, LabTab2 sera alors chargé automatiquement.
Ouverture d’un nouveau classeur
Excel
Lancez Excel. Excel ouvre un classeur nommé
" Classeur1 ".
Ouverture de VBA et insertion
d’un module de programmation
L’éditeur VBA s’ouvre en appuyant
simultanément sur les touches " Alt " et
" F11 " de votre clavier.
Dans la fenêtre
" Projet ", cliquez une fois sur
" VBAProject (Classeur1) ".
Dans le menu
" Insertion " , choisissez l’article
" Module ", une fenêtre apparaît alors et vous pouvez tapez
du code VBA dans celle-ci. Cliquez une fois dans cette fenêtre et tapez-y le
code : " Sub test " et appuyez sur
" Enter ". Vous devez voir apparaître le code
ci-dessous :
Sub test ()
End sub
Vous venez de taper votre premier
sous-programme VBA ! Vous avez pu apprécier une caractéristique utile de
VBA qui est l’aide syntaxique : VBA a ainsi automatiquement ajouté les
parenthèses et le texte " end sub ".
Ajout d’une référence à la DLL de LabTab2 - Iox2c
Depuis le menu VBA
" Outils " choisissez " Références ".
Dans la liste " Références disponibles : " cochez la
case " Iox2c 1.0 Type Library" et cliquez sur le bouton " OK ".
Les classes de LabTab2 servant à créer des
ports de LabTab2, sont dorénavant disponibles dans le
" Module1 " VBA de "Classeur1 ". Pour le
vérifier tapez sous la ligne Sub test(), le code suivant suivi d’un
espace après " New ":
" Dim Iox as New "
Comme LabTab2 utilise l’aide syntaxique de
VBA, vous devez voir apparaître une liste de classes disponibles comprenant
entre autres "Iox_ "
Choisissez " Iox_ " pour
obtenir le code suivant :
" Dim Iox as New Iox_"
Vous pouvez alors utiliser les instructions
de LabTab2 dans vos programmes, celles-ci peuvent être visualisées par l’aide
syntaxique en tapant sous la ligne précédente le mot
" Iox " suivi d’un point " . ". VBA
vous proposera alors toutes les instructions disponibles pour l’objet Iox
défini à partir de la classe Iox_.
Depuis un langage ne supportant pas le mot
New, vous utiliseriez la syntaxe :
" Dim Iox : Set
Iox=CreateObject(" Iox2c.Iox_ ") "
Dans ce cas , aucune référence à Iox2c 1.0
type Library n’est nécessaire mais l’aide syntaxique n’est pas active.
La mise à disposition des instructions de
LabTab2 dans VBA est terminée pour la classe Iox_.
Pour les autres classes, il suffit de
substituer au nom de classe "Iox_", le nom de la classe LabTab2
souhaitée. Les noms des objets de LabTab2 sont les suivants:
"Iox"
"Gpib", "Ser",
"Par"
"Gpib1" ,"Gpib2",
"Gpib3", "Gpib4"
"Ser1" , "Ser2"
"Par1" , "Par2"
"Vbx"
"Lvx" , "Mix"
Si vous le souhaitez , sauvegardez le
" Classeur1 " en basculant dans Excel par appui simultané
de " Alt " et " F11 " et en choisissant
le menu " Fichier " et l’article " Enregistrer ".
Lors de cette opération, Excel sauvegarde la référence aux instructions de
LabTab2 ajoutée au classeur.
Ouverture ultérieure d’un
classeur Excel utilisant LabTab2
Si vous ouvrez à nouveau
"Classeur1 " dans lequel une référence aux instructions de
LabTab2 a été ajoutée et sauvegardée, elles sont chargés automatiquement et
aucune opération particulière n’est nécessaire pour disposer des instructions
de LabTab2 dans vos modules VBA.
CARACTERISTIQUES
DE LA BIBLIOTHEQUE
Type des arguments –
Pointeur de variant
La bibliothèque de LabTab2 accepte comme type
d'argument universel dans les déclarations de fonctions, le type
" pointeur de variant ", qui est un type de donnée commun à
VBA,VB, VBScript, LabVIEW ou Visual C++6.
En VBA, un argument de ce type est déclaré
simplement par son nom dans la liste des arguments ( interface native ou COM).
En VC++6, le type des arguments des fonctions
de LabTab2 est "VARIANT*" ( pointeur sur un variant ).
Contenu des
paramètres – Variant contenant une Valeur
Un paramètre est, par définition, la valeur
d’un argument au moment de l’appel d’une fonction.
Lorsque l’argument est un pointeur sur un
variant, le paramètre est donc l’adresse d’un variant. Le contenu du paramètre
est alors un variant et un variant peut lui-même contenir une valeur ou
une référence.
En particulier, VBA traite différemment, au
retour d’une fonction de LabTab2, les paramètres dont le contenu est un variant
contenant une valeur et ceux contenant une référence. Ceux contenant une
référence ne peuvent être modifiés au retour de la fonction sauf s’ils
contiennent des références à des chaînes. Pour obtenir un comportement
identique dans tous les langages, il est demandé aux contenu des paramètres d’une
fonction de la bibliothèque, d’être toujours un variant contenant une
valeur.
En VC++6, un variant contenant une valeur
peut être obtenu en n’utilisant pas l’attribut " VT_BYREF "
dans la valeur de son champ " vt ". La fonction
" VariantCopyInd " permet aussi de copier un variant
quelconque (contenant une valeur ou une référence) dans un variant contenant
une valeur.
En VBA, on peut obtenir un variant
" A " contenant une valeur en utilisant la variable sans
l’avoir déclarée par le mot-clé " Dim " ou en la déclarant
par le mot-clé " Dim " employé seul dans
l’expression :" Dim A ".
Il est aussi possible de copier un variant
quelconque " B " ( contenant une valeur ou une référence)
dans un variant " A " contenant une valeur
par l’expression très simple: " A=B ".
Exemples de déclaration de variants contenant
une valeur en VBA:
Dim s: s="" ' chaîne vide
Dim b: b=CByte(3) ' octet non signé
Dim d: d=CDbl(1.23) ' réel en double
précision
Dim t: dim v(0): v(0)=CLng(5): t=v ' tableau
à un élément
En VBScript, tous les variant contiennent des
valeurs.
Valeur de retour et
code d'erreur des fonctions de Labtab2
Toutes les fonctions de la bibliothèque
retournent un entier long (4 octets), strictement inférieur à 1 sur erreur.
Classes et fonctions
de LabTab2
La bibliothèque de LabTab2, contenue dans le
fichier "c:\LabTab\2c\Iox2c.dll", met à la disposition du programmeur
Windows un ensemble de fonctions ou instructions regroupées en sous-ensembles
ou "objets" ayant un type "a" , "b" ou
"c". Les objets sont connus à l'extérieur de la bibliothèque sous le
nom de leur "classe" qui est la réunion de leur type et leur nom
d'objet par un caractère de soulignement ("_"). LabTab2 inclut les
objets suivants:
Convention de nom
pour les fonctions
Le nom complet d'une fonction d'un objet est
constitué de la façon suivante:
Le séparateur varie selon la méthode d'appel
des fonctions de LabTab2:
Exemple: le nom de la fonction Define de
l'interface Iox_ sera Iox_Define , Iox.Define ou Iox->Define()
Pour un objet déclaré avec le mot-clé
"new" vous pouvez obtenir la liste des fonctions d'un objet de
LabTab2 en tapant son nom suivi d'un point (aide syntaxique) ou seulement un
point , dans une structure
"With" "End with".
Objet Excel -
Transferts de données à Excel
L'objet Excel comporte principalement la
fonction "Excel", pour transférer des données à Excel, à partir
d'instruments de mesure. Il permet d'utiliser le chemin d"entrée-sortie
défini dans l'utilitaire de configuration de la barre d'outils de LabTab pour
entrer des données dans les colonnes d'une feuille de calcul Excel. Le classeur
correspondant peut être ouvert ou fermé, sur votre machine ou sur une machine
distante. Les données entrées peuvent être formatées avec LabScript .
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
Cet objet inclut aussi les fonctions
"VbaExcel" et "LabScript" pour le transfert des données
depuis les objets "VbaExcel" et "labScript", vers Excel.
Il peut être utilisé à l'intérieur de paires
d'instructions "Configure" et "Unconfigure" de l'objet
"Iox" dont il utilise les fonctions (cf la description de
"Iox").
Premier argument LabTab
Workspace_Fullname est le nom complet du
classeur Excel pour les données ( ex: "C:\Tests\Test1.xls")
Deuxième argument
Worksheet _Name est le nom de la feuille
Excel pour les données ( ex. : "Feuil1" )
Troisème argument
Row_Value est le numéro de la première
colonne utilisée pour les données ( ex. : 1)
Quatrième argument
Column_Value est le numéro de la première
rangée utilisée pour les données ( ex. : 1)
Cinquième argument
Address est un nombre représentant une
adresse IEEE-488 et est ignorée pour une liaison RS-232
Sixième argument
Output_String est une chaîne de caractères à
émettre sur le port sélectionné.
Septième argument
Wait_Value est une valeur en secondes
d'attente après l'opération de sortie du deuxième argument
Huitième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
Premier argument LabTab
Workspace_Fullname est le nom complet du
classeur Excel pour les données ( ex: "C:\Tests\Test1.xls")
Deuxième argument
Worksheet _Name est le nom de la feuille
Excel pour les données ( ex. : "Feuil1" )
Troisème argument
Row_Value est le numéro de la première
colonne utilisée pour les données ( ex. : 1)
Quatrième argument
Column_Value est le numéro de la première
rangée utilisée pour les données ( ex. : 1)
Cinquième argument
Labscript_Variable est une chaîne obtenue par
la fonction "LabScript.LabTab" ( cf cette fonction)
Sixième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
Premier argument
Workspace_Fullname est le nom complet du
classeur Excel pour les données ( ex: "C:\Tests\Test1.xls")
Deuxième argument
Worksheet _Name est le nom de la feuille
Excel pour les données ( ex. : "Feuil1" )
Troisème argument
Row_Value est le numéro de la première
colonne utilisée pour les données ( ex. : 1)
Quatrième argument
Column_Value est le numéro de la première
rangée utilisée pour les données ( ex. : 1)
Cinquième argument
VbaExcel_Variant est un variant obtenu par la
fonction "VbaExcel.LabTab" ( cf cette fonction)
Sixième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
Objet VbaExcel -
transferts vers VbaExcel
L'objet "VbaExcel" a deux
fonctions: "LabTab" et "LabScript" pour transférer à VBA
d'Excel des données issues d'instruments et de l'objet "LabScript".
Il peut être utilisé à l'intérieur de paires
d'instructions "Configure" et "Unconfigure" de l'objet
"Iox" dont il utilise les fonctions (cf la description de
"Iox").
LabTab(VbaExcel _Variant_result, Address, Output_String, Wait_Value, LabScript_Format)
Premier argument
VbaExcel _Variant_result est un résultat sous
forme d'un vecteur de vecteurs-colonne. Cette forme est adaptée à l'utilisation
de la fonction "Excel.VbaExcel". Si "R" est le nom du
résultat, alors le i-ième élément de de la colonne j est obtenue en VBA par
l'expression "R(j)(i,0)" et la colonne entière j par
"R(j"). Les indices i et j commencent à 0.
Deuxième argument
Address est un nombre représentant une
adresse IEEE-488 et est ignorée pour une liaison RS-232
Troisième argument
Output_String est une chaîne de caractères à
émettre sur le port sélectionné.
Quatrième argument
Wait_Value est une valeur en secondes
d'attente après l'opération de sortie du deuxième argument
Cinquième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
LabScript(VbaExcel_Variant_result, LabScript_Variant, LabScript_Format)
Premier argument
VbaExcel _Variant_result est un résultat sous
forme d'un vecteur de vecteurs-colonne. Cette forme est adaptée à l'utilisation
de la fonction "Excel.VbaExcel". Si "R" est le nom du
résultat, alors le i-ième élément de de la colonne j est obtenue en VBA par
l'expression "R(j)(i,0)" et la colonne entière j par
"R(j"). Les indices i et j commencent à 0.
Second argument
LabScript_Variant est un variant contenant
une chaîne dont chaque caractère représente un octet de 0 à 255, égal à son
numéro ASCII dans le langage par défaut du système (LabScript representation
sur plate-forme Windows).
Troisième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
Objet VBScript -
transferts vers VBScript
L'objet " VBScript " a deux
fonctions: "LabTab" et "LabScript" pour transférer à
VBScript d'Internet Explorer des données issues d'instruments et de l'objet
"LabScript".
Il peut être utilisé à l'intérieur de paires
d'instructions "Configure" et "Unconfigure" de l'objet
"Iox" dont il utilise les fonctions (cf la description de
"Iox").
LabTab(VBScript_Variant_result, Address, Output_String, Wait_Value, LabScript_Format)
Premier argument
VBScript_Variant_result est un résultat sous
forme d'un vecteur de vecteurs-colonne. Si "R" est le nom du
résultat, alors le i-ième élément de de la colonne j est obtenue en VBScript
par l'expression "R(j)(i,0)" et la colonne entière j par
"R(j"). Les indices i et j commencent à 0.
Deuxième argument
Address est un nombre représentant une
adresse IEEE-488 et est ignorée pour une liaison RS-232
Troisième argument
Output_String est une chaîne de caractères à
émettre sur le port sélectionné.
Quatrième argument
Wait_Value est une valeur en secondes
d'attente après l'opération de sortie du deuxième argument
Cinquième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
LabScript(VBScript _Variant_result, LabScript_Variant, LabScript_Format)
Premier argument
VBScript _Variant_result est un résultat sous
forme d'un vecteur de vecteurs-colonne. Si "R" est le nom du
résultat, alors le i-ième élément de de la colonne j est obtenue en VBA par
l'expression "R(j)(i,0)" et la colonne entière j par
"R(j"). Les indices i et j commencent à 0.
Second argument
LabScript_Variant est un variant contenant
une chaîne dont chaque caractère représente un octet de 0 à 255, égal à son
numéro ASCII dans le langage par défaut du système (LabScript representation
sur plate-forme Windows).
Troisième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
Objet LabScript
- transferts vers le format LabScript
L'objet "LabScript" a deux
fonctins: "LabTab" et "VbaExcel" pour le transfert de
données obtenues d'instruments et de l'objet "VbaExcel".
Il peut être utilisé à l'intérieur de paires
d'instructions "Configure" et "Unconfigure" de l'objet
"Iox" dont il utilise les fonctions (cf la description de
"Iox").
LabTab(LabScript_Variant, Address, Output_String, Wait_Value, LabScript_Format)
Premier argument
LabScript_Variant est un variant contenant
une chaîne dont chaque caractère représente un octet de 0 à 255, égal à son
numéro ASCII dans le langage par défaut du système (LabScript representation
sur plate-forme Windows).
Deuxième argument
Address est un nombre représentant une
adresse IEEE-488 et est ignorée pour une liaison RS-232
Troisième argument
Output_String est une chaîne de caractères à
émettre sur le port sélectionné.
Quatrième argument
Wait_Value est une valeur en secondes
d'attente après l'opération de sortie du deuxième argument
Cinquième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
VbaExcel (LabScript_Variant, VbaExcel_Variant, LabScript_Format)
Premier argument
LabScript_Variant est un variant contenant
une chaîne reçue d'un instrument, dont chaque caractère représente un octet de
0 à 255, égal à son numéro ASCII dans le langage par défaut du système
(LabScript representation sur plate-forme Windows).
Deuxième argument
VbaExcel _Variant est un variant sous forme
d'un vecteur de vecteurs-colonne. Cette forme est adaptée à l'utilisation de la
fonction "Excel.VbaExcel". Si "R" est le nom du résultat,
alors le i-ième élément de de la colonne j est obtenue en VBA par l'expression
"R(j)(i,0)" et la colonne entière j par "R(j"). Les indices
i et j commencent à 0.
Troisième argument
LabScript_Format est la chaîne écrite en
format LabScript qui décrit la répartition des données dans les cellules des
colonnes de la feuille Excel ( ex: "I4[100],S(100)" )
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
Pour le programme universel d'utilisation de
la fonction Excel de LabTab, vous pouvez vous reporter à la rubrique:
"METTRE
DES MESURES DANS EXCEL EN 5 MN AVEC LABTAB"
L'objet "Clk" dispose de deux
fonctions pour la gestion du temps:
Wait permet d’attendre pendant une durée
transmise en argument avant la reprise du cours du programme (Résolution =1
microseconde).
Wait retourne 1 + n où n est égal à la
différence en microsecondes entre le délai réel et "seconds ".
Il est ainsi possible de connaître l'erreur
de réalisation de "Wait". En particulier lors d'exécution de
plusieurs programmes simultanément, cette valeur doit être testée pour
s'assurer de la durée d'attente effective.
Renvoie un variant contenant un réel sur 8
octets correspondant à un nombre de secondes depuis le démarrage d'un compteur
au début de la session de LabTab2. Cette valeur ne repasse jamais à 0 et sa
résolution est meilleure que 1 microseconde.
Cette fonction accepte un variant non typé et
contenant un réel en double précision ou pouvant être converti dans ce format.
Elle renvoie un variant contenant un réel en double précision.
Objet Iox - Programmation des ports d'entrée-sortie
Outre les fonctions des objets
"Clk" , qu'il inclut, l’objet " Iox " dispose
pour gérer les ports Gpib , Série et parallèle, des fonctions communes à tous
les objets d'entrée-sortie de LabTab2:
Define,Configure, Output , Enter et
Unconfigure sont les seules instructions d'entrée-sortie de l’objet
" Iox " . elles apparaissent dans cet ordre dans les
programmes. Elles sont utilisables sur tous les ports Gpib , série et parallèle
grâce à l'utilitaire de configuration. Un programme typique d’entrée-sortie
avec LabTab2 comprend une séquence :
Iox.Define
Iox.Configure
…
Iox.Unconfigure
Avec entre les instructions Configure et
Unconfigure , des séquences de type:
Iox.Output adresse,
" caractères "
Iox.Wait secondes
Iox.Enter adresse , variable
Dans " Output adresse,
" caractères "": adresse représentant une valeur
d’adresse Gpib , si le port supporte l’adressage (GPIB) ou une valeur sans
importance dans le cas contraire ( Ser et Par)
" Caractères "
représentant des caractères ASCII transmis à l’appareil à l’adresse mentionnée
sous forme de chaîne ou de variant.
Dans "Enter adresse , variable":
variable représente une variable de type variant destinée à recevoir les octets
en provenance de l’appareil.
Exemple:
Sub Idn
Iox.Define
Iox.Configure
Iox.Output 22 ,
" *idn ? "
Iox.Wait 0.3
Iox.Enter 22,a
Iox.Unconfigure
End sub
Ce programme émet la question
"*idn?" sur le chemin Iox et et reçoit la réponse. Il correspond à l'utilitaire
"Test".
Appairement des instructions Configure-Unconfigure
Les instructions Configure et Unconfigure
doivent se correspondre en nombre. Vous pouvez réaliser des séquences
d’instructions débutant par Configure et finissant par Unconfigure et les
regrouper dans des sous programmes. Vous pouvez ensuite insérer ces séquences
en appelant ces sous-programmes à l’intérieur d’autres séquences
Configure-Unconfigure sans précautions particulières. Les instructions
configure et unconfigure imbriquées ne sont pas exécutées.
Par exemple , vous avez défini un
sous-programme :
Sub Idn
Iox.Configure
Iox.Output 15 ,
" *idn ? "
Iox.Wait 0.3
Iox.Unconfigure
End sub
Vous pouvez programmer ensuite
Sub Idn2
With LabTab2
.Configure
.output 15 ,
" *idn ? "
Idn
.Unconfigure
Idn
End with
Idn
End sub
Le dernier programme effectue plusieurs fois
les séquences correspondant à l’émission de " *idn ? "
Cette instruction configure le matériel selon
les définitions logicielles du chemin d'entrée-sortie, définies par
l’instruction Define. Le chemin d’entrées-sorties concerné est exclusivement
réservé à LabTab2 jusqu’à la rencontre d' une instruction Unconfigure.
Cette instruction est la plupart du temps
utilisée sans aucun argument.
C’est la première instruction d’une séquence
d’entrées –sorties. Elle effectue les opérations de définition du chemin
d’entrée-sortie au niveau logiciel, à partir de ses arguments optionnels ou par
défaut à partir des informations entrées manuellement dans l'utilitaire de
configuration quand certains de ses arguments sont manquants.
Les noms de ses arguments sont ceux des ports
de LabTab2 ou de leurs paramètres de configuration, augmentés du suffixe
"X". le port Iox, correspond ainsi au paramètre IoxX de Define.
Par exemple:
Si le port "Iox" est relié au port
"Gpib" dans l'utilitaire de configuration alors les deux syntaxes
ci-dessous sont équivalentes:
"Define" ou Define "Gpib"
Cependant, si le port "Iox" est
relié par configuration au port "Ser", la première syntaxe utilisera
le port "Ser" pour les entrées-sorties et la deuxième syntaxe
utilisera le port "Gpib" sans toutefois changer la valeur contenue
dans l'utilitaire de configuration. Une nouvelle instruction "Define"
sans arguments utilisera ainsi à nouveau le port "Ser".
Si on affecte un argument de Define avec une
valeur non permise par la configuration, alors la valeur par défaut de la
configuration est utilisée et renvoyée. Par exemple, si le port "Iox"
est relié au port "Gpib" dans l'utilitaire de configuration:
IoxX="?" : Define IoxX
Renvoie la valeur "Gpib" dans IoxX
en sortie de Define.
Rq: pour obtenir cet effet en LabVIEW , vous
devez utiliser la fonction "DefineEx" avec les mêmes arguments.
Pour la plupart des paramètres, il suffit
d’initialiser à une chaîne vide. Cependant pour le paramètre Handshake des
ports série , une valeur vide est permise ( indiquant l’absence de handshake)
il est donc préférable d’initialiser ce paramètre avec une chaîne contenant un
point d'interrogation.
L'ensemble des arguments optionnels de Define
permettent ainsi de lire ou de modifier dynamiquement la configuration dans un
programme.
La lecture dynamique de la configuration est
utile pour réaliser un pilote commun à une interface GPIB et une interface
RS-232 car elle permet de consulter une valeur du port Iox par exemple pour
adapter un caractère de terminaison. Si le langage n'accepte pas la lecture en
retour d'arguments optionnels (LabView) , alors l'instruction
"DefineEx" doit être utilisée.
La modification dynamique de la configuration
est utile, par exemple, lors de protocoles adaptant la vitesse de transmission
sur ligne série pendant le déroulement du programme.
Enter permet de recevoir des octets d' une
adresse " adr " et de les mettre dans un variant
"data" fourni, ou bien de construire un tel variant automatiquement
selon les directives contenues dans une chaîne optionnelle "format".
Enter s'arrête quand:
Premier argument
Le premier argument est une adresse GPIB
entre 0 et 30 ( 0 étant le contrôleur GPIB) et est ignorée pour un port série
ou parallèle.
Deuxième argument
Le second argument est une chaîne LabScript
avec un caractère pour représenter chaque octet entré comme un code ASCII.
Troisième argument
Le troisième argument "format" est
un variant contennt une chaîne.
Si un "format" valide est fourni,
"Enter" retourne 1 sinon 0 et -1 sur erreur. Pour construire un
format valide, une notation appelée "LabScript" doit être respectée.
Pour une description détaillée du format
LabScript, vous pouvez vous référer à la rubrique de ce document:
"FORMATER
DES MESURES DANS EXCEL EN 5 MN AVEC LABSCRIPT"
N.B.: L'instruction " Enter" est
inactive pour un port physique parallèle CENTRONICS. Pour obtenir des entrées
logiques, voyez "programmation de bas niveau des ports série" dans ce
document.
N.B.: La version 1 de LabTab n'accepte pas
les "formats" LabScript mais seulement un variant "data"
sans type, declaré par "dim data".
Output permet d’envoyer des données
" data " contenues dans une chaîne d'octets LabScript à une
adresse " adr ". L’adresse est ignorée pour un appareil
série ou parallèle. Le troisième argument optionnel fomat désigne une chaîne de
caractères interprêtée comme un format "LabScript".
Pour envoyer des octets dans un variant ,
vous pouvez les transformer en caractères par la fonction VBA
" Chr " puis les concaténer par
" & ".
Par exemple:
pour envoyer les octets 1 et 255 , vous
faites:
Iox.Output 15 , chr(1) & chr(255)
C’est la dernière instruction d’une séquence
d’entrées –sorties. Elle libère les ports physiques utilisés de l’usage
exclusif pour LabTab2.
Objet Gpib - Programmation
spécifique du bus GPIB
On désigne par objet "Gpib" tout
objet commençant par le préfixe "Gpib" soit:
"Gpib,Gpib1,Gpib2,Gpib3,Gpib4". Ces objets comportent les mêmes
fonctions.
L'objet "Gpib" est plus spécifique
que l'objet "Iox". En effet, il ne permet de s'adresser qu'à des
liaisons dites "GPIB", "HPIB" ou encore
"IEEE-488" pour lesquelles il dispose d'instructions spécifiques.
Si vous n'utilisez que des instructions
communes aux objets "Iox" et "Gpib", il est conseillé
d'utiliser l'objet de plus haut niveau dans la configuration soit
"Iox" sinon vous devrez choisir "Gpib".
Instructions communes avec l'objet Iox
L'objet "Gpib" dispose pour gérer
les ports Gpib , des instructions de l'objet "Iox", présentes sur
tous les objets d'entrée-sortie de LabTab2 :
Vous pouvez vous reporter aux rubriques de
l'objet "Iox" pour une description de la syntaxe de ces instructions.
Instructions spécifiques de l'objet Gpib
Cependant, l'objet "Gpib" offre des
instructions spécifiques pour la programmation de bas niveau du bus
"GPIB". Vous devrez programmer avec l'objet "Gpib" si vous
souhaitez utiliser ces instructions:
Send permet d'envoyer des commandes de bas
niveau (Dcl, Get, Gtl, Llo, Mla, Mta, Sdc, Spd, Spe, Tct, Unl, Unt, Listen,
Talk, Sec, Ppc, Ppd, Ppu et Ppe ) sur le bus GPIB.
Ppoll réalise un sondage parallèle du bus
GPIB.
Spoll réalise un sondage sérié du bus GPIB.
Renvoie un octet dans Byte_Value qui est
l'octet de reconnaissance parallèle du bus GPIB.
Renvoie un octet dans Byte_Value qui est
l'octet de reconnaissance série de l'appareil à une adresse GPIB.
L’instruction Send accepte comme argument des
instructions Gpib de bas niveau. Ces instructions sont traitées comme des
chaînes de caractères et peuvent donc être concaténées avec le caractère
" & ".
Le contrôleur GPIB est à l’adresse 0 sans
adresse secondaire.
La signification des instructions de bas
niveau peuvent être obtenues dans des ouvrages spécialisés qui dépassent le cadre
de ce manuel de prise en main de LabTab2. Seule la syntaxe permettant d’obtenir
leur mise en œuvre est spécifiée.
Les caractères correspondant aux commandes de
bas niveau sont obtenues en invoquant les noms de fonction se terminant par le
caractère de soulignement "underscore " dans la liste des
fonctions des objets Gpib et Gpibn où n est un chiffre. Les arguments de ces
fonctions peuvent ensuite être concaténés comme des chaînes ordinaires pour
former l’argument de Send.
Exemple :
With Gpib
S= " "
.Unt_(C) : S=S & C
.Unl_(C) : S=S & C
.Mta_(C) : S=S & C
.Listen_(15,C) : S=S & C
.Send S
end With
envoie les commandes " UNT UNL MTA
LISTEN 15 " sur le bus.
Se distinguent les commandes sans adresse et
les commandes avec adresse. Dans ces fonctions, l'argument de retour est une
chaîne à un caractère. Ces chaînes doivent être concaténées pour être utilisées
comme argument de "Send".
L'adresse d'une commande est un chiffre entre
0 et 31 ( le contrôleur est toujours initialisé à l'adresse 0 par LabTab2).
Commandes sans adresse :
Dcl_ (s) : DEVICE CLEAR
Get (s) : GROUP EXECUTIVE TRIGGER
Gtl_ (s) : GO TO LOCAL
Llo_ (s) : LOCAL LOCKOUT
Mla_ (s) : MY LISTEN ADDRESS ( équivaut
à LISTEN(0) en LABTAB )
Mta_ (s) : MY TALK ADDRESS ( équivaut à
TALK(0) en LABTAB)
Sdc_ (s) : SELECTED DEVICE CLEAR
Spd_ (s) : SERIAL POLL DISABLE
Spe_ (s) : SERIAL POLL ENABLE
Tct_ (s) : TAKE CONTROL
Unl_ (s) : UNLISTEN
Unt_ (s) : UNTALK
Commandes avec adresse :
Listen_(s,adr, ) : LISTEN(adr)
Talk_(s,adr ) : TALK (adr)
Sec_ (s,adr) : SECONDARY(adr) émission
d’un second octet d’adresse après un premier (adresse secondaire)
Exemple 1:
Listen_(s1,5) suivi Sec_(s2,1) et de
Send (s1 & s2) rend écouteur l’appareil d’adresse primaire 5 et secondaire
1
Exemple 2 :
Talk_(s1,5) suivi Sec_(s2,1) et de Send
(s1 & s2) rend parleur l’appareil d’adresse primaire 5 et secondaire 1
Commandes pour le sondage parallèle (PARALLEL POLL) :
Commande à un octet
Ppu_(s) : PARALLEL POLL UNCONFIGURE
Interdit
à tous les appareils de répondre à un sondage parallèle, quelle que soit leur
adresse
Commande à deux octets:
Ppc_ (s1) : PARALLEL POLL CONFIGURE
Suivie obligatoirement de la commande
Ppe_(s2,S,N) ou de la commande Ppd_(s2)
- Ppd_(s2) : PARALLEL POLL DISABLE
Supprime la réponse au sondage parallèle pour
les appareils adressés pour écouter
- Ppe_(s2,S,N) : PARALLEL POLL ENABLE
Etablit l’octet de
réponse des appareils adressés pour écouter. Les arguments S et N définissent
l’octet renvoyé par le sondage parallèle. S ( 0 ou 1) est la valeur du bit
affecté et N(0 à 7) le numéro du bit affecté , dans l’octet de réponse au
sondage parallèle (Parallel Poll ).
Exemple :
Listen(s0, 20 ) suivi de Ppc_(s1) et de
Ppe_(s2,1,3) et Send (s0 & s1 & s2) définira une réponse de 1 sur le
quatrième bit lors d’une réponse à un sondage parallèle de l’appareil d’adresse
20, soit une valeur de 8 (2 puissance 3) pour cet octet.
Listen(s0, 20 ) suivi de Ppc_(s1) et de
Ppd_(s2) et Send (s0 & s1 & s2) supprime la réponse à un sondage
parallèle de l’appareil 20.
Objet Ser -
Programmation spécifique de la liaison RS-232
On désigne par objet "Ser" tout
objet commençant par le préfixe "Ser" soit:
"Ser,Ser1,Ser2". Ces objets comportent les mêmes fonctions
L'objet "Ser" est plus spécifique
que l'objet "Iox". En effet, il ne permet de s'adresser qu'à des
liaisons dites "RS-232" pour lesquelles il dispose d'instructions
spécifiques.
Si vous n'utilisez que des instructions
communes aux objets "Iox" et "Ser", il est conseillé
d'utiliser l'objet de plus haut niveau dans la configuration soit
"Iox" sinon vous devrez choisir "Ser".
Instructions communes avec l'objet Iox
L'objet "Ser" dispose pour gérer
les ports RS-232 , des instructions de l'objet "Iox", présentes sur
tous les objets d'entrée-sortie de LabTab2 :
Vous pouvez vous reporter à l'objet
"Iox" pour une description de la syntaxe de ces instructions.
Instructions spécifiques de l'objet Ser
Cependant, l'objet "Ser" offre des
instructions spécifiques pour la programmation de bas niveau des ports
"RS-232".
Vous devrez programmer avec l'objet
"Ser" si vous souhaitez utiliser ces instructions:
La programmation de bas niveau du
" port série " permet de disposer d’entrées et de sorties
logiques en standard sous les différentes versions de Windows 95,98,Me,NT et
2000.
Fonctions de
programmation de bas niveau des lignes d'entrée RS-232:
Ces lignes corespondent aux noms:
- " détection de
porteuse " aussi appelée " CD " ou
" RSLD " (patte 1 du connecteur DB9 RS-232 du PC)
- " ring indicator "
aussi appelée " RI " " ( patte 9 du connecteur DB9
RS-232 du PC)
- " Data set ready "
aussi appelée " DSR " "( patte 6 du connecteur DB9
RS-232 du PC)
- " CleartoSend " aussi
appelée " CTS " " (patte 8 du connecteur DB9 RS-232 du
PC)
L’état de ces lignes d’entrée dans le PC est
obtenu pour le ports ser par les instructions :
" Cd_ " ,
" Ri_ ", "Dsr_ " et
" Cts_ " respectivement (nom de ces lignes suivi du
caractère " underscore ").
La syntaxe de ces fonctions est
identique : leur argument est un variant qui est retourné soit à 1 pour un
niveau haut sur la ligne, soit à 0 pour un niveau bas. Ces fonctions permettent
de disposer de 4 entrées logiques.
Le principal intérêt de ces entrées est leur
grande bande passante d’entrée. Il est ainsi possible de reproduire un signal
créneau entre 2V et -2V jusqu’à une fréquence de 200 kHZ maximum pour un
Pentium III 1 GHz.
Fonctions de
programmation de bas niveau des lignes de sortie RS-232:
Les lignes de sortie:
Ces lignes procurent des sorties logiques au
travers des instructions RTS_on / RTS_off et DTR_on/DTR_off de l'objet ser. Ces
fonctions RTS_on et DTR_on mettent au niveau RTS et DTR respectivement tandis
que RTS_off et DTR_off les mettent au niveau bas.
Objet Par -
Programmation de la liaison CENTRONICS
On désigne par objet "Par" tout
objet commençant par le préfixe "Par" soit:
"Par,Par1,Par2". Ces objets comportent les mêmes fonctions
L'objet "Par" est plus spécifique
que l'objet "Iox". En effet, il ne permet de s'adresser qu'à des
liaisons parallèles dites " CENTRONICS".
Si vous n'utilisez que des instructions
communes aux objets "Iox" et "Par", il est conseillé
d'utiliser l'objet de plus haut niveau dans la configuration soit
"Iox".
L'objet "Par" dispose pour gérer
les ports CENTRONICS, des instructions de l'objet "Iox", présentes
sur tous les objets d'entrée-sortie de LabTab2 :
Vous pouvez vous reporter à l'objet
"Iox" pour une description de la syntaxe de ces instructions.
L'instruction "Enter" n'est pas
active pour les ports CENTRONICS dans cette version de LabTab.
Il n'y a pas d'instructions spécifiques pour
les ports de type "Par".
Programmation de bas niveau des lignes de sortie du
port parallèle
Le port parallèle permet dans son utilisation
normale l’envoi de caractères vers une imprimante à la norme Centronics. Les
ports " par ", "par1 " et
" par2 " permettent donc d‘écrire sans restriction sur les
imprimantes parallèles de ce type.
Il est néanmoins possible d’utiliser le port
parallèle indépendamment pour disposer de huit sorties logiques. Dans ce cas il
suffit d’utiliser les instructions "Output " de façon standard.
Les conditions pour utiliser ce port
sont :
- sélectionner
dans le BIOS de votre ordinateur un type de port parallèle
" Normal " , c’est-à-dire ni EPP( ou bidirectionnel) ni
ECP ;
- sur
le connecteur du port parallèle, mettre les pattes 11 et 12 ( BUSY et PE ) à la
masse en les reliant à l’une des pattes numérotées de 18 à 25 sur le connecteur
DB25 relié au port parallèle utilisé ;
- Pour
envoyer sur le port l’octet de valeur x, envoyer avec l’instruction output , le
caractère correspondant au résultat de chr(x) ;
- Recueillir
les sorties sur les pattes 2( = b0 =bit de poids faible) à 9(= b8 = bit de
poids fort) du connecteur DB25.
Une séquence type pour écrire le niveau
logique 1 sur la patte 2 du connecteur DB25 relié au port logique
"par" est alors :
With par
.define
.configure
.output 0, chr(1)
.unconfigure
end with
La disponibilté de ces sorties logiques est
effective sous les versions de Windows 95,98,Me,NT et 2000
L’instruction Enter existe pour les ports
parallèles de Windows mais est réservée pour un usage ultérieur. Aucune entrée
de données ne peut être effectuée sur ce type de port par les objets Par,Par1
ou Par2 avec LabTab2.
Objet Lvx - Fonctions
utilitaires de LabTab2 pour les variants
L'objet Lvx offre les fonctions:
Longueur en octets d'un Variant
Cette fonction renvoie dans son premier
argument, le nombre d'octets du "variant" transmis comme second
paramètre.
Transferts rapides avec une feuille Excel
Pour les échanges de données avec Excel, les
instructions de Lvx sont Range_Variant et Variant_Range.
Avec ce minimum d’instructions , vous pouvez
importer à une vitesse élevée , les données de tous vos instruments dans vos
feuilles Excel.
Elles permettent d’envoyer à des plages Excel
(Range_Variant) ou recevoir de plages Excel (Variant_Range) des tableaux , à
grande vitesse.
Ces instructions sont environ 10 fois plus
rapide que les transferts à Excel cellule par cellule entre les éléments d’une
plage et une matrice. Elles fonctionnent depuis toute application Windows, Excel
et le classeur choisi pouvant être ouverts ou fermés.
Conversion entre format variant et binaire
Le format binaire est celui d'un variant
retourné par la fonction "Enter" lorsque son format d'entrée est vide
(variant non déclaré ou seulement déclaré seulement par "Dim").
LabTab2 choisit alors un format dépendant de la plateforme représentatif d'une
suite d'octets et optimisant la vitesse. Pour utiliser les octets entrés, vous
devez les convertir en Variant adapté à votre traitement à l'aide de la fonction
Variant_Binary . Vous pouvez aussi effectuer l'opération inverse avec
Binary_Variant.
Conversion entre variant et fichier
Vous pouvez stocker un variant sur fichier à
l'aide de la fonction File_Variant et récupérer un variant depuis un fichier à
l'aide de la fonction Variant_File.
retourne la longueur en octets du variant
Data dans le variant Len.
Variant_Range (Matrix,Workbook_FullName, Sheet_Name,lin1, col1, lin2, col2)
Cette instruction crée un tableau de variants
"Matrix" à deux dimensions d’origine 1 depuis la feuille Excel de nom
" Sheet_Name" située dans le classeur de nom
"Workbook_FullName" (chemin DOS complet du classeur avec nom de
fichier et extension) et la plage correspondant à la cellule de coin haut-gauche
en ligne lin1 et colonne col1 et bas-droit en ligne lin2 et colonne col2 .
" Matrix " doit être vide en
entrée , par exemple dimensionné par " dim Matrix " et il
se transforme en matrice avec origine des indices à 1 pour les lignes et les
colonnes. Il peut être traité tel quel par l’instruction
" MatrixToRange ".
Il est à noter que
" MatrixFromRange " est la seule façon de créer une matrice
d’origine des indices égale à 1 dans des langages de script comme VBScript.
Exemple :
Dim a
Lvx. Variant_Range
a,"c:\Temp\Test.xls", "Feuil1",1, 1, 2, 2 ‘ crée dans a une
matrice 2x2
Range_Variant (Workbook_Name, Sheet_Name,lin1, col1, lin2, col2,Matrix )
Cette instruction envoie le tableau de
variants "Matrix " dans la feuille référencée par "Workbook_Name"
et "Sheet_Name " sur la plage correspondant à une cellule de coin
haut-gauche en ligne lin1 et colonne col1 et bas-droit en ligne lin2 et colonne
col2 .
" Matrix " doit être une
matrice à une colonne pour être mise en colonne, un vecteur est considéré comme
une ligne. Si la plage est trop étroite, les valeurs sont tronquées.
Pour exporter cette instruction dans d’autres
langages que VBA, il faut que " Matrix " soit déclarée
avec une origine 0 pour toutes ses dimensions. Par ex. : " dim
a(2,3) " . Toutefois, si cette matrice est le résultat de
RangeToMatrix, alors elle est en origine 1 et est traitée correctement par
cette instruction.
Exemple :
Dim a
Lvx. Range_Variant
"c:\Temp\Test.xls", "Feuil1",1, 1, 2, 2, a ‘envoie a ,
matrice 2x2, dans Feuil1
Variant_Binary (R , B , I , J, [P])
Cette fonction copie dans le variant R, j
octets contenus dans B à partir du i-ème (origine 1), en inversant l’ordre de
groupes de p octets si cet argument optionnel est fourni.
R peut être un variant de type arbitrairement
complexe (tableau de variants, etc..) construit à partir de types numérique
ou chaîne.
VariantFromBinary ne respecte pas le type de
R dans un seul cas : R est de longueur en octets nulle. Dans ce cas,
plutôt que de ne convertir aucun octet, le type de R sera étendu par LabTab2
pour accueillir J octets de B:
Dans tout autre cas, le type des éléments de
R est respecté, en particulier si le nombre d'octets de R ne correspond pas à J
, la fonction échoue.
Comme mentionné plus haut, la définition
comme tableau de variants du résultat de l’instruction Enter , peut rendre
exceptionnel l’usage de cette fonction pour des entrées-sorties.
Par ex. :
Dim s: s="" ‘ chaîne vide
Len_Variant( L , data) ‘ nous supposons que
data contient les octets
Variant_Binary ( s, data, 1 , L) 'transfère
tous les octets de data dans le seul élément de result , qui est la chaîne s.
Binary_Variant (B , I , J, R , [P])
Cette fonction copie dans J octets de B à
partir du I-ème (origine 1) les octets de R, en inversant l’ordre de groupes de
p octets si cet argument optionnel est fourni.
R peut être un variant de type arbitrairement
complexe (tableau de variants, etc..) construit à partir de types numérique
ou chaîne.
Dans le cas où le nombre d'octets de R ne
correspond pas à J , la fonction échoue.
Transfert des octets d'un variant V à un un
fichier donné par son chemin et son nom complet dans "File".
Transfert des octets d'un fichier donné par
son chemin et son nom complet dans "File", à un variant V.
Objet Mix - Fonctions
utilitaires diverses
L'objet Lvx offre les fonctions:
Changement de séparateur decimal
DecimalSeparator permet de remplacer sur
place dans une variable, le séparateurs décimal d'un langage 1 par celui d'un
langage 2. Cette fonction est utile pour la réalisation d'applications
internationales.
La fonction Html_FileShow permet l'affichage
dans Internet Explorer d'un fichier au format HTML donné dans son unique
argument. Ceci est utile, par exemple, si vous souhaitez afficher, par
programme, une aide au format HTML.
DecimalSeparator ( data , lang1, lang2)
Change les séparateurs décimaux du langage 1
trouvés dans la variable data en séparateurs décimaux du langage 2.
Les noms des langages sont donnés en anglais.
Par ex:
S="1.234"
DecimalSeparator(S,"english","french")
' donne S="1,234"
Affiche à l'écran le fichier HTML de nom
donné dans F.
UTILISATION
AVEC D'AUTRES LANGAGES QUE VBA
Il est parfaitement possible de programmer
avec la bibliothèque de LabTab2 à partir d’autres langages commeVBScript, un
des langages d’Internet Explorer de Microsoft.
Des exemples sont inclus avec la disquette de
LabTab. La bibliothèque de LabTab2 étant un composant COM, la déclaration dans
les langages désirés des classes de Iox2c.dll est identique à celle de tout
composant COM ou ActiveX. Vous pouvez vous référer à l’aide en ligne de votre
environnement de programmation pour la mise à disposition de composants
ActiveX.
Interface
native de la bibliothèque de LabTab
Dans le cas où vous ne souhaitez pas utiliser
des objets COM, il vous est possible d’appeler directement la DLL de LabTab2, à
l’emplacement c:\Windows\ Iox2c.dll (Interface native).
Par convention, le nom de la fonction native
d'un objet est obtenu à partir du nom d'interface avec préfixe, d' un caractère
de soulignement et du nom de la fonction . Cette convention est valable pour
toutes les classes et fonctions de Iox2c.dll. L’ensemble de la syntaxe de
LabTab2 est donc disponible par l’interface native.
Par exemple la fonction "Enter" de
la classe "Iox_" est appelable directement par la fonction
"Iox__Enter".
En VBA, la fonction peut ainsi être déclarée
par :
"Declare
Function Iox_Enter Lib "Iox2c.dll" (adr , data, optional n) As
Long"
Vous pouvez donc utiliser l'interface native
de LabTab2 sous des langages ne supportant que l’appel de DLL conventionnelles.
Pour un script commercial, cet aspect peut se révéler indispensable, par
exemple, pour éviter l’enregistrement de vos applications.
LabVIEW permet d’appeler soit des DLL
conventionnelles soit des DLL ActiveX. Vous pouvez donc vous reporter à la
documentation de ce logiciel pour utiliser LabTab2 avec lui.
Un exemple de programme ( VI ) est fourni
avec LabTab2 pour l’utilisation de LabTab2 comme composant ActiveX avec
LabVIEW, ce qui est la méthode recommandée.
Microsoft
Internet Explorer - VBScript – ASP – IIS
Avec Microsoft Internet Explorer, vous pouvez
utiliser tout moteur de script pour écrire vos applications. Vos fichiers
doivent être créées avec l'extension ".hta" et non ".htm"
pour éviter l'affichage de messages concernant la sécurité lors de la création
d'objets de LabTab 2 dans du code de script..
Sous VBScript, vous pouvez utiliser Notepad
pour écrire vos programmes mais d’autres éditeurs HTML sont possibles et plus
pratiques (VBA Excel est aussi possible à condition de choisir des instructions
identiques en VBA et VBScript).
Vous pouvez utiliser ASP en version
" Personal Server " ou avec " Internet
Information Server ".
Le mot clé
" CreateObject " vous permet de définir les classes de
LabTab2 présentes dans Iox2c.dll.
Vous pouvez noter que LabTab 2, permet
une migration aisée vers VBScript , en respectant notamment quelques
règles de programmation :
Un exemple de listing de code Test est :
Sub Test(pAdr,pO,pD,pE, optional pIoxX)
Dim Iox : Set
Iox=CreateObject(" Iox2c.Iox_ ")
Iox.Define pIoxX
Iox.Configure
Iox.Output pAdr,pO
Iox.Wait pD
Iox.Enter pAdr,PE
Iox.Unconfigure
End Sub
Compilation
de modules LabTab2 en C, C++ et Visual Basic
Pour compiler et distribuer vos pilotes,
Visual Basic et Visual C++ sont utilisables.
Sous Visual Basic, la création de composants
DLL COM utilisant Iox2c.dll est immédiate dès lors que les classes de cette
bibliothèque ont été déclarées dans le programme par new ou par CreateObject.
Il existe même un mot clé " Implements " permettant de
faire dériver vos classes des classes de la bibliothèque de LabTab2 (cf. manuel
du langage).
En pratique, vous déclarez une référence et
utilisez le mot clé " New " pour bénéficier de l’aide à la
frappe ou bien vous utilisez CreateObject.
Un exemple de listing de code Test est :
Sub Test(pAdr,pO,pD,pE, optional pIoxX)
Dim Iox : Set Iox=CreateObject(" Iox2c.Iox_ ")
Iox.Define pIoxX
Iox.Configure
Iox.Output pAdr,pO
Clk.Wait pD
Iox.Enter pAdr,PE
Iox.Unconfigure
End Sub
Vous pouvez accéder aux classes de Iox2c.dll
en tant que composant Windows dans un programme Visual C++. La procédure est
décrite dans le fichier " C:\LabTab\2c\VC6\Test_C.cpp "
dont le listing est donné ci-dessous:
#include "c:\LabTab\2c\m_Iox2c.h"
int __stdcall Test(VARIANT * pAdr, VARIANT *
pO, VARIANT * pD, VARIANT * pE, VARIANT * pIoxX) //
{
r=Iox_Define(pIoxX);
r=
Iox_Configure();
r=
Iox_Output(pAdr,pO);
r=
Iox_Wait(pD);
r=
Iox_Enter(pAdr,pE);
r=
Iox_Unconfigure();
return
1;
}
Il suffit seulement d'ajouter un nouveau
chemin pour les fichiers "Include" pour la compilation et ajouter une
bibliothèque "Iox2c.lib" pour l'édition de liens. L'ensemble des
fonctions de "Iox2c.dll" peut être appelé avec cette méthode.
Visual C++
version 6.0 utilisé avec
COM
Vous pouvez utiliser l’instruction #import du
compilateur pour accéder aux classes de Iox2c.dll en tant que composant COM
dans un programme Visual C++. La procédure est décrite dans le fichier
" C:\LabTab\2c\VC6\Test_c.cpp " dont le listing est donné
ci-dessous:
#import "c:\LabTab\2c\Iox2c.dll"
no_namespace
int __stdcall Test(VARIANT * pAdr, VARIANT *
pO, VARIANT * pD, VARIANT * pE, VARIANT * pIoxX) //
{
IIox_Ptr
Iox (__uuidof(Iox_ )); //
Iox
Iox->Define(pIoxX);
Iox->Configure();
Iox->Output(pAdr,pO);
Iox->Wait(pD);
Iox->Enter(pAdr,pE);
Iox->Unconfigure();
return
1;
}
Le code d’appel depuis Excel est le
suivant :
Declare Function Test Lib "c:\LabTab\2c\VC6\TestX.dll
" (pAdr, pO, pD, pE, Optional pIoxX) As Long
Sub TestXL()
IoxX= " "
Test 22, " *idn ? ",
0.3, a , pIoxX
End Sub
Pour une utilisation avec Excel , le classeur
" " C:\LabTab\2c\VC6\TestX.xls " est fourni avec
LabTab2.
Pour réaliser une DLL conforme à COM,
reportez-vous à la documentation du compilateur.
Si vous n'avez aucune application LabTab1,
vous pouvez sauter cette section
Utilisation de
LabTab2 avec LabTab1 dans Excel-VBA
LabTab version 1 et 2 sont indépendantes,
vous pouvez donc les utiliser conjointement pour des développements nouveaux ou
modifiés. Vous devez seulement veiller à coordonner les accès au matériel.
Ré-utilisation de
code LabTab1 dans LabTab2
L'utilisation par LabTab2 de code développé
avec les versions antérieures de LabTab qui fonctionnaient dans l'environnement
Excel-VBA prend différentes formes en fonction de l'environnement utilisé avec
LabTab2.
Pour utiliser LabTab2 avec des programmes
LabTab 1, vous pouvez simplement supprimer, dans vos développements, la
référence au classeur de LabTab version 1 et établir une référence au classeur
de LabTab version 2, nommé:
" c:\LabTab\2c\Excel\LabTab2c.xls "
Votre code fonctionne alors sans changement
dans l’environnement Excel-VBA. L ‘ensemble de vos développements est donc
préservé.
Dans cet environnement et avec le classeur
LabTab2.xls, les instructions " DoEvents " d’Excel-VBA et
" DelayWithEvents " de LabTab version 1 sont utilisables
pour permettre la modification des feuilles Excel et la mise à jour des graphiques
Excel pendant l’exécution des programmes LabTab2.
Pour utiliser sous VBA (Access,Word,
Powerpoint, FrontPage, Excel, etc. …) et LabTab2 des programmes écrits sous
Excel-VBA avec LabTab 1, vous devez:
De cette façon, votre code LabTab1 fonctionne
sans changement de syntaxe, dans l’environnement VBA. L ‘ensemble de vos
développements est donc préservé. Des changements peuvent être nécessaires pour
tenir compte du fait que l'instruction " DelayWithEvents "
de Vbx, ne rend pas la main , dans LabTab2. Si votre environnement supporte
l'instruction "DoEvents", vous pouvez utiliser la fonction
"Seconds" de LabTab2 pour recréer une fonction
" DelayWithEvents " analogue à celle de LabTab1.
Reportez-vous à la rubrique de ce document, ci-dessous:
"Comportement
multitâche sous VBA - DoEvents"
Visual Basic et
Internet Explorer-VBScript
Le code écrit en Excel-VBA avec LabTab1 est
utilisable tel quel avec LabTab2 sous Visual Basic ou VBScript à condition
d'employer des instructions de VBA présentes en VB ou VBScript. La déclaration
des objets de LabTab1 est identique en VB avec le mot-clé "New". En
VBScript, vous devez utiliser "CreateObject".
LabTab2c peut être utilisé avec des
environnements variés. Le code antérieur écrit avec LabTab version 1 doit alors
être traduit. La syntaxe des séquences d'entrée-sortie reste cependant la même
et le portage du code en est simplifié.
Il est ainsi possible de traduire en
"vi" utilisable avec LabVIEW ou de compiler sous forme de DLL
Windows, un programme écrit avec LabTab version 1.
Reportez-vous à la partie "Programmation
avec d’autres langages que VBA" de ce manuel.
Utilisation de la
barre d’outils
La barre d’outils de LabTab est extérieure à
Excel en version 2, vous obtenez la barre d'outils de LabTab2 en exécutant le
fichier " c:\LabTab\2c\LabTab2c.exe " ou en cliquant sur
l’icône de son raccourci, présent sur votre bureau si vous avez créé ce
dernier. Vous pouvez ensuite choisir le bouton " Config "
de l’écran de démarrage pour obtenir un environnement de configuration
identique à celui de la configuration en version 1.
Les noms des boutons de
" LabTab2c.exe " correspondent aux noms de la barre
d’outils de LabTab 1 soit : " Copyright "
" Config " et " Help ". Un nouveau
bouton " Test " vous permet de dialoguer immédiatement à
l’aide du chemin "Iox", avec un instrument.
Choix parmi les
objets de LabTab2 pour la programmation
LabTab2 possède des objets " Gpib ,
Ser,Par ,Gpib1,Gpib2,Ser1,Ser2,Par1 et Par2 " , qui ont les mêmes
propriétés et méthodes que l’objet " Iox ". Les ports
commençant par " Gpib " en possèdent aussi d’autres plus
spécifiques au type de port qu’ils représentent.
Si des instructions manquent , vous pouvez
directement programmer avec ces objets , par exemple , les fonctions de bas
niveau pour le contrôle des liaisons GPIB et RS-232 sont contenues dans tout
objet " Gpib " et "Ser", respectivement.
Programmer avec plusieurs ports du même type
est possible en programmant des objets différents: Gpib1 à Gpib4,Ser1 et Ser2,
Par1 et Par2.
Il est aussi possible de changer de protocole
pour " Iox " en utilisant les arguments optionnels de
Iox.Define. En donnant à l’argument nommé IoxX, par exemple, la valeur
" gpib " , " ser " ou
" par ", il est possible d'utiliser l' objet
"Iox" pour programmer tous les types de ports de LabTab2. En règle
générale , les options choisies dans la configuration de LabTab2 peuvent être
toutes programmées par les arguments optionnels des méthodes Define des objets
Iox , Gpib , etc….
La programmation avec
" Iox " ne permet de configurer qu’un seul chemin
d’entrées-sorties à la fois mais il peut être redéfini par programme grâce aux
instructions Define et à leurs arguments optionnels. Les chemins
d’entrée-sortie sont définis dans ce cas "en séquence " .
Avec les ports autres
qu’ "Iox " plusieurs chemins d’entrée peuvent être définis
" simultanément ".
Selon les cas, les deux méthodes peuvent
avoir à être utilisées. La première est la plus universelle car elle rend
indépendantes les opérations sur les ports. C’est celle préconisée avec
LabTab2.
Utilisation de plusieurs ports en séquence
La configuration détermine normalement le
protocole utilisé par " Iox " ou le port utilisé par
l’objet " Gpib ", " Ser "
ou " Par ". Cependant , vous pouvez choisir par
programme le protocole utilisé par Iox en ajoutant à l’instruction Define un
argument optionnel nommé IoxX et pouvant recevoir les valeurs :
" Gpib,Ser ou Par ".
Cette instruction change alors, dans le
programme, jusqu'au prochain Define, les paramètres de configuration et
l’instruction suivante " Configure " en tient compte
jusqu’au prochain " Unconfigure ". Ceci vous permet de
commuter d’un protocole à l’autre à l‘intérieur d’un programme.
Cette possibilité s’étend à tous les objets
de l’application LabTab2.
Par exemple, pour passer du port gpib1 au
port ser1 , il est possible d’écrire le code suivant :
With iox
Define
ioxX := " Gpib ",
GpibX := " Gpib1 "
Configure
…
Unconfigure
End with
With Iox
Define
ioxX := " Ser ",
SerX := " Ser1 "
Configure
…
Unconfigure
End with
Utilisation de plusieurs ports simultanément
Pour utiliser en même temps plusieurs ports ,
vous pouvez ouvrir des protocoles ou des ports en simultané. Par exemple :
Ser1.Configure
Ser2.Configure
Ser1.output 15 , " xxx "
Ser2.output 15 , " xxx "
Ser1.Unconfigure
Ser2.Unconfigure
Cette technique peut être utilisée si vous
souhaitez économiser le temps de Unconfigure et Configure entre les deux
instructions Output. Sinon , il faudrait écrire :
Ser1.Configure
Ser1.output 15 , " xxx "
Ser1.Unconfigure
Ser2.Configure
Ser2.output 15 , " xxx "
Ser2.Unconfigure
***
Traitement des arguments optionnels
La fonction Define est un exemple de fonction
de Iox2c.dll qui possèdent des arguments optionnels ( variants).
Les fonctions de LabTab2 acceptent dans tous
les langages, l'omission de la totalité ou des derniers paramètres optionnels
et la transmission d'un pointeur nul (NULL) comme indication d'un paramètre
optionnel manquant. Seules ces techniques peuvent donc être portées entre
langages. Vous pouvez, par exemple, transmettre un pointeur nul par &0 en
VB.
Dans les langages VBA, VB et VBScript , les
fonctions de LabTab2 supportent de plus, l'omission des arguments optionnels
intermédiaires et les argument nommés.
Synthèse et
mesure de signaux logiques
Avec la programmation de bas niveau du port
série et du port parallèle et les fonctions Seconds et Wait, il est possible
d’envisager la création et l’acquisition de signaux logiques à des fréquences
pouvant atteindre 500 kHz, simplement avec un port série ou parallèle.
La fonction "Wait" suspend
l'exécution pendant un délai d'une précision de l'ordre de la microseconde.
En envoyant un changement d'état sur une
ligne matérielle avant et après la fonction Wait , il est aisé d'envoyer une
impulsion électrique sur une ligne d'un port série ou parallèle. De plus, la
fonction Wait renvoie une valeur de retour égale à 1 + n où n est l'erreur de
réalisation en microsecondes sur le délai demandé. Il est donc facile de
connaître la valeur de la largeur de l'impulsion réellement émise, à 1
microseconde près.
Mesure d'une largeur d'impulsion
La fonction Seconds peut être utilisée pour
les applications exigeant la mesure d'une largeur d'impulsion. Il suffit de
tester la valeur d'une ligne d'entrée d'un port série par exemple et de mesurer
l'instant des transitions avec Seconds.
Comportement
multitâche sous VBA - DoEvents
Il n'existe pas de façon de reprendre la main
lors de la programmation d'une attente par la fonction "Wait" de Clk.
Si votre environnement de programmation est
VBA, vous pouvez cependant obtenir cet effet avec du code "en ligne"
utilisant l'instruction Seconds de Clk et l'instruction VBA
"DoEvents".
DoEvents -
Interruption d'un programme en cours
L’instruction DoEvents disponible sous VBA
permet d’attendre un délai sans perdre la main dans l'application mère. Il est
ainsi possible de:
L'instruction "DoEvents" est très
importante dans les applications purement sous VBA pour stopper un programme en
cours d'exécution, par exemple, par un appui sur les touches
"Control" et "Escape".
En Excel, elle permet aussi de scruter
périodiquement le contenu d'une cellule pour arrêter le programme si une valeur
particulière y est entrée en cours d'exécution. Pour utiliser cette facilité,
il faut avoir accès aux cellules pendant l'exécution donc insérer au moins une
instruction DoEvents dans le déroulement du programme et en particulier les
boucles.
En dehors de VBA, Windows assure une gestion
multitâche des applications et l'instruction "DoEvents" est inutile
et de fait, elle n'existe pas dans les autres langages. Il n'en reste pas moins
que cette instruction est précieuse pour une application entièrement écrite en
VBA .
Comme elle est spécifique à VBA,
l'instruction "DoEvents" ne peut être utilisée avec d'autres langages
ni compilée. Vous devez donc insérer manuellement l'instruction
"DoEvents" aux endroits répétitifs de votre code pour redonner la
main à votre application lors de l'exécution de vos programmes VBA. Vous devez
aussi penser à l'exclure des parties que vous souhaitez compiler ou exporter vers
d'autres langages.
Programmation de
délais d'attente non bloquant
Hormis les réserves sur l'utilisation de
"DoEvents" , la programmation d'un délai d'attente non bloquant sous
VBA peut néanmoins se faire aisément en associant l'instruction "Seconds"
et le mot-clé "DoEvents".
Le code " en ligne "
correspondant est, en VBA, pour une valeur d'attente "dt":
" t=Cdbl(0):t1=Cdbl(t1):Clk.Seconds
t: t = t + dt: Do: Clk.Seconds t1:DoEvents : Loop While (t1 <
t) "
Vous devez noter que la présence de
"DoEvents empêche la portabilité de ce code en dehors de VBA.
Dans les opérations d'entrée-sortie, le
mot-clé "DoEvents" est déconseillé car il introduit une incertitude
supplémentaire dans l'exécution des délais et il réduit la portabilité.
Le code suivant est le code correspondant à
l'utilitaire de test fourni avec la barre d'outils de LabTab2.
Si vous avez une carte Gpib National
Instruments , dont le nom Visa est Gpib0 et vous souhaitez envoyer l’ordre
" *idn ? " à un instrument à l’adresse 15 puis
transformer la réponse en chaîne , la procédure est la suivante :
Installer la carte Gpib sous le nom Gpib0
avec la procédure National Instruments.
Lancer LabTab2
Appuyer sur le bouton Config de la barre
d’outils LabTab2
Sélectionner à chaque fois par Ok , Gpib puis
Gpib1 puis National Instruments puis ATGPIBTNT (Carte Générique) et GPIB0.
Fermer la fenêtre de configuration.
Programmer les lignes suivantes et les lancer
par f5 ou une autre procédure pour faire se dérouler une macro test.
Sub test
Dim Iox: Set
Iox=CreateObject("Iox2c.Iox_") ‘ ou dim Iox as new Iox_ to benefit
statement completion
Dim s : s=""
With iox
.define
.Configure
.output 15 ,
" *idn ? "
.Wait 1
.enter 15 , s
.Unconfigure
End with
Msgbox(s)
End test
Le test doit afficher la réponse de votre
instrument. Ce programme fonctionnera sans changement pour toute configuration
valide de LabTab2 sur une autre machine , une autre carte GPIB ou un port série
avec un appareil répondant à la question "*idn?".
UTILISATION INTERNET ET INTRANET DE LABTAB
LabTab peut être utilisé pour réaliser des
expériences sur des ports GPIB,RS-232 ou parallèles à travers Internet ou un
Intranet.
Cette faculté est obtenue en:
Tous les objets de LabTab, dits locaux,
possédant une fonction "Output" ont un objet IP correspondant, avec les
mêmes fonctions. Ces objets sont les objets: Iox_IP, Gpib_IP, Gpib1_IP,
Gpib2_IP, Gpib3_IP, Gpib4_IP, Ser_IP, Ser1_IP, Ser2_IP, Ser3_IP, Par_IP,
Par1_IP, Par2_IP. Tous les objets de LabTab possédant une fonction
"LabTab" ont un objet IP avec cette seule fonction.
Le prototype de toute fonction IP se déduit
de celui de la fonction locale de même nom en lui ajoutant trois paramètres
initiaux supplémentaires:
Un objet nouveau "IP" possédant une
seule fonction "Lab" est introduit, qui permet d'envoyer la chaîne de
commandes au serveur pour exécution et à recevoir dans cette même chaîne la
réponse du serveur. Le prototype de cette fonction comporte 5 paramètres:
Par exemple pour exécuter la suite de
commandes
Iox_Output(22,"*idn?")
Iox_Delay(0.3)
Iox_Enter(22,a)
sur un serveur à l'adresse 127.0.0.1 sur le
port de LabTab ( fixé à 3129) , le code VBA est le suivant:
Dim Iox_IP as new Iox_IP_
Cmd=""
Sens=1
Iox_IP.Output(Sens,cmd,r,22,"*idn?")
Iox_IP.Delay (Sens,cmd,r,0.3)
Iox_IP.Enter (Sens,cmd,r,22,a)
IP.Lab("127.0.0.1","3129"
, Cmd, 1,25)
Sens=-1
Iox_IP.Output(Sens,cmd,r,22,"*idn?")
Iox_IP.Delay (Sens,cmd,r,0.3)
Iox_IP.Enter (Sens,cmd,r,22,a)
En sortie de ce programme, la variable
"a" contient le résultat de l'exécution distante. Pour ajouter des
commandes, il suffit de les ajouter en émission (avant l'appel à IP_Lab) et en
réception (après cet appel).
S'il y a des arguments pour les fonctions IP,
il suffit de les préciser en émission et en réception et ils sont traduits et
récupérés automatiquement.
Cette façon de procéder permet de soumettre,
en un seul lot, au moment de l'appel de IP_Lab, un ensemble de commandes
d'entrée-sortie au serveur, préservant ainsi au mieux la métrologie temporelle
entre les appels, indépendamment du temps de réponse du réseau IP entre chaque commande.
Les informations et exemples fournis montrent
que LabTab2 permet:
Les pilotes utilisant LabTab2 sont ainsi
fortement indépendants du matériel qu'ils utilisent et des logiciels qui les
appellent.
Un fabricant peut aussi intégrer un pilote
dans la bibliothèque de LabTab2 pour donner à l'utilisateur, la possibilité d'
utiliser ce composant avec une version OEM de LabTab2 sans nécessiter d'acheter
une clé pour LabTab2.
LabTab2 apparaît donc capable d'être sous
Windows, une bibliothèque pour l'instrumentation ouverte et générale.
FIN DU MANUEL