Vous êtes sur la page 1sur 114

Outils Logiciels

Pr. Brahim Bouachrine


1
b.bouachrine@uiz.ac.ma
Partie II- LabView

I. Introduction
II. Environnement LabView
III. Acquisition de données
IV. Les variables, les tests, les boucles
V. Simulation

2
I. Introduction
 Labview (Laboratory Virtual Instrument Engineering WorkBench) est un
logiciel cree en 1985. C’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
 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 » (Visual Instruments) au lieu d'écrire du code dans un langage
informatique textuel.
 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).
 Labview, ce qu'on appelle la « face avant » est donc l'interface utilisateur
permettant d'exploiter, de piloter, le programme. 3
I. Introduction
Pourquoi utiliser LabVIEW ?

LabVIEW vous permet de construire vos propres solutions pour des systèmes
scientifiques et techniques.

LabVIEW vous offre la flexibilité et les performances d'un langage de


programmation puissant sans la difficulté ni la complexité qui lui sont
habituellement associées.

LabVIEW offre un moyen plus rapide de programmer l’instrumentation,


l’acquisition de données et les systèmes de commande.
En utilisant LabVIEW pour réaliser le prototype, la conception, les tests et la mise
en application de vos systèmes d’instrumentation, vous pouvez réduire le temps de
développement du système et en augmenter la productivité de 4 à 10 fois.

4
II. Environnement LabView
Acquisition avec LabVIEW
LabVIEW permet l’acquisition de données
par l’intermédiaire de diverses connectiques :
• PCI (Peripheral Component Interconnect)
• CompactFlash
• LAN (Local Area Network)
• USB (Universal Serial Bus)
• GPIB (IEEE 488) (General Purpose Interface Bus)
• PXI (PCI eXtensions for Instrumentation)
• Wi-Fi (IEEE 802.11 b/g/n) (Wireless Fidelity)
• Bluetooth
• IrDA (Infrared Data Association)

• Firewire (IEEE 1394)


• Ethernet
• Série (RS 232, RS 449, RS 422, RS 423, RS 485)
• VXI (VME eXtensions for Instrumentation)
5
Entrées Sortie DANS LabVIEW
Les entrées sorties sont déposées sur la face avant sous la forme
d’objets tels que :
 boutons poussoirs
 interrupteurs
entrées  potentiomètres rotatifs ou a glissière
 Afficheur numérique en lecture.
 Etc …

 écrans d’oscilloscope
sorties  Afficheurs numériques en écriture (affichage)
 Vu-mètres
 Etc …
Ces objets sont disponibles dans la palette de commandes qui apparait
par clic droit sur la face avant.
On les place par ≪ glisse depose ≫. 6
Analyse avec LabVIEW
LabVIEW inclut des outils pour
l’analyse des données :

• Traitement du signal : Convolution, analyse spectrale,


transformées de Fourier,…

• Traitement d’images : Masque, détection de contours,


profils, manipulations de pixels,…

• Mathématiques : Interpolation, statistiques (moyennes,


écart-type,…), équations différentielles,…

7
Les programmes LabVIEW appelés Instruments
Virtuels ou Virtual Instruments (VI)

On parle d’instruments virtuels car leur apparence et leur


fonctionnement sont semblables à ceux d’instruments réels, tels que les
oscilloscopes et les multimètres.

8
Les VI se composent de trois
Composantes d’un VI éléments principaux :

- Face avant
• Interface utilisateur
« Contrôles » = entrées
« Indicateurs » = sorties

- Diagramme (Face arrière)


• Fenêtre de programmation et
d’affichage du code source
Interaction entre face avant et
diagramme : Ctrl+E

- Icône/Connecteur 9
Face avant d’un VI

Dans la face-avant nous trouverons tous les éléments


interactifs du VI (commandes et indicateurs).
10
Diagramme d’un VI
Le programme est écrit en langage graphique dans une deuxième
fenêtre ‘‘diagramme’’ indissociable de la face avant.
Les entrées sorties apparaissent alors
sous la forme de terminaux.

L’écriture du programme consiste a relier entre les


terminaux d’entrées sorties en utilisant :
 des operateurs arithmétiques
 des operateurs booléens
 des fonctions de calcul toutes prêtes
 des structures de programmation (boucles, tests
etc …)
Dans le diagramme nous trouverons tous les éléments propres
au code développé (structures, fonctions, constantes,…).
11
Palettes de commandes

Palette de commandes
(disponible à partir de la
fenêtre face avant par un clic
droit avec la souris ou dans la
barre des menus : “
Fenêtre”).

Dans cette palette nous trouverons tous les éléments


nécessaires à la création de la face-avant
(commandes et indicateurs).
12
Palettes de fonctions

Palettes de fonctions
(disponible à partir de la
fenêtre diagramme par un
clic droit avec la souris ou
dans la barre des menus : “
Fenêtre”).

Dans cette palette nous trouverons tous les éléments


