MODULE MC 3-3 : INFORMATIQUE - mpeea.free.frmpeea.free.fr/data/labview/info-cours.pdf ·...

161
E:\info\info-cours.sxi 1 IUT BELFORT MONTBELIARD Dpt MESURES PHYSIQUES MODULE MC 3-3 : INFORMATIQUE Contenu du module Ch 1 – INTRODUCTION A LA PROGRAMMATION Ch 2 – LES VARIABLES Ch 3 - OPERATIONS SUR LES VARIABLES Ch 4 – LES ENTREES SORTIES Ch 5 – LES TESTS Ch 6 – LES BOUCLES Ch 7 – TABLEAUX ET CHAINES Ch 8 – LES GRAPHES Ch 9 – REGISTRES Ch 10 – TABLEAUX 2 D ET BOUCLES IMBRIQUEES Ch 11 – LES SEQUENCES Ch 12 – LES ENTREES SORTIES SUR FICHIER Le cours est illustré à l'aide d'exemples en langage graphique LabVIEW

Transcript of MODULE MC 3-3 : INFORMATIQUE - mpeea.free.frmpeea.free.fr/data/labview/info-cours.pdf ·...

E:\info\info-cours.sxi 1

IUT BELFORT MONTBELIARDDpt MESURES PHYSIQUES

MODULE MC 3-3 : INFORMATIQUEContenu du module

Ch 1 – INTRODUCTION A LA PROGRAMMATIONCh 2 – LES VARIABLESCh 3 - OPERATIONS SUR LES VARIABLESCh 4 – LES ENTREES SORTIESCh 5 – LES TESTSCh 6 – LES BOUCLESCh 7 – TABLEAUX ET CHAINESCh 8 – LES GRAPHESCh 9 – REGISTRESCh 10 – TABLEAUX 2 D ET BOUCLES IMBRIQUEESCh 11 – LES SEQUENCESCh 12 – LES ENTREES SORTIES SUR FICHIER

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

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – L'INFORMATIQUE ET L'ORDINATEUR1.1 – Informatique

INFOR MATIQUE

information automatique

CirculationTraitement

DonnéesRésultats

Données

Traitement Informatique

Résultats

TexteSonImagesmesures

TexteSonImagesmesures

Entrées Sorties

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – L'INFORMATIQUE ET L'ORDINATEUR1.1 – Informatique1.2 - Ordinateur

C'est l'outil

Ne réalise que ce qu'il a appris à faire

Ne réalise que les tâches pour lequel il est programmé

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – L'INFORMATIQUE ET L'ORDINATEUR

2 – LA PROGRAMMATION

1.1 – Informatique1.2 – Ordinateur

2.1 – Les programmes

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

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – L'INFORMATIQUE ET L'ORDINATEUR

2 – LA PROGRAMMATION

1.1 – Informatique1.2 – Ordinateur

2.1 – Les programmes2.2 – La programmation

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

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – L'INFORMATIQUE ET L'ORDINATEUR

2 – LA PROGRAMMATION

1.1 – Informatique1.2 – Ordinateur

2.1 – Les programmes2.2 – La programmation2.3 – Langages de Programmation

Langages de programmation

Langage Machine

Assembleur

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

Le seul compréhensible par l'ordinateur

Compilation = Traduction

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – L'INFORMATIQUE ET L'ORDINATEUR

2 – LA PROGRAMMATION

3 – NATURE ET CODAGE DES INFORMATIONS

1.1 – Informatique1.2 – Ordinateur

2.1 – Les programmes2.2 – La programmation

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

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – L'INFORMATIQUE ET L'ORDINATEUR

2 – LA PROGRAMMATION

3 – NATURE ET CODAGE DES INFORMATIONS

4 – STRUCTURE INTERNE DE L'ORDINATEUR

1.1 – Informatique1.2 – Ordinateur

2.1 – Les programmes2.2 – La programmation

Organes d'entrée-sortie

UNITE CENTRALE

Unité de CommandeHorloge

Unité Arithmétique et Logique

MEMOIRECENTRALE

ROMRAM

Stockage

- des données

- instructions

Organe de Calculs

arithmétiques ou logiques

Contrôle commande du fonctionnement des différentes

parties de la machine

