Environnement de programmation

L' environnement de programmation LabVIEW, présenté ici fonctionne sur une plate-forme WINDOWS. La version utilisée pour les demonstrations est une version anglaise du logiciel, les versions en langue française sont bien sûr disponibles et proposées par la société National Instruments.

Pour lancer LabVIEW on peut soit utiliser un raccourci bureau, ou encore aller dans le menu Demarrer --> Tous Les Programmes.

Au démarrage l'écran qui apparaît affiche le numéro de licence, toutes les boîtes à outils, ainsi que la version installée.

Puis s'en suit un second écran, indiquant des liens vers des sites internet de National Instruments pour les ressources en ligne qui sont là pour aider un concepteur débutant ou déjà habitué à des versions antérieures ;  puis des informations sur LabVIEW, et les mises à jour.

On peut donc fermer cette fenêtre de "bienvenue" en cliquant sur « Close » (ou Fermer).

 

demlabview1

 

A partir de la fenêtre précédente, on peut soit créer un nouveau projet ou ouvrir un fichier déjà crée dans une session précédente, ou alors ouvrir un nouveau fichier.

Comme nous l’avons vu  dans l'article "Présentation de LabVIEW",  un programme ou un VI  LabVIEW  est composé de deux fenêtres : une face avant ou l’interface utilisateur et un diagramme qui est le programme à proprement parlé.

Si on clique sur : File(Fichier) puis sur New VI (Nouveau VI), ou sur le raccourci clavier « CTRL N », on a la fenêtre suivante :

 

fichierlabview

 

La fenêtre active de couleur grise non nommée,  Untitled 1 (Sans titre 1)  représente la face avant, la fenêtre non active, à fond blanc, cachée en arrière plan représente le diagramme.

 

Sur le bord supérieur de cette fenêtre on trouve la barre des menus de LabVIEW.  Les lignes qui suivent donnent une brève description des fonctions principales de ces différents menus :

 

File (Fichier) : les fonctions accessibles par ce menu sont en rapport avec la gestion des fichiers (Nouveau, Ouvrir, Enregistrer, ou Imprimer) ;

Edit (Editer) : permet de faire des éditions de base dans des fenêtres LabVIEW (Copier, Coller, Supprimer) ;

View (Afficher ou Voir) : ce menu présente la palette d’outils et la palette de commandes sur la face avant, et la palette de fonctions et la palette d’outils sur le diagramme, il présente par ailleurs les sous-menus « VI Hierachy » (Hiérarchie du VI), « LabVIEW Class Hierachy » (Hiérarchie de classes LabVIEW), le navigateur de classe, et bien d’autres sous-menus ;

Project (Projet) : Ce menu permet la gestion des projets (Nouveau projet, ouvrir un projet, …) ;

Operate (Exécution) : ce menu permet de gérer l’exécution et le contexte d’exécution d’un VI ;

Tools (Outils) : ce menu permet d’accéder à des assistant pour configurer des cartes d’entrée-sorties, importer, rechercher des VI sur le disque dur de l’ordinateur,  construire un exécutable, … ;

Windows (Fenêtre) : ce menu permet de passer de la face avant au diagramme et vice versa, il permet aussi d’activer ou de désactiver de nombreuses fenêtres ouvertes dans LabVIEW ;

Help (Aide) : Ce menu permet d’accéder à toute l’aide en ligne (ressources sur internet, exemples…).

Pour rendre le diagramme actif, il suffit de cliquer sur le menu « Windows » (fenêtre), puis sur « Show Block Diagram » (Afficher le Diagramme) :

 

affdiagramme

 

Avec cette commande, seule la fenêtre diagramme devient active.