nécessaires à la création du code graphique dans la fenêtre
diagramme (fonctions de base, VI Express,…). 13
Utilisée pour agir sur les objets de la face avant et du
Palette d’outils diagramme (disponible dans la barre des menus:
“ Fenêtre”).
Sélection automatique des
Positionner des éléments sur la outils
face−avant et le diagramme

Outil d’écriture
Outil de sélection

Modifier le texte et créer des


Connecter des éléments commentaires
dans le diagramme

Outil de défilement
Placer des points d’arrêt
dans les VIs

Outil copiage de couleur


Outil de coloration

Possibilité de changer d’outils à l’aide de la touche tabulation Sonde


du clavier de l’ordinateur lorsque la sélection automatique de
14
l’outil est désactivée.
Barre d’outils de la face-avant
Bouton d’Arrêt
d’exécution Aligner les objets
Redimensionner les
Bouton Exécution du objets de la face avant
Bouton
programme (VI)
Pause/Reprendre
Aide contextuelle

Bouton Exécution Plan de l’objet (premier


continue ou arrière plan,…)
Égalisation de
Configuration du format l’espacement
du texte (taille, style, entre les objets
couleur,…)
15
Barre d’outils du diagramme

Terminer l’exécution : poursuivre


l’exécution du programme jusqu’à
Animer l’exécution : son terme.
pour animer le diagramme
et voir les données évoluer
en fonction de l’exécution
Exécuter sans détailler : exécute le
du code. programme nœud par nœud sans rentrer
dans le détail de leur exécution
interne.
Exécuter de façon détailler : exécute le
programme de la façon la plus détaillée
possible action par action. 16
Barre des menus Fonctionnalités classiques des programmes
standards mais également spécifiques à LabVIEW.

17
Créer un nouveau VI
Fenêtre du diagramme
Fenêtre de la face avant

18
Exemple 1: fonctions mathématiques de base
Face avant
But: créer un VI permettant
de réaliser des opérations
mathématique simples (+, -, x,
/) et d’afficher les résultats.

Face arrière

19
Exemple 1: fonctions mathématiques de base
Face avant
But: créer un VI permettant
de réaliser des opérations
mathématique simples (+, -, x,
/) et d’afficher les résultats.

Face arrière

20
Création d’un VI
• Sélectionner : Nouveau VI (Virtual Instrument)
• Sélectionner la fenêtre face avant (grise)
• clic droit → Commandes
• Déplacer la souris sur ‘ Numérique ’
• Une sous-fenêtre apparaît avec les commandes numériques

Indicateurs numériques
Créer quatre indicateurs numériques
que vous pourrez nommer
• ‘ somme ’
• ‘ soustraction ’
• ‘ multiplication ’
• ‘ division ’ 21
Commandes numériques
Créer deux commandes numériques
que vous pourrez nommer
• ‘ première valeur ’
• ‘ deuxième valeur ’

Ajouter les fonctions


• Toujours sur diagramme, <clic droit> →
la palette de fonction apparaît
• Déplacer la souris → sur numérique →
la palette ‘ numérique ’ apparaît avec les fonctions mathématiques
• Cliquer sur la fonction ‘ additionner ’
• Déplacer la souris vers le diagramme → on voit la fonction
sous le curseur en forme de main
• Placer le curseur à gauche du terminal indicateur ‘ somme ’
• <clic gauche> pour poser la fonction 22
Câblage
• Dans la palette d’outils <shift+clic droit>, sélectionner l’outil de
câblage (comme une bobine de fil) le curseur change de forme
(bobine)
• positionner le curseur sur le terminal de commande
‘ premiere valeur ’ → il clignote
• <clic gauche>, déplacer la souris → ligne en pointillés
• Amener le curseur sur la fonction ‘ additionner ’ (+)
• Lorsque le curseur arrive sur la fonction, elle se met à clignoter sous
le curseur au niveau des terminaux de connexion
• De courtes lignes de connexion apparaissent aussi
• Convention standard :
• terminaux d’entrée à gauche
• terminaux de sortie à droite
• Cliquer sur le connecteur en haut à gauche
• Le câble passe en trait continu orange : câblage valide 23
Exécution en continu
<clic gauche> sur la double flèche :

Pour arrêter, <clic gauche> sur le bouton stop :

24
flot de données
<ctrl-E> → diagramme, puis
cliquer sur ‘ animer l’exécution ’, puis exécuter en
continu

25
Exercice: Opérations booléennes
But: Calculer c=(b+a)²/((a-b)*(a+b))

26
Exercice: Opérations booléennes

But: Simulation d’une équation logique : va et vient d’un escalier:


On se propose de réaliser le câblage d’un système d’éclairage en
deux points différents d’un escalier avec deux interrupteurs.
Soient les interrupteurs a et b et une lampe L.
Fonctionnement : Une action sur a ou b provoque le
changement d’état de la lampe.

27
Exercice: Opérations booléennes

But: Calculer c=(b+a)²/((a-b)*(a+b))

