Académique Documents
Professionnel Documents
Culture Documents
Programmation
LabVIEW
Amdouni Rim 1
Intro LabVIEW - 1ère partie
Chapitre 1
Introduction au LabVIEW
Chapitre 2
Création d’un programme
Chapitre 3
Les boucles
Chapitre 4
Les tableaux
2
Chapter 1 :
Introduction au LabVIEW et
outils de programmation
1. Introduction
2. Notion d’Instrument Virtuel VI
3. Palettes d’Outils, de Contrôles et de Fonctions
4. Types des données
5. Outils d’aide en LabVIEW
6. Révision
3
Introduction
Programmation G
• Orienté instrumentation et les bancs d’essais
• un système très ouvert qui permet l’intégration aisée de
composants de régulation, commandes d’axes, visionique,
entrées-sorties déportées, serveurs pour automatisation
industrielle.
• En raison de leur parenté avec les instruments réels, les
programmes écrits en G sont appelés VIs (pour Virtual
Instruments : Instruments Virtuels).
• Les VIs peuvent être assemblés entre eux pour produire des
applications complexes et modulaires, ce sont alors des sous-
VIs composant le VI de l'application.
5
Introduction
LabVIEW est un outils d’acquisition,
d’analyse et de présenta tion de données.
6
LabVIEW permet l’acquisition de
données par l’intermédiaire de
diverses connectiques :
•PCI (Peripheral Component Interconnect) •USB (Universal Serial Bus)
• CompactFlash •GPIB (IEEE 488) (General
• LAN (Local Area Network) Purpose Interface Bus)
• PXI (PCI eXtensions for Instrumentation) • Firewire (IEEE 1394)
•PCMCIA (Personal Computer Memory • Ethernet
Card International Association) •Série (RS 232, RS 449, RS
•Wi-Fi (IEEE 802.11b/ g/ n) (Wireless 422, RS 423, RS 485)
Fidelity) •VXI (VME eXtensions for
• Bluetooth Instrumentation)
• IrDA (Infrared Data Association)
7
LabVIEW inclut des outils pour
l’analyse des données :
8
Acquisition avec LabVIEW
LabVIEW permet l’acquisition de
données par l’intermédiaire de
diverses connectiques :
•PCI (Peripheral Component Interconnect) •USB (Universal Serial Bus)
• CompactFlash •GPIB (IEEE 488) (General
• LAN (Local Area Network) Purpose Interface Bus)
• PXI (PCI eXtensions for Instrumentation) • Firewire (IEEE 1394)
•PCMCIA (Personal Computer Memory • Ethernet
Card International Association) •Série (RS 232, RS 449, RS
•Wi-Fi (IEEE 802.11b/ g/ n) (Wireless 422, RS 423, RS 485)
Fidelity) •VXI (VME eXtensions for
• Bluetooth Instrumentation)
• IrDA (Infrared Data Association)
9
Présentation avec LabVIEW
11
Programmation graphique
Facile à programmer
Temps de développement réduit
Interface utilisateur graphique
Code source sous forme graphique
Programme facilement modulable
Application Builder pour créer des exécutables
12
Compatibilité Multi-Plateformes
Programmation indépendante
de la plateforme utilisée !
13
Cibles matérielles LabVIEW
14
Structure d’un Programme LABVIEW
LabVIEW étant plus particulièrement destiné à l’instrumentation, un programme
LabVIEW apparaît constitué comme un appareil de mesure :
15
Notion d’Instrument Virtuel VI
Interface LABVIEW
Interface d’accueil de LABVIEW
Ouvrir un VI vide ou
un projet vide
Ouvrir un
ancien VI
Se connecter vers
des formations ou
des forums de
discussion
16
Face Avant & Diagramme
Icon/Connector Pane
Un programme LabVIEW est appelé VI (Virtual Instrument) et formé de :
• Front Panel
Window (Face
Avant)
- Controls = Entrées
- Indicators = Sorties
17
Icône/Connecteur
terminals
•Le connecteur permet de passer et de
recevoir des données d’un “sous-VI” au
connector moyen de terminaux.
18
Notion d’Instrument Virtuel VI
• Un programme LabVIEW est appelé VI
(Virtual Instrument) et formé de :
19
1. Terminal de contrôle
2. Fonction Timing
3. Boucle For
4. Opérateur Math
5. Fils de connexion
4 5 6. Terminal du Graphe
1 2 3 4 5 6
1 2 3
1. Contrôle Numérique
2. Indicateur Graphe
3. Contrôle Bouton
4. Panneau de connexion
5. Icône
20
1 4
5 6 7 8
2
3 9
1. Exécution
2. Exécution en continu 10
3. Arrêt
4. Pause
5. Menu déroulant de polices de caractères
6. Menus déroulants d’alignement, de distribution, de taille et de réorganisation
7. Utilitaire de recherche
8. Aide contextuelle LabVIEW
9. Panneau de connexion
10. Icône
21
1 4 6
2 3 5
1. Exécution animée
2. Accès à la valeur en cours
3. Entrée de mode d’exécution Pas-à-Pas
4. Saut de nœuds en exécution Pas-à-Pas
5. Sortie de mode d’exécution Pas-à-Pas
6. Bouton de nettoyage du diagramme
22
Notion d’un Projet LabVIEW :
24
Palette de Contrôles
• Palettes flottantes
pouvant être fixées
• Accessible
uniquement dans la
Face Avant
(Front Panel)
• Ensemble des
bibliothèques et de
sous- bibliothèques
LabVIEW
• Possibilité de
sélection des
contrôles
25
Palette de Contrôle en détail
26
Palette de Fonctions
• Palettes flottantes
pouvant être fixées
• Accessible
uniquement dans la
Face Diagramme
(Block Diagram)
• Ensemble des
bibliothèques et de
sous- bibliothèques
LabVIEW
• Possibilité de
sélection des VI et
des contrôles
27
Palette de fonctions en détail
28
Palette d’Outils
1. Sélection automatique des outils 1
2. Editeur de texte
3. Outil de positionnement, de 3 2
redimensionnement et de sélection
4. Outil de saisie de valeurs 4 7
5. Outil de câblage
5
6. Menu pop-up 6
7. Outil de défilement 8
10
8. Point d’arrêt (Break-point)
9
9. Sonde de données
11
10. Copieur de couleur
11. Outil de coloriage
29
Types des données
Servent à l’acheminement des données entre terminaux vis les nœuds du V.I.
Circulation unidirectionnelle : Commande Indicateur
Type de variable Représentation Code couleur
Booléenne Vert
Chaîne de caractère Rose
Épaisseur du fil nature des données (scalaire, tableau 1D, tableau 2D)
30
Types des données
Scalaire Tableau 1D Tableau 2D
31
Types des données
Type Variables / constantes
Il y a essentiellement 4 types de variables :
Numériques
Plusieurs représentations modifiables pour le type Numerique :
32
Types des données
• Les contrôles (Controls) ont des bordures plus
épaisses que les indicateurs (Indicators)
• Chaque élément possède un menu contextuel
de propriétés
• Plusieurs représentations modifiables pour le
type Numeric :
- Signed Integers : I8, I16, I32 et I64
- Unsigned Integers : U8, U16, U32 et U64
- Real Floating-Point : SGL, DBL, EXT et FXP
- Complex Floating-Point : CSG, CDB et CXT
33
34
35
Types des données
Type Variables / constantes
Variables booléennes
36
Types des données
• Plusieurs actions mécaniques pour le
type Boolean :
- Switch when pressed
- Switch when released
- Switch until released
- Latch when pressed
- Latch when released
- Latch until released
• L’action Switch: le contrôle garde son
état jusqu’au prochain changement
• L’action Latch: le contrôle revient à son
état par défaut dès sa lecture
37
Types des données
Type de connexions : Codage
Codage des nombres entiers : sur deux octet
38
Types des données
Type de connexions : Codage
Codage des nombres Virgule flottante
39
Types des données
Fonctions de base
La bobine sert à connecter les
différents éléments.
40
Types des données
Fonctions de base: Astuces de connexions
41
Types des données
exécution parallèle
43
Types des données
• Le type énuméré Enum est la combinaison
des types variés de données
• Un Enum représente une paire de valeurs
de type chaine de caractère et numérique
44
• Le type String (Contrôle, constant ou
indicateur) représente les chaines de
caractères (texte)
45
Types des données
46
Types des données
47
Types des données
• Un VI Express est un VI dont les
paramètres peuvent être
configurés de manière interactive
à travers une boîte de dialogue.
• Configurer un VI Express en
définissant des options dans la
boîte de dialogue de configuration
qui apparaît lorsque vous placez le
VI Express sur le diagramme.
48
Outils d’aide en LabVIEW
49
• Accessible à partir du menu
Help/Show Context Help ou
du raccourcis (Point
d’interrogation)
• Possibilité d’afficher plus de
détails (Detailed Help) ainsi
que les terminaux optionnels
• Fenêtre flottante et pouvant
être verrouillée
• Les terminaux d’un VI sont :
- Optionnels (gris fin)
Accès au LabVIEW Help
- Recommandés (noir fin)
Verrouillage de la fenêtre
- Obligatoires (noir gras)
Afficher/Cacher les terminaux optionnels
50
• Accessible à
partir du menu
Help/LabVIEW
Help
• Sommaire
regroupant divers
concepts
• Utilitaire de
Recherche
directe
• Zone d’affichage
du texte détaillé
de Help
51
Mode Recherche
Mode Parcourir
Mot-clé
pour la recherche
Descriptif
Résultat du VI
de recherche
Recommandations
Recherche à propos du VI
sur Internet Liste des VI exemples
recherchés
52
3
2
1
Introduire le nom de
l’élément recherché
53
1 3
Accès aux
Palettes de Recherche Double cliquer sur le résultat
pour accéder à l’élément dans sa palette
Introduire le nom
2
de l’élément recherché
54
1 2
L’utilitaire Quick Drop Dialog Box :
Taper le nom Placer l’objet
Recherche par nom des objets de l’objet recherché sélectionné
pour les ajouter sur le Diagramme
et/ou la Face Avant
Accessible via View→ Quick Drop
ou en faisant <Ctrl-Espace>
Placer l’objet sélectionné en
appuyant sur la touche <Entrée>,
double cliquer sur l’élément ou faire
un simple clique sur l’endroit voulu
55
Résumé du chapitre 1
Les instruments virtuels (Vis) sont composés de 3 parties
principales :
- le front panel,
- le block diagram
- l’icône/connecteur
Le front panel est l’interface utilisateur d’un programme
LabVIEW.
Le block diagram est le code exécutable.
Click de droite et menu contextuel pour modifier les propriétés
de chaque objet.
Palettes flottantes :
Palette des outils
Palette des Contrôles (seulement dans le front panel)
Palette de fonctions (seulement dans le Diagram)
Possibilité d’avoir de l’aide contextuelle en ligne…(ctrl+h)
56
Révision
1. Quels sont les trois éléments d’un 3. Qui n’est disponible que sur le Block
VI : Diagram du LabVIEW
- Face Avant (Front Panel) - Contrôle
- Diagramme (Block Diagram) - Constante
- Indicateur
- Projet
- Connecteur/Icône
- Connecteur/Icône
57
Révision
1. Quels sont les trois éléments d’un 3. Qui n’est disponible que sur le Block
VI : Diagram du LabVIEW
- Face Avant (Front Panel) - Contrôle
- Diagramme (Block Diagram) - Constante
- Indicateur
- Projet
- Connecteur/Icône
- Connecteur/Icône
58
Exemple
Création du premier petit programme qui va additionner deux nombres
et afficher le résultat.
59
Exercice 2 -
Réaliser un VI qui permet de c alculer c = 2(a+b)(a-3b) ou a, b et c des
réels.
Fils de liaisons
1. Création et exécution de VI
2. Temporisation d’un VI
3. Notion de sous-VI et création d’icônes
4. Gestion des erreurs
5. Techniques de débogage
6. Révision
61
Création et exécution de VI
1. Commencer par construire la face
utilisateur (Front Panel) du VI en
plaçant les Controls/Indicators
Boucle While
nécessaires
2. Compléter le code source (Block
Diagram) par les outils : fonctions,
sous-VI, opérateurs, etc. Timing
3. Mettre le code dans une boucle
While en spécifiant la condition
d’arrêt
4. Synchroniser l’exécution du VI en
ajoutant un temporisateur Condition d’arrêt
(Timing)
5. Exécuter le VI avec Operate/Run
62
• La forme du bouton Run (type de
flèche) indique l’état et le mode
d’exécution du VI :
1. Lancement de l’exécution
2. L’exécution du VI est en cours
3. Le VI exécuté est un sous-VI
4. Le VI contient des erreurs
1 2 3 4
• Corriger les erreurs (warnings)
affichées au moyen de la fenêtre
Error List
63
• Programmation graphique selon
le flux des données
• Le code source en Block Diagram
NE s’exécute PAS nécessairement
de gauche à droite
• Une fonction (VI) s’exécute
uniquement lorsqu’elle reçoit
TOUTES ses entrées
• Une fonction (VI) fournit TOUTES
ses sorties lors de son exécution
64
Le texte introduit sera affiché
en cours d’exécution du VI (Run Mode)
Le texte introduit sera affiché
dans l’Aide Contextuelle de
Indicateur l’indicateur LED
en mode simple
Contrôle
en mode Icône
65
• Accès aux propriétés
d’éléments et possibilité de
modifier ses paramètres :
- Type de donnée
- Apparence
- Format d’affichage
66
• Contrôler et synchroniser la
fréquence d’exécution d’un VI
ainsi que les itérations des
boucles LabVIEW
• Préserver l’utilisation du
processeur du PC
67
• Wait Until Next ms Multiple : attend
jusqu’à ce que le temps soit un multiple
de la valeur en entrée de la fonction
(millisecond multiple). Utiliser cette
fonction pour la synchronisation des
activités.
• Wait (ms) : attend jusqu’à ce que le temps
soit égal au nombre spécifié des
millisecondes (milliseconds to wait) et
retourne la valeur de la temporisation.
• Tick Count (ms) : retourne la valeur
de la temporisation de la boucle.
• Elapsed Time : indique le reste du temps
écoulé à partir de l’instant de
déclenchement spécifié. Ce temps est
indiqué en Elapsed Time (s).
68
Notion de sous-VI et édition d’icônes
• Un sous-VI est un VI appelé et • Un sous-VI peut être créé
exécuté à l’intérieur d’un autre VI directement à partir d’un VI
• Chaque sous-VI possède une existant (Edit/Create SubVI)
icône (Icon) et un connecteur
(Connector Pane)
• L’icône représente un VI dans un
autre Block Diagram
• Le connecteur permet d’échanger
les données du sous-VI au moyen
des terminaux
69
Sous VI (sous programme)
Astuces pour travailler dans LabVIEW
70
Sous VI (sous programme)
Exemple de création d’un sous VI
• Un éditeur LabVIEW pour
créer et éditer des icônes-
connecteurs de sous-VI:
- Sélectionner les
terminaux
d’entrée/sortie du
connecteur depuis
Patterns
- Éditer l’icône du sous-
VI depuis Edit Icon
Terminaux Terminaux
d’entrée de sortie
72
73
Gestion des erreurs
• LabVIEW détecte automatiquement les
erreurs et les warnings d’exécution de VI
• Chaque erreur a son propre code numérique
et un message correspondant
• Mécanisme de détection et de caractérisation
des erreurs : clusters error in et error out
- Status: valeur booléenne, renvoyant
TRUE si une erreur intervient
- Code: valeur entière de type I32
identifiant numériquement l’erreur
- Source: chaine de caractères indiquant
l’origine de l’erreur
74
• La fenêtre Explain
Error contient des
informations à propos
des erreurs et des
warnings d’exécution
(Help/Explain Error)
• Disponibilité des VI et
des fonctions LabVIEW
de gestion manuelle
des erreurs : Dialog &
User Interface Palette
75
Techniques de débogage
• Mode d’exécution animée et Sonde Point d’arrêt
Pas-à-Pas d’un VI (Probe Data) (Breakpoint)
• Divers outils et techniques de
débogage disponibles :
1. Execution Highlighting
2. Single Stepping
3. Probe Tools
4. Breakpoints
Valeur
instantanée
3
4 3 1 2
76
• Cliquer sur le bouton Highlight Execution dans la barre d’outils
pour permettre l’exécution animée. L’exécution animée montre le
flux des données sur le diagramme d’un nœud à un autre à l’aide
de bulles qui se déplacent le long des fils.
77
Révision
1. Lesquels des éléments suivants font 3. Quelle est la fonction qui s’exécute en
partie du cluster d’erreurs : premier lieu :
- Status - Soustraction
- Warning - Nombre aléatoire
- Code - Addition
- Source - Inconnue
78
Révision
1. Lesquels des éléments suivants font 3. Quelle est la fonction qui s’exécute en
partie du cluster d’erreurs : premier lieu :
- Status - Soustraction
- Warning - Nombre aléatoire
- Code - Addition
- Source - Inconnue
79
Exercice 1 - Conversion de °C en °F et en
K
Réaliser un VI qui permet d’effectuer une conversion de °C en K et
en °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
Exercice
1. Réalisez un programme qui permet de convertir une
température de degrés Celsius [°C] en degrés Farenheit [°F] et
inversément.
81
Chapitre 3 :
Boucles et structures de
contrôle
1. La boucle While
2. La boucle For
3. Transfert itératif des données
4. La structure Case
5. Programmation évènementielle: structure Event
6. Révision
82
La boucle While
• Accessible depuis la sous-palette
Programming-Structures du Block
Diagram
• Similaire à la boucle Faire…Tant que en
programmation textuelle (c++,…..)
• Le code à l’intérieur de la boucle While
s’exécute AU MOINS une seule fois
• Deux types de condition d’arrêt de la
boucle While:
- Stop If True
- Continue If True
• Possibilité de créer des registres à
décalage pour le transfert itératif des
données
83
La boucle While
1. Sélection boucle While 2. Sélection du code à répéter
Do
(Execute diagram
inside Loop)
84
Choix de la condition de boucle
85
Registres à décalage
86
1. Terminal d’iterations :compteur
nombre total des iterations
commençant à 0.
2. Condition d’arrêt Stop If True
3. Condition d’arrêt Continue If True
4. Temporisateur de la boucle
5. Menu contextuel de la boucle.
2 3
5
87
• Création des Tunnels
permettant d’échanger des
données avec la boucle
(transmettre et acquérir)
Tunnel de sortie
• Le tunnel prend la couleur du
type de données transférées
• Les données NE passent à
l’extérieur de la boucle Tunnel d’entrée
qu’après son exécution
• La boucle NE s’exécute que
lorsque les données du
tunnel lui passent à
l’intérieur
88
• Utilisée pour la localisation et la
gestion des erreurs d’exécution
dans un VI
• La condition d’arrêt de la boucle
sera connectée aux clusters
d’erreurs (Status)
• La boucle s’arrête en cas
d’avènement d’une erreur ou au
moyen du contrôle Stop
89
La boucle For
• Accessible depuis la palette
Programming-Structures du
Block Diagram
• Similaire à la boucle Pour…Faire
en programmation textuelle
• Le code à l’intérieur de la boucle
For s’exécute en un nombre
prédéfini de fois (N)
• Possibilité de créer des registres
à décalage
90
La boucle For
1. Nombre prédéfini
d’itérations
4
2. Terminal d’itérations
3
3. Menu contextuel de la
boucle
4. Temporisateur de la
boucle
1
91
La boucle For
Terminal du compteur
(Entrée numérique)
FOR N=0 TO 100
DO
(Execute diagram
inside Loop)
END
Terminal d’itération
92
• Possibilité d’ajouter une condition
d’arrêt inconditionnelle
• La boucle s’arrête au moyen d’un
contrôle booléen ou en cas d’erreur
93
Timing d’exécution d’une boucle
1000
stop
94
Timing d’exécution d’une boucle
95
Transfert itératif des données
• Possibilité d’accéder aux données à
partir des itérations passées des
boucles au moyen des registres à
décalage (Shift Registers)
• Similaires aux variables statiques
en programmation textuelle
• Disponibles depuis les bords de Terminal Terminal
boucles While et For avec la de gauche de droite
commande (Add Shift Register)
- Terminal de droite: stocke la
valeur après passage dans la
boucle
- Terminal de gauche met à
disposition la valeur stockée
avant au début de l’itération
96
Transfert itératif des données
• Le Shift Register doit être initialisé
pour que la boucle peut exécuter la
première itération
• Au cas contraire, la boucle prend la
valeur ancienne du Shift Register ou
celle par défaut selon le type de
données en première itération
Types de Valeurs
données par défaut
Numérique 0
Booléen FAUX
Chaîne de caractères Vide (‘‘ ’’)
97
Transfert itératif des données
• Possibilité de stocker plus qu’une
valeur de données à la fois des Stacked
itérations passées : Stacked Shift Shift Register
Registers
• Disponible depuis le terminal de
gauche avec la commande Add
Element valeur à l’itération k-3
valeur à l’itération k-2
valeur à l’itération k-1
98
Case
• Correspond à “if” en C, Matlab, etc.
• Se trouve dans la sous-palette de fonction ‘Structures’
• Entoure le programme à effectuer dans le cas traité
• Les cas sont superposés, un seul cas visible à la fois
99
La structure Case
• Accessible depuis la palette
Programming-Structures du Block
Diagram
• Similaire à la boucle Switch-Case
ou If-Then-Else en programmation
textuelle
• La structure Case possède deux ou
plusieurs cas (sous-diagramme)
• Un seul sous-diagramme est
visible et exécuté à la fois
• Le terminal de sélection
détermine le sous-diagramme à
exécuter
100
4
1. Terminal de sélection
2. Sous-diagramme False
3. Sous-diagramme True
4. Menu contextuel de configuration
2
1
101
Terminal de sélection Terminal de sélection Terminal de sélection
de type Booléen de type Numérique de type Chaîne de caractères
102
La structure Event
Programmation évènementielle : technique de programmation avec
laquelle le programme LabVIEW (VI) attend qu’un évènement se produise
pour exécuter le code-source écrit pour sa gestion.
103
La structure Event
Structure Event : une structure de contrôle
LabVIEW permettant d’implémenter les
concepts de la programmation
évènementielle.
Accessible à partir de la palette
Programming-Structures.
LabVIEW génère un évènement à chaque
fois que l’utilisateur effectue une action
sur la face avant du VI. Le diagramme
correspondant répond par l’exécution du
code relatif afin de gérer un tel
évènement.
Une fenêtre de dialogue de la structure
Event permet l’édition, la configuration et
la gestion d’évènements sous LabVIEW.
104
La structure Event
Constitution d’une structure Event : la structure Event du LabVIEW, dont
un modèle est donné ci-joint, est formée de:
1. Menu d’évènements (Event Selector Label) : présente un listing des
évènements implémentés. A chaque évènement correspond un
code.
2. Terminal de temporisation (Timeout Terminal) : indique le temps, en
nombre des millisecondes, à attendre pour un évènement. La valeur
par défaut est -1 (temps d’attente infini). En spécifiant une valeur, il
faut veiller à remplir le cas « Timeout » de la structure Event.
3. Nœud des données (Event Data Node) : identifie les données
fournies lorsque l’évènement en question a eu lieu.
4. Nœud de filtrage (Event Filter Node) : identifie les données pouvant
être modifiées avant que la gestion de l’évènement s’effectue.
105
La structure Event
2 1
106
La structure Event
Edition et configuration
d’un évènement :
édition et configuration
de l’évènement à gérer
par le sous-diagramme
courant de la structure
Event.
107
La structure Event
1
Panneau 3
des évènements 2
Panneau
configurés Panneau des évènement
des sources
d’évènements
108
Une structure Event doit être toujours placée à l’intérieur d’une boucle
While. La gestion d’un évènement s’exécute en une itération de la boucle
(un évènement par itération).
109
Résumé du chapitre 3
110
Révision
1. Quelle est la boucle de contrôle qui 4. Quel est le type de données invalide
s’exécute au moins une seule fois : pour le terminal de sélection d’une
structure Case:
- Boucle For - Chaîne des caractères
- Boucle While - Réel
2. La condition d’arrêt d’une boucle For - Booléen
simple est : - Entier
- Action sur un contrôle Stop 5. Les registres à décalage peuvent être
- Nombre d’itérations atteint créés au moyen de :
3. Combien d’évènements peut gérer - La structure Case
une structure Event à chaque fois - La boucle While
qu’elle s’exécute? - La boucle For
- Un par cas configuré de la 6. Peut-on réaliser une boucle infinie à
structure Event • l’aide de la boucle While :
- Un seul - Oui
- Non
111
Révision
1. Quelle est la boucle de contrôle qui 4. Quel est le type de données invalide
s’exécute au moins une seule fois : pour le terminal de sélection d’une
structure Case:
- Boucle For - Chaîne des caractères
- Boucle While - Réel
2. La condition d’arrêt d’une boucle For - Booléen
simple est : - Entier
- Action sur un contrôle Stop 5. Les registres à décalage peuvent être
- Nombre d’itérations atteint créés au moyen de :
3. Combien d’évènements peut gérer - La structure Case
une structure Event à chaque fois - La boucle While
qu’elle s’exécute? - La boucle For
- Un par cas configuré de la 6. Peut-on réaliser une boucle infinie à
structure Event
• l’aide de la boucle While :
- Un seul - Oui
- Non
112
Exercices
• «Encercler» d’une boucle while le programme qui permet de convertir une température
de degrés Celsius [°C] en degrés Farenheit [°F], afin de convertir les valeurs sans
redémarrer le programme chaque fois.
113
• Réaliser un programme sous forme de boucle qui permet de décompter de 100 à
0 chaque 100 ms et qui allume une lampe quand le compte à rebours est atteint
(valeur = 0).
114
Chapitre 4 :
Groupage des données
Notions de tableaux, clusters et graphes
1. Les tableaux
2. Les clusters
3. Les graphes
4. Les types définis
5. Révision
115
Les tableaux
• Collection de données du même type
• Une ou plusieures dimensions
• Les éléments sont accessibles par leur index
index 0 1 2 3 4 5 6 7 8 9
Tableau 1D à 10 éléments 1.2 3.2 8.2 8.0 4.8 5.1 6.0 1.0 2.5 1.7
0 1 2 3 4 5 6
Tableau 2D 0
1
2
3
4
5 lignes par 7 colonnes
Tableau de 35 éléments
116
Les tableaux
(ARRAYS)
• Accessibles depuis la sous-palette
Array, Matrix & Cluster
• Utiles pour regrouper des
données LabVIEW de même type
• Une (1D) ou plusieurs (2D)
Chaque élément est accessible
par son indice (commençant par
0)
• Peuvent être construits au moyen
des boucles While et For
• Impossible de créer un tableau
des tableaux
117
Les tableaux
• Construire un tableau (contrôle ou
indicateur) à partir du Front Panel
LabVIEW en ajoutant un Array
Shell
• Faire glisser un type de données
(Numeric, Boolean, String, Cluster,
etc.) à l’intérieur du terminal de
tableau
• Redimensionner le tableau au
moyen de la souris ou avec le
menu contextuel Add Dimension
118
• Possibilité de créer des tableaux
constants
• Faisable uniquement sur la face
diagramme de LabVIEW (Block
Diagram)
• Disponible depuis la sous-palette
Array de la palette Programming
119
Les tableaux
• Plusieurs fonctions disponibles
pour la gestion des tableaux
depuis la sous-palette Array du
Block Diagram:
- Index Array
- Array Size
- Build Array
- Array Max & Min
- Array Subset
- Initialize Array
- Insert Into Array
- etc.
120
Les tableaux
• Création des tableaux au moyen
des boucles de contrôle For et
While
• Les éléments sont auto-indexés
dans les tableaux
• L’auto-indexation des éléments
peut être activée ou désactivée
(Enable Indexing, Disable
Indexing)
• L’auto-indexation est :
- Activée par défaut pour la
boucle For
- Désactivée par défaut pour la
boucle While
121
Les tableaux
• L’auto-indexation en entrée d’un
tableau permet de remplacer le
terminal de nombre d’itérations
d’une boucle For
• Le nombre d’itération de la boucle
est égal à la valeur minimale entre
les dimensions des tableaux et le
terminal de nombre d’itérations
(N)
• Désactiver l’auto-indexation pour
accéder uniquement à la dernière
valeur passée en tunnel de sortie
122
Les tableaux
• Création des tableaux à deux
dimensions (2D) au moyen de
deux boucles For imbriquées:
- La boucle interne crée les
colonnes
- La boucle externe crée les
lignes
123
Accès aux éléments du tableau
Ajouter un élément
124
Création et utilisation de tableaux
125
Création de tableaux 2D
126
Initialize Array
127
Delete From Array
128
Search 1D Array
129
Les clusters
• Disponibles depuis la sous-palette
Array, Matrix & Cluster
• Les Enregistrements sont utiles
pour regrouper des données de
types mixtes
• Similaires aux structures en
programmation textuelle
• Un cluster peut être un contrôle
OU un indicateur
• Réduire le câblage et les terminaux
des connecteurs d’icône
• Chaque élément est répertorié par
son propre Numéro ou Label
130
Les clusters
• Construire un cluster (contrôle ou
indicateur) à partir du Front Panel
LabVIEW en ajoutant un Cluster
Shell
• Faire glisser un type de données
(Numeric, Boolean, String, etc.) à
l’intérieur du terminal de cluster
• Réordonner les éléments dans un
cluster au moyen du menu
surgissant: Reorder Controls In
Cluster
131
Les clusters
• Possibilité de créer des clusters
constants
• Faisable uniquement sur la face
diagramme de LabVIEW (Block
Diagram)
• Disponible depuis la sous-palette
Cluster, Class & Variant de la
palette Programming
132
Les clusters
• Plusieurs fonctions disponibles
pour la gestion des clusters depuis
la sous-palette Cluster, Class &
Variant du Block Diagram:
- Unbundle By Name
- Bundle By Name
- Unbunde
- Bundle
- Build Cluster, etc.
133
Les graphes
• Disponibles depuis les sous-palettes
Graph Indicators et Graph de Front
Panel :
- Chart : graphe déroulant, affiche
des courbes point par point
- Graph : affiche des courbes à
partir de tableaux contenant tous
les points (bloc des données)
- XY Graph : affiche des courbes
paramétriques
134
Exercice 5 - Cluster, manipulation
d’erreurs et structure condition
• Générer un VI qui permet de visualiser une erreur lorsque l’on
essaye de calculer la racine carré d’un nombre négatif.
Exemples de solutions possible
135
Les graphes
1
1. Label du graphe
2. Axe des ordonnées (Y)
3. Axe des abscisses (X)
2
4. Légende des axes
5. Palette du graphe
6. Barre de défilement
3 6
7. Légende des courbes
136
Les graphes
8
1
7
6
3
5
138
Les graphes
Former un
cluster des
graphes
déroulants
139
Les graphes
Mettre les
clusters
dans un
tableau
140
Les graphes
Mettre les
clusters
dans un
tableau
141
Exercice 4 - Utilisation de graphiques
• 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.
Exemples de solutions possible
Assembler
signaux
142
Exercice 4 - Utilisation de graphiques
•Palettes fonctions >> Express >> analyse des signaux >> simuler un
signal
143
Les types définis
• Utiliser les types définis pour
personnaliser des tableaux, des
clusters, etc.
• Copie originale d’un type de données
personnalisé (contrôle, indicateur ou
constante) utilisée par plusieurs VIs.
• Mettre à jour toutes les copies et les
instances du type personnalisé en
une seule édition.
• Enregistrer un contrôle personnalisé à
l’aide de menu déroulant Type Def.
Status (*.ctl).
Contrôle (control)
Type défini (Type Definition)
Type strictement défini (Strict
Type Definition)
144
Les types définis
• L’outil Control Editor permet de
personnaliser des contrôles et des
indicateurs
• L’outil Control Editor possède deux
modes : d’édition (edit mode) de
personnalisation (customize mode)
• Possibilité de basculer entre ces
deux modes par OperateChange
to Customize Mode ou
OperateChange to Edit Mode.
145
Les types définis
• Mode d’édition: permet de changer
la taille ou la couleur d’un contrôle ou
d’un indicateur et de sélectionner des
1. Mode d’édition ;
options dans le menu contextuel 2. Statu des types définis ;
comme dans le mode d’édition 3. Editeur de texte ;
classique sur une face avant. 4. Alignement des objets ;
5. Distribution des objets ;
6. Redimensionnement des
objets ;
7. Réorganiser des objets.
1 2 3 4 5 6 7
146
Les types définis
147
Les types définis
148
Révision
1. Peut-on créer un tableau des 4. Lesquels des modes suivants sont
tableaux : relatifs au type Chart des indicateurs
- Oui Graphes :
- Strip
- Non - XY Graph
- Sweep
2. L’auto-indexation d’un tableau est - Scop
active par défaut pour:
- La boucle While 5. Combien de fois s’exécute la boucle
- La structure Case For ci-dessous
- La boucle For
149
Révision
1. Peut-on créer un tableau des 4. Lesquels des modes suivants sont
tableaux : relatifs au type Chart des indicateurs
- Oui Graphes :
- Strip
- Non - XY Graph
- Sweep
2. L’auto-indexation d’un tableau est - Scop
active par défaut pour:
- La boucle While 5. Combien de fois s’exécute la boucle
- La structure Case For ci-dessous
- La boucle For
150
Exercice
• Créer un programme de loterie qui permet à chaque pression sur un bouton
de générer 6 chiffres aléatoires entre 0 et 100 et d’afficher ces 6 chiffres à
l’écran.
Case
151
Travail personnel
1. Réalisez un programme en boucle qui permet de comparer deux
chiffres et qui affiche à l’utilisateur avec trois lampes si:
nombre 1 < nombre 2
nombre 1 = nombre 2
nombre 1 > nombre 2
152