0% ont trouvé ce document utile (0 vote)
740 vues174 pages

Cours LabVIEW Extrait

Transféré par

manar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
740 vues174 pages

Cours LabVIEW Extrait

Transféré par

manar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Niveau : 5ème Année

Filière EMSI

Par : Hassan AIT BOUH

2020 / 2021
Plan du Cours
1. Introduction
2. Notions de Flux de Données
3. Environnement de programmation sous LabVIEW
4. Types de données
5. Structures de programmation
6. Fonctions associées aux différentes données
(Numérique, Booléen, Chaîne, Tableau, Cluster, Comparaison)
7. Gestion du temps
8. Mémorisation des données
(Registre à décalage, Variables Locale/Globale)
9. Les fichiers
10. Les graphes
2
Plan du Cours
11. Quelques Fonctions EXPRESS
12. Utilisation de l’assistant DAQmx
13. Acquisition de données
14. …

3
Objectifs du Cours
 Notions de la programmation par Flux de Données.
 Présenter LabVIEW et ses fonctionnalités.
 Explorer l'environnement LabVIEW.
 Apprendre à développer des applications sous LabVIEW.
 Créer un sous-programme dans LabVIEW.
 Travailler avec les Tableaux, les Clusters, les Structures
et les Graphiques.
 Comprendre les composants d'un Instrument Virtuel (VI).
 Lire et écrire des données dans des Fichiers.
 À l'issue de ce cours, vous serez en mesure de créer des
applications en utilisant des modèles et des architectures
de conception de base pour Acquérir, Traiter, Afficher et
Stocker des données réelles.
4
Introduction
Description :

LabVIEW, contraction de :
Laboratory Virtual Instrument Engineering Workbench

5
Introduction
Description :
LabVIEW est :
 un environnement de développement complet ;
 graphique, appelé code G :
– le code est représenté par un schéma composé :
• de fonctions,
• de structures,
• de fils qui propagent les données,
 Compilé traduit en code machine.

6
Introduction
Domaine d’utilisation :
 particulièrement adapté au domaine de :
• l’acquisition de données
• la mesure et les tests
 Il dispose de nombreuses fonctions permettant de :
• piloter facilement des :
– cartes d’acquisition
– instruments
• filtrer
• analyser des données
• présenter

7
Introduction
Domaine d’utilisation :
 Mais il permet en plus de manipuler une grande
variété de concepts :
 le flux de données,
 la programmation objet,
 la gestion événementielle,
 l’encapsulation,
 la modularité,
 le typage de données,
…
8
Introduction
Cibles matérielles de LabVIEW

9
Introduction
Caractéristiques
 offre une souplesse et une dimension intuitive ;
 offre la même puissance de programmation que
les langages textuels (sans le coté abstrait et
complexe lié à la syntaxe) ;
 il suit un modèle de flux de données et non de flux
d’instructions :
 il est naturellement prédisposé au
parallélisme ce qui augmente encore sa
puissance et la rapidité d’exécution du code.

10
Hassan AIT BOUH
Introduction
Plateformes

11
Hassan AIT BOUH
Introduction
Utilisateurs
 il s’adresse :
– à tous les techniciens ou ingénieurs qui désirent
développer une application :
 de mesures,
 de tests,
 de supervision,
 de contrôle/commande.
– à tous les développeurs qui désirent utiliser un
langage intuitif, puissant et ouvert sur la totalité
du génie logiciel.

12
Introduction
LabVIEW en chiffres :

Quick Facts

Founded : 1976

2017 Revenue : $1.29B

Global Operations : Offices in nearly 50 countries (2015)

Employee Count : Approximately 7,400 employees (2015)

Customer Base : +35,000 companies served annually

13
Introduction
Historique :
 LabVIEW a été développé par la société National
Instruments à partir de 1983.

 1986 : 1ère version distribuée, conçu pour une plate-


forme MacOS.

 1990 : Le langage LabVIEW devient compilé.

 1992 : L’environnement de programmation LabVIEW


est porté sur plate-forme Windows.

14
Introduction
Historique :
 1994 : La version 3.1 intègre le composant
Application Builder permettant de générer un
exécutable autonome à partir du code source.
 1998 : La version 5 intègre :
– la gestion multitâche ;
– des assistants logiciels pour les cartes
d’acquisition (DAQ) et le contrôle d’instruments ;
– la portabilité sous Linux ;
– le module pour cible Temps-Réel (RT).
15
Introduction
Historique :
 2004 : La version 7.1 intègre :
– les modules pour cible FPGA et Windows CE ;
– la structure événementielle ;
– la traduction de la plate-forme de développement
en français.
 2005 : La version 8 introduit :
– la gestion par projet ;
– les XControls ;
– la programmation orientée objet (OOP).
16
Introduction
Historique :
 2009 : A partir de cette année, National Instrument
décide de générer une version de LabVIEW chaque
année et dont le nom sera celui de l’année.

 2010 : Intégration de technologie de compilation


« sur étagère », qui permet un gain de 20% sur le
temps d’exécution du code.

…

17
Introduction
Historique :
 2014 : actuellement :
– le logiciel est disponible sur différents systèmes
d’exploitation : Windows, Mac OS, Linux.
– la portabilité des applications développées sous
LabVIEW est totale entre les différentes plates-
formes ;
– LabVIEW peut générer du code compilé sur des
systèmes d’exploitation mais également pour des
cibles Temps-Réel (RT), FPGA et embarquées ;
– le logiciel possède une aide-en-ligne très
complète.
18
Introduction
Généralités :
Le langage LabVIEW propose un environnement très
orienté instrumentation où nous retrouvons les quatre
bibliothèques de base nécessaires à ces applications
industrielles :

1. Acquisition & Génération des données ;

2. Analyse & Traitement des données ;

3. Présentation & Sauvegarde des données ;

4. Publication & Echange des données.


19
Introduction
Généralités :

Bibliothèques logicielles proposées dans l'environnement


LabVIEW

20
Introduction
1. Acquisition & génération des données
 Contrôle d’instruments (GPIB, série, Ethernet, USB,
PCI, PXI, VXI) ;

 Gestion des cartes d’E/S numériques/analogiques


(DAQmx) ;

 Gestion de cartes d’acquisition d’images ;

 Commande d’axes moteurs ;

 etc. ;

21
Introduction
2. Analyse & traitement des données
 Traitement du signal (génération, filtrage, FFT,
etc.) ;

 Traitement statistique (régression, lissage,


moyenne, etc.) ;

22
Introduction
3. Présentation & sauvegarde des données
 Affichage (courbes, graphiques 2D, 3D, etc.) ;

 Stockage des données (archivage, base de


données) ;

 Génération des rapports (impression, rapport


Word et Excel) ;

23
Introduction
4. Publication & échange des données

 Echange de données entre applications (activeX,


.NET, etc.) ;

 Partage par le réseau (TCP/IP, Internet, moteur


de variables partagées, Data-Socket, etc.).

24
Introduction
Dans cette 1ère partie nous allons :

 présenter les concepts et l'intérêt de la


programmation graphique, qui permet de
représenter du code par un schéma, par opposition
aux mots du langage textuels.
Le code obtenu est ainsi :
• plus intuitif,
• plus naturel.

25
Introduction
 Définir le flux de données, qui est une notion
fondamentale à comprendre sous LabVIEW, ainsi
que les éléments nécessaires à sa propagation et
son exploitation.
 Détailler la notion :
 d’Instrument Virtuel (VI) sur ordinateur ;
 de "Face-avant" ;
 de "Diagramme" ;
 des outils permettant de prendre en main
l'environnement LabVIEW.
26
Introduction

 Décrire les éléments de base de


l'environnement de programmation LabVIEW.
 Présenter un exemple très simple pour illustrer
la réalisation d'un code graphique.

27
Introduction
Les concepts et l’environnement LabVIEW
• Un diagramme flux de données permet de
décrire un programme de manière graphique ;

• Ce diagramme est constitué de Nœuds (de


traitements ou calculs) interconnectés par des Arcs
qui spécifient ce flux ;

On distingue :
– les Nœuds producteurs de données,
– et les Nœuds consommateurs de données.
28
Introduction
C’est quoi un digramme flux de données ?
Il s’agit d’un graphe acyclique qui peut être composé
des 3 éléments différents suivants :

– Terminaux
– Nœuds
– Arcs orientés

29
Introduction
Exemple de digramme flux de données :

Flux de données

Diagramme flux de données représentant le calcul du


discriminant d’une équation du second degré ∆ = b² - 4 a c
30
Introduction
Notion de jeton :
• Il est possible de représenter les données
transitant sur les arcs par des jetons.

• La production et la consommation de ces


derniers dans le diagramme flux de données
sont régies par des règles d’évolution.

31
Introduction
Règles d’évolution :
 lors de l’initialisation, chaque Terminal
produit un jeton sur son ou ses arc(s) de sortie ;

 lorsqu’un Nœud possède un jeton sur


chacun de ses arcs d’entrée, alors le Nœud
peut être exécuté :
 chaque jeton d’entrée est consommé ;
 et un jeton est produit sur chacun des arcs
de sortie du Nœud.
32
Introduction
Conséquence 1 :
a) Parallélisme

• De ces règles, on déduit que plusieurs


Nœuds peuvent être exécutés simultanément.

 La programmation flux de données intègre


donc implicitement la notion de parallélisme.

33
Introduction
Conséquence 2 :
b) Encapsulation

• Un diagramme flux de données peut être


encapsulé et réutilisé, en tant que Nœud
(macro-nœud), par d’autres diagrammes flux
de données.

Les Terminaux du digramme deviennent alors


les connexions d’E/S du nouveau Nœud.
34
Introduction
Encapsulation

Dis.

Encapsulation du diagramme flux de données


(de l’Exemple précédent)
35
Introduction
Extension du concept « Flux de données » :
• Ce modèle Flux de données est trop simple
pour être utilisé en tant que langage de
programmation.
En effet, cette programmation flux de données
pure souffre de 2 manques :
– Mémorisation momentanée de données ;
– Structures de programmation pour
exprimer des choix ou des itérations.
36
Introduction
Extension du concept « Flux de données » :

Problème de causalité

37
Introduction
Extension du concept « Flux de données » :
La mémorisation momentanée de données
est essentielle afin de répondre au problème de
causalité.
Cette mémorisation est implémentée de
différentes manières dans l’environnement
LabVIEW :
– Registres à décalage associés aux
structures de programmation ;
– Variables locales ou globales.
38
Introduction
Extension du concept « Flux de données » :

Les structures de programmation sont


indispensables pour exprimer des choix ou
des itérations.
Dans l’environnement LabVIEW nous
trouvons :
– les 2 structures d’itération : boucle (For) et
boucle (While) ;
– la structure « Condition » ;
– la structure « Séquence » ; …
39
Introduction
Extension du concept « Flux de données » :

Le problème de causalité dans un flux de données pur et sa


solution par insertion d’une fonction de mémorisation.

40
Introduction
Résumé :
L’environnement de programmation LabVIEW
propose un cadre de programmation :
 Graphique,
 Basé sur le flux de données,
 Enrichi des 2 extensions (Mémorisation,
Structures de programmation.

Ce langage est appelé Langage G,


Et il possède la même puissance d’expression
que les langages textuels.
41
Environnement de programmation
LabVIEW
Instrument Virtuel (VI)

• Un instrument virtuel est un programme qui


présente une interface sous forme graphique
(apparente à un instrument physique).
• Une application, développée sous LabVIEW est
appelée Instrument Virtuel (Virtual Instrument).
• Un programme ou VI, développé sous LabVIEW,
se compose de 2 éléments associés et regroupés
sous le même nom (nom_application.vi). 42
Environnement de programmation
LabVIEW
Instrument Virtuel (VI)
 La Face-Avant (Front Panel) : représente le panneau
de contrôle de l’instrument virtuel composé d’objets
variés (boutons, indicateurs, graphes, etc.).
Cette fenêtre est l’interface utilisateur du programme.
 Le Diagramme (Block Diagram) : C’est le programme
de l’application ou code source. Il est écrit sous la
forme d’un diagramme flux de données en langage
G (ensemble des icônes et des liaisons entre ces
dernières).
Ce dernier contient les fonctions de l’instrument virtuel.
43
Environnement de programmation
LabVIEW
Remarques :
 Suite à la création d’un exécutable autonome, appelé
environnement d’exécution ou Run-Time, seulement
la Face-Avant du programme principal (et les boîtes
de dialogue seront visibles).

 Une application LabVIEW (VI) est un module logiciel


que l’on peut :
 soit exécuter,
 soit inclure dans une autre application.
LabVIEW intègre le concept de programmation modulaire (notion de sous-VI).
44
Environnement de programmation
LabVIEW
Résumé :
une application développée dans
l’environnement LabVIEW est caractérisée de
façon complète avec les 4 éléments suivants :
 Face-Avant (interface utilisateur) ;
 Diagramme (programme) ;
 Structure hiérarchique des sous-VI utilisés ;
 L’icône de l’application elle-même.
45
Présentation générale de l’environnement
LabVIEW
Fenêtre de lancement de l’environnement LabVIEW

46
Présentation générale de l’environnement
LabVIEW
Fenêtres : Face-Avant (Front Panel) & Diagramme (Block Diagram)

47
Présentation générale de l’environnement
LabVIEW

12 14
1 3 5 7 9 10 11 13
2 4 6 8 10. Texte.
11. Aligner les objets.
1. Exécution unique. 12. Répartir les objets.
2. Exécution en continu. 13. Redimensionner les objets.
3. Arrêt de l’exécution. 14. Réorganiser les objets.
4. Pause : ce bouton prend la couleur rouge pour montrer qu’il est actif, il faut
recliquer dessus pour sortir de ce mode.
5. Mode animation : la lampe s’allume pour montrer qu’il est actif, permet de
suivre le flux de données et l’activité des différents VI lors du lancement.
6. Lecture de la valeur des fils de liaisons.
7. Exécution en mode pas à pas.
8. Passage à l’étape suivante sans détailler l’étape actuelle.
48
9. Fin du mode pas à pas.
Présentation générale de l’environnement
LabVIEW
Les 2 fenêtres en mode mosaïque horizontale

Connecteur du VI Icone du VI

49
Présentation générale de l’environnement
LabVIEW
Les 2 fenêtres en mode mosaïque verticale

50
Présentation générale de l’environnement
LabVIEW
Palettes
Pour réaliser le développement d'un VI LabVIEW
au sein des 2 fenêtres (Face-Avant &
Diagramme), nous avons besoin des 3 palettes
ou menus contextuels suivants :

1. Palette Outils (Tools)


2. Palette Commandes (Controls)
3. Palette Fonctions (Functions)
51
Présentation générale de l’environnement
LabVIEW
1. Palette Outils (Tools)
La palette d’outils contient les outils nécessaires
pour éditer et mettre au point les objets, aussi
bien pour la Face-Avant que pour le
Diagramme.

52
Présentation générale de l’environnement
LabVIEW
1. Palette Outils (Tools)
Le curseur de la souris peut avoir différents
effets selon la représentation choisie dans cette
palette (sélection, écriture, câblage, coloration,
etc.) ;

53
Présentation générale de l’environnement
LabVIEW
1. Palette Outils (Tools)
Positionner/Sélectionner/ Choix automatique de
Dimensionner l’outil

Insertion de texte
Edition des éléments
graphiques Défilement dans la
fenêtre
Connections des éléments
graphiques Pipette (Choix couleur)

Placer/supprimer un Placement de sonde sur


point d’arrêt un fil
Remplissage et choix de la
Menu local de l’objet couleur
54
Présentation générale de l’environnement
LabVIEW
1. Palette Outils (Tools)
Outil Fonction
Changer la valeur d’un objet sur la Face-avant et
Doigt
dans le Diagramme
positionner, redimensionner et sélectionner les
Flèche
objets

Texte modifier du texte et d’en créer

Bobine câbler des objets entre eux dans le Diagramme

Menu
faire apparaître un menu local pour un objet
local 55
Présentation générale de l’environnement
LabVIEW
1. Palette Outils (Tools)
Outil Fonction
faire défiler toute la fenêtre sans avoir recours aux
Main
barres de défilement
Point Définir des points d’arrêt dans les VIs, fonctions,
d’arrêt boucles, séquences et structures

Sonde Créer des sondes sur les fils

Pipette Copier les couleurs pour les coller à l’aide de l’outil

Pinceau Définir la couleur de l’arrière-plan et du 1er plan


56
Présentation générale de l’environnement
LabVIEW
2. Palette Commandes (Controls)
 Accessible uniquement dans la fenêtre
« Face-Avant » ;
 Permet de créer cette interface utilisateur
avec l’ensemble des objets représentant les
E/S du programme.

57
Présentation générale de l’environnement
LabVIEW
2. Palette Commandes

58
Palette Commandes
Permet de garder
toujours la palette Rechercher un élément
visible à l’écran
Chaîne et chemin
Les numériques
Graphe
Les booléens
Tableaux et Entrées / sorties
clusters (groupes)
Listes et tables Décorations

Menu déroulant
Conteneurs Refnum

Variant et classe Autres commandes


dépendant des
options installées
59
Présentation générale de l’environnement
LabVIEW
3. Palette Fonctions (Functions)
 Accessible uniquement dans la fenêtre
« Diagramme » ;
 Offre l’ensemble des ‘instructions’ du plus bas
niveau (opérateurs mathématiques) au plus
haut niveau (gestionnaire de cartes d’E/S).

60
Présentation générale de l’environnement
LabVIEW
3. Palette Fonctions (Functions)

61
Palette Fonctions (Functions)
Permet de garder Rechercher un élément
toujours la palette
visible à l’écran Cluster et variant

Les structures Les chaînes


Les tableaux Booléens
Les numériques Dialogue et interface
Les comparaisons utilisateur

Les E/S sur fichiers Informations


temporelles
Waveform
Contrôle d’applications
Synchronisation
Génération de rapport
Graphisme et son
Autres fonctions
dépendantes des
options installées
62
Un exemple de programme
Calcul du discriminant d’une équation du second degré :
Δ = b2 – 4.a.c

Etape 1 : Réalisation de la Face-Avant du VI

Création des E/S du programme à partir des


objets disponibles dans la palette Commandes :
 3 entrées numériques,
 1 sortie numérique.
Le VI est enregistré sous le nom
2e_degre.vi
63
Un exemple de programme
Calcul du discriminant d’une équation du second degré :
Δ = b2 – 4.a.c

64
Un exemple de programme
Calcul du discriminant d’une équation du second degré :
Δ = b2 – 4.a.c
Etape 2 : Réalisation du prog. Flux de données du VI

65
Un exemple de programme
Remarque
Il est possible d’encapsuler ce programme dans
une icône constituant ainsi un sous-VI ou
module réutilisable avec des Entrées et des
Sorties bien définies.

66
Icône et Connecteur
L'icône et le connecteur correspondent au
prototype de fonction des langages de
programmation textuels.
connecteur

icône

67
Icône et Connecteur
Icône
• C’est la représentation graphique de ce VI.
• Elle peut contenir du texte, des images ou les deux.
• Si on utilise un VI comme sous-VI, l'icône identifie le
sous-VI sur le Diagramme du VI.

68
Icône et Connecteur
Construction de l’icône
• On double-clique sur l'icône de la fenêtre.
• La personnalisation des icônes des VIs est
recommandée mais facultative.

69
Icône et Connecteur
Construction de l’icône

70
Icône et Connecteur
Connecteur
28 terminaux max
• C’est un groupe de terminaux qui correspond aux Commandes
et aux Indicateurs de ce VI (semblable à la liste de paramètres
d'un appel de fonction dans les langages de programmation
textuels).
• Il définit les Entrées et Sorties qu’on peut connecter au VI qu’on
veux utiliser comme sous-VI.
• Il reçoit des données sur ses Terminaux d’Entrée et les transmet
au Diagramme par les Commandes de sa Face-Avant.
• Il envoi les résultats sur ses Terminaux de Sortie vers les
Indicateurs de sa Face-Avant.
71
Icône et Connecteur
Construction du connecteur

36 Modèles proposés

72
Icône et Connecteur
Construction du connecteur
• Chaque case du connecteur représente un
Terminal.
• Après avoir sélectionné un modèle de
connecteur, on utilise les rectangles pour
assigner les Commandes et Indicateurs de la
Face-Avant comme Entrées et Sorties.

73
Un exemple de programme
Résultat de la création d’un sous-VI « Calcul du discriminant »

74
Un exemple de programme
Résultat de la création d’un sous-VI « Calcul du discriminant »

75
Les principaux éléments du langage
LabVIEW
• Les objets de la Face-Avant apparaissent en
tant que Terminaux dans la fenêtre Diagramme.
Ces Terminaux sont des producteurs ou
consommateurs de données.
• Le choix des commandes (entrées) ou
indicateurs (sorties) de la palette commandes
conduit à un type de données particulier.
• Chaque Terminal (de forme rectangulaire) est
caractérisé par une couleur et un symbole
interne spécifiques à chaque type de données.
76
Les principaux éléments du langage
LabVIEW
Un type de données peut être :
 Numérique (entier +, -, réel ou complexe),
 Booléen,
 Chaîne de caractères,
 Tableau,
 Cluster,
 énuméré,
 Chemin,
 Waveform, etc. 77
Les principaux éléments du langage
LabVIEW
Remarque

• Le cadre des Terminaux d’Entrées


(commandes) est plus épais que le cadre des
Terminaux de Sortie (indicateurs).

• Le fil de liaison, reliant ces Terminaux à des


fonctions ou entre eux possèdent des formes et
des couleurs qui indiquent aussi le type de
données transportées.
78
Les principaux éléments du langage
LabVIEW
Divers moyens de réaliser un codage d’une variable de type
numérique :

79
Les principaux éléments du langage
LabVIEW
Divers moyens de réaliser un codage d’une variable de type
numérique :

80
Les principaux éléments du langage
LabVIEW
Divers moyens de réaliser un codage d’une variable de type
numérique :

Nb. à virgule flottante (Réel)

Nb. Entier Signé

Nb. Entier non Signé

Nb. Complexe

81
Les principaux éléments du langage
LabVIEW
Câblage (Wiring the Block Diagram)
Wire
Scalar 1D Array 2D Array Color
Type
Orange (floating-point)
Numeric
Blue (integer)

Boolean Green

String Pink

Dynamic Blue
82
Les constantes
Les constantes peuvent être de 2 types :

 Constantes définies par le programmeur :


– Numérique,
– Booléen,
– Chaîne de caractères,
– Tableau,
– Cluster, etc.
 Constantes prédéfinies.
83
Les constantes

84
Structures de programmation

85
Structures de programmation
On distingue 6 principaux types de structures :

1. Structure Séquence (Flat Sequence)


2. Structure Condition (Case Structure)
3. Structure Evénement (Event Structure)
4. Structure Boucle For (For Loop)
5. Structure Boucle While (While Loop)
6. Structure Elément en place (In Place Element
Structure) 86
Structures de programmation
1. Structure de contrôle : Séquence (Sequence)

87
Structures de programmation
1. Structure de contrôle : Séquence (Sequence)

88
Structures de programmation
1. Structure de contrôle : Séquence (Sequence)

89
Structures de programmation
1. Structure de contrôle : Séquence (Sequence)
• Elle permet de donner un ordre précis
d'exécution à un Nb quelconque de sous-
diagrammes ou étapes (Frame).

• En effet cette structure de contrôle exécute :


 le sous-diagramme contenu dans l’étape « 0 »,
 puis celui de l’étape « 1 »,
 celui de l’étape « 2 »
 et ainsi de suite ... 90
Structures de programmation
Remarque :
• Au niveau de la représentation graphique, tous
les sous-diagrammes des différentes étapes sont
empilés les uns sur les autres, et seul celui dont
le N° est affiché en haut du cadre est visible.

• Il est indispensable d’introduire une variable


de séquence à chaque nouvelle séquence pour
permettre une transition entre les diverses
étapes.
91
Structures de programmation
Mises en garde :
National Instrument recommande d’éviter
d’utiliser les séquences empilées, car :
– elles masquent le code ;
– elles obligent la création de variables de
séquence.

92
Structures de programmation
2. Structure de contrôle : Condition (Case)

Valeur d’entrée

93
Structures de programmation
2. Structure de contrôle : Condition (Case)

94
Structures de programmation
2. Structure de contrôle : Condition (Case)
 Une structure de type condition possède un
ou plusieurs sous-diagrammes (ou
conditions), dont un seul s’exécute.

 La valeur câblée au terminal de sélection


(symbolisé par un « ? ») détermine la
condition à exécuter.

95
Structures de programmation
2. Structure de contrôle : Condition (Case)
Une condition peut être de type :
• Booléen : 2 sous-diagrammes sont associés aux
deux conditions Vrai (True) et Faux (False) ;
• Chaîne ;
• Numérique (Ent. / Réel) : des sous-diagrammes
sont associés aux différentes valeurs de l’entrée ;
• Enuméré ;
• Cluster d’erreur.
Le type dépend de l’objet câblé au terminal de sélection « ? ». 96
Structures de programmation
3. Structure : Evénement (Event)

97
Structures de programmation
3. Structure : Evénement (Event)

98
Structures de programmation
3. Structure : Evénement (Event)
• Cette structure attend qu’un événement
spécifié se produise pour exécuter une condition
appropriée pour gérer cet événement.
• Elle possède un ou plusieurs sous-
diagrammes, dont un seul s’exécute à la fois.
• Il est possible de placer la structure dans une
boucle While afin de gérer plusieurs
événements. 99
Structures de programmation
3. Structure : Evénement (Event)
Il faut câbler une valeur au terminal « Timeout »
pour spécifier le Nb. de millisecondes durant
lequel la structure attend qu’un événement se
produise.

Par défaut, la valeur est de -1, et il n’y a pas de


déclenchement (pas de « Timeout »).

100
Structures de programmation
4. Structure de contrôle : Boucle For (For Loop)

Terminal de décompte
(Nb. d’itérations à réaliser)

Indice de l’itérations
en cours (0 → N-1) 101
Structures de programmation
4. Structure de contrôle : Boucle For (For Loop)
Début

100
i=0
N = 100

Code
Non
i=N?
Oui
Code

i=i+1

Fin

102
Structures de programmation
4. Structure de contrôle : Boucle For (For Loop)

103
Structures de programmation
3. Structure de contrôle : Boucle For (For Loop)
• Il s’agit d’une structure classique « Pour » d’un
langage de programmation textuel avec une
valeur initiale 0 et une valeur finale (N-1) de
l’indice fixé par le terminal de décomptage N.

• La valeur du pas est fixée à 1 et l’indice


courant est disponible dans le terminal interne
appelé i.
104
Structures de programmation
3. Structure de contrôle : Boucle For (For Loop)
Afin de pouvoir mémoriser des valeurs
intermédiaires calculées lors des différentes
itérations de la boucle, on dispose de mémoires
locales, appelées registres à décalage (Shift
Register).

105
Structures de programmation
3. Structure de contrôle : Boucle For (For Loop)
Les registres à décalage permettent :

• de réaliser le stockage de variables calculées à


un instant donné (indice de boucle i) ;

• de conserver les valeurs précédentes d’une


variable (indice i-1, i-2, …).

106
Structures de programmation
5. Structure de contrôle : Boucle While (While
Loop)

107
Cette boucle exécute le code jusqu'à ce qu'une condition soit remplie.
Structures de programmation
5. Structure de contrôle : Boucle While (While
Loop)
Début

Code
Code
Condition
remplie ? Non
Oui

Fin

108
Cette boucle exécute le code jusqu'à ce qu'une condition soit remplie.
Structures de programmation
5. Structure de contrôle : Boucle While (While
Loop)

109
Structures de programmation
5. Structure de contrôle : Boucle While (While
Loop)

110
Structures de programmation
5. Structure de contrôle : Boucle While (While
Loop)

111
Structures de programmation
5. Structure de contrôle : Boucle While (While
Loop)
La structure répétition de type boucle While
correspond à une structure classique « Tant
que » d’un langage de programmation avec une
condition d’arrêt et un indice courant i
(disponible dans le terminal interne) variant par
pas de 1 en partant de 0.

112
Structures de programmation
5. Structure de contrôle : Boucle While (While
Loop)
L’arrêt d’exécution de la structure est fait sur
l’état d’une variable de type booléen :

– arrêt si la condition est Vraie lorsque le


terminal a l’aspect suivant (état par défaut) ;
– arrêt si la condition est Fausse lorsque le
terminal a l’aspect suivant
113
Structures de programmation
5. Structure de contrôle : Boucle While (While
Loop)
De façon identique à la structure boucle For, la
structure boucle While utilise :

 des registres à décalage pour une


mémorisation locale des données ;
 des tunnels d’E/S de données.

114
Structures de programmation
6. Structure de contrôle : Elément en place (In
Place Element Structure)

115
Structures de programmation
6. Structure de contrôle : Elément en place (In
Place Element Structure)
• Contrôle certaines opérations de LabVIEW
• Optimise l’utilisation de la mémoire
• Augmente les performances des VI

À utiliser avec un élément de données dans un


Tableau, ou un Cluster, ou un variant ou même
une Waveform, de manière à conserver les
données dans le même espace mémoire. 116
Fonctions associées aux diff.tes données

Nous allons nous limiter à l’étude des fonctions


de base du langage LabVIEW, correspondant aux
« instructions simples » associées aux différents
types de données.

Ainsi nous étudierons les six sous-palettes de la


palette Fonctions (Functions) :
Numérique, Booléen, Chaîne, Tableau, Cluster et
Comparaison.

117
Fonctions associées aux diff.tes données
Les 6 sous-palettes de la palette Fonctions
(Functions) sont :

1. Sous-palette Numérique (Numeric)


2. Sous-palette Booléen (Boolean)
3. Sous-palette Chaîne (String)
4. Sous-palette Tableau (Array)
5. Sous-palette Cluster (Cluster)
6. Sous-palette Comparaison (Comparison)
118
Fonctions associées aux diff.tes données
1. Sous-palette Numérique (Numeric)

119
Fonctions associées aux diff.tes données
1. Sous-palette Numérique (Numeric)
Elle intègre toutes les fonctions de base pour
traiter les données de type numérique :
• Opérateurs et fonctions de base ;
• Opérateurs pour des données numériques de type tableau ;
• Opérateur programmable ;
• Opérateurs de partie entière ;
• Fonction « générateur de nombre aléatoire » ;
• Les constantes associées à ce type de données ;
• Mise à l’échelle des grandeurs physiques ;
• Les manipulations de donnée.
120
Fonctions associées aux diff.tes données
1. Sous-palette Numérique (Numeric)
Elle donne accès à 6 nouvelles sous-palettes
(icônes de la colonne droite) qui proposent :
• des fonctions de conversion de type de données ;
• des fonctions de manipulation de données ;
• des fonctions trigonométriques ;
• des fonctions logarithmiques ;
• des fonctions de calcul avec des nombres complexes ;
• des constantes universelles.
121
Fonctions associées aux diff.tes données
2. Sous-palette Booléen (Boolean)

122
Fonctions associées aux diff.tes données
2. Sous-palette Booléen (Boolean)
Cette sous-palette intègre toutes les fonctions de
base pour traiter les données de type booléen.
Les principales fonctions sont les suivantes :
– Opérateurs et fonctions de base ;
– Opérateur programmable ;
– Opérateurs pour des données booléennes de
type tableau ;
– Opérateurs de conversion ;
– Constantes associées à ce type de données. 123
Fonctions associées aux diff.tes données
3. Sous-palette Chaîne (String)

124
Fonctions associées aux diff.tes données
3. Sous-palette Chaîne (String)
Cette sous-palette intègre toutes les fonctions de
base pour traiter les données de type chaîne de
caractères :
– Opérateurs de base ;
– Opérateurs de conversion majusc./minusc. ;
– Opérateurs de formatage ;
– Constantes associées à ce type de données ;
– Extension ... 125
Fonctions associées aux diff.tes données
3. Sous-palette Chaîne (String)
Elle donne accès à 4 nouvelles sous-palettes
spécifiques (icônes de la colonne droite) qui
proposent :
– des fonctions avancées de traitement de
chaîne de caractères ;
– des fonctions de conversion entre chaîne
de caractères et nombre ;
– tableau ou chemin ;
– des fonctions de formatage de données. 126
Fonctions associées aux diff.tes données
4. Sous-palette Tableau (Array)

127
Fonctions associées aux diff.tes données
4. Sous-palette Tableau (Array)
Cette sous-palette intègre toutes les fonctions
de base pour traiter les données de type tableau
(ensemble de données homogènes en type) :
– Opérateurs de base ;
– Opérateurs de conversion ;
– Constantes associées à ce type de données ;
– Opérateurs divers.
128
Fonctions associées aux diff.tes données
5. Sous-palette Cluster (Cluster)
• Le cluster est un ensemble de données indépendantes
et homogènes en type, ou hétérogènes en type.
• Les clusters regroupent des éléments de données de
types différents.
•Les clusters sont semblables aux enregistrements ou
aux structures des langages de programmation textuels :
– "Record" en Pascal et ADA ;
– "Struct" en C
129
Fonctions associées aux diff.tes données
Utilité
• Le fait de rassembler plusieurs éléments de
données dans un Cluster, permet de diminuer le
Nb de fils de liaison sur le Diagramme tout en
réduisant le Nb de Terminaux de Connecteurs
requis par les sous-VIs.

130
Fonctions associées aux diff.tes données
5. Sous-palette Cluster (Cluster)

131
Fonctions associées aux diff.tes données
5. Sous-palette Cluster (Cluster)

132
Fonctions associées aux diff.tes données
5. Sous-palette Cluster (Cluster)
Cette sous-palette intègre toutes les fonctions de
base pour traiter les données de type cluster :
– Opérateurs de base ;
– Opérateurs divers ;
– Opérateurs de conversion ;
– Constantes associées à ce type de données ;
– Les données de type variant ;
– Les manipulations des données variant en
particulier en utilisant les objets ActiveX. 133
Fonctions associées aux diff.tes données
6. Sous-palette Comparaison (Comparison)

134
Fonctions associées aux diff.tes données
6. Sous-palette Comparaison (Comparison)
Cette sous-palette intègre toutes les fonctions
permettant de réaliser des comparaisons très
variées :
– Opérateurs de base ;
– Opérateurs de comparaison d’une donnée
de type numérique (scalaire, tableau ou
cluster) ;
– Opérateurs divers ;
– Tests du type de données. 135
Gestion du temps

136
Gestion du temps
Sous-palette Informations temporelles
Cette sous-palette Informations temporelles
(Timing) intègre des fonctions permettant de
gérer le temps d’une manière absolue ou
relative.

Les principales fonctions sont les suivantes :


 Opérateurs de gestion d’un temps relatif
 Opérateurs de gestion d’un temps absolu
137
Gestion du temps
Sous-palette Informations temporelles

Opérateurs de gestion d’un temps relatif :

– Compteur d’impulsions d’horloge m(s)


(Tick Count (ms)) ;
– Attente en ms
(Time Delay (ms)) ;
– Attendre un multiple de ms
(Wait Until Next ms Multiple).
138
Gestion du temps
Sous-palette Informations temporelles
Opérateurs de gestion d’un temps absolu :
– Formater la chaîne de date/heure
(Format Date/Time String) ;
– Chaîne de date/heure
(get Date/Time In Seconds) ;
– Date/heure en secondes
(Date/Time To Seconds) ;
– Secondes en date/heure
(Seconds To Date/Time). 139
Mémorisation des données

Nous allons étudier ici trois types d’éléments


permettant de réaliser la fonction mémorisation
momentanée de données, à savoir :

1. les registres à décalage,


2. les variables globales,
3. les variables locales.

140
Mémorisation des données
1. Registres à décalage
• Associés aux structures For et While, sont
principalement utilisés comme mémoire locale
permettant d’utiliser les valeurs calculées dans
des itérations précédentes.

• Ils doivent être initialisés pour obtenir un


fonctionnement correct du programme.

141
Mémorisation des données
1. Registres à décalage

142
Mémorisation des données
1. Registres à décalage

143
Mémorisation des données
1. Registres à décalage

144
Utilisation du Timer

145
Utilisation du Timer

146
Générateurs de Nb. aléatoires
Générateur simple

147
Générateurs de Nb. aléatoires
Générateur évolué

148
Compound arithmetic

149
Fichiers

150
Fichiers
La sous-palette E/S sur Fichiers (File I/O) intègre
toutes les fonctions de base pour gérer des
fichiers. Les principales fonctions sont :
• Gestion de fichiers compatibles avec le format
tableur ;
• Gestion de données numériques dans un fichier
ASCII ;
• Gestion des fichiers binaires de type TDMS ;
• Fonction de gestion « bas niveau » des fichiers ;
• Fonction de gestion avancée. 151
Fichiers
Elle donne accès à de nouvelles sous-palettes qui
proposent :

• Des constantes liées aux fichiers (chemin,


refnum, etc.) ;
• Des fonctions de configuration de fichiers ;
• Des fonctions avancées de gestion des fichiers.

152
Fichiers

153
Boîte de calcul

Cet élément de programmation se présente


comme les autres structures de LabVIEW ; mais
elle contient des lignes de formules de calculs à
la place des diagrammes.

Ces formules, délimitées par un « ; », sont


écrites avec une syntaxe identique à celle de la
plupart des langages de programmation
textuels.
154
Boîte de calcul

155
Boîte de calcul

156
Boîte de calcul
Intérêt

157
Boîte de calcul
Fonctions des boîtes de calcul et des nœuds d'expression

Fonction LabVIEW
Fonction Description
correspondante
abs(x) Valeur absolue Renvoie la valeur absolue de x.
acos(x) Arc cosinus Calcule l'arc cosinus de x en radians.
acosh(x) Arc cosinus hyperbolique Calcule l'arc cosinus hyperbolique de x.
asin(x) Arc sinus Calcule l'arc sinus de x en radians.
asinh(x) Arc sinus hyperbolique Calcule l'arc sinus hyperbolique de x.
atan(x) Arc tangente Calcule l'arc tangente de x en radians.

atan2(y,x) Arc tangente (2 entrées) Calcule l'arc tangente de y/x en radians.

atanh(x) Arc tangente hyperbolique Calcule l'arc tangente hyperbolique de


158
x.
Boîte de calcul
Fonctions des boîtes de calcul et des nœuds d'expression

Fonction LabVIEW
Fonction Description
correspondante
Arrondit x à la valeur entière supérieure
ceil(x) Arrondir vers +l'infini
(plus petit entier x.)
Calcule le cosinus de x, x étant exprimé en
cos(x) Cosinus
radians.
cosh(x) Cosinus hyperbolique Calcule le cosinus hyperbolique de x.
Calcule la cotangente de x (1/tan(x)), avec x
cot(x) Cotangente
en radians.
Calcule la cosécante de x (1/sin(x)), avec x
csc(x) Cosécante
en radians.
exp(x) Exponentielle Calcule la valeur de e élevé à la puissance x.
159
Boîte de calcul
Fonctions des boîtes de calcul et des nœuds d'expression

Fonction LabVIEW
Fonction Description
correspondante
Calcule la valeur de e élevé à la puissance x
expm1(x) Exponentielle (Arg) – 1
et soustrait 1 du résultat ((e^x) – 1).
Réduit x à la valeur entière inférieure (plus
floor(x) Arrondir à l'infini
grand entier x.)
getexp(x) Mantisse et exposant Renvoie l'exposant de x.
getman(x) Mantisse et exposant Renvoie la mantisse de x.
Arrondir à l'entier le
int(x) Arrondit x à l'entier le plus proche.
plus proche
Arrondit x à l'entier le plus proche compris
intrz(x) —
entre x et zéro.
160
Boîte de calcul
Fonctions des boîtes de calcul et des nœuds d'expression

Fonction LabVIEW
Fonction Description
correspondante
Calcule le logarithme népérien de x (en base
ln(x) Logarithme népérien
e).
Logarithme népérien
lnp1(x) Calcule le logarithme népérien de (x + 1).
(Arg +1)
log(x) Logarithme en base 10 Calcule le logarithme de x (en base 10).
log2(x) Logarithme en base 2 Calcule le logarithme de x (en base 2).
Compare x et y et renvoie la valeur la plus
max(x,y) Max. et min.
grande.
Compare x et y et renvoie la valeur la plus
min(x,y) Max. et min.
petite.
161
Boîte de calcul
Fonctions des boîtes de calcul et des nœuds d'expression

Fonction LabVIEW
Fonction Description
correspondante
Calcule le reste de x/y, lorsque le quotient est
mod(x,y) Quotient et Reste
arrondi vers –l'infini.
pow(x,y) Puissance de X Calcule x élevé à la puissance y.
Nombre aléatoire Produit un nombre à virgule flottante entre 0 et
rand( )
(0 – 1) 1 exclusivement.
Calcule le reste de x/y, lorsque le quotient est
rem(x,y) Quotient et Reste
arrondi à l'entier le plus proche.
Calcule la sécante de x, où x est exprimé en
sec(x) Sécante
radians (1/cos(x)).
Renvoie 1 si x est supérieur à 0, renvoie 0 si x est
sign(x) Signe
égal à 0 et renvoie –1 si x est inférieur à 0.
162
Boîte de calcul
Fonctions des boîtes de calcul et des nœuds d'expression

Fonction LabVIEW
Fonction Description
correspondante
Calcule le sinus de x, x étant exprimé en
sin(x) Sinus
radians.
Calcule le sinus de x divisé par x (1/sin(x)/x),
sinc(x) Sinc
avec x en radians.
sinh(x) Sinus hyperbolique Calcule le sinus hyperbolique de x.
sizeOfDim Renvoie la taille de la dimension di spécifiée

(ary,di) pour le tableau ary.
sqrt(x) Racine carrée Calcule la racine carrée de x.
tan(x) Tangente Calcule la tangente de x, avec x en radians.
Tangente
tanh(x) Calcule la tangente hyperbolique de x. 163
hyperbolique
Boîte de calcul

164
Les Graphes

165
Les Graphes
Indicateurs de type Graphe :
La sous-palette Graphe (Graph) de la palette Commandes
(Controls) contient neuf graphes de base qui sont :

1. Graphe déroulant (Waveform Chart)


2. Graphe (Waveform Graph)
3. Graphe XY (XY Graph)
4. Graphe déroulant d’intensité (Intensity Chart)
5. Graphe d’intensité (Intensity Graph)
6. Graphe numérique (Digital Waveform Graph)
7. Graphe 3D comprenant le Graphe 3D de surface, le Graphe
3D paramétrique et le Graphe 3D de courbe
166
Les Graphes
1. Graphe déroulant (Waveform Chart)
Cet indicateur permet de tracer des courbes
comme sur un enregistreur papier à défilement
en fonction du temps.

167
Les Graphes
2. Graphe (Waveform Graph)
Cet indicateur permet de tracer des courbes
paramétriques à la manière d’un oscilloscope.

168
Les Graphes
3. Graphe XY (XY Graph)
Cet indicateur permet de tracer des courbes
paramétriques à la manière d’un
oscilloscope utilisé en « mode X-Y ».

169
Les Graphes
4. Graphe déroulant d’intensité (Intensity Chart)
Cet indicateur permet de tracer des courbes 3D dans
un plan grâce à l’emploi de couleurs en reproduisant le
fonctionnement d’un enregistreur papier à défilement.

170
Les Graphes
5. Graphe d’intensité (Intensity Graph)
Cet indicateur permet de tracer des courbes 3D dans un plan grâce à l’emploi
de couleurs en reproduisant le fonctionnement d’un oscilloscope.
Dans le cas de cet indicateur :
- les indices Ligne et Colonne de l’élément indiquent sa position dans le plan,
- la Valeur de l’élément avec une Couleur codée entre 0 et 255.

171
Les Graphes
6. Graphe numérique (Digital Waveform Graph)
Cet indicateur permet de tracer des courbes de
variables booléennes à la manière d’un
enregistreur numérique.

172
Les Graphes
7. Graphes 3D

A noter que ces derniers objets sont disponibles


uniquement dans l’environnement Windows.

173
Les Graphes
7. Graphes 3D

174

Vous aimerez peut-être aussi