But: Trouver les racines du polynome du 2° degré ax²bx+c. On envisage deux


résolutions, soit dans le domaine des réels, soit sur les complexes:
L’utilisateur saisit les coefficients a, b, c.
En cliquant sur un bouton « Calculer RACINES», il provoque le calcul et
l’affichage de la valeur des racines ou un message indiquant qu’il n’y en a pas
En cliquant sur le bouton « Calculer DELTA », il provoque l’affichage de delta.

28
Opérations booléennes
Insérer les fonctions ET, NON et OU
Câbler L’équation L= a* b + a * b

29
Quelques raccourcis clavier

<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

< Ctrl + cliquer-glisser-relâcher > Alternative au copier-coller dans labVIEW :

30
Exercice: Opérations booléennes
But: Moyenne de 3 nombres écrits au clavier

But: Trouver les racines du polynôme du 2° degré ‘‘ax²+bx+c’’. On


envisage deux résolutions, soit dans le domaine des réels, soit sur les
complexes:
L’utilisateur saisit les coefficients a, b, c.
En cliquant sur un bouton « Calculer RACINES», il provoque le
calcul et l’affichage de la valeur des racines ou un message indiquant
qu’il n’y en a pas
En cliquant sur le bouton « Calculer DELTA », il provoque
l’affichage de delta.
31
32
Les variables
Les classes de variables :
Les Variables de contrôle (control variable) : Une variable de contrôle est une
variable qui « régit » le déroulement d'un programme. C'est la plupart du temps une
variable d'entrée d'un programme, dont l'initialisation influe et conditionne le
déroulement du programme subséquent.
Les Variables indicatrices (indicator variable) : Une variable indicatrice est une
variable qui reçoit une valeur calculée en amont, et qu'on affiche pour connaître
(indiquer) un résultat
Exemple: dans l’expression a = b + 2
 « a » est une variable « indicatrice » puisque elle reçoit le résultat de
l’expression b+2
 « b » est une variable de contrôle
 2 une constante
Dans l'exemple avant « led.vi », on peut dire que val1 et val2 sont 2 variables de
contrôle, alors que la variable booléenne LED qui ne sert juste qu' à afficher le
résultat (vrai-vert/faux-rouge) est une variable indicatrice, dans le sens ou elle
indique un résultat 33
Les variables

Modification de la classe d'une variable :


possibilité de changer le type d'une variable bouton droit de la souris.

une option « change to indicator » ou


Permettant respectivement de définir la
bien « change to control »
variable comme étant une variable de contrôle
ou une variable indicatrice.

Les types des variables :


Par défaut en Labview, toutes les nouvelles variables créées sont de type « réel »
(couleur orange).

Pour modifier le type d’une variable En clique dessus avec le bouton droit et en
sélectionnant l'option « représentation ».
Le type des données que manipule LabView est semblable à ceux des autres langages
informatiques :
 Données de type réel : de couleur orange en labview,
 Données de type entier : de couleur bleue en labview
 Données de type booléen : de couleur verte en labview
 Données de type « chaîne de caractère » : de couleur violette en labview 34
Les variables

Terminaux des commandes et des indicateurs

35
Les variables Codage des nombres entiers

a – Codage sur un octet

de 00000000 à 11111111
Sans bit de signe

Valeurs décimales possibles de 0 à 28 -1 = 255


Type unsigned char (langage C) Type U8 en LabView

de 00000000 à 01111111
Avec bit de signe
si t if
po
de 0 à 27 -1 = 127

Type char (langage C)


Type I8 en LabView de 11111111 à 10000000
g atif
n é
Complément à deux de -1 à -27 = -128 36
Les variables Codage des nombres entiers

a – Codage sur 2 octets

Sans bit de signe

Valeurs décimales possibles de 0 à 216 -1 = 65535


Type unsigned int (langage C) Type U16 en LabView

Avec bit de signe


si t if
po
de 0 à 215 -1 = 32767
Type int (langage C)
Type I16 en LabView
de -1 à -215 -1 = -32768
atif
nég
Complément à deux 37
Les variables Nombres à virgule flotante

Un nombre à virgule flottante peut toujours s'écrire :

+0,662 * 2-16
Exposant :8
Signe : 1 bit
Mantisse : bits
Valeurs extrêmes possibles:
23 bits
Nombre nul : 0
Nombre positifs de : 1,21 10-38 à 3,40 1038 Type Float (langage C) Type SGL en
Nombre négatifs de : -1,21 10-38 à -3,40 1038 LabView

Simple Précision : 4 octets


1 bit 8 bits 23 bits

Double Précision : 8 octets


1 bit 11 bits 52 bits

Précision Etendue : 10 octets


1 bit 15 bits 64 bits 38
Les variables Variables Booleenes

Vraie : True
Variable
Booléenne

Fausse : False
Codage sur 1 seul bit

39
Les variables Résumé différentes variables

Flottants sur 96, 64 et 32 bits

Entiers signés sur 32,16 et 8 bits