Pour travailler simultanément sur le diagramme et la face avant (c'est-à-dire une visualisation en mosaïque), cliquer sur la commande suivante : « Tile Left and Rigth » (Mosaïque verticale)

 

affdiagfaceavant

 

On obtient ainsi deux fenêtres qui peuvent être actives l’une après l’autre par un simple clic de souris.

Selon les dispositions suivantes, on peut aussi visualiser les deux fenêtres sous forme de mosaïque horizontale.

Attention : la fermeture de la face avant entraînera la fermeture du programme.

 

En dessous de la barre des menus décrite précédemment, on a aussi une barre de boutons

 

barreoutils

 

Dont les quatre principaux  de la gauche vers la droite désignent :

 

Le bouton Exécution : pour lancer l’exécution du programme en cours de développement ;

Le bouton Exécution en continu : pour lancer l’exécution du programme en continu ;

Le bouton Arrêt : pour arrêter l’exécution du programme même quand il tourne en continu ;

Le bouton Pause/Reprendre.

Les autres boutons situés à droite servent pour la mise en forme ou l’alignement des commandes ou des fonctions (Verticalement, Horizontalement, Espacés…).

 

Pour créer un VI dans LabVIEW, on a besoin de trois menus contextuels appelés « Palette » :

  • La palette d’outils (Tools Palette) : pour donner au curseur de la souris différents effets (soit pour la sélection, le câblage, l’écriture, la coloration,…) ;
  • La palette de commandes (Controls Palette) : dans la face avant uniquement;
  • La palette de fonctions (Functions Palette) : dans le diagramme uniquement.

Tools Palette (Palette d’outils)

La palette d’outil est accessible à partir du menu Affichage (View), aussi bien dans la face avant que dans le diagramme :

 

paletteoutils

 

Un outil est un mode de fonctionnement spécifique associé au curseur de la souris.

 

presentpaletteoutils

 

 

Operate value (Outil doigt) : il permet de changer la valeur d’une commande, de sélectionner et modifier les textes associés à un objet en face avant du VI, lorsqu’il passe dans les zones d’écriture (zone d’écriture des varaibles en face avant ou des constantes  dans le diagramme), il prend l’aspect d’un curseur de type traitement de texte ;

Positionnin/size/select (Outil flèche) : il permet de positionner, de dimensionner, et de sélectionner les objets soit dans la face ou dans le diagramme. En mode redimensionnement, l’outil change d’aspect.

Edit text (Outil Texte) : il permet soit d’éditer des textes libres, soit d’écrire des textes deans des zones prévues à cet effet.

Connect wire (Outil bobine) : il permet de realiser des fils pour créer des arc orientés ou des flux de données dans le diagramme. Il permet aussi d’affecter des objets commandes aux case des connecteurs lors de la création de sous-VI, ou de VI encapsulés ;

Object shortcut menu (Outil  Menu local) : il permet d’ouvrir le menu local d’un objet pour modifier ses caractéristiques;

Scroll windows (Outil Main) : il permet de déplacer la zone de visualisation de la fenêtre sans utiliser les barres de déplacement ;

Set/Clear break point (Outil Point d’arrêt): il permet de placer des points d’arrêts dans les VI , lors dans une phase de recherche d’erreurs ;

Probe Data (Outil sonde) : il permet de poser des sondes ou des afficheurs sur des fils de liaisons, pour en lire les valeurs des données qui y circulent ;

Get Color (Outil Pipette) : il permet de copier une couleur puis l’appliquer ensuite avec l’outil pinceau ;

Set color (Outil Pinceau) : Il permet d’appliquer une couleur à une zone ou un objet dans la fenêtre de travail pour améliorer la lisibilité.

Pour un changement automatique d’outil, (mode par défaut) : cliquer sur le voyant afin qu’il passe au vert. 

Pour passer la palette d’outil du mode manuel en mode automatique, il faut taper sur la touche  « TAB » du clavier.

 

Controls  palette (Palette de commandes) :

Utilisée quand on se trouve dans la face avant. Elle permet d’accéder à l’ensemble des objets représentant les entrées-sorties du programme, afin de créer l'interface homme-machine. Elle est activée grâce au menu suivant :

 

palettecdes

 

La figure suivante illustre en partie les différentes catégories d’objets disponibles dans cette palette:

 

presentpalettecdes

 

On va décrire brièvement les types d’objets classés par familles, qui apparaissent dans la figure précédente en parcourant la palette de gauche à droite et de haut en bas :

 

Numeric (Numérique) : ces objets sont utilisés pour définir les entrées ou les sorties de données de type numérique, entier ou réel ;

Boolean (Booléen) : ces objets sont utilisés pour définir les entrées ou les sorties de données de type booléens ;

String and Path (Chaîne et Chemin) : ces objets sont utilisés pour définir les entrées ou les sorties du type chaînes de caractère ou définir les chemins d’accès aux fichiers ;

Array, Matrix and Cluster (Tableau, Matrice et Cluster) : ces objets sont utilisés pour définir les entrées ou les sorties du type Tableaux (ensemble de données homogènes en type), Matrices, ou Cluster (ensemble de données hétérogènes ou de type différent) ;

List, Table and Tree (Liste, Table et Arbre) : ces objets sont utilisés pour définir les entrées ou les sorties de données homogènes en type, structurés et représentés sous forme de liste, de table ou d’arbre ;

 Graph (Graphe) : ces objets sont utilisés pour définir les entrées ou les sorties de données sous forme de courbes à deux ou trois dimensions ;

Ring and Enum (Menu déroulant) : ces objets sont utilisés pour définir les entrées ou les sorties de données homogènes sous la forme d’un menu déroulant ;

Containers (Conteneur) : ces objets sont utilisés pour définir les entrées ou les sorties du type containeur ;

Input/Output « I/O » (Entrée/Sortie « E/S »): ces objets sont utilisés pour définir les entrées ou les sorties faisant référence à des données de type mesures, spécifiques à l’environnement LabVIEW (Waveform, numéro de voie DAQ, nom de la ressource VISA, …), cartes d’acquisition et de commande grâce au port USB, développement de diverses applications comme celles utilisant des cartes FPGA,…

Variant and Class (Classe et Variant) : ces objets sont utilisés pour définir les entrées ou les sorties de données de nature hétérogènes qui ne peuvent pas être classés parmi les types cités précédemment ;

Decoration (Décoration) : ces objets sont utilisés pour améliorer la présentation de la face avant (rectangles, effets 3D…) ;

Refnum (Refnum) : ces objets sont utilisés pour définir les entrées ou les sorties de référence unique à un objet tel qu’un fichier, un périphérique ou une connexion réseau ;

.NET Container (Conteneur .NET) : permet l’incorporation d’objets .NET, dans la face avant, n’est valable que sous Windows ;

Active X Container (Conteneur Active X) : permet l’incorporation d’objets Active X dans la face avant, n’est valable que sous Windows ;

WEB Browser (Navigateur WEB) :  Navigateur WEB.

 

Functions palette (Palette de fonctions)

Cette palette permet d’accéder à l’ensemble des objets représentant les instructions ou les fonctions permettant de constituer un programme LabVIEW.  Elle est accessible uniquement dans le diagramme, grâce au menu suivant :

palettefctions

 

La figure suivante montre un exemple d'affichage qui pourrait s'opérer lorsqu'on ouvre la palette de fonctions:

 

presentpalettefctions

Prenons l'exemple du sous_menu Programmation (Programming):

Ce sous-menu montre les différentes catégories de fonctions qui peuvent être utilisées dans un programme LabVIEW :

 

Structures (Structures) : on trouve ici des structures de programmation, des constantes numériques, des variables locales et globales ;

Array (Tableau) : on trouve ici des fonctions de traitement des données de type tableau ;

Cluster, Class and Variant (Cluster, Classe et Variant): on trouve ici des fonctions de traitement de données de type Cluster,  Classe ou Variant;

Numeric (Numérique) : on trouve ici des fonctions de traitement de données de type numérique ;

Boolean (Booléen) :on trouve ici des fonctions de traitement de données de type booléen ;

String (Chaîne) : on trouve ici des fonctions de traitement de données de type chaîne de caractères ;

Comparison (Comparaison) : on trouve ici des fonctions de comparaison et de tests ;

Timing (Timing) : on trouve ici des fonctions de chronométrage, ou de minutage ;

Dialogue and User Interface (Dialogue et Interface Utilisateur) : on trouve ici des fonctions permettant d’afficher des messages par exemple en cas d’erreur ;

File I/O (Fichier E/S) : fonctions de gestion d’entrée sortie de fichiers ;

Waveform (Waveform) : ce sont des fonctions associés à un type de donnée sous forme de cluster intégrant par exemple des mesures, t0 et dt ;

Application Control (Contrôle d’application) : ce sont des fonctions permettant de contrôler une application en mode exécution ;

Synchronization (Synchronisation) : fonctions assurant la synchronisation des tâches qui s’exécutent en parallèle, ou des fonctions de transmission de données en parallèle ;

Graphics and Sound (Graphismes et son) : fonctions de gestion du son et de traitement graphique (sauvegarde d’objet dans un format spécifique par exemple) ;

Report Generation (Génération de rapport) : on trouve ici des fonctions permettant de générer  un rapport en cours d’exécution d’un VI ;

VI analyser (Analyseur de VI) : pour effectuer des tests et des analyses sur un VI, afin d’améliorer le code ;

Unit test Framework : pour créer des frameworks de test pour valider le fonctionnement d’un VI,  automatiser les tests, générer des rapports… ;

Deskstop Execution Trace  (Suivi d’exécution VI) : pour suivre l’exécution d’un VI.

 

La figure ci-après montre plus en détail les fonctions accessibles pour la gestion d'entrées-sorties de fichiers (pour importer et exporter les fichiers EXCEL par exemple), les entrées-sorties d’instrument; il en existe bien plus de fonstions encore par exemple comme la bibliothèque de fonctions mathématiques, ...etc :

 

presentautrespalettes

 

Bien souvent lorsqu’on accède à la palette de commandes et de fonctions, il est possible que pour atteindre la fonction recherchée, de nombreuses palettes spécifiques se déroulent les unes à la suite des autres ; cette procédure peut devenir assez lourde si on veut maintenir à chaque fois la souris pour ne pas sortir du menu ;  il est donc plus intéressant dans ce cas de rendre ces palette accessibles en permanence grâce à la punaise qui se trouve en haut à droite de chaque palette. Si celle-ci n’est pas disponible, on peut y accéder à l’aide d’un clic droit dans un espace vide du VI pour faire apparaître le menu. La figure ci-après illustre des palettes de fonctions ouvertes par ce principe ; on distingue bien une punaise en haut à gauche de chaque palette de fonctions :

 

presentpalettenum

 

Il  est aussi possible de personnaliser la présentation des icônes :

 

personalisationpalette

 

Dans certaines conditions on a besoin d’accéder à une fonction dont on connaît le nom et le rôle spécifique dans un programme, au lieu de la chercher dans une palette dont on n’est pas sûr de la trouver, il est plus intéressant d’utiliser l’outil de recherche (Search), puis de taper le nom de la fonction ou de la commande recherchée.

Par exemple ici on veut trouver la fonction mathématique « log » :

 

recherchelv

 

LabVIEW est un langage de programmation très vaste. Toutes les fonctions disponibles dans cet environnement ne peuvent pas être présentées dans cet article; le but ici est de faire découvrir l'application pour une prise en main rapide. Ce logiciel possède une aide en ligne suffisament complète pour permettre à quiconque de développer des applications sophistiqués.

Exemple de programme:

Créer un VI (un programme) LabVIEW, qui converti une température donnée en degrés Celcius, vers des degrés Fahreneith, et des degrés Kelvin.

Dans LabVIEW, créer un nouveau VI (ou taper Ctrl + N); 

On commence d'abord par placer les E/S sur la face avant. Aller dans Affichage -- Palette des commandes; dans la librairie Numérique, prendre une commande numérique de type glissière, puis placer sur la face avaant; prendre aussi deux indicateurs numériques.

On peut changer l'échelle de la commande. Pour cela on se place sur la commande numérique, puis à l'aide d'un clic droit, aller dans propriétés, puis sur échelle(scale); dans minimum mettre la valeur 0, et dans maximum 100.

On peut aussi afficher une commande numérique attachée à la commande à glissière. Aller dans Format d'affichage (Display format), puis sur Apparences (Appearances), cocher la case Montrer l'affichage numérique (Show digital display). Puis cliquer sur OK.

Sur le diagramme, dans Affichage, Palette de fonctions, puis Numérique, placer les opérateurs de multiplication, de division, et d'addition dans le diagramme, puis faire les liaisons afin qu'ils puissent correspondre aux calculs suivants:

Température en K = Température en C + 273.15;

Température en F = (Température en C *9)/5  + 32.

 

Pour finir on devra obtenir une face avant semblable à celle-ci:

 

exple1 faceavant

 

Et le diagramme:

 

exple1 diagramme

Il est possible d'utiliser aussi une boite de calcul. Dans ce cas il faudra respecter une syntaxe semblable à celle du langage C, puis terminer toutes les lignes par des point-virgules.

 

Pour clore cette partie, voici quelques raccourci clavier qu'on peut utiliser dans LabVIEW:

 

<Ctrl+H> – Activer/désactiver la fenêtre d’aide contextuelle.

<Ctrl+B> – Supprimer les connexions erronées du diagramme.

<Ctrl+E> – Basculer entre la face avant et le diagramme.

<Ctrl+T> –Mosaïque verticale des fenêtres.

<Ctrl+Z> – Annuler (aussi dans le menu Édition).

<Ctrl+C> – Copier un objet.

<Ctrl+V> – Coller un objet.