Iox Corp.

LabTab2

Documentation

 

TABLE DES MATIERES

TABLE DES MATIERES   *

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 DETAILLEE

 

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   *

AVERTISSEMENT - COPYRIGHT

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 EN UN CLIN D'OEIL

Ce document sur LabTab2 comprend:

MANUEL D'INSTALLATION - LICENCES

CARACTERISTIQUES DE LABTAB2

CARACTERISTIQUES GENERALES

 

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:

 

Compatibilité matérielle

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.

Compatibilité logicielle

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.

CARACTERISTIQUES MATERIELLES

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:

 

CARACTERISTIQUES LOGICIELLES

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".

Objets et classes de LabTab2

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.

Aide au format HTML

L’aide de LabTab2 est au format HTML.

Utilitaire de test universel

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.

Désinstallation

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.

TESTS APRES INSTALLATION

Tests de la barre d'outils

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.

Tests programmés

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 Excel

Test avec Microsoft Internet Explorer et Microsoft Excel

Ce test est un exemple d'utilisation des fonctions Excel de LabTab2

Test avec LabVIEW

 

VERSIONS - LICENCES

Version de démonstration

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".

Version complète

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".

CONFIGURATION DE LABTAB

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.

Barre d'outils

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) :

Le premier écran est affiché en version de démonstration. Le deuxième est affiché après activation du logiciel.

 

Activation du logiciel

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:

  • Hewlett-Packard /Agilent
  • Iotech
  • Keithley-Metrabyte
  • National Instruments

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:

  • vitesse en bauds
  • parité
  • nombre de bits de données
  • nombre de bits de stops
  • type de protocole matériel ("Handshake"). Pour ce paramètre, il est à noter qu'une chaîne vide est utilisée pour désigner l'absence de protocole comme dans la commande MODE et est recommandée par défaut.

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".

 

 

 

"Test" - Utilitaire de test

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

Ce dont vous avez besoin

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.

Ce que vous devez faire

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.

Imaginez la suite

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

Ce dont vous avez besoin

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.

Ce que vous devez faire

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".

Imaginez la suite

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.

 

MANUEL DU PROGRAMMEUR - IOX

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.

OBJETS DE LA BIBLIOTHEQUE

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"

Sauvegarde de votre classeur

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".

OBJETS ET FONCTIONS

Objet Excel - Transferts de données à Excel

Utilisation

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").

Fonction

 

LabTab (Workspace_Fullname, Worksheet_Name, Row_Value, Column_Value, Address, Output_String, Wait_Value, LabScript_Format)

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"

 

LabScript ( Workspace_Fullname, Worksheet_Name, Row_Value, Column_Value, Labscript_Variable, LabScript_Format)

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"

 

VbaExcel ( Workspace_Fullname, Worksheet_Name, Row_Value, Column_Value, VbaExcel_Variant, LabScript_Format)

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

 

Utilisation

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").

 

Fonctions

 

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

 

Utilisation

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").

 

Fonctions

 

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

Utilisation

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").

Fonctions

 

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"

 

Objet Clk  - Gestion du temps

Utilisation

L'objet "Clk" dispose de deux fonctions pour la gestion du temps:

 

Wait (seconds )

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.

Seconds (t)

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

Utilisation

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:

 

Fonctions d'entrée-sortie

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 ? "

Fonctions

Configure

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.

Define

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 (adr , data, [format] )

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 (adr , data, [format])

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)

 

Unconfigure()

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.

Utilisation

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.

 

 

Fonctions

 

Ppoll (Byte_Value)

Renvoie un octet dans Byte_Value qui est l'octet de reconnaissance parallèle du bus GPIB.

 

Spoll (Address, Byte_Value)

Renvoie un octet dans Byte_Value qui est l'octet de reconnaissance série de l'appareil à une adresse GPIB.

 

Send String_commands

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.

 

Gpib bus commands 

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

Utilisation

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

 

Utilisation

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

 

Utilisation

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.

Fonctions

Len_Variant (Len, Data )

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.

 

File_Variant (File , V)

Transfert des octets d'un variant V à un un fichier donné par son chemin et son nom complet dans "File".

 

Variant_File( V , 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

 

Utilisation

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.

Affichage de fichier HTML

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.

 

Fonctions

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"

HtmlFileShow ( F )

Affiche à l'écran le fichier HTML de nom donné dans F.

 

UTILISATION AVEC D'AUTRES LANGAGES QUE VBA

 

Introduction

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

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.

 

Visual Basic

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

 

Visual C++ version 6.0

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:

 

Listing C++

#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:

 

Listing C++

#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;

}

 

 

Listing d’appel depuis Excel

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.

COMPATIBILITé

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.

 

 

Excel-VBA

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.

Microsoft Office - VBA

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".

LabVIEW et Visual C++

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.

 

 

PROGRAMMATION AVANCEE 

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.

Emission d'une impulsion

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é.

 

EXEMPLE DE PILOTE

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.

 

CONCLUSIONS

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