IUT BELFORT MONTBELIARD Dpt MESURES PHYSIQUES

Preview:

Citation preview

IUT BELFORT MONTBELIARDDpt MESURES PHYSIQUES

DIAPORAMA : initiation à LabVIEW

Vincent Chollet – Année Universitaire 2006 - 2007

V. Chollet 2

IUT BELFORT MONTBELIARDDpt MESURES PHYSIQUES

MODULE MC 3-3 : INFORMATIQUEContenu du module : 1,5 h / sem / groupe TD -> 4 semaine puis 3h TP

Ch 1 – INTRODUCTION A LA PROGRAMMATIONCh 2 – LES VARIABLESCh 3 - LES TESTSCh 4 – LES BOUCLESCh 5 – LES TABLEAUXCh 6 – LES GRAPHESCh 7 – REGISTRES A DECALAGE OU NOEUDS DE RETROACTIONCh 8 – LES SEQUENCESCh 9 – COMPLEMENTS

Le cours est illustré à l'aide d'exemples en langage graphique LabVIEW

V. Chollet 3

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – LA PROGRAMMATION

V. Chollet 4

BIOS

Système d'exploitationDOS, Windows, Linux

Logiciels UtilisateurTraitement de texte, Tableur,Retouche photo, lecture DVD

Séquenceur MidiJeux

L'ordinateur en fonctionnement passe son temps à réaliser des tâches pour lesquelles il a été

programmé.

Des Programmes à tous les niveaux :

ROM

Disque Dur

Mise en route

Je reste utilisateur

V. Chollet 5

Données

Traitement Informatique

Résultats

TexteSonImagesmesures

TexteSonImagesmesures

Entrées Sorties

V. Chollet 6

Je veux réaliser mes propres applications

COMPILATEUR

Langage de programmation

Application autonome

Texte => Fichier source Fichier

exécutable

Logiciel installé dans l'ordinateur

É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

V. Chollet 7

Langages de programmation

Langage Machine

Assembleur

Langage Evolués :C, Pascal, Fortran, BasicVisual Basic, LabVIEW

Le seul compréhensible par l'ordinateur

Compilation = Traduction

V. Chollet 8

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION1 – LA PROGRAMMATION

2 – ALGORITHME

V. Chollet 9

É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

Suite d'instructions qui une fois exécutées correctement conduit à un résultat donné

Algorithme

AlgorithmiqueScience qui étudie la structure logique des programmes

V. Chollet 10

Algorithme

CPascal

Fortran

Basic

LabVIEW Visual Basic

Algorithme : indépendant du langage

L'algorithme se ramène à une combinaison de 4 famille d'instructions :

- Affectation de variables- Lecture écriture- Tests- Boucles

V. Chollet 11

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION1 – LA PROGRAMMATION2 – ALGORITHME

3 – QU'EST CE QUE LABVIEW ?

V. Chollet 12

1985 : Apparition de LabVIEW, produit par la société américaine National Instrument1995 : Enseignement en Mesures Physiques2007 : Version 8

V. Chollet 13

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION1 – LA PROGRAMMATION2 – ALGORITHME3 – QU'EST CE QUE LABVIEW ?

4 – STRUCTURE D'UN PROGRAMME LABVIEW

V. Chollet 14

La face avant est l’interface avec l’utilisateur.

Le diagramme correspond aux circuits internes de l’appareil et constitue le cœur du programme

V. Chollet 15

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION1 – LA PROGRAMMATION2 – ALGORITHME3 – QU'EST CE QUE LABVIEW ?4 – STRUCTURE D'UN PROGRAMME LABVIEW

5 – LES ENTREES SORTIES

V. Chollet 16

ProgrammeVariables de sortie

Variables d’entrées

Saisies au ClavierAcquises par carte d'acquisition

Délivrées par appareil de mesureTirées d'un fichier

etc...

Affichage sur écranGraphique sur écran

Commandes délivrées par l'ordinateur

DEFINITION DES ENTREES SORTIES

V. Chollet 17

Les entrées sorties sont déposées sur la face avant sous la forme d’objets tels que :

Entrées : boutons poussoirsinterrupteurspotentiomètres rotatifs ou à glissièreAfficheur numérique en lecture.Etc …

Sorties : écrans d’oscilloscopeAfficheurs numériques en écriture (affichage)Vu-mètresEtc …