Périfériques de Stockage

Notions complétées en Informatique d'instrumentation ...

LA MEMOIRE :

Chaque Octet est repéré par une

adresse

Plus la mémoire est grande plus il faut de bits pour coder les adresses !

L'adresse est elle même un mot binaire de N bits ... souvent notée en Hexadécimal

Empilement d'octets

LES BUS :Ensemble de lignes électriques permettant l'échange d'informations entre les différents organes de l'ordinateur.

CPU RAMCPU

adresse

donnée

commande

Le bus peut être : bidirectionnel ou unidirectionnel

Lecture :ou

écriture :donnée

Chapitre 1 – INTRODUCTION A LA PROGRAMMATION

1 – L'INFORMATIQUE ET L'ORDINATEUR

2 – LA PROGRAMMATION

3 – NATURE ET CODAGE DES INFORMATIONS

4 – STRUCTURE INTERNE DE L'ORDINATEUR

5 – ALGORITHME ET ALGORITHMIQUE

1.1 – Informatique1.2 – Ordinateur

2.1 – Les programmes2.2 – La programmation

É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

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

Chapitre 2 – LES VARIABLES

1 – EMPLACEMENT MEMOIRE

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

Chapitre 2 – LES VARIABLES

1 – EMPLACEMENT MEMOIRE2 – DECLARATION DE VARIABLE

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)

- Ce qu'on va mettre dedans (type)

Une taille d'emplacement

Comparaison

Type VIP : Suite royale – Hôtel beau soleil * * * * * - Croisette : 100 m²Type plouc : Chambre single – Hôtel F0 - Trifouilly les oies : 5 m²

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

Définir :

Langage Classique :

Toute variable utilisée dans un programme ... ... doit être déclarée auparavant.

Langage Graphique LabVIEW :

La déclaration de variable se fait en posant un objet sur une face avant

FACE AVANT

1ère variable

2ème variable

FACE ARRIERE : DIAGRAMME

Chapitre 2 – LES VARIABLES

1 – EMPLACEMENT MEMOIRE2 – DECLARATION DE VARIABLE3 – INITIALISATION

INITIALISER =

AFFECTER UNE VALEUR LORS DE LA DECLARATION

LA MEMOIRE :

Empilement d'octets

0 0 0 0 1 0 1 1

Exemple :Variable a de type « caractère »initialisée à la valeur décimale : 11

Initialisation d'une variable dans LabVIEW

Clic droit sur l'objet

correspondant à la variable

Initialisation à la valeur décimale 4

Objet : bouton rotatif muni de son afficheur numérique

Chapitre 2 – LES VARIABLES

1 – EMPLACEMENT MEMOIRE2 – DECLARATION DE VARIABLE3 – INITIALISATION4 – TYPES DE VARIABLES NUMERIQUES

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

Chapitre 2 – LES VARIABLES

1 – EMPLACEMENT MEMOIRE2 – DECLARATION DE VARIABLE3 – INITIALISATION4 – TYPES DE VARIABLES

4.1 – Codage sur un octet

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 bit de signe

Type char (langage C) Type I8 en LabVIEW

Complément à deux

Sans bit de signe

Codage de la valeur de la variable sur 1 octet.

Clic droit sur l'objet

correspondant à la variable

Chapitre 2 – LES VARIABLES

1 – EMPLACEMENT MEMOIRE2 – DECLARATION DE VARIABLE3 – INITIALISATION4 – TYPES DE VARIABLES

4.1 – Codage sur un octet4.2 – Codage sur deux octets

CODAGE SUR DEUX OCTETS

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

Sans bit de signe

Avec bit de 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

Chapitre 2 – LES VARIABLES

1 – EMPLACEMENT MEMOIRE2 – DECLARATION DE VARIABLE3 – INITIALISATION4 – TYPES DE VARIABLES NUMERIQUES

4.1 – Codage sur un octet4.2 – Codage sur deux octets4.3 – Codage des nombres à virgule flottante

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

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

Chapitre 2 – LES VARIABLES

1 – EMPLACEMENT MEMOIRE2 – DECLARATION DE VARIABLE3 – INITIALISATION4 – TYPES DE VARIABLES NUMERIQUES