Entiers non signés sur 32,16 et 8


bits

Nombres complexes sur 96, 64 et


32 bits

40
Les variables Résumé différentes variables

Flottants

Booléens

Chaînes de caractères

Entier sur 8, 16 et 32 bits

41
Exercice
- Conversion de °C en °F et en K

Réaliser un VI qui permet d’effectuer une conversion de celsius


(°C) en kelvin (K) et en fahrenheit (°F), à partir de fonctions de
base de labVIEW

Conversion de °C en K : K = °C + 273,15

Conversion de °C en °F : °F = ((9 x °C) / 5) + 32


42
Exemple de solution possible

43
Exercice

Réalisation d’un calcul


 Le gain en dB d’un circuit RC est donne par:
G = 20 log [ 1/sqrt(1 + RC2f)^2 ) ]
Afficher sur un indicateur numérique le résultat de calcul de G
pour les valeurs de R, C et f affichées sur des contrôleurs
numériques en face avant.

Exemple de valeurs réalistes : R = 4,7 kW, C = 10 nF, f » 1000 Hz.

  On veut également afficher le déphasage : = - arctan (RC2f)

44
Création d'un sous VI
Sous VI
Un « sous VI » est un programme VI, utilisé par un autre programme VI de
plus haut niveau; C'est l'équivalent des « sous-programmes ».

Pour créer un sous VI, il


faut d'abord créer un VI ! !
Puisqu'un sous VI ne sera ni
plus ni moins qu'un VI utilisé
dans un autre VI
Avantages :
• Modularité (création de blocs
de base réutilisable pour
diverses applications : gain de
productivité)
• Facilite le « débogage »
• Nécessite une seule création de code.
• Peuvent être utilisés plusieurs fois dans le même VI 45
Création d'un sous VI
Icônes et Connecteurs

(X-Y)
• Une icône représente un VI dans un autre
X 50 diagramme d’un VI de plus haut niveau.

2 cases en entrées pour


les commandes
• Un connecteur montre les terminaux
disponibles pour le transfert de données.

1 case en sortie
pour l’indicateur

46
Création d'un sous VI
Créer une icône

Cliquez avec le bouton droit sur l’icône de la face avant (en haut à
droite), ou sur l’icône du diagramme et choisir “Éditer l’icône”.
La personnalisation de l’icône est tout à fait facultative et ne
changera rien au fonctionnement du sous VI.

Palette d’outils d’édition du dessin

Couleur de premier plan

Visualiser le connecteur
Cliquer avec le bouton droit sur l’icône (face avant seulement) et choisir
“Visualiser le connecteur”.
47
Création d'un sous VI
Assigner les terminaux
En général, on choisira de mettre les entrées à gauche et les sorties à droite.

Modèles

Lorsque l’on assigne les connecteurs il est possible de définir leur importance en
leur attachant un des trois termes suivants : «Nécessaire», «Recommandée»,
«Optionnelle».
Icône :
3 entrées
3 sorties
En gris : terminaux optionnels (Nom de l’image,
Couleur?,…)
Normal : terminaux recommandés (Image masquée)
48
En gras : terminaux nécessaires (Chemin d’accès)
Création d'un sous VI
Sauvegarde du VI

• Choisir un emplacement adéquat

• Organiser par fonctionnalités


– Sauvegarder les VI similaires dans un même répertoire
(ex : Outils mathématiques, traitement d’images, gestion
multimètres, gestion moteur,…)

• Organiser par applications


– Sauvegarder tous les VI utilisés pour une application spécifique dans un
répertoire ou une librairie.
Les librairies (.llb) combinent plusieurs VI dans un seul fichier. Ceci est idéal
pour transférer des applications complètes vers d’autres ordinateurs.

49
Création d'un sous VI

Insérez le sous VI dans un VI de niveau supérieur


Accès aux sous-VI personnels :
Fonctions >> Toutes les Fonctions >>…
… >> Sélection d’un VI

OU Faire glisser l’icône du sous VI sur le diagramme cible de haut


niveau.

Autre méthode de création d’un sous VI


• Sélectionner une zone à convertir en sous VI
• Sélectionner dans la barre des menus “Édition” : “Créer un sous VI” 50
Application

Création - utilisation d'un sous VI calculant une moyenne de


3 nombres

51
Application

52
Graphiques

Le graphique est un indicateur numérique particulier qui propose un


historique des valeurs.

Une seule courbe Plusieurs courbes

La fonction “Fusionner les signaux” sert à combiner


des données dans un type de données dynamiques
(informations générées ou acquises par un VI Express).
53
Graphiques Utilisation d’une boucle

Exemple Créer un VI qui génère un nombre aléatoire avec un temps


d’attente que l’utilisateur peut modifier.

L’arrêt du programme se fait à l’aide du


bouton stop de la face avant.

54
Graphiques Utilisation d’une boucle

Exemple Générer un VI qui simule un signal sinusoïdal et un signal


