Upload
nguyendieu
View
213
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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 !
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.
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
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
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)
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'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
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 »
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
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
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 !
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
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
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
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 :
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
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 ...
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 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.
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.
apparaît automatiquement
On dispose icid'un cluster
(assemblage)de 2 tableaux.
Tracé de courbe, échelle linéaire :
xi = xd + i * (xf-xd)/N
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
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
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
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
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
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 »
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.
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
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.