LABVIEW
Bases de la programmation
Module ARS4
GP - 2010
Introduction
LabVIEW : Environnement de programmation graphique dédié à la mesure, au
Introduction test, à l’instrumentation et à l’automatisation.
Fonctions de base proposées par l’environnement LabVIEW
Environnement
Création d’un VI
stockage des données
Création d’un
sous VI
Structures de
programmation
Présentation données Analyse et traitement des Acquisition / restitution
Les tableaux données des données
(IHM)
Les clusters
Echange et exportation
Les graphiques des données
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Environnement / Instrument Virtuel
Les programmes LABVIEW sont appelés « Instruments Virtuels » (VI). Un
instrument virtuel est un instrument de mesure contrôlé à partir d’un ordinateur
Introduction (instrument réel simulé par un ordinateur).
Environnement
Création d’un VI Face avant
• Commandes = Entrées
Création d’un • Indicateurs = Sorties
sous VI
Structures de
programmation
Les tableaux
Les clusters
Diagramme
• Programme complémentaire
Les graphiques
de la face avant
• Interaction entre face avant
La mémorisation
des données et diagramme
Ressources
Labview – Bases de la programmation
Environnement / Face Avant d’un VI
Face avant : Interface utilisateur du VI
Introduction Indicateurs :
- Affichent les données
Environnement
- Dispositif de sortie de l’instrument (LED, Grapiques …)
Commandes :
Création d’un VI
- Fournissent les données
- Dispositif d’entrée de l’instrument (Boutons poussoirs, Glissières …)
Création d’un
sous VI
Barre d’outils Icones
de la face
Structures de
avant
programmation
Les tableaux
Légende
des courbes
Commande du graphique
Les clusters booléenne
Graphique
Les graphiques
La mémorisation Grandeurs en
des données abscisse et en
ordonnée Echelle
Ressources
Labview – Bases de la programmation
Environnement / Diagramme d’un VI
Diagramme : Code source en langage graphique
Introduction Composants d’un diagramme :
- Les terminaux d’entrée/sortie (Objets de la face avant)
Environnement
- Les structures de contrôle
- Les noeuds (fonctions, VI Express et VI Standard)
- Les connections filaires
Création d’un VI
Création d’un
sous VI Barre Fonction
d’outils division
Structures de du diagramme
programmation
Terminal
Les tableaux sous-VI graphique
Les clusters
Fil de
Les graphiques données
La mémorisation
des données Structure d’une
boucle tant que
Ressources
Constante Terminal de
numérique Fonction minuteur contrôle booléen
Labview – Bases de la programmation
Environnement / Les noeuds
Nœuds : Unité de traitement élémentaire qui possèdent des connexions d’entrée et
des connexions de sortie
Introduction
Environnement
Les VIs Express (fond bleu) : VI
interactifs avec une page de dialogue
Création d’un VI configurable
Création d’un
sous VI
Structures de
programmation
Les VIs Standards (fond jaune) : VI qui
Les tableaux peuvent être personnalisés
Les clusters
Les graphiques
Les fonctions : éléments d’exploitation
La mémorisation
des données fondamentaux de LABVIEW
Ressources
Remarque : un nœud peut être représenté par un icône, un nœud expansable ou
un nœud expansé.
Labview – Bases de la programmation
Environnement / Les palettes
Palette de commande Palette de fonctions Palette d’outils
Sélection
Introduction automatique
Environnement Connexion
Texte
Création d’un VI
Sonde
Création d’un
sous VI
Cette palette est disponible à
Structures de partir du diagramme ou de la
programmation face avant.
Utilisée pour agir et
Les tableaux modifier les objets de la face
avant et du diagramme
Les clusters
Cette palette n’est disponible
qu’à partir de la fenêtre « face
Les graphiques
avant »
Placement des objets sur la
La mémorisation face avant
des données
Cette palette n’est disponible qu’à
partir de la fenêtre
Ressources « diagramme »
Construction du diagramme
Labview – Bases de la programmation
Environnement / La barre d’état
Cette barre est visible à la fois sur la face avant et le diagramme.
Introduction
Environnement
Fonctionnalités d’exécution Fonctionnalités d’éxécution en mode débug
Création d’un VI Bouton Exécution Bouton de surbrillance d’exécution
Création d’un Bouton Exécution continue Lancer une exécution pas à pas
sous VI
Bouton d’Arrêt d’exécution Progresser dans l’exécution pas à
Structures de pas
programmation Bouton Pause/Reprendre
Stopper une exécution pas à pas
Les tableaux
Fonctionnalités d’édition
Les clusters
Configuration du texte
Les graphiques
Aligner les objets
La mémorisation Distribuer les objets
des données
Réorganiser
Ressources
Redimensionner les objets de la face avant
Labview – Bases de la programmation
Création d’un VI / Méthode
Fenêtre de la face avant
Introduction
On dispose les objets sur la face avant.
Pour chaque objet disposé sur la face avant, un
Environnement
terminal est créé dans le diagramme.
Objet de type commande Terminal d’entrée
Création d’un VI
Objet de type indicateur Terminal de sortie
Création d’un
sous VI
Structures de Fenêtre du diagramme
programmation
Terminaux Terminaux
On ajoute au diagramme les nœuds et les d’entrée de sortie
Les tableaux structures de contrôle.
On réalise les connexions grâce à l’utilisation
Les clusters de l’outil « connexion » de la palette « outil ».
Un terminal d’entrée est représenté avec une
Les graphiques
bordure en gras et une flèche à droite.
La mémorisation Un terminal de sortie est représenté avec une
des données bordure fine et une flèche à gauche.
Ressources La couleur du terminal renseigne sur le type de Outil de
donnée. connexion
Labview – Bases de la programmation
Création d’un VI / Programmation par flux de données
Langage classique (textuel):
Introduction
Les instructions écrites s’exécutent séquentiellement.
Langage Labview : programmation par flux de données
Environnement
- L’exécution du diagramme dépend du flux de données. Il ne s’exécute pas
forcément de gauche à droite
Création d’un VI
- L’exécution du noeud se fait quand les données sont disponibles à tous les
Création d’un terminaux d’entrée
sous VI - Puis les noeuds fournissent des données à tous les terminaux de sortie.
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Création d’un VI / Les options d’aide
Quand on déplace le curseur sur les objets de la face avant et du diagramme, la fenêtre
d‘aide contextuelle affiche les icônes des sous VI, des fonctions, des constantes, des
Introduction
commandes et des indicateurs, avec le descriptif des entrées et sorties.
Environnement
Création d’un VI
Aide Contextuelle
Création d’un • Aide en ligne
sous VI
• Aide verrouillée
Structures de • Choix du mode de l’aide
programmation
• Ctrl + H
Les tableaux
Les clusters
Référence en ligne
Les graphiques - Accès à l’intégralité des menus
- Ouverture automatique d’une fenêtre pour accéder directement à l’aide.
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Création d’un VI / Techniques de débuggage
Trouver des erreurs
Introduction
Cliquer sur le symbole de la flèche coupé
Environnement Une fenêtre Windows apparaît avec les erreurs
Création d’un VI
Animer l’exécution
Création d’un
sous VI
Cliquer sur le bouton; les données dans des bulles sont
Structures de animées. Des valeurs sont alors indiquées sur les fils.
programmation
Les tableaux Placer des sondes
Les clusters
Cliquer droit sur le fil pour afficher une sonde. Les données qui
Les graphiques transitent sur ces fils seront affichées.
La mémorisation Vous pouvez également choisir l'outil Probe (Sonde) à partir de la
des données palette d'outils.
Ressources
Labview – Bases de la programmation
Création d’un sous VI / Qu’est ce qu’un sous VI ?
Un sous VI est un VI qui peut être utilisé dans un autre VI
Introduction
Similarité avec une subroutine
Environnement Avantages
– Modularité
– Facilite le déboggage
Création d’un VI
– Nécessite une seule création de code
– Nécessite peu de mémoire
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Création d’un sous VI / Les étapes à respecter
Créer une documentation : la documentation
Introduction d’un VI permet de décrire succintement sa fonction.
Pour créer cette documentation, cliquer avec le bouton droit
Environnement
sur l’icône de la face avant et accéder à la rubrique
« Propriétés du VI / Catégorie / Documentation ».
Création d’un VI
Création d’un
sous VI Créer une icône : une icône représente un VI
dans un autre diagramme.
Structures de
programmation
Pour créer cette icône, cliquer avec le bouton droit sur
l’icône de la face avant et accéder à la rubrique « Editer
l’icône ».
Les tableaux
Les clusters Créer le connecteur : le connecteur montre les
terminaux disponibles pour le transfert des données.
Les graphiques Pour créer ce connecteur, cliquer avec le bouton droit sur
l’icône de la face avant et accéder à la rubrique « Visualiser
La mémorisation le connecteur ». Cliquer à nouveau avec le bouton droit sur
des données le connecteur affiché par défaut et choisir un « modèle »
adapté.
Ressources Pour nommer les terminaux, attribuer chaque zone de
connexion à un indicateur ou une commande de la face avant.
Labview – Bases de la programmation
Création d’un sous VI / Sauvegarde et rappel d’un sous VI
Sauvegarde d’un sous VI
Introduction - Choisir un emplacement facile à retenir
- Organiser par fonctionnalités :
Environnement Tous les VIs de mêmes nature dans le même répertoire
- Organiser par application :
Création d’un VI
Tous les VIs utilisés pour une application spécifique dans un répertoire ou
Création d’un une librairie.
sous VI
Structures de Rappel d’un sous VI
programmation
Pour accéder aux sous VI personnels,
Les tableaux
On peut cliquer sur : Fonctions/Selection d’un VI
Les clusters
Les graphiques On peux également faire glisser l’icône d’un VI (si il est
ouvert) dans un autre VI. Le premier VI deviendra alors
La mémorisation le sous VI du deuxième.
des données
Ressources
Labview – Bases de la programmation
Structures de programmation
Les structures de programmation sont accessibles depuis le menu
Fonction/Programmation/Structures. On distingue les structures suivantes :
Introduction
1 2
Environnement Deux structures de répétition
- La boucle FOR (1)
Création d’un VI
- La boucle WHILE (2)
Création d’un
sous VI
Une structure conditionnelle 3
Structures de
- La structure Case (3) 4
programmation
4 5
Les tableaux
Une structure de séquencement (4)
Les clusters Boîte de calculs (5)
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Structures de programmation / Structures de répétition
Introduction
La boucle While
– Possède un compteur d’itération
Environnement – S’exécute toujours au moins une fois
– S’exécute selon des paramètres de
conditions
Création d’un VI
Création d’un
sous VI
Structures de
programmation
La boucle For
Les tableaux – Possède un compteur d’itération
– S’exécute N fois (N paramétrable)
Les clusters
Les graphiques
La mémorisation
des données Pour mettre en œuvre une boucle de répétition dans la zone diagramme, il suffit
- de la sélectionner dans Fonctions/Programmation/Structures
Ressources
- d’encadrer le code à répéter
Labview – Bases de la programmation
Structures de programmation / Structures de répétition
Exemple de mise en œuvre d’une boucle While
Introduction Attention : lors de la mise en œuvre d’une boucle, il faut veiller à bien placer les
terminaux d’entrée/sortie sur le diagramme.
Environnement
Modifications par l’utilisateur
Création d’un VI
prises en compte
Création d’un
sous VI
Structures de
programmation
Les tableaux
Valeur transmise Valeur obtenue
Les clusters
au premier tour de au dernier tour
boucle de boucle
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Structures de programmation / Structures conditionnelle
La structure CASE
Introduction
La structure CASE permet d’exécuter du code selon une valeur d’entrée qui
contrôle l’exécution.
Environnement
Elle est analogue à l’instruction « if - then - else » en langage C.
Création d’un VI
Exemple 1: Entrée booléenne
Création d’un
sous VI
Exemple 2: Entrée chaîne de caractères
Structures de
programmation Exemple 3: Entrée numérique
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données Exemple 1 Exemple 2 Exemple 3
Ressources
Labview – Bases de la programmation
Structures de programmation / Structures de séquencement
La structure « séquence »
Introduction
Une structure séquence est utilisée lorsque l’on souhaite contrôler l’ordre
dans lequel les nœuds seront exécutés dans un diagramme. Il existe deux
Environnement types de structure « séquence »:
- Séquence empilée
Création d’un VI
- séquence déroulée
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters Exemple : séquence déroulée
Utilité de cette structure:
Les graphiques
Quelquefois, il est difficile de déterminer exactement l’ordre d’exécution d’un diagramme.
La mémorisation
des données Souvent, certains événements doivent se dérouler avant d’autres événements.
Quand on a besoin de contrôler l’ordre d’exécution des codes dans le diagramme, on
Ressources peut utiliser la structure Séquence.
La structure empilée est également très intéressante afin d’apporter une meilleure
lisibilité au programme. L’utilisation de variables locales de séquence est alors
nécessaire.
Labview – Bases de la programmation
Structures de programmation / Boîtes de calculs
La boîte de calcul
Introduction
Une boîte de calcul permet de remplacer la description graphique d’une
opération mathématique par une description textuelle.
Environnement
Création d’un VI Point-virgule
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Pour ajouter des variables,
- cliquer droit
Les graphiques - choisir « Ajouter une entrée » ou « Ajouter une sortie ».
La mémorisation La formule doit être terminée par un point virgule.
des données
Quand plusieurs formules sont utilisées, chaque variable assignée (variable sur
Ressources
le coté gauche de la formule) doit avoir un terminal de sortie.
Labview – Bases de la programmation
Les tableaux / Création sur la face avant
Pour créer un tableau sur la face avant, il faut :
Introduction - sélectionner un tableau dans
Commandes/Modernes/Tableau, Matrice et cluster/Tableau
Environnement
- glisser une commande ou un indicateur dans le tableau
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Indice du
premier
Les tableaux élément visible
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Tableau Tableau rempli Tableau rempli
vide de commandes d’indicateurs
numériques numériques
Labview – Bases de la programmation
Les tableaux / Remplissage d’un tableau 1D avec une boucle
Lorsque l’on câble une connexion vers l’extérieur d’une boucle FOR, Labview stocke
automatiquement les valeurs successives dans un tableau, c’est l’Auto-indexation
Introduction
Illustration : Voir exemple ci-dessous
Environnement Tunnel de sortie 1
Auto-indexation activée
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Tunnel de sortie 2
Auto-indexation
Les tableaux désactivée
Tunnel de sortie 1: l’auto indexation est activée
Les clusters
Un tableau de 5 valeurs est transmis sur le tableau 3 sur le dernier tour de
boucle.
Les graphiques
Tunnel de sortie 2 : l’auto indexation est désactivée
La mémorisation
des données La dernière valeur produite par le générateur pseudo aléatoire est transmise à
Numérique 3 sur le dernier tour de boucle.
Ressources
Remarque : On peut créer des tableaux 2D en imbriquant deux boucles FOR : l’une
pour la gestion des colonnes et l’autre pour la gestion des lignes.
Labview – Bases de la programmation
Les tableaux / Principales fonctions sur les tableaux
Différentes fonctions associées à la gestion des tableaux peuvent être récupérées
dans la palette Fonction (diagramme) : Fonctions/Programmation/tableau
Introduction
Environnement
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Les tableaux Principales fonctions :
Les clusters
Array Size : fournit la taille du tableau
Index Array : détermine la valeur située à l’indice spécifié en paramètre d’entrée
Les graphiques
Search 1D Array : Recherche l’indice correspondant à une valeur particulière
spécifiée en paramètre d’entrée.
La mémorisation
des données Build Array : fabrication d’un tableau à partir de plusieurs tableaux
Ressources
Labview – Bases de la programmation
Les clusters / Présentation
Structure de données qui regroupent des données
Introduction
Les données peuvent être de différents types
Environnement
Structure analogue à l’instruction struct en langage C
Les éléments doivent tous être, soit des commandes, soit des indicateurs
Création d’un VI Cela est similaire au câblage de fils dans une même gaine
Création d’un
sous VI
Structures de
programmation
Les tableaux
Avantages :
Les clusters
- Regrouper des données dans des ensembles structurellement cohérents
Les graphiques
- Diminuer le nombre des connexions des VIs
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Les clusters / Création sur la face avant
Pour créer un cluster sur la face avant, il faut :
Introduction - sélection un cluster vide dans le menu
Commandes/Moderne/Tableau, Matrice et Cluster/Cluster
Environnement - Déposer à l’intérieur les différents éléments constitutifs
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Cluster Cluster rempli Cluster rempli
vide de d’indicateurs
commandes
Labview – Bases de la programmation
Les clusters / Principales fonctions sur les clusters
Assembler (par ordre) & Assembler par nom
Introduction Les fonctions d’assemblages permettent de regrouper divers
éléments dans un cluster ou de changer la valeur de certains
Environnement éléments d’un cluster existant
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation - Assemblage par ordre : plus compact
des données
- Assemblage par nom : plus clair
Ressources
Labview – Bases de la programmation
Les clusters / Principales fonctions sur les clusters
Désassembler (par ordre) & Désassembler par nom
Introduction
Les fonctions d’assemblages permettent d’extraire des éléments
Environnement d’un cluster pour les utiliser individuellement.
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Les clusters / Les clusters d’erreurs
Présentation
Les clusters d’erreurs permettent de gérer les erreurs produites par les sous VI du
Introduction
programme.
Environnement
Un cluster d’erreur contient les informations suivantes :
- status : un booléen qui renvoie la valeur Vrai si une erreur se produit.
- code : un entier qui fait référence à un code numérique correspondant à l'erreur.
Création d’un VI - source : une chaîne de caractères qui identifie le VI dans lequel l'erreur s'est produite.
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Les clusters / Les clusters d’erreurs
Techniques de manipulation d’erreurs
Introduction - L’information d’erreur est passée d’un sous VI au suivant.
- Si une erreur se produit dans un sous VI, tous les sous VI suivants ne sont pas
Environnement exécutés de la façon habituelle
- Gestion d’erreur automatique
Création d’un VI Exemple : Lecture d’un port série
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Clusters d’erreurs
Ressources
Remarque : les clusters d’erreurs permettent également de garantir l’ordre
d’exécution des différents sous-Vis.
Labview – Bases de la programmation
Les graphiques / Différents types
Le graphique est un indicateur numérique. Il existe 3 principaux types de graphiques
sous Labview :
Introduction
Graphe déroulant ou Waveform Chart : A chaque instant, le graphe ne reçoit
qu’une seule donnée à la fois. La donnée d’entrée n’est donc pas un tableau de
Environnement
valeurs. L’affichage des données sur le graphe peut s’apparenter au fonctionnement
d’une table traçante. Cet indicateur est forcément intégré dans une boucle.
Création d’un VI
Graphe ou Waveform Graph : Ce graphe reçoit simultanément l’ensemble des
Création d’un données sous la forme d’un tableau de valeurs. Il affiche donc un vecteur de points.
sous VI
Son fonctionnement peut s’apparenter à celui d’un oscilloscope en mode y = f(t).
Structures de
programmation Graphe XY : Ce graphe représente un tableau de données Y en fonction d’un
tableau de données X. Il reçoit donc simultanément l’ensemble des données sous la
Les tableaux forme de 2 tableaux de valeurs. Son fonctionnement peut s’apprenter à celui d’un
oscilloscope en mode XY.
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Les graphiques / Personnalisation
Cliquer droit sur le graphique pour le personnaliser.
Introduction
Environnement
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
Les graphiques / Affichage multicourbes
Introduction
Une seule courbe Plusieurs courbes
Environnement
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation
La mémorisation des données / Registres à décalage
Les registres à décalages sont associés au boucles itératives FOR et WHILE. Ils sont
utilisés comme mémoires locales afin de « récupérer » les valeurs calculées dans les
Introduction itérations précédentes.
Exemple n°1 : Filtre moyenneur
Environnement
Echantillon i
Création d’un VI Valeurs initiales
des registres
Création d’un
sous VI
Structures de
programmation
Les tableaux
Les clusters Valeur moyenne
Echantillon i-1
Echantillon i-2 sur 5 mesures
Les graphiques Echantillon i-3
La mémorisation
des données
Une autre utilisation du même style est la mise en œuvre de filtres numériques
Ressources (implantation élémentaire de l’équation récurrente) … On peut également citer leurs
utilisations dans le cadre du codage d’une machine d’états.
Labview – Bases de la programmation
La mémorisation des données / Variables locales
Les variables locales sont des duplications de terminaux d’entrée (commandes) ou de
sortie (indicateurs). Elles donnent la possibilité de pouvoir écrire ou lire n’importe quelle
Introduction variable (y compris lire des terminaux de sortie et écrire sur des terminaux d’entrée) à
n’importe quel endroit du programme (Elle évite l’utilisation d’une liaison filaire).
Environnement
Création d’un VI
Création d’un
sous VI
Structures de
programmation
Variable Variable locale Variable locale
locale sans affectée à une affectée à une
Les tableaux
affectation entrée sortie
Les clusters
On remarque qu’une variable locale peut indifféremment être configurée en
Les graphiques lecture ou en écriture qu’elle soit affectée à un terminal d’entrée ou de sortie.
La mémorisation Pour affecter une variable locale à un terminal (d’entrée ou de sortie), il faut
des données effectuer un clic gauche dessus et sélectionner le terminal souhaité.
Ressources
Labview – Bases de la programmation
Ressources documentaires pour la réalisation de ce cours
Bibliographie :
Introduction
- Labview : programmation et applications, Francis Cottet, DUNOD
Environnement - Labview : Bases de programmation et Applications, Thierry Royant, CASTEILLA
Création d’un VI
Webographie :
Création d’un - Site de National Instrument
sous VI
Structures de Autre ressource :
programmation
- Instrumentation Virtuelle avec Labview, Philippe Métayer, IUT de Bordeaux
Les tableaux
Les clusters
Les graphiques
La mémorisation
des données
Ressources
Labview – Bases de la programmation