carré dont on peut modifier la fréquence et l’amplitude ainsi
que le rapport cyclique (pour le signal carré).

Afficher les deux courbes sur le


même graphe.

55
Les graphes
Plusieurs types de graphes : déroulant, XY, simple, déroulant d’intensité,
d’intensité, numérique et 3D. Tous ces graphes ont des particularités différentes
mais sont tous paramétrables par un click droit (notamment la modification des
axes, l’ajout d’échelle, modification de couleur ….). Graphe et légende

Graphes et graphes déroulants: Affichent


les données acquises à une vitesse constante.

Graphes XY: Affichent les données acquises


à une fréquence variable et les données pour
les fonctions à valeurs multiples.

Graphes et graphes déroulants d’intensité : Affichent des données 3D sur un


tracé 2D en utilisant des couleurs pour afficher les valeurs de la troisième
dimension.
Graphes numériques: Affichent les données en tant qu’impulsions ou groupes de
lignes numériques. 56
Acquisition de données

Conversion du flux
Conversion du
de lumière (photons)
signal analogique en
en courant électrique
signal numérique
(électrons)

Un capteur convertit un phénomène physique en un signal


(généralement de nature électrique) mesurable par un système
d’acquisition de données.
57
Acquisition de données
chaîne d’acquisition de données

58
Rappel -Exercice
Créer un sous-VI opération (somme) composé de 3 entrées (x, y, z) et une sortie
(R), puis utilisez ce SVI dans une application pour remplir un réservoir, les entrées
variables de la nouvelle application sont A, B, C, D (voir le schéma bloc) et une
constante 9. Faire revenir à la face avant uniquement le résultat de la somme de (A,
B, C) dans la première partie, puis le résultat final en ajoutant D et la constant qui
ne sera pas apparaître à la face avant.

59
Rappel -Exercice
Créer un VI qui calcule la pente à partir des commandes numériques x1, x2, y1 et y2,
selon l’équation m=(x2-x1)/(y2-y1). Utiliser d’une commande de type bouton rotatif
(Knob) pour l’entrée des valeurs de x1 et d’un curseur horizontal (Horizontal scroll)
pour l’entrée des valeurs de y1. Afficher leurs valeurs de ces deux commandes avec
deux indicateurs que l'on prend dans la palette de commandes «Modern/Numeric».
Pour x2 et y2, utiliser des commandes numériques simples (Numeric control).

60
Les variables, les tests, les boucles

for (i=0;i<N;i++) { #ifdef cond


} #endif

i:=0;
do { Formula node
} while (cond; i++)

switch(cond) {
case:
break; Mathscript node
default }

Sequence1; Event node

61
Les variables, les tests, les boucles

structures

 Le contenu des structures


définissent l'équivalent d'un bloc
C/C++ { … }

 Les données (fils) qui entrent dans


les structures sont évalués aux
limites de la structure

 Un indicator/control à l'intérieur d'une structure sera évalué/mis à jour à


chaque itération

 Un indicator/control à l'extérieur d'une structure sera évalué/mis à jour avant


ou après l'exécution de la structure
62
Les variables, les tests, les boucles

• Boucle For — Exécute un sous-diagramme un certain nombre de


fois.
• Boucle While — Exécute un sous-diagramme jusqu’à ce qu’une
condition ait lieu.
• Structure Condition — Contient plusieurs sous-diagrammes, un
seul d’entre eux s’exécutant selon la valeur d’entrée transmise à la
structure.
• Structure Séquence — Contient un ou plusieurs sous-diagrammes,
qui s’exécutent séquentiellement.
• Structure Événement — Contient un ou plusieurs sous-
diagrammes s’exécutant selon l’interaction de l’utilisateur avec le VI.
• Structures cadencées — Exécute un ou plusieurs sous-diagrammes
avec des limites de temps et des retards.
63
Les variables, les tests, les boucles

Le TEST

REMARQUES :

 Pas de règle sur le choix gauche ou


droite du cote OUI et du cote
NON.

 Un des blocs Instructions 1 ou 2


peut être vide (ne rien faire). Il
suffit de ne pas faire apparaitre le
cadre.

64
Le TEST
Exemple :
Saisir une note N au clavier.
Afficher sur une chaine de caractère le message ‘‘c’est bien’’ si N ≥ 12
Afficher ‘‘c’est assez bien’’ si 9 ≤ N < 12
Afficher ‘‘c’est insuffisant’’ si N < 9

65
Le TEST
DANS LabVIEW
Le résultat booléen du test est connecte sur le point d’interrogation vert.

Les instructions réalisées si le résultat du test est OUI sont écrites a l’intérieur de la
structure lorsque VRAI apparait en haut du rectangle délimite.

Les instructions réalisées si le résultat du test est NON sont écrites a l’intérieur de
la structure lorsque FAUX apparait en haut du rectangle délimite.
Un seul cas est visible simultanément, cliquer sur les triangles pour passer de l’un a
l’autre.

66
Le TEST
DANS LabVIEW