ENTREES SORTIES DANS LABVIEW

V. Chollet 18

V. Chollet 19

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION1 – LA PROGRAMMATION2 – ALGORITHME3 – QU'EST CE QUE LABVIEW ?4 – STRUCTURE D'UN PROGRAMME LABVIEW5 – LES ENTREES SORTIES

6 – LE PROGRAMME LABVIEW

V. Chollet 20

FACE AVANT

1ère variable

2ème variable

FACE ARRIERE : DIAGRAMME

Le programme est écrit dans une deuxième fenêtre

V. Chollet 21

Palette fonction :Clic droit dans le diagramme

Des opérateurs arithmétiquesDes opérateurs booléensDes fonctions de calcul toutes prêtesDes structures de programmation(boucles, tests etc ...)

V. Chollet 22

V. Chollet 23

La palette d'outils (Tool Palette)

Pour agir sur les commandes

Pour câbler

Texte

Colorer un objet

Pipette (copier une couleur)

Poser une sonde (probe)

Placer un point d'arrêt

Bouger l'ensemble(diag ou FA)

V. Chollet 24

L'ensemble : Face avant + diagramme = programme LabVIEW

Programme LabVIEW appelé : VI -> Virtual Instrument

Un VI peut être « encapsulé » : mis en boîte sous forme d'une icône .

Ce VI peut alors être utilisé comme une fonction dans un autre programme

V. Chollet 25

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION1 – LA PROGRAMMATION2 – ALGORITHME3 – QU'EST CE QUE LABVIEW ?4 – STRUCTURE D'UN PROGRAMME LABVIEW5 – LES ENTREES SORTIES6 – LE PROGRAMME LABVIEW

7 - EXERCICES

V. Chollet 26

EXERCICE 1.1

Réaliser un programme qui affiche sur un indicateur numérique la somme, la différence, le produit et le quotient de deux nombres a et b.Sauvegarder ce travail

EXERCICE 1.2

Réaliser un programme qui allume un afficheur booléen si deux interrupteurs K1 et K2 sont enfoncés.

EXERCICE 1.3

Réaliser un programme qui affiche sur un indicateur chaîne de caractère unique le contenu de deux commandes de chaînes de caractère.

V. Chollet 27

Chapitre 2 – LES VARIABLES

1 – DECLARATION DE VARIABLE

V. Chollet 28

Binary Unit :bit

Langage Machine Le seul compréhensible par l'ordinateur

Traitement d'informations binairesTexteSonImagesMesures

Information binaire : Voir cours module Informatique d'instrumentation

PC : Circuits numériques

Tensions possibles : +5V ou 0V

État logique 1État logique 0

Groupés par 8 : 1 octet

V. Chollet 29

ProgrammeVariables de sortie

Variables d’entrées

Un emplacement mémoireRepéré par une adresse.

Rempli avec la valeur de la variable Cette valeur est codée en binaire

Un programme manipule des valeurs contenues dans des variables

V. Chollet 30

LA MEMOIRE :

Empilement d'octets

Un programme manipule des valeurs contenues dans des variables.

A chaque variable correspond un emplacement mémoire

Adresse précise

Contenu : valeur prise par la variable au cours du programme.

Langage évolué : le programmeur ne gère pas les adresses

V. Chollet 31

Réserver une chambre

dans un hôtel :

- Un nom- Une adresse,

- Une taille de chambre

Déclarer une variable = effectuer une réservation

- Un nom (une étiquette)

Une taille d'emplacement en nombre d'octets