4.1 – Codage sur un octet4.2 – Codage sur deux octets4.3 – Codage des nombres à virgule flottante4.4 – Type booléens

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 !

Chapitre 3 – OPERATIONS SUR DES VARIABLES

1 – OPERATEUR D'AFFECTATION

Opérateur d'affectation : permet de donner une valeur à une variable

Lors de son initialisation (déjà vu)

Après un calcul

On range une valeur à l'adressemémoire de la variable

En langage C :

int a;a=5;a=a+2;

En Pseudo langage:

déclarer a type entier 1 octeta 5a a+2

Pour stocker dans a un résultat de calcul intermédiaire

Et en LabVIEW

Initialisation : Valeur par défaut sur la face avant (déjà vu)

Après un calcul, c'est moins évident ...

... car un programme LabVIEW se déroule comme un flot de données et non flot d'instructions.

Pour trouver les opérateurs arithmétiques

Clic droit sur le diagramme

Le bouclage est impossible ...

... mais ici je dispose bien de a+2 ...

... pour l'utiliser dans la suite du programmePour visualiser l'exécution du flot de données

Pour lancer l'exécution du programme

Chapitre 3 – OPERATIONS SUR DES VARIABLES

1 – OPERATEUR D'AFFECTATION2 – OPERATEURS ARITHMETIQUES

Ils permettent de réaliser tous les calculs sur des variables numériques. Le résultat du calcul peut dépendre du type de la variable.

Déclarer a type entier non signé 1 octeta 255a a + 1afficher a Affichage : 0

Déclarer a type entier signé 1 octeta 127a a + 1afficher a Affichage : -128

Déclarer a type entier non signé 1 octeta 8a a /3afficher a Affichage : 2 ou 3

Partie entière

Arrondi

Division de deux entiers

LabVIEW fait la conversion de type en sortie de l'opérateur Résultat en virgule flottante

Résultat arrondi(2ème conversion de type)

Chapitre 3 – OPERATIONS SUR DES VARIABLES

1 – OPERATEUR D'AFFECTATION2 – OPERATEURS ARITHMETIQUES3 – OPERATEURS LOGIQUES

Ils permettent de réaliser des opérations logiques sur des variables booléennes

Déclarer a et b type booléena 1b 0afficher (le résultat de) a ou b Affichage : 1

Pour trouver les opérateurs logiques

Clic droit sur le diagramme

Chapitre 4 – LES ENTREES SORTIES

1 – LES ENTREES

En LabVIEW ...

Entrées = Commandes (Controls) :

Objets déposés sur la face avant par le programmeur

Modifiables par l'utilisateur

Disponibles dans la palette de commande (control palette)

Différentes sortes de commandes :

NumériquesBooléennesTableaux et ChaînesChemins

En Face Avant

PALETTE DE COMMANDES

Les commandes (sauf tableaux)

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

Chapitre 4 – LES ENTREES SORTIES

1 – LES ENTREES2 – LES SORTIES

En LabVIEW ...

Sorties = Indicateurs (Indicators) :

Objets déposés sur la face avant par le programmeur

Modifiés par le programme et pas par l'utilisateur

Disponibles dans la palette de commande (control palette)

Différentes sortes d'indicateurs:

NumériquesBooléennesTableaux et ChaînesChemins

En Face Avant

PALETTE DE COMMANDES

Les indicateurs (sauf tableaux)

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

Chapitre 4 – LES ENTREES SORTIES

1 – LES ENTREES2 – LES SORTIES3 – FORMAT D'AFFICHAGE

Chapitre 4 – LES ENTREES SORTIES

1 – LES ENTREES2 – LES SORTIES3 – FORMAT D'AFFICHAGE4 – NOEUDS DE PROPRIETES

Clic droit sur l'objet

On peut choisir parmi une liste, les attributs de l'objet que l'on souhaite modifier par programmation

Clic droit sur le noeud de propriété

On peut par exemple programmer le format d'affichage

Chapitre 4 – LES ENTREES SORTIES

1 – LES ENTREES2 – LES SORTIES3 – FORMAT D'AFFICHAGE4 – ATTRIBUTS5 – VARIABLE LOCALE

Variable locale en écriture.

A la fin de l'exécution du programme, il y aura 1 dans la

commande « Numérique »