67
Le TEST
EXP 2 Création d’un VI de génération de nombres aléatoires.
 Placer sur la face-avant une commande « seuil »
 Placer à l’intérieur de la boucle while une structure condition
 Dans l’étape True de la structure condition, placer une Constante chaîne de texte ,
la remplir avec le texte « Val supérieur au seuil », et False « Valeur inférieur au
seuil »

68
Les variables, les tests, les boucles

Boucle For

La boucle for permet de répéter une suite d’instructions un nombre prédéterminé


de fois.
Pour compter le nombre de ORGANIGRAMME
repetitions, la boucle for
utilise un compteur
d’iterations.
C’est une variable entiere i
variant de 0 a N-1 lorsque
la boucle se repete N fois.

Incrémente
le compteur
d’itération
69
Les variables, les tests, les boucles

Nombre de boucles à effectuer Boucle For


 Possède un compteur
d’itération.
 S’exécute N fois (N
paramétrable).
 Pour N = 4, i = 0, 1, 2, 3.

Terminal indiquant le numéro de Terminal de sortie


l’itération (0 à N-1)
Les boucles dans Labview ne renvoient les données que lorsqu’elles
se sont entièrement exécutées. 70
Exemple 1 : Avec 10 tours de boucle, i évoluera de 0 à 9

Nombre de tours de
boucle

Terminal d'itération :
compte les répétitions
71
Exemple 2 : Une boucle FOR qui s’exécutera N fois. A l’intérieur, placer un tirage
de nombres aléatoire qui sera relié à un graphe. Placer un « timer » cadencé à de
100 à 500 ms.
Nombre de tours de
boucle

Terminal d'itération :
compte les répétitions
72
Exemple : Génération aléatoire de 10 nombres

73
Boucle While
La boucle While permet de répéter une suite d’instructions en fonction du résultat
d’un test.
la boucle While, on ne connait pas a l’avance le nombre d’itérations qui seront
réalisées.
Un tour de boucle est appelé ‘‘itération’’.
ORGANIGRAMME

Dans LabVIEW, on peut regler la


repetition en fonction du resultat
VRAI ou FAUX du test.
Par defaut c’est le resultat FAUX
qui permet la repetition.

On peut permuter
dans LabVIEW74
Boucle While
 Possède un Terminal (compteur) Iteration
 Fonctionne toujours au moins une fois
 Fonctionne en fonction de l’état du Terminal condition

Terminal
condition
Terminal d’itération

- Arrêter sur condition vrai


Conditions d’arrêt: While (toto = 0)…
- Continuer sur condition vrai 75
While (toto = 1)…
Boucle While
Exemple: Attendre l’appui sur un bouton poussoir BP pour allumer une led L.

76
Boucle While
DANS LabVIEW

77
registre à décalage:
Les registres à décalages sont présents uniquement dans les boucles, et permettent à
une itération I, de connaître la valeur d’une variable évaluée à l’itération
Le registre de droite reçoit des données de l’intérieur de la boucle, elles sont
transférées au registre de gauche à l’itération suivante. Le registre de gauche est une
source de données pour les éléments de l’intérieur de la boucle.

Au temps 0, la valeur initiale est


transférée dans le registre à
décalage. Au temps 1, premier
tour de boucle, la valeur initiale
0 est transférée pour être
incrémentée, la valeur 1 est
stockée dans la partie droite du
registre.

Lorsque la boucle se termine, la


dernière valeur peut sortir de la
boucle par une connexion du registre
extérieure à la boucle 78
registre à décalage:
un affichage point par point,
Nous allons chercher à afficher, la valeur
moyenne de toutes les valeurs depuis le
début.
Il faut que dans chaque itération de la boucle
on ait accès à la valeur de la somme lors de
l’itération précédente. Cela se fait en utilisant
un registre à décalage

Le diagramme s’inscrit
dans une boucle While

la durée totale d’une


itération de cette structure

79
La structure Séquence :

Elle répond au codage algorithmique suivant :


DEBUT
effectuer diagramme étape 0
effectuer diagramme étape 1
effectuer diagramme étape 2

effectuer diagramme étape n


FIN

Pour faire apparaître une étape supplémentaire, se placer sur le bord et BD « ajouter
une étape après ».

80
Les tableaux

Un tableau permet de regrouper plusieurs variables numériques de même type


sous une même appellation.
Les tableaux combinent des données du même type dans une structure de
données.
Il est possible de construire des tableaux de données numériques, de booléens, de
chemins, de clusters, de chaînes de caractères,…
Il n’est cependant pas possible de créer des tableaux de tableaux.

Afficheur Afficheurs
d’indices d’éléments
la valeur (l’élément) « 0,658384 » est à l’indice 0. L’élément « 0,659422 » est à
l’indice 3,... 81
Les tableaux Construire un tableau 1D

A partir de la palette Commandes >> Toutes les commandes >> Tableau et


Cluster, sélectionnez Tableau.

Tableau de commandes ou
d’indicateurs