Une adresse (gérée par l'ordinateur)

Définir :

- Ce qu'on va mettre dedans (type)

V. Chollet 32

Chapitre 2 – LES VARIABLES

1 – DECLARATION DE VARIABLE

2 – ENTREES SORTIES DANS LabVIEW

V. Chollet 33

PALETTE DE COMMANDES : ENTREES

Les commandes (sauf tableaux)

Palette complète : il suffit de la parcourir pour tout comprendre (ou presque)

V. Chollet 34

PALETTE DE COMMANDES : SORTIES

Les indicateurs (sauf tableaux)

Palette complète : On retrouve les commandes et les indicateurs

V. Chollet 35

Chapitre 2 – LES VARIABLES

1 – DECLARATION DE VARIABLE2 – ENTREES SORTIES DANS LabVIEW

3 – INITIALISATION DE VARIABLE

V. Chollet 36

INITIALISER UNE VARIABLE : C'est lui attibuer une valeur qu'elle prendra dès le début de l'exécution du programme

Clic droit sur l'objet correspondant à la

variable

Initialisation à la valeur décimale 4

Objet : bouton rotatif muni de son afficheur numérique

V. Chollet 37

Chapitre 2 – LES VARIABLES1 – DECLARATION DE VARIABLE2 – ENTREES SORTIES DANS LabVIEW3 – INITIALISATION DE VARIABLE

4 – TYPE DE VARIABLES

V. Chollet 38

Déclarer une variable = effectuer une réservation

- Un nom (une étiquette)

- Ce qu'on va mettre dedans (type)

Une taille d'emplacement

Une adresse (gérée par l'ordinateur)

Définir :

EN OCTETS pas en m² !

Un type => une couleur en LabVIEW

V. Chollet 39

Chapitre 2 – LES VARIABLES1 – DECLARATION DE VARIABLE2 – ENTREES SORTIES DANS LabVIEW3 – INITIALISATION DE VARIABLE4 – TYPE DE VARIABLES

4.1 – CODAGE DES NOMBRES ENTIERS

V. Chollet 40

CODAGE SUR UN OCTET

de 00000000 à 11111111

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

Type unsigned char (langage C) Type U8 en LabVIEW

de 00000000 à 01111111

de 0 à 27 -1 = 127

de 11111111 à 10000000

de -1 à - 27 = -128

positif

négatif

Avec bitde signe

Type char (langage C) Type I8 en LabVIEW

Complément à deux

Sans bitde signe

V. Chollet 41

COMMENT CHANGER LA REPRESENTATION DANS LabVIEW

Clic droit sur l'objet correspondant à la

variable

Codage sur un octet signé

Codage sur un octetnon signé

V. Chollet 42

ANNEXE : Codage des nombres signés code complément à deux

Soit une variable a = - 13

d 13 => b 0000 1101

complément : 1111 0010plus 1 : 0000 0001 = 1111 0011

-13 décimal = 11110011 en binaire

13 2 1 6 2 0 3 2 1 1

13 décimal = 00001101 en binaire

Conversion Décimal-Binaire Conversion Décimal-Binaire, complément à deux

Bit de signe

V. Chollet 43

CODAGE SUR DEUX OCTETS

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

Sans bitde signe

Avec bitde signe

Type unsigned int (langage C) Type U16 en LabVIEW

de 0 à 215 -1 = 32767

de -1 à - 215 = -32768

positif

négatif

Type int (langage C) Type I16 en LabVIEW

Complément à deux

V. Chollet 44

COMMENT CHANGER LA REPRESENTATION DANS LabVIEW

Clic droit sur l'objet correspondant à la

variable

Codage sur 2 octets signé

Codage sur 2 octetsnon signé

V. Chollet 45

Chapitre 2 – LES VARIABLES

1 – DECLARATION DE VARIABLE2 – ENTREES SORTIES DANS LabVIEW3 – INITIALISATION DE VARIABLE4 – TYPE DE VARIABLES

4.1 – CODAGE DES NOMBRES ENTIERS

4.2 – CODAGE DES NOMBRES A VIRGULE FLOTTANTE

V. Chollet 46

CODAGE SUR QUATRE OCTETS

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

+ 0,662 * 2 - 26

Signe : 1 bit Mantisse : 23 bitsExposant :8 bits

Valeurs extrêmes possibles : Nombre nul : 0Nombre positifs de : 1,21 10 -38 à 3,40 10 38

Nombres négatifs de : - 1,21 10 -38 à - 3,40 10 38

Type : Float en C, Type SGL en LabVIEW

V. Chollet 47

NOMBRES A VIRGULE FLOTTANTE

SIMPLE PRECISION : 4 octets

1 bit 8 bits 23 bits

PRECISION ETENDUE : 10 octets

1 bit 15 bits 64 bits

DOUBLE PRECISION : 8 octets

1 bit 11 bits 52 bits

V. Chollet 48

Chapitre 2 – LES VARIABLES

1 – DECLARATION DE VARIABLE2 – ENTREES SORTIES DANS LabVIEW3 – INITIALISATION DE VARIABLE4 – TYPE DE VARIABLES

4.1 – CODAGE DES NOMBRES ENTIERS4.2 – CODAGE DES NOMBRES A VIRGULE FLOTTANTE

4.3 – CODAGE DES BOOLEENS

V. Chollet 49

Une variable booléenne ne peut prendre que deux valeurs :

Variable Booléenne

Vraie : True

Fausse : False

Codage sur 1 seul bit

N'existe pas dans tous les langages :

OK en labVIEW mais pas en C !

V. Chollet 50

Chapitre 2 – LES VARIABLES

1 – DECLARATION DE VARIABLE2 – ENTREES SORTIES DANS LabVIEW3 – INITIALISATION DE VARIABLE4 – TYPE DE VARIABLES

4.1 – CODAGE DES NOMBRES ENTIERS4.2 – CODAGE DES NOMBRES A VIRGULE FLOTTANTE4.3 – CODAGE DES BOOLEENS

5 – FORMATS D'AFFICHAGE

V. Chollet 51

V. Chollet 52

V. Chollet 53

Chapitre 2 – LES VARIABLES

1 – DECLARATION DE VARIABLE2 – ENTREES SORTIES DANS LabVIEW3 – INITIALISATION DE VARIABLE4 – TYPE DE VARIABLES

4.1 – CODAGE DES NOMBRES ENTIERS4.2 – CODAGE DES NOMBRES A VIRGULE FLOTTANTE4.3 – CODAGE DES BOOLEENS

5 – FORMATS D'AFFICHAGE

6 - EXERCICES

V. Chollet 54

EXERCICE 2.1

Reprendre le programme de l’exercice 1.1 et modifier le type des variables a et b. Exécuter le programme, noter et commenter les résultats surprenants obtenus.

EXERCICE 2.2

Réaliser un programme qui calcule les racines d’une équation du second degré uniquement si le discriminant est > 0.On pourra utiliser la boîte de calcul.

EXERCICE 2.3

Réaliser un programme qui convertit un nombre de mois, de jours, d’heures, de minutes et de secondes en secondes.

EXERCICE 2.4

Réaliser un programme qui convertit un nombre de secondes en mois, jours, heures, minutes et secondes.

V. Chollet 55

Chapitre 3 – LES TESTS

1 – EXEMPLE

V. Chollet 56

Contact fin de course

Le wagon doit s'arrêter quand il rencontre l'obstacle.

Organigramme Pseudo codeVariable Mav booléenneVariable contact booléenneMav = 1Lire contactSi contact = 1

alors Mav = 0 sinon « aller à 4ème ligne »finnon

Marche avant

Contact appuyé ?oui

Arrêt moteur

Lire contact

Remarque : dans la ligne Mav=1, = est un opérateur d'affectation. Il s'agit en effet de remplir l'emplacement mémoire réservé à la variable Mav, avec la valeur 1.

V. Chollet 57

Chapitre 3 – LES TESTS

1 – EXEMPLE

2 - DEFINITION

V. Chollet 58

Une structure conditionnelle (structure de choix) permet de réaliser une suite d'instructions ou une autre, en fonction du résultat d'un test.

Début

Conditionoui

Instructions 1

non

Instructions 2

Suite

DébutSi condition vraie

alors instructions 1sinon instructions 2

Suite

En LabVIEW : exécution d'un diagramme ou d'un autre suivant le résultat vrai ou faux d'un test

V. Chollet 59

Chapitre 3 – LES TESTS

1 – EXEMPLE2 – DEFINITION

3 – DANS LabVIEW

V. Chollet 60

Diagramme délimité, exécuté si condition vraie

Condition à écrire

Cliquer pour visualiser le diagramme réalisé si condition fausse

Un seul diagramme visible à la fois

V. Chollet 61

Le diagramme caché

LaLa condition : met en jeux un opérateur de comparaison Le résultat booléen de la

condition est connecté au sélecteur « ? »

La transmission des données se fait via un « tunnel » d'entrée ou de sortie.

Les tunnels de sortie doivent être reliés dans les deux

diagrammes conditionnels

V. Chollet 62

Chapitre 3 – LES TESTS

1 – EXEMPLE2 – DEFINITION3 – DANS LabVIEW

4 – LA CONDITION

V. Chollet 63

La comparaison peut être simple : elle met en oeuvre un opérateur de comparaison (>, <, etc ... ou d'égalité) comme dans l'exemple précédent.

Elle peut être plus complexe et mettre en oeuvre également des opérateurs logiques.

V. Chollet 64

Chapitre 3 – LES TESTS

1 – EXEMPLE2 – DEFINITION3 – DANS LabVIEW4 – LA CONDITION

5 - IMBRICATION

V. Chollet 65

C'est insuffisant

Vrai

Les structures conditionnelles peuvent être imbriquées

Diagramme caché

V. Chollet 66

Chapitre 3 – LES TESTS

1 – EXEMPLE2 – DEFINITION3 – DANS LabVIEW4 – LA CONDITION5 – IMBRICATION

6 - EXERCICES

V. Chollet 67

EXERCICE 3.1

Ecrire un programme qui : compare deux nombres a et ballume une led si a > baffiche sur un afficheur numérique a si a < baffiche b sur le même afficheur si a > b.

EXERCICE 3.2

Reprendre le programme de l’exercice 2.2 de calcul des racines de l’équation du second degré et traiter en utilisant la structure conditionnelle tous les cas possibles en fonction de la valeur du discriminant. On utilisera la représentation complexe pour les indicateurs numériques affichant les solutions de l’équation.

V. Chollet 68

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 1

V. Chollet 69

Contact fin de course

Le wagon doit s'arrêter quand il rencontre l'obstacle.

Organigramme

Pseudo codeVariable Mav booléenneVariable contact booléenneMav = 1Faire tant que contact = 0

Lire contactMav = 0fin

Ici, on lit l'état du contact tant qu'il n 'a pas été enfoncé

non

Marche avant

Contact appuyé ?oui

Arrêt moteur

Lire contact

V. Chollet 70

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 1

2 – DEFINITION BOUCLE WHILE

V. Chollet 71

La boucle While permet la répétition d'une suite d'instructions tant qu' une condition est vraie.

Début

Conditionoui

Instructions à répéter

non

Suite

Instructions du débutFaire

instructions à répétertant que condition

suite du programme

While = Faire... tant que ....

Toujours réalisées au moins une fois !

Remarque : Le nombre d'itérations est inconnu à priori

V. Chollet 72

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 12 – DEFINITION BOUCLE WHILE

3 – BOUCLE WHILE SOUS LabVIEW

V. Chollet 73

Diagramme répété

Terminal conditionnel

Terminal d'itération : compte les répétitions

V. Chollet 74

Attente (configurée à 1s)

2 possibilités

Pseudo code correspondant :

Variable N type entierVariable compt type entierN=100Faire

compt=N-1afficher comptattendre 1stant que N >0

Fin

EXEMPLE : Compte à rebour temporisé à la seconde

V. Chollet 75

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 12 – DEFINITION BOUCLE WHILE3 – BOUCLE WHILE SOUS LabVIEW

4 – EXEMPLE 2

V. Chollet 76

Le wagon doit faire 10 aller-retours.

Début

i = 9oui

i = 0

non

Fin

aller-retour

i = i+1

Organigramme

Pseudo code

La variable i compte les répétitions(itérations)

Variable i type entierPour i = 0 à 9

aller-retouri = i+1

fin

V. Chollet 77

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 12 – DEFINITION BOUCLE WHILE3 – BOUCLE WHILE SOUS LabVIEW4 – EXEMPLE 2

5 – DEFINITION BOUCLE FOR

V. Chollet 78

Suite

Instructions à répéter

i i+1

La boucle FOR permet la répétition d'une suite d'instruction un nombre prédéterminé de fois

Instructions du débutPour i = 0 à N-1, faire :

instructions à répéteri i+1

suite du programme

FOR = Pour ... faire ...

Début

i = N-1oui

i 0

non

Organigramme

Non réalisé si N = 0

Remarque : Le nombre d'itérations est déterminé à priori

V. Chollet 79

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 12 – DEFINITION BOUCLE WHILE3 – BOUCLE WHILE SOUS LabVIEW4 – EXEMPLE 25 – DEFINITION BOUCLE FOR

6 – BOUCLE FOR SOUS LabVIEW

V. Chollet 80

Diagramme répété

Terminal d'itération : compte les répétitions

Nombre de tours de boucle

Avec 10 tours de boucle, i évoluera de 0 à 9

V. Chollet 81

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 12 – DEFINITION BOUCLE WHILE3 – BOUCLE WHILE SOUS LabVIEW4 – EXEMPLE 25 – DEFINITION BOUCLE FOR6 – BOUCLE FOR SOUS LabVIEW

7 – COMMANDES ET INDICATEURS DANS OU HORS DE LA BOUCLE

V. Chollet 82

Terminal d'entrée hors de la boucle : Valeur transmise au premier tour de boucle.

Toute intervention de l'utilisateurdevient inutile

Terminal de sortie hors de la boucle : Valeur obtenue au dernier tour de boucle

Terminaux dans la boucle : Modifications par l'utilisateur

prises en compte

V. Chollet 83

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 12 – DEFINITION BOUCLE WHILE3 – BOUCLE WHILE SOUS LabVIEW4 – EXEMPLE 25 – DEFINITION BOUCLE FOR6 – BOUCLE FOR SOUS LabVIEW7 – COMMANDES ET INDICATEURS DANS OU HORS DE LA BOUCLE

8 - INDEXATION

V. Chollet 84

Pas d'indexation : la dernière valeur

calculée au dernier tourde boucle est transmise

via le tunnel de sortie

indexation : un tableau des valeurscalculées à chaque tour de boucleest transmis via le tunnel de sortie

Le terminal de sortie doit être compatible avec l'option choisie !

V. Chollet 85

Pointer le tunnel de sortiepuis clic droit pour activer

ou désactiver l'indexation

V. Chollet 86

L'indexation est possible pour les deux types de boucles :

boucle while ou boucle for

V. Chollet 87

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 12 – DEFINITION BOUCLE WHILE3 – BOUCLE WHILE SOUS LabVIEW4 – EXEMPLE 25 – DEFINITION BOUCLE FOR6 – BOUCLE FOR SOUS LabVIEW7 – COMMANDES ET INDICATEURS DANS OU HORS DE LA BOUCLE8 – INDEXATION

9 - EXERCICES

V. Chollet 88

Exercice 4.1

Réaliser un programme qui génère et affiche toutes les secondes un nombre aléatoire entier compris entre 0 et 20 tant que l’on n’a pas appuyé sur un bouton STOP.Afficher également la moyenne des derniers entiers générés sur un afficheur numérique.

Exercice 4.2

Réaliser un programme qui calcule n! (factorielle n).n est un nombre entier positif

On rappelle que n! = n*(n-1)*(n-2)* …. 2*1 et que 0! = 1

Exercice 4.3

Réaliser un programme qui affiche successivement toutes les secondes les 20 premières valeurs de la suite géométrique définie par son premier terme u0 et sa raison q entrés au clavier sur des afficheurs numériques.

Rappel : un = u0 * q n

V. Chollet 89

Chapitre 7 – TABLEAUX

1 – DEFINITION

V. Chollet 90

Un tableau permet de regrouper plusieurs variables numériques de même type sous une même appellation.

Les différents éléments du tableau (array) sont alors repérés par un indice (index).

Le nombre N d’éléments du tableau constitue sa taille (array size)

V. Chollet 91

Déclarer un tableau = Réserver N « étages » d'un type donné.

LA MEMOIRE :

Empilement d'octets

N est le nombre d'éléments du tableau

Exemple : Tableau nommé Tab de 3 entiers type U8

Tab[0]Tab[1]Tab[2]

Chaque élément du tableau est repéré par un indice i allant de 0 à N-1

Les trois éléments se retrouvent à trois adresses différentes qui se suivent

V. Chollet 92

Chapitre 7 – TABLEAUX

1 – DEFINITION

2 – TABLEAUX DANS LabVIEW

Clic droit sur la face avant

Quand on le dépose, le tableau est vide !!

Tableau de variables numériquesIndice du 1er

élément visible

Il faut remplir le tabeauavec un objet

(ici une commande numérique)

V. Chollet 94

Tableau de commandes Tableaux d'indicateurs

booléens

Variables numériques

Chaînes de caractères

V. Chollet 95

Tableau vide

Tableau de variables numériques

Le terminal correspondant dans le diagramme :

V. Chollet 96

Chapitre 7 – TABLEAUX ET CHAINES

1 – LES TABLEAUX2 – TABLEAUX DANS LabVIEW

3 – OPERATIONS SUR LES TABLEAUX

V. Chollet 97

Les opérateurs arithmétiques et booléens classiques peuvent traiter les tableaux.

V. Chollet 98

Le trait épais indique une donnée de type tableau

Il existe en plus des fonctions spéciales pour les tableaux

quelques exemples ...

Indice du 1er élément visible

V. Chollet 99

Chapitre 7 – TABLEAUX ET CHAINES

1 – LES TABLEAUX2 – TABLEAUX DANS LabVIEW3 – OPERATIONS SUR LES TABLEAUX

4 – BOUCLES ET TABLEAUX 4.1 – Indexation en entrée

V. Chollet 100

N. B : Lors du câblage, l'indexation se réalise automatiquement.

Indexation : Au ième tour de boucle, le ième élément du tableau

est transmis par le tunnel d'entrée.

V. Chollet 101

Tous les éléments du tableausont multipliés par i

à chaque tour de boucle

Clic droit sur le tunnel d'entrée pour activer/désactiver l'indexation

Pas d'indexation : le tableau est transmisà chaque tour de boucle dans son intégralité

par le tunnel d'entrée.

V. Chollet 102

Chapitre 7 – TABLEAUX

1 – LES TABLEAUX2 – TABLEAUX DANS LabVIEW3 – OPERATIONS SUR LES TABLEAUX

4 – BOUCLES ET TABLEAUX 4.1 – Indexation en entrée

4.2 – Indexation en sortie

V. Chollet 103

Pas d'indexation : la dernière valeur

calculée au dernier tourde boucle est transmise

via le tunnel de sortie

indexation : un tableau des valeurscalculées à chaque tour de boucleest transmis via le tunnel de sortie

Le terminal de sortie doit être compatible avec l'option choisie !

V. Chollet 104

Pointer le tunnel de sortiepuis clic droit pour activer

ou désactiver l'indexation

V. Chollet 105

L'indexation est possible pour les deux types de boucles :

boucle while ou boucle for

V. Chollet 106

Chapitre 7 – TABLEAUX

1 – LES TABLEAUX2 – TABLEAUX DANS LabVIEW3 – OPERATIONS SUR LES TABLEAUX4 – BOUCLES ET TABLEAUX

4.1 – Indexation en entrée4.2 – Indexation en sortie

5 - EXERCICES

V. Chollet 107

EXERCICE 5.1

Réaliser un programme qui génére automatiquement un tableau de 10 nombres entiers compris entre 0 et 20.

Modifier ce programme pour afficher successivement toutes les secondes les éléments du tableau sur un afficheur numérique.

EXERCICE 5.2

Réaliser un programme qui génére automatiquement un tableau de 10 nombres entiers compris entre 0 et 20. (faire un copier coller de la 1ère

partie de l’exercice précédent).

Une fois le tableau généré, on souhaite éliminer les 5 éléments les plus petits sans les remplacer, et afficher sur un afficheur numérique la moyenne des éléments du tableau.

V. Chollet 108

EXERCICE 5.3 : abscisses d’une échelle linéaire.

Générer un tableau de N+1 points d’abscisse x compris entre a et b d’une graduation linéaire. N, a et b sont des commandes numériques saisies par l’utilisateur du programme.

ECHELLE LINEAIRE

Pas : distance entre deux points. On a : pas = (b – a) / N

Passage d'un point à l'autre : xn = x n-1 + pas

Ainsi : xn = a + n . pas

On a une suite arithmétique de premier terme x0 = a de raison q = pas

a pas b

V. Chollet 109

EXERCICE 5.4 : abscisses d’une échelle logarithmique

Générer un tableau de N+1 points d’abscisse x compris entre a et b d’une échelle logarithmique. N, a et b sont des commandes numériques saisies par l’utilisateur du programme. ECHELLE LOGARITHMIQUE :

Pas : distance entre deux points. On a : pas = (log b – log a) / N = log (b/a)1/N

Passage d'un point à l'autre : log xn = log x n-1 + pas

Ainsi : log xn = log a + n . pas = log a + n log (b/a)1/N = log a + log (b/a)n/N

= log [ a . (b/a)n/N ]

Donc : xn = a . (b/a)n/N <=> xn = a . (b/a)n-1/N . (b/a)1/N

xn = xn-1 . (b/a)1/N ou xn = a . [(b/a)1/N ] n

On a une suite géométrique de premier terme x0 = a et de raison q = (b/a)1/N

loga pas logb

Recommended