# Initiation Labview

* Initiation Labview
* Initiation LabView
* Sommaire
* Introduction
* Les Instruments Virtuels
* Boucle & Structures condition
* Glossaire
* TP n°1
* Liens
* Modifier ce modèle

## Introduction

Labview (Laboratory Virtual Instrument Engineering WorkBench) est un logiciel de développement de programmes d’application. LabView utilise un langage de programmation essentiellement graphique dédié au contrôle, à l'acquisition, l'analyse et la présentation de données. En LabView, on n'écrit pas de lignes de programme dans un langage textuel comme Pascal ou C, Basic ou Fortran. On manipule des objets graphiques. Ces objets graphiques représentent à la fois les variables du programme, ainsi que des fonctions qui vont réaliser des actions portant sur ces variables. La programmation en Labview consiste simplement à concevoir le traitement de l'information, organiser et relier les variables avec les fonctions au moyen de fils. Labview est dédié à la programmation conçue pour le pilotage d'instruments électronique. Avec Labview on construit graphiquement des modules logiciels appelés des « VI » (« VI » sigle de « Visual Instruments ») au lieu d'écrire du code dans un langage informatique textuel. Son principe de programmation est basé sur l'assemblage graphique de modules logiciels appelés « Instruments Visuels (« VI »). Le rôle d'un VI est d'acquérir des données issues par exemple de fichiers, du clavier ou encore de cartes électroniques d'Entrée/Sorties », de les analyser, et de les présenter au travers d'interfaces hommes-machines graphiques (encore appelées « face avant » par analogie avec la face avant permettant de piloter un appareil électronique).

## Fonctionnement

Une application Labview est représentée sous forme d'un VI.
Il y a deux étapes: la définition du GUI (front panel) qui est la conception de l'interface utilisateur où l'on dessine et place tous les éléments visuels (contrôles):
* contrôles d'entrée de l'utilisateur: bouton, interrupteur, potentiomètre, curseur, zone de saisie de valeur/listes ...
* contrôles de sortie du programme: voyant, graphe, thermomètre, zone de texte ...)
et le (block diagram) qui contient le code d'exécution.
Pour une représentation plus fonctionnelle, ces éléments peuvent être entourés visuellement (décoration) dans un cadre, regroupés dans des onglets (tabs) etc... et on peut leur associer un texte libre (label).
Chaque contrôle utilisé dans le front panel va créer un objet terminal dans le block diagram.
Le diagramme est présenté dans une fenêtre séparée. Il contient le code source graphique du VI, il permet d'effectuer des traitements sur les entrées et sorties créées dans la face avant. La fenêtre diagramme va donc contenir en quelque sorte le « code source » du programme VI.

## L'environnement et les licences

La mise au point des VI est faite dans l'environnement de développement Labview (IDE). Il faut donc disposer d'une licence de développement.
Une fois l'application terminée, l'IDE permet de générer un exécutable portable (il faut une licence Labview de génération) contenant ou pas le runtime Labview qui est de l'ordre de 200 Mb (version 2014) et qui augmente d'autant la taille totale.
Sur le poste où l'application ainsi créée sera déployée, le runtime Labview pourra toujours être chargé séparément, du site National Instrument, s'il ne figurait pas dans l'installateur. C'est le cas aussi pour les drivers d'équipements National Instrument (ex: boitier NI-845x).
Outre les versions professionnelles de l'IDE, actuellement National Instrument met aussi à disposition une version Home Edition disponible ici et la licence d'essai gratuite de base est d'une semaine mais peut être portée à 45 jours sur demande.

## Langage

Le diagramme utilise le langage de programmation G qui est un langage graphique, différent des autres langages de programmation (« Pascal », « C », ou encore Fortran), qui eux sont des langages textuels.
Le langage utilisé dans le block diagram se résume à relier entre elles par des connexions, les icônes présentes. Ces icônes peuvent être:
* des terminaux (d'entrée ou de sortie),
* des variables, tableaux, clusters ... pour la programmation
* de petites fonctions simples (fonctions arithmétiques, fonctions logiques, comparateurs, chaînes de caractères)
* des fonctions d'affichage (générateurs de graphiques
* des fonctions plus complexes (transformée de Fourier rapide, filtre numérique)…
* des VI à part entière,
* des nœuds (pour l'accès aux propriétés) ...
Ceci permet une programmation hiérarchisée sur plusieurs niveaux.
On peut placer aussi ces icônes dans les structures standards de programmation:
* boucles: while ...
* séquences de test: case(=if) ......
La programmation est de type évènementielle avec retour au système après exécution des chemins.
Il n'y a pas d'ordre d'exécution du code a priori. Plusieurs chemins câblés de même niveau s'exécutent en parallèle au fur et à mesure que leurs données d'entrée sont disponibles. Si une donnée n'a pas encore été évaluée, alors l'opération est suspendue et une autre branche qui a ses données prêtes, est exécutée par Labview. On peut néanmoins forcer l'ordonnancement en fixant les différentes séquences individuelles dans des cases à la manière d'une suite d'images sur un film ou en chaînant les tunnels d'erreur.
Les tunnels d'erreur servent principalement à véhiculer les erreurs détectées dans l'exécution du code Labview (ex: écriture dans un ficher AVANT le premier octet). Garder à l'esprit lors du codage, que l'exécution est en général sautée si un VI Labview détecte qu'il y a déjà une erreur à son entrée, c'est à dire avant qu'il ne commence à s'exécuter.
On peut déboguer le programme comme dans les langages conventionnels en posant des points d'arrêt sur les icônes et des traceurs (watch) pour capter les valeurs des variables au moment de leur évaluation.
Un mode dynamique permet de visualiser l'exécution: une bulle se déplace sur les branches au fur et à mesure de la progression.
* Wikipédia propose un article sur : « Labview ».