A partir de la palette Fonctions >> Toutes les fonctions >> Tableau, sélectionnez
Tableau

Tableau de constantes

Possibilité de créer un tableau 1D sous forme d’une ligne ou d’une colonne


suivant les besoins de l’application. 82
Les tableaux Construire un tableau 2D

Un tableau 2D est
caractérisé par la présence
de 2 indices (1 pour la ligne
et 1 pour la colonne)

Tableau 1D

Tableau 2D

83
Manipulation
représenter graphiquement
un tableau de données.

Le rôle du graphe est de


représenter graphiquement
un tableau de données.

Cet indicateur reçoit


toutes les valeurs à la
fois, il doit être hors de la
boucle.
84
85
Rappel

Réaliser un programme qui :


- allume un afficheur booleen L1 si deux interrupteurs K1 et K2 sont enfonces.
- allume un afficheur booleen L2 si deux interrupteurs K1 ou K2 sont enfonces.
- allume un afficheur booleen L3 si deux interrupteurs K1 ou K2 sont enfonces,
mais pas les deux.

86
Rappel BOUCLE WHILE
L’alarme doit s’activer et devenir rouge si la pression dépasse le seuil acceptable.

Version initiale

Version avec le délai 87


Création d’un fichier de données
Enlever l'indicateur stop de la face-avant. Insérer dans le diagramme le VI Write
Measurement File que vous trouverez dans la palette des fonctions sous
«Programming/ File I/O ». Double-cliquez sur le VI pour ouvrir sa fenêtre de
configuration. Cochez les options indiquées ci-dessus. Ne pas oublier de donner le
nom du fichier où seront stockés les données.

88
Création d’un fichier de données

89
Rappel Les tableaux

90
Rappel Les tableaux

Crée un tableau à N dimensions dont tous les éléments ont


la même valeur. Cette fonction (comme la plus par des
fonctions opérant sur les tableaux), est redimensionnable
pour s’adapter aux nombres de dimensions des tableaux.
Cette fonction initialise donc le tableau.

Renvoie la taille du tableau. Si le tableau est à N


dimensions, la fonction renvoie un tableau contenant la
taille de chaque dimension.

91
Manipulation La structure “boîte de calcul”
Elle permet d’implémenter une équation mathématique sans utiliser les fonctions
numériques.
On entre les équations avec l’outil A (éditeur de texte). Les entrées et les sorties
(les terminaux) sont ajoutées avec le menu local de la structure (clique-droit de la
souris placée sur le cadre de la structure).
Chaque ligne de l’équation doit se terminer par “ ;” .

92
Face avant Diagramme
Manipulation Scripte Matlab
Créer un VI simulant une prise de température à partir d’un capteur à sortie
analogique linéaire 0-10Volts pour -15°C et 150°C. Ce VI affichera la température
en °C, °F et K. (rappel : °F=°C*(9/5)+32).
L’algorithme sera le suivant :
Début
Lecture commande V
Tc=16.5 * V - 15
Tf=Tc * (9/5) + 32
Tk=Tc + 273.15
Fin

93
Manipulation Scripte

 La luminance par unité de longueur d’onde d’un corps noir à la


température T est donnée par la loi de Planck :
L() = 2 h c2 / [ ^5 ( exp(h c / l k T) – 1 ) ]

Avec: h = 6,62. 10^-34 J/s


k = 1,38. 10^-23 J/K
c = 3. 10^8 m/s
T est une commande sur la face avant initialisée à 5770 K
est une commande en face avant comprise entre 0 et 2 μm,
Afficher la valeur de la luminance sur un indicateur numérique.

94
Manipulation Scripte
Exercice: vitesse au contact du sol d’un projectile :

Créer un VI qui calcule la vitesse d’un projectile, lancé d’une hauteur h (à donner
par l’utilisateur) avec vitesse initiale nulle, lorsqu’il entre en contact avec le sol.

Rappel de mécanique :
 Lorsque le projectile touche le sol, x=0
donc
.

Avec : h est la hauteur


g est une constant = 9,81

Sur la face avant, ajouter une commande (Hauteur de lancement en m) et un


indicateur numériques (vitesse au sol en m/s).
95
Manipulation Scripte
Le nœud pour formules (Formula Node)

96
Manipulation
Utilisation du nœud sélectionner

97
Manipulation
Spécifications:
• Calculer la moyenne de 4 valeurs
• Si le résultat est plus petit que 0, le forcer à 0

98
EXERCICE 1

La tension d’une batterie 12 V est simulée par un potentiomètre U à


glissière en face avant. Le résultat du test de la batterie est affiché sur 3 leds
différentes.
Si 10 < U < 12 => Led Verte allumée
Si 8 < U < 10 => Led Orange allumée
Si 0 < U < 8 => Led Rouge allumée

Le programme s’arrêtera par appui sur bouton stop

99
EXERCICE 2