Chapitre 5 – LES TESTS

1 – COMPLEMENTS SUR L'ENVIRONNEMENT LabVIEW

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)

Pour lister les erreurs

LES ERREURS DE PROGRAMMATION

Bords épais : une commande (entrée)

Ligne pointillée : il y a erreur

Chapitre 5 – LES TESTS

1 – COMPLEMENTS SUR L'ENVIRONNEMENT LABVIEW2 – STRUCTURE CONDITIONNELLE

2.1 - Exemple

Contact fin de course

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

Organigramme Pseudo code

Variable Mav booléenneVariable contact booléenneMav 1Lire contactSi contact = 1

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

non

Marche avant

Contact appuyé ?oui

Arrêt moteur

Lire contact

Chapitre 5 – LES TESTS

1 – COMPLEMENTS SUR L'ENVIRONNEMENT LABVIEW2 – STRUCTURE CONDITIONNELLE

2.1 – Exemple2.2 - Définition

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

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

Condition à écrire

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

Un seul diag visible à la fois

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

Chapitre 5 – LES TESTS

1 – COMPLEMENTS SUR L'ENVIRONNEMENT LABVIEW2 – STRUCTURE CONDITIONNELLE

2.1 – Exemple2.2 – Définition

3 – LA CONDITION

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.

Chapitre 5 – LES TESTS

1 – COMPLEMENTS SUR L'ENVIRONNEMENT LABVIEW2 – STRUCTURE CONDITIONNELLE

2.1 – Exemple2.2 – Définition

3 – LA CONDITION4 – IMBRICATION

C'est insuffisant

Vrai

Les structures conditionnelles peuvent être imbriquées

Diagramme caché

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 1

Contact fin de course

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

Organigramme Pseudo code

Variable 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

Chapitre 6 – LES BOUCLES

1 – EXEMPLE 12 – DEFINITION BOUCLE WHILE

La boucle While permet la répétition d'une suite d'instruction 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é au moins une fois !

Chapitre 6 – LES BOUCLES

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

Diagramme répété

Terminal conditionnel

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

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

Chapitre 6 – LES BOUCLES

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

Le wagon doit faire 10 aller-retour.

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

Chapitre 6 – LES BOUCLES

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

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

Suite

Instructions à répéter

i i+1

OrganigrammeNon réalisé si N = 0

Chapitre 6 – LES BOUCLES

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

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

Pseudo code correspondant :

Variable N type entierN 10Variable i type entieri 0Pour i = 0 à N-1 faire :

afficher iattendre 1s

Fin

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

Modifications par l'utilisateurprises en compte

Valeur transmise au premiertour de boucle.

Toute intervention de l'utilisateurdevient inutile

Valeur obtenue au dernier tour

de boucle

Chapitre 7 – TABLEAUX ET CHAINES

1 – LES TABLEAUX

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

Clic droit sur la face avant

Tableau vide

Tableau de variables numériquesIndice du 1er

élément visible

Tableau vide

Tableau de variables numériques

Chapitre 7 – TABLEAUX ET CHAINES

1 – LES TABLEAUX2 – OPERATIONS SUR LES TABLEAUX

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

Quelques exemples ...Indice du 1er élément visible

Chapitre 7 – TABLEAUX ET CHAINES

1 – LES TABLEAUX2 – OPERATIONS SUR LES TABLEAUX3 – BOUCLES ET TABLEAUX SOUS LabVIEW

3.1 – Indexation en entrée

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.

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

à chaque tour de boucle

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

par le tunnel d'entrée.

Chapitre 7 – TABLEAUX ET CHAINES

1 – LES TABLEAUX2 – OPERATIONS SUR LES TABLEAUX3 – BOUCLES ET TABLEAUX SOUS LabVIEW

3.1 – Indexation en entrée3.2 – Indexation en sortie

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

Pas d'indexation : la dernière valeur

calculée au dernier tourde boucle est transmise

via le tunnel de sortie

#Page 124

indexation en entrée et en sortie :

idem avec boucle While et boucles For

Chapitre 7 – TABLEAUX ET CHAINES

1 – LES TABLEAUX2 – OPERATIONS SUR LES TABLEAUX3 – BOUCLES ET TABLEAUX SOUS LabVIEW

3.1 – Indexation en entrée3.2 – Indexation en sortie

4 – CHAINES DE CARACTERES

Déclarer une chaîne = Réserver N « étages » de taille 1 octet

LA MEMOIRE :

Empilement d'octets

Exemple : Chaîne nommée Ch de 3 caractères

Ch[0]Ch[1]Ch[2]

Chaque élément de la chaîne 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

LA MEMOIRE :

Empilement d'octets

N est le nombre de caractères de la chaîne

Chaque élément de la chaîne est repéré par un indice i allant de 0 à N-1

Le mot binaire qui se retrouve en mémoire correspond au code ASCII du caractère

LE CODE ASCII

Chaque caractère du clavier (imprimable ou non) est codé sur un octet selon une table précise.

Un caractère est noté entre ' ' : 'a'

Exemple : on a affecté la « valeur » 'a' à ch[0].

LA MEMOIRE :

Empilement d'octets

ch[0]

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

Le code ASCII de 'a' est :

Pour trouver les commandes chaînes

Clic droit sur la face avant

Chaîne de caractèresalphanumériques initialisée

Chapitre 7 – TABLEAUX ET CHAINES

1 – LES TABLEAUX2 – OPERATIONS SUR LES TABLEAUX3 – BOUCLES ET TABLEAUX SOUS LabVIEW

3.1 – Indexation en entrée3.2 – Indexation en sortie

4 – CHAINES DE CARACTERES5 – OPERATIONS SUR LES CHAINES DE CARACTERES

Quelques exemples ...

Le trait rose indique une donnée de type chaîne

Cet exemple au raz de la pelouse ne doit pas vous tromper :

La manipulation de chaînes de caractère est importante en informatique d'instrumentation, le dialogue entre PC et appareils de mesure se fait souvent par ce moyen là (calibre, valeurs, unités etc ...)

On peut être amené à extraire les informations numériques d'une chaîne reçue en vue d'un tracé de courbe

On peut être amené à envoyer une chaîne de caractère pour modifier le calibre

etc ...

Chapitre 8 – LES GRAPHES

1 – GRAPHE DEROULANT

Le rôle du graphe déroulant : Waveform Chart est d'afficher l'évolution temporelle d'une donnée variable dans le temps.

A chaque instant le graphe ne reçoit qu'une donnée à la fois : Ce n'est pas un tableau de valeurs.

Par programmation, il faut donc répéter l'envoides données au graphe, le terminal graphe

doit donc être dans une boucle while.

historique Partie visible

Donnéesperdues

Le Graphe déroulant est un indicateur.Par défaut son type est DBL.

Ce n'est pas un tableau de valeur (trait fin):Cet indicateur ne reçoit qu'une valeur à la fois,

il doit être dans la boucle.

Génération d'un nombre aléatoire

LE FORMATAGE DU GRAPHE

Chapitre 8 – LES GRAPHES

1 – GRAPHE DEROULANT2 – GRAPHE

Le rôle du graphe est de représenter graphiquement un tableau de données.

Le graphe reçoit simultanément l'ensemble des données

sous forme d'un tableau de valeurs.

Par programmation, il ne faut envoyerles données au graphe qu'une seule fois,

le terminal graphe doit donc être hors de la boucle.

donnée01234567

510152025303540

Les données sont généralement calculées dans une boucle

Le tableau est obtenu par indexation (#Page 109 )du tunnel de sortie de la boucle

L'indice du point (n° ligne du tableau)

Le Graphe est un indicateur de type tableau.

Par défaut son type est DBL.

Cet indicateur reçoit toutes les valeurs à la fois,il doit être hors de la boucle.

Chapitre 8 – LES GRAPHES

1 – GRAPHE DEROULANT2 – GRAPHE3 – GRAPHE XY

Donnée X

Le rôle du graphe XY est de représenter graphiquement un tableau de données Y en fonction d'un tableau de données X

Le graphe reçoit simultanément l'ensemble des données

sous forme de 2 tableaux de valeurs.

Par programmation, il ne faut envoyerles données au graphe qu'une seule fois,

le terminal graphe XY doit donc être hors de la boucle.

Donnée Y0,10,20,30,40,50,60,70,8

510152025303540

Les données sont généralement calculées dans une boucle

Les 2 tableaux sont obtenus directement au niveau des 2 tunnels de sortie de la boucle.

Ils sont assemblés pour former un cluster.

Connecter le tableau des abscisses ici

Connecter le tableau des ordonnées ici

apparaît automatiquement

On dispose icid'un cluster

(assemblage)de 2 tableaux.

Tracé de courbe, échelle linéaire :

xi = xd + i * (xf-xd)/N

Chapitre 9 – REGISTRES A DECALAGE

1 – EXEMPLE 1

EXEMPLE : Programmer n!

On sait que n! = (n-1)! . n

Pour calculer n!, il faut avoir d'abord calculé (n-1)!Pour calculer (n-1)!, il faut avoir d'abord calculé (n-2) !Pour calculer (n-2)!, il faut avoir calculé (n-3)!

Etc ....

Variable facto type entierVariable i type entierfacto 1Pour i = 1 à N faire

facto facto.ii i+1

afficher factofin

Structure itérative boucle for

A la ième itération, on utilise le résultatcalculé à l'itération

précédente

En Labview cela se fait grâce au registre à décalage

Chapitre 9 – REGISTRES A DECALAGE

1 – EXEMPLE 12 – REGISTRE A DECALAGE DANS LABVIEW

On utilise des registres à décalage dans les boucles For et dans les boucles While pour transmettre des valeurs d'une itération à l'itération suivante.

i = N-1

Calcul

i = N

Calcul

i = N+1

Calcul

Au ième tour de boucle, la valeur calculée est fonction

de la valeur calculée au tour précédent

Clic droit sur le bord de la boucle

Valeurs au dernier tour de boucle

Factorielle n

La valeur calculée à la dernière itération sort par

le tunnel du registre

Chapitre 9 – REGISTRES A DECALAGE

1 – EXEMPLE 12 – REGISTRE A DECALAGE DANS LABVIEW3 – EXEMPLE 2

Exemple : Calculer et mettre à jour la moyenne M des 3 dernières mesures m

On a Mi = ( m

i + m

i -1 + m

i – 2 ) / 3

Avec LabVIEW, la méthode est différente

Variable m type flottanteVariable tab type tableau 3 éléments initialisés à 0Variable M type virgule flottante Faire

mesurer mtab[1] tab[2]tab[2] tab[3]tab[3] mM ( tab[1] + tab[2] + tab[3] ) / 3Afficher M

tant que stop = 0fin

Chapitre 9 – REGISTRES A DECALAGE

1 – EXEMPLE 12 – REGISTRE A DECALAGE DANS LabVIEW3 – EXEMPLE 24 – DECALAGES MULTIPLES DANS LabVIEW

On répète la mesure périodiquement => boucle while

Pour calculer Mi, on a besoin des valeurs mesurées dans les deux itérations précédentes.

i = N-1

Acquisition

Calcul Affichage

i = N

Acquisition

Calcul Affichage

i = N+1

Calcul

Acquisition

Affichage

Tirer avec la souris pour disposer de la donnée transmise par la i-2ème itération

mi

mi-1

mi-2

La mesure est simulée par la génération d'un nombre aléatoire

Affichage sur un graphe déroulant de la moyenne des trois derniers nombres aléatoires générés

Chapitre 10 – TABLEAUX 2D ET BOUCLES IMBRIQUEES

1 – EXEMPLE 1

Exemple 1 : Générer un tableau 15lignes, 10 colonnes rempli de nombres générés aléatoirement.

Générer le nombre de la 1ère colonne, puis de la 2ème,

puis de la troisième etc... jusqu'à la 10ème1ère ligne

Générer le nombre de la 1ère colonne, puis de la 2ème,

puis de la troisième etc... jusqu'à la 10ème

2ème ligne

Générer le nombre de la 1ère colonne, puis de la 2ème,

puis de la troisième etc... jusqu'à la 10ème3ème ligne

ETC ...2ème boucle For,

imbriquée dans la 1ère

Générer le nombre de la 1ère colonne, puis de la 2ème,

puis de la troisième etc... jusqu'à la 10ème15ème ligne

Nombre d'itération connu

=> boucle for

Exemple 1 : Générer un tableau 15lignes, 10 colonnes rempli de nombres générés aléatoirement.

Boucle principale

Boucle imbriquée : Elle se répétera 15 fois

Chapitre 10 – TABLEAUX 2D ET BOUCLES IMBRIQUEES

1 – EXEMPLE 12 – EXEMPLE 2

Exemple 2 : Remplacer les nombres impairs par 0 et garder les nombres pairs du tableau généré dans l'exemple précédant.

Tester la parité du nombre de la 1ère colonne, puis de la 2ème,

puis de la troisième etc... jusqu'à la 10ème1ère ligne

Tester la parité du nombre de la 1ère colonne, puis de la 2ème,

puis de la troisième etc... jusqu'à la 10ème2ème ligne

Tester la parité du nombre de la 1ère colonne, puis de la 2ème,

puis de la troisième etc... jusqu'à la 10ème3ème ligne

ETC ...2ème boucle For,

imbriquée dans la 1ère

Tester la parité du nombre de la 1ère colonne, puis de la 2ème,

puis de la troisième etc... jusqu'à la 10ème15ème ligne

Nombre d'itération connu

=> boucle for

Un test imbriqué dans la 2ème boucle

For

0

impair

Faux

Chapitre 11 – LES SEQUENCES

1 – INTRODUCTION

Langage classique :

Flot d'instructions

Les instructions écrites s'exécutent séquentiellement

Langage LabVIEW :

Flot de données

On ne maîtrise pasl'ordre d'exécution

des « instructions »

Chapitre 11 – LES SEQUENCES

1 – INTRODUCTION2 – DEFINITION

Langage LabVIEW :

Flot de données

On ne maîtrise pasl'ordre d'exécution

des « instructions »

La structure séquence permetde reprendre le contrôle

de l'ordre d'exécution du programme

La structure séquence dans LabVIEW :

La structure séquence se présente commeune succession d'étapes

semblable à la pellicule d'un film

Dans chaque étape (frame) : un diagramme.Les étapes successives sont exécutées dans l'ordre :

de façon séquentielle

Étape 1diag 1

Étape 2diag 2

Étape 3diag 3 Etc ...

2 types de séquences dans LabVIEW :

La séquence déroulée : Les différents diagrammes exécutés séquentiellement se suivent. Ils sont tous visibles.

La séquence empilée : Les diagrammes exécutés séquentiellement sont empilés. Comme pour la structure condition, un seul n'est visible à la fois.

Pour trouver la structure séquence :

Par défaut, on a la séquence déroulée.

Clic droit sur le bordClic droit sur le bord Pour ajouter des étapes :

Chapitre 11 – LES SEQUENCES

1 – INTRODUCTION2 – DEFINITION3 – EXEMPLE

Etape 0 : Acquisition du tempsGénération du nombre aléatoire

tant qu'il est différent du nombre à atteindre

Etape 1 : Acquisition du tempsCalcul et affichage de la durée

Chapitre 11 – LES SEQUENCES

1 – INTRODUCTION2 – DEFINITION3 – EXEMPLE4 - UTILISATION

Cette structure est souvent utilisée en informatique d'instrumentation

Cette structure peut également être utilisée également pour commander un système séquentiel (feux de carrefour)

Étape 1Configuration

carte d'acquisition

Étape 2Acquisition

Sortie Commande

Étape 3RAZ carte daq

Chapitre 11 – LES SEQUENCES

1 – INTRODUCTION2 – DEFINITION3 – EXEMPLE4 – UTILISATION5 – PASSAGE DE VALEURS

Le passage de valeurs se fait par tunnel

Le passage de valeurs se fait par variable locale de séquence

Clic droit sur le bordEtapes non visibles :

1 – SUITE ARITHMETIQUE

2 – SUITE GEOMETRIQUE

EXERCICES

Ecrire un programme permettant d'afficher à l'écran dans un terminal numérique tant que l'on n'a pas appuyé sur un bouton stop les éléments d'une suite arithmétique de 1er terme u0 et de raison q.Note : u0 et q seront choisis par l'utilisateur.

Idem avec une suite géométrique, mais pour un nombre N de termes.Faire apparaître en plus la somme des N termes de la suite.

Chapitre 12 – LES ENTREES SORTIES SUR FICHIER

1 –