Initiation à la Programmation Graphique
Filière: Génie Électrique
Pr. Otman JAI
Department of Electrical & Computer Engineering
Higher School of Technology
Sidi Mohamed Ben Abdellah University
Fez, Morocco
[Link]@[Link]
12 avril 2021
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 1 / 75
Sommaire
1 Introduction
Programmation
Algorithme
Qu’est-ce que LabVIEW ?
Langage G
Environnement LabVIEW
2 Structures de contrôle
Concept de boucles et de structures
3 Chaines de caractères, Tableaux et Clusters
Chaines de caractères
Tableaux
Les clusters
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 2 / 75
Programmation
Un odinateur en fonctionnement réalise des tâches pour lesquelles il a
été programmé.
Figure 1 – Principe de la Programmation.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 3 / 75
Programmation
Le programme est écrit dans un langage de programmation, en
respectant une syntaxe propre au langage choisi.
Figure 2 – Principe de la Compilation.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 4 / 75
Programmation
Exemples de langages de programmation :.
Figure 3 – Exemple.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 5 / 75
Programmation
La majorité des programmes actuels sont écrits dans des langages de
haut niveau, comme le C, le Java, le C++, l’Erlang, le PHP, etc.
Mais ces langages ne sont pas compréhensibles par le processeur, qui
ne comprend que le langage machine.
Les codes sources écrits dans des langages de haut niveau doivent
donc être traduit en langage machine par la chaine de compilation.
A l’heure actuelle, la majorité des compilateurs ne traduit pas
directement un langage de haut niveau en langage machine, mais
passe par un langage intermédiaire : l’assembleur.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 6 / 75
Programmation
(a) Un (b) Le code assembleur. (c) Le
programme écrit programme en
dans un langage langage
de haut niveau machine.
(le C, en
l’occurrence).
Figure 4 – La chaine de compilation
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 7 / 75
Algorithme
Programmer, c’est écrire en respectant la syntaxe d’un langage, la
suite des tâches devant être exécutées par l’ordinateur, de façon
logique et structurée.
On ne se lance pas à écrire un programme sans avoir réfléchi au
problème posé, et à la façon de le résoudre. Il faut élaborer un
Algorithme.
Algorithme : Suite d’instructions qui une fois exécutées correctement
conduit à un résultat donnée.
Algorithmique : Science qui étudie la structure logique des
programmes.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 8 / 75
Algorithme
L’algorithme est indépendant du langage :
L’algorithme se ramène à une combinaison de 4 familles d’instructions :
1 Affectation de variables.
2 Lecture & Écriture.
3 Tests : Si- Alors - FinSi ; Si - Alors - Sinon - FinSi.
4 Boucles : Pour- Pas - FinPour ; TantQue -FinTantQue ; Répéter -
Jusqu’à.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 9 / 75
Qu’est-ce que LabVIEW ?
LabVIEW (contraction de Laboratory Virtual Instrument Engineering
Workbench).
Logiciel de la société National Instruments (NI) créé en 1985.
Outil de développement d’applications d’instrumentation plus
particulièrement destiné à l’acquisition des données de mesure et à
leur traitement.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 10 / 75
Qu’est-ce que LabVIEW ?
Environnement de développement complet qui contient tous les outils
nécessaires aux ingénieurs et aux scientifiques pour concevoir et
déployer des systèmes de contrôle et de mesure.
Il utilise un langage de programmation graphique appelé : Langage
G (Créé à l’origine sur Apple Macintosh en 1986).
La version utilisée en TP est la Version 20.0.1 (64-bit) sous MacOSX
ou Windows.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 11 / 75
Qu’est-ce que LabVIEW ?
DEFINITIONS ET VOCABULAIRE : LabVIEW permet l’acquisition de
données par l’intermédiaire de diverses connectiques comme :
PCI (Peripheral Component Interconnect).
CompactFlash.
LAN (Local Area Network) et Ethernet.
Wi-Fi (IEEE 802.11 b/g/n) (Wireless Fidelity).
Bluetooth.
USB (Universal Serial Bus).
Série (RS 232, RS 449, RS 422, RS 423, RS 485).
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 12 / 75
Qu’est-ce que LabVIEW ?
Analyse de données
LabVIEW inclut des outils pour l’analyse des données :
Mathématiques : Interpolation, statistiques (moyennes, écart-type,
etc.), équations différentielles.
Traitement du signal : Convolution, analyse spectrale,
transformées de Fourier, etc.
Traitement d’images : Masque, détection de contours, profils,
manipulations de pixels, etc.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 13 / 75
Qu’est-ce que LabVIEW ?
Présentation de données
LabVIEW inclut des outils d’aide à la présentation (communication) des
données :
Graphiques, tableaux, images, génération de rapport, etc..
Internet : outils de publication web, serveur datasocket, TCP/IP,
envoie d’alertes par email, etc..
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 14 / 75
Langage G
Le langage G se base sur le principe du flot (flux) de données,
auquel ont été rajoutées des structures de programmation afin
d’obtenir un langage de programmation complet.
Un diagramme flot de données permet d’exprimer une fonction
de manière graphique.
Figure 5 – Exemple de diagramme flot de données.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 15 / 75
Langage G
Un tel diagramme est composé de :
Terminaux : ce sont les entrées (rectangle gras) et les sorties
(rectangle fin) de la fonction,
Figure 6 – Langage G : Terminaux.
Respectivement nommés par LabVIEW comme terminaux de ‘contrôles’
(accessibles en écriture) et terminaux ‘indicateurs’ (accessibles en lecture).
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 16 / 75
Langage G
Noeuds : ils définissent les opérations à effectuer. Nous verrons plus
loin que ces opérations peuvent être des fonctions déjà mise au point.
Ces noeuds sont représentés par un carré contenant une image qui sert
à illustrer leur fonctionnalité,
Figure 7 – Langage G : Noeuds.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 17 / 75
Langage G
Arcs orientés : ils servent à relier les noeuds et les terminaux entre
eux pour indiquer le chemin des données. Par convention, ces arcs sont
orientés de gauche à droite,
Figure 8 – Langage G : Arcs orientés.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 18 / 75
Langage G
Jetons : ils représentent les données transitant sur les arcs. Ils sont
représentés par des points.
Figure 9 – Langage G : Jetons.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 19 / 75
Langage G
Règles d’évolution
Des règles d’évolution permettent de faire évoluer un diagramme flot de
données :
1 A l’initialisation, les terminaux d’entrée produisent chacun un jeton,
2 Lorsqu’un nœud possède un jeton sur chacun de ces arcs entrant, et
seulement dans ce cas, le nœud peut être exécuté,
3 Chaque jeton en entrée est consommé et le nœud produit un jeton sur
chacun de ses arcs sortants.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 20 / 75
Langage G
Notion d’Encapsulation
L’encapsulation est un mécanisme consistant à rassembler les
données et les méthodes au sein d’une structure en cachant
l’implémentation de l’objet, c’est-à-dire en empêchant l’accès aux
données par un autre moyen que les services proposés.
Un diagramme flot de données peut être encapsulé afin d’être réutilisé
en tant que nœud ou fonction, par d’autres diagrammes flot de
données.
Les terminaux du diagramme deviennent alors les entrées/sorties du
nœud.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 21 / 75
Langage G
Notion d’Encapsulation
Figure 10 – Notion d’Encapsulation.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 22 / 75
Langage G
Exemple
Le diagramme de la figure suivante exprime le calcul de :
d = (a + b) ∗ (b − c) et e = b − c.
(a) Diagramme flot de données. (b) Encapsulation.
Figure 11 – Exemple.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 23 / 75
Environnement LabVIEW
Structure d’un Programme LabVIEW
LabVIEW étant plus particulièrement destiné à l’instrumentation, un
programme LabVIEW apparaît constitué comme un appareil de mesure :
Une face avant : C’est l’interface avec l’utilisateur.
Un diagramme : Il correspond aux circuits internes de l’appareil et
constitue le cœur du programme.
(a) Front Panel (b) Block Diagram (Diagramme).
(Face-Avant).
Figure 12 – Structure d’un Programme LabVIEW.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 24 / 75
Environnement LabVIEW
Les barres d’outils
Figure 13 – Barres d’outils de LabVIEW.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 25 / 75
Environnement LabVIEW
Palette de commande de la face-avant (Controls Palette)
Dans cette palette nous trouverons tous les éléments (commandes et
indicateurs) nécessaires à la création de la face-avant d’une application.
Figure 14 – Controls Palette.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 26 / 75
Environnement LabVIEW
Palette de fonctions du Diagramme (Functions Palette)
Dans cette palette nous trouverons tous les éléments (fonctions de base, VI
Express, etc.) nécessaires à la création du code graphique (Block Diagram).
Figure 15 – Functions Palette.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 27 / 75
Environnement LabVIEW
Palette d’outils (Tool Palette)
Les liaisons sont réalisées à l’aide de la bobine de la palette d’outils
disponible par le menu Fenêtre/palette d’outils (Windows/tools palette).
Figure 16 – Tool Palette.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 28 / 75
Environnement LabVIEW
Variables
Dans un langage de programmation, une variable est un espace de
stockage pour un résultat.
les possibilités d’une variable sont intimement liées au langage de
programmation auquel on fait référence. Par exemple une variable en
C++ aura sept caractéristiques :
1 Son nom, c’est-à-dire sous quel nom est déclarée la variable ;
2 Son type, c’est la convention d’interprétation de la séquence de bits
qui constitue la variable. Le type de la variable spécifie aussi la
longueur de cette séquence (8 bits, 32 bits, 64 bits) ;
3 Sa valeur Sa valeur, c’est la séquence de bits elle-même, elle ne peut
varier au cours du temps si on utilise le mot-clef const ;
4 Son adresse, c’est l’endroit dans la mémoire où elle est stockée ;
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 29 / 75
Environnement LabVIEW
Variables
5 Sa portée, c’est la portion de code source ou elle accessible, par
exemple, la portée d’une variable (non globale) en C s’entend de sa
définition à la fin du bloc où elle est définie ;
6 Sa visibilité, c’est un ensemble de règles qui fixe qui peut utiliser la
variable (exemple : mots-clefs public, private, protected, ou le
masquage d’une variable par une autre) ;
7 Sa durée de vie, c’est le temps d’exécution pensant laquelle la
variable existe. En C et en C++ une variable contenue dans un bloc
de code limité par des accolades « {} » possède la durée de vie
correspondant au temps d’exécution de ce bloc. Il ne faut pas
confondre la durée de vie d’une variable locale et sa visibilité, ou sa
portée : une variable hors de portée (ex : masquée par une autre),
existe toujours.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 30 / 75
Environnement LabVIEW
Variables
LabVIEW propose quatre types de base pour les variables :
1 Le type U8 qui représente un entier non signé codé sur 8 bits (on peut
spécifier d’autres codages) ;
2 Le type DBL qui représente un nombre flottant ;
3 Le type TF qui est une valeur booléenne (True – False) ;
4 Le type intitulé ABC servant à représenter les chaînes de caractères.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 31 / 75
Environnement LabVIEW
Variables
Le tableau suivant donne un exemple de terminaux associés aux quatre
types de bases.
Figure 17 – Quelques Terminaux de LabVIEW.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 32 / 75
Environnement LabVIEW
Quelques remarques sur les Variables
Pour les variables numériques (entiers et doubles), LabVIEW offre la
possibilité de spécifier différents types de codages de l’informations
(signé, non signé, sur 8 bits..).
Il existe un type qui n’apparaît pas dans ce tableau. C’est le type
construit qui sert à représenter et à rassembler plusieurs valeurs de
types différents dans une variable (comme une structure en C).
Le type construit possède une représentation de couleur marron et est
aussi nommé Cluster dans la terminologie LabVIEW.
Les variables peuvent être : locales, locales de séquence ou globales.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 33 / 75
Environnement LabVIEW
Quelques remarques sur les Variables
LabVIEW met aussi à disposition des structures de données qui se basent
sur la notion de tableaux :
1 Le type scalaire, qui représente une données dans les types de base et
est considéré comme un tableau de dimension 0,
Figure 18 – Le type scalaire.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 34 / 75
Environnement LabVIEW
Quelques remarques sur les Variables
LabVIEW met aussi à disposition des structures de données qui se basent
sur la notion de tableaux :
1 Le type vecteur qui est un tableau de dimension 1,
Figure 19 – Le type Vecteur.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 35 / 75
Environnement LabVIEW
Quelques remarques sur les Variables
LabVIEW met aussi à disposition des structures de données qui se basent
sur la notion de tableaux :
1 Et enfin le type tableau qui représente un tableau de dimension n.
Figure 20 – Le type Tableau.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 36 / 75
Environnement LabVIEW
Les types de données
Figure 21 – Les types de données.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 37 / 75
Concept de boucles et de structures
Bibliothèque boucles et structures
Figure 22 – Bibliothèque boucles et structures.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 38 / 75
Concept de boucles et de structures
Pour permettre une programmation productive, Labview propose
l’utilisation de structures de contrôles au sein d’un diagramme. Nous allons
ici présenter ces différentes structures et leur utilisations.
Les boucles permettent l’exécution d’un programme, d’un
sous-programme ou d’une partie de programme jusqu’à une action ou
une valeur définie par l’opérateur. Elles sont identiques à celles mises
en jeu en programmation en langage C par exemple.
Les structures contrôlent le flux de données dans un V.I. Elles
permettent d’organiser, de séquencer ou de conditionner des éléments
d’un V.I. un V.I. complet.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 39 / 75
Concept de boucles et de structures
Bibliothèque boucles et structures
Figure 23 – Bibliothèque boucles et structures.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 40 / 75
Concept de boucles et de structures
la boucle for : : : For Loop
La boucle For (For Loop) exécute son sous-diagramme N fois, N étant la
valeur câblée au terminal (N) de décompte de la boucle. Le terminal
d’itération (i) fournit le nombre d’itérations actuel de la boucle, qui varie
de 0 à N − 1.
Figure 24 – For Loop.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 41 / 75
Concept de boucles et de structures
la boucle for : : : For Loop
La boucle For comporte les éléments suivants :
N : nombre de fois que la boucle doit s’exécuter (entrée) ;
i : indice de boucle (sortie) ; cette valeur s’incrémente
automatiquement à chaque exécution de la boucle, à partir de 0 ;
Terminal condition : permet d’interrompre l’exécution de la boucle sur
une condition (optionnel) ;
P : nombre de cœurs de processeurs pouvant exécuter la boucle en
parallèle (optionnel).
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 42 / 75
Concept de boucles et de structures
la boucle for : : : Exemple
Figure 25 – For Loop Example.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 43 / 75
Concept de boucles et de structures
la boucle While : : : While Loop
La boucle While répète le code contenu dans son sous-diagramme
jusqu’à ce qu’une condition spécifique se produise.
Une boucle While s’exécute toujours au moins une fois.
Figure 26 – While Loop.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 44 / 75
Concept de boucles et de structures
la boucle While : : : Exemple
Figure 27 – While Loop Example : Boucle Infinie.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 45 / 75
Concept de boucles et de structures
Cadencement des boucles
Pour laisser du temps au processeur de traiter les différentes tâches
actives simultanément (par exemple le programme et l’interface
utilisateur), il est important de cadencer les boucles avec des fonctions
d’attente.
Pendant l’exécution de la fonction d’attente, la boucle est « en
sommeil », et le processeur peut traiter d’autres processus.
Les fonctions permettant de cadencer et temporiser les boucles se
trouvent dans la palette Informations Temporelles, et sont :
1 Attendre (Wait) (ms) : attente exacte du temps demandé ;
2 Attendre un multiple de ms (Wait Until Next ...) : attente jusqu’à une
synchronisation avec l’horloge du PC ; la durée de la première itération
de la boucle est inférieure à celle demandée afin de permettre cette
synchronisation. Cette fonction peut être utile pour synchroniser 2
boucles via l’horloge du PC.
3 Temps d’attente (Time Delay) : similaire à la fonction Attendre (ms),
mais le temps est ici paramétré en secondes
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 46 / 75
Concept de boucles et de structures
Cadencement des boucles
Figure 28 – Cadencement des boucles.
La fonction Temps écoulé (Elapsed Time) non pas pour cadencer une boucle mais
pour surveiller la durée d’exécution d’un processus itératif géré par une boucle.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 47 / 75
Concept de boucles et de structures
Structure Condition ou structure Select (Case Structure)
La structure condition contient un ou plusieurs sous-diagrammes (les
"conditions"), dont un exactement s’exécute quand la structure
s’exécute.
La valeur câblée au sélecteur de condition détermine la condition à
exécuter.
Figure 29 – Structure Condition.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 48 / 75
Concept de boucles et de structures
Composantes d’une structure Condition
1 Étiquette du sélecteur — Affiche la ou les valeurs pour lesquelles la
condition associée s’exécute.
2 Sous-diagramme (condition) — Contient le code qui s’exécute quand
la valeur câblée au sélecteur de condition correspond à la valeur qui
apparaît dans l’étiquette du sélecteur.
3 Sélecteur de condition — Sélectionne la condition à exécuter selon la
valeur des données en entrée.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 49 / 75
Concept de boucles et de structures
Case Structue : Exemple
Ici on veut réaliser le calcul d’une racine carrée d’un nombre. On teste d’abord
que celui-ci n’est pas inférieur à 0 auquel cas on avertira l’utilisateur par un
message d’erreur.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 50 / 75
Concept de boucles et de structures
Registres à décalage : : Shift Register
Transfert de valeurs entre les itérations d’une boucle : Utilisez des
registres à décalage lorsque vous voulez passer des valeurs d’itérations
précédentes d’une boucle à l’itération suivante.
Un registre à décalage apparaît sous la forme d’une paire de terminaux
directement à l’opposé l’un de l’autre sur les côtés verticaux du cadre
de la boucle :
1 Le terminal de droite contient une flèche vers le haut et stocke les
données à la fin d’une itération.
2 LabVIEW transfère les données stockées dans le terminal de droite du
registre à décalage au terminal de gauche.
3 Ensuite, la boucle utilise les données du terminal de gauche comme
valeurs initiales pour l’itération suivante.
Ce processus continue jusqu’à ce que toutes les itérations de la boucle
s’exécutent. Après l’exécution de la boucle, le terminal sur le côté
droit de la boucle renvoie la dernière valeur stockée dans le registre à
décalage.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 51 / 75
Concept de boucles et de structures
Registres à décalage : : Shift Register
Figure 32 – Shift Register : Example.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 52 / 75
Concept de boucles et de structures
Structure séquence (Flat Sequence) : Exécution de sections de code en séquence
Structure Séquence contient un ou plusieurs sous-diagrammes, ou
étapes, qui s’exécutent dans l’ordre séquentiel.
Dans chaque étape d’une structure Séquence, comme dans le reste du
diagramme, la dépendance des données détermine l’ordre d’exécution
des nœuds.
Il existe deux types de structures Séquence :
La structure Séquence déroulée.
La structure Séquence empilée.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 53 / 75
Concept de boucles et de structures
Structure séquence (Flat Sequence) : Exécution de sections de code en séquence
La structure Séquence déroulée
La structure Séquence déroulée, représentée ci-après, exécute des
étapes de gauche à droite quand toutes les valeurs de données câblées
à une étape sont disponibles.
Les données quittent chaque étape lorsque celle-ci finit de s’exécuter.
Ceci signifie que l’entrée d’une étape peut dépendre de la sortie d’une
autre étape.
Lorsque vous ajoutez ou supprimez des étapes dans une structure
Séquence déroulée, la structure se redimensionne automatiquement.
Figure 33 – Structure Séquence déroulée.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 54 / 75
Concept de boucles et de structures
Structure séquence (Flat Sequence) : Exécution de sections de code en séquence
Structure Séquence empilée
La structure Séquence empilée, représentée ci-après, empile les étapes,
si bien que vous ne pouvez voir qu’une étape à la fois, et exécute
l’étape 0, puis l’étape 1, et ainsi de suite, jusqu’à la dernière étape.
La structure Séquence empilée ne renvoie des données qu’après
l’exécution de la dernière étape.
Utilisez la structure Séquence empilée pour prendre moins d’espace sur
le diagramme.
Figure 34 – Structure Séquence empilée.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 55 / 75
Concept de boucles et de structures
Structure séquence (Flat Sequence) : Exécution de sections de code en séquence
Figure 35 – Flat Sequence : Example.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 56 / 75
Chaines de caractères
Introduction
Une chaîne de caractères est une suite de caractères ASCII qui est le
code le plus répandu pour tous les caractères alphanumériques
(American Standard Code for Information Interchange).
Une chaine de caractère n’est pas uniquement utilisée pour la
transmission et ou le traitement de messages textuels, mais aussi pour
la communication série de données comprenant entre autres des
valeurs numériques.
(a) String & Path. (b) Modes
d’affichage.
Pr. Otman JAI (EST-Fès) Figure 36 – Exemple.
Initiation à la Programmation Graphique 12 avril 2021 57 / 75
Chaines de caractères
Fonctions de Manipulation
Dans le bloc Diagramme, plusieurs fonctions sont disponibles dans la
palette "String" pour la manipulation des chaînes :
Figure 37 – Manipulation des chaines de caractères.
Dans certains cas (par exemple, pour communiquer avec un
instrument via le port série) il est nécessaire d’avoir comme séparateur
décimal un point et non une virgule. Il faut donc ajouter le format %. ;
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 58 / 75
Chaines de caractères
Exemple 1 : Formatage d’une chaine avec le formatage par défaut %s %f
Figure 38 – Formatage d’une chaine de caractères avec le formatage par défaut
%s %f.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 59 / 75
Chaines de caractères
Exemple 2 : Formatage d’une chaine avec le formatage personnalisé %s %.2f %.2s
Figure 39 – Formatage d’une chaine de caractères avec le formatage personnalisé
%s %.2f %.2s.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 60 / 75
Chaines de caractères
Exemple 3 : Balayage d’une chaine ainsi que la récupération d’une sous-chaine
Figure 40 – Balayage d’une chaine ainsi que la récupération d’une sous-chaine.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 61 / 75
Tableaux
Définition
Un tableau (Array) est un ensemble d’éléments de même type
(integer, real, boolean, etc...), ordonnés, de dimension définie et de
taille variable.
Les différents éléments du tableau (Array) sont alors repérés par un
indice (index) : Tab[0], Tab[1], ..., Tab[i], ..., Tab[N − 1].
Ce type de données existe dans la plupart des langages (Fortran, C,
Pascal, . . . ), mais les contrôleurs et indicateurs Tableau rendent ici la
manipulation et l’affichage beaucoup plus aisés que dans ces langages.
L’utilisation de l’objet Tableau est recommandée avec LabVIEW, car le
langage G possède des opérateurs et fonctions polymorphes travaillant
sur les tableaux aussi bien que sur leurs éléments.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 62 / 75
Tableaux
Tableaux dans labVIEW
Quand on dépose le tableau sur la face avant, il est vide. Il convient
donc de le remplir à l’aide du type de variable choisi : tableau de
variables numériques, tableau de booléens, tableaux de chaînes de
caractères etc. . . .
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 63 / 75
Tableaux
Opératios sur les Tableaux
En plus des opérations arithmétiques classiques, il existe des fonctions
spéciales :
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 64 / 75
Tableaux
Opératios sur les Tableaux dans labVIEW
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 65 / 75
Tableaux
Indexation en entrée des Tableaux
Figure 41 – Indexation en entrée.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 66 / 75
Tableaux
Indexation en entrée des Tableaux : Exemple
Figure 42 – Exemple.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 67 / 75
Tableaux
Indexation en sortie des Tableaux
Figure 43 – Indexation en sortie.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 68 / 75
Clusters
Définition
Les clusters ou agrégats sont des objets pouvant contenir des éléments
de différents types, ordonnés de 0 à n − 1.
Lorsqu’on supprime un élément du cluster, l’ordre se réajuste
automatiquement.
Ils permettent de rassembler un ensemble de données et éviter l’emploi
de nombreux fils et ainsi faciliter la lisibilité du VI.
Un cluster est comme une gaine dans laquelle on fait passer les
différents fils d’un câble téléphonique ou des fils électriques. On passe
alors la gaine au lieu des fils individuels.
Un cluster est équivalent au type Struct du langage C.
Les clusters sont recommandés lorsqu’on doit transmettre beaucoup
de fils d’une partie d’un code à une autre ou à des VIs.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 69 / 75
Clusters
Création de clusters dans la face-avant
Dans le panel du VI suivant, on crée un cluster constant de la palette
Tableau, matrice et cluster.
Dans la face-avant, les clusters se trouvent dans la palette Tableau,
matrice et cluster. Nous trouvons le cluster, le tableau constant et
des matrices.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 70 / 75
Clusters
Exemple de création de cluster
Glisser les objets de données ou les éléments, qui peut être numérique,
booléen, chaîne, array, etc, dans le shell du cluster.
Figure 44 – Exemple de création de cluster.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 71 / 75
Clusters
Manipulations des clusters
On utilise les fonctions de la palette Cluster, Class & Variant du Block
Diagramme pour créer et manipuler des clusters. Par exemple, vous pouvez
effectuer les tâches suivantes :
Extraire des éléments de données individuels d’un cluster.
Ajouter des éléments de données individuels à un cluster.
Divisez un cluster en ses éléments de données individuels.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 72 / 75
Clusters
Manipulations des clusters : Assemblage/Création d’un cluster (Bundle)
Bundle : Assemble un cluster à partir d’éléments individuels.
Figure 45 – Assembler un cluster.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 73 / 75
Clusters
Manipulations des clusters : Modifier un cluster (Bundle By Name)
Bundle By Name : Remplace un ou plusieurs éléments du Cluster.
Cette fonction fait référence aux éléments du cluster à l’aide de leur
nom au lieu de leur position dans le cluster
Figure 46 – Assembler un Modifier un cluster.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 74 / 75
Clusters
Manipulations des clusters : Désassembler un cluster (Unbundle et Unbundle By Name)
Unundle : Sépare les composants d’un individuelles d’un cluster.
Unundle by Name : Renvoie les éléments de cluster dont vous
spécifiez les noms .
Figure 47 – Désassembler un cluster.
Pr. Otman JAI (EST-Fès) Initiation à la Programmation Graphique 12 avril 2021 75 / 75