La marche avant est simulée par l’allumage d’une led verte (led1) La marche arrière
est simulée par l’allumage d’une led rouge (led2).
Le wagon étant en position initiale, l’appui sur le bouton DCy (départ cycle) lancera
la marche avant.
Le contact avec le mur est simulé par appui sur un bouton poussoir BP1
Simuler le fonctionnement du chariot qui attend l’appui sur DCy pour avancer et qui
doit faire marche arrière quand le bouton poussoir BP1 est enfoncé. Le retour en
position initiale est détecté par le contact simulé par un bouton poussoir BP2.
Réaliser le vi en utilisant la structure séquence.
100
EXERCICE 3

Déposer un potentiomètre à glissière sur la face avant d’un VI.


Allumer une led verte si on dépasse 70 en déplaçant la glissière à droite
Eteindre la led si on passe en dessous de 30 en déplaçant la glissière à
gauche

101
Projets
Station météorologique
Gestion du parking de l’école ESTG
Carrefour routier : Ecrire un programme simulant et gérant les feux de
signalisation d’un carrefour routier. Les 4 feux fonctionnant 2 par 2 sont réalisés
avec des leds colorées.
Codage des résistances
Mesures pour la caractérisation de modules photovoltaïques
Régulation de température
Régulation de niveau

102
Projets

Régulation de niveau

103
Les nombres

Pour les nombres entiers :


Codage (octet) Gamme
I8 Integer 1 -128 .. +127
I16 Integer 2 -32768 .. +32767
I32 Integer 4 -2147483648 .. +2147483647
U8 Unsigned Integer 1 0.. 255
U16 Unsigned Integer 2 0 .. 65535
U32 Unsigned Integer 4 0 .. 4294967295

Pour les nombres réels :

Codage (octet) Chiffres significatifs (, et . inclus)


SGL Single Precision Real 4 7
DBL Double Precision Real 8 15
104
La structure Séquence :

La structure séquence se présente comme une


succession d'étapes semblable à la pellicule
d'un film

Dans chaque étape (frame) : un diagramme.


Les étapes successives sont exécutées dans
l'ordre.

étape 1 étape 2 étape 3


diag 1 diag 2 diag 3

105
Variables locales

Un objet de face avant possède qu’un seul terminal au niveau du code mais vous
auriez besoin de lire ou de mettre à jour cet objet en différents endroits du code.
En utilisant les variables locales vous pouvez avoir accès à cet objet en
différents endroits du code et transmettre des données entre différentes
structures qui ne peuvent pas être connectées par un câble.

Pour simplifier le câblage (éliminer des fils de trop grande longueur), on peut avoir
recours à une variable locale. La variable locale créée prend le nom de la variable
d’origine, et peut être utilisée en lecture ou en écriture, forçant ainsi la donnée à
changer de valeur.

106
Variables locales

Exercice

Générer un VI qui permet de donner le temps (en ms) entre deux appuis de
boutons.

On utilisera une structure séquence empilée avec, soit des variables locales,
soit des variables locales de séquences ainsi que la fonction suivante :

107
Variables locales

Solution

108
Variables locales

109
Variables globales

Une variable globale agit de la même façon qu’une variable locale excepté
le fait que l’on peut transférer cette variable d’un VI à l’autre par
l’utilisation du sous VI crée.

Les données correspondant à une variable globale sont stockées dans un des
contrôleurs du panneau avant d’un VI spécial destiné à contenir des objets
accessibles à tous les sous-programmes.

Pour réaliser une variable globale par programmation, nous allons


utiliser le registre à décalage non initialisé, ce qui permet de récupérer la
valeur mise en mémoire dans le registre (ce sera la lecture de la
variable), pour l’écriture il faudra mettre dans le registre la nouvelle
valeur.

110
Acquisition de données

Pour toute mesure, il faut :

Recueillir l’information
Stocker l’information
Traiter l’information

Afficher l’information

Engager une action-réponse

111
Acquisition de données

Mesures : cartes multifonctions

• Carte multifonction = carte électronique connectée sur / reliée à la carte-


mère d’un PC

• Fonctions:
• acquisition de tensions à une fréquence d’échantillonnage fixée
• génération de signaux analogiques de forme arbritraire
• [génération/acquisition de signaux numériques]

112
Acquisition de données

Qu’est ce que l’acquisition de données (DAQ) ?

Une carte DAQ offre les mêmes fonctionnalités qu’un oscilloscope mais permet
la réalisation de nombreuses fonctionnalités supplémentaires de manière
personnalisable par logiciel. De plus, elle est compacte, économique et utilise la
puissance du processeur des PC.

Périphérique DAQ (Data AcQuisition)

 Instrument qui peut être adressé comme une entité unique


 Mesure ou génère un signal
• Mesure → valeurs numériques
• Génère → signaux analogiques
 Peut contenir plusieurs voies (canaux) et périphériques de conversion, de
conditionnement, etc.
 Le plus souvent connecté à un ordinateur hôte par l'intermédiaire d'un type de
réseau de communication 113
Réferences

114

Vous aimerez peut-être aussi