programmation labview

208
  Programmation  LabVIEW  ® Recueil de Travaux dirigés Proposés par  Michel Fiocchi 22 novembre 2002

Upload: imen-ben-hamida

Post on 22-Jul-2015

240 views

Category:

Documents


0 download

TRANSCRIPT

Programmation LabVIEW

Recueil de Travaux dirigsProposs par Michel Fiocchi

22 novembre 2002

22 novembre 2002

Michel Fiocchi Responsable de l'option Ingnierie des Systmes Embarqus ISMEA Technople de Chteau Gombert 13451 Marseille Cedex 20 [email protected]

www.ismea.fr

22 novembre 2002

Table des matiresPrsentation..............................................................................................1 TD1: Cration d'un VI............................................................................5 Exercice N 1: Simulateur.........................................................6 Exercice N 2: notion de sous-VI............................................12 TD2: Sous-VI.........................................................................................15 Exercice N 1: Appel d'un sous-VI.........................................16 Exercice N 2 : Cration d'un sous-vi....................................22 Exercice N 3: Mise au point...................................................30 TD3: Boucles et Graphes droulants....................................................37 Exercice N 1: Boucle FOR.....................................................38 Exercice N 2: Boucle WHILE...............................................44 Exercice N 3: Registre dcalage.........................................50 Exercice N 4: Graphe Multicourbes.....................................56 Exercice N 4: Registre non initialis.....................................62 TD4: Structure Condition.....................................................................69 Exercice N 1: Condition Vrai / Faux....................................70 Exercice N 2: Menu droulant .............................................76 Exercice N 3: Machine d'tat................................................82 Exercice N 4: Choix d'un cas parmi N ................................88

22 novembre 2002

TD5: Chanes de caractres...................................................................95 Exercice N 1: Mise en forme..................................................96 Exercice N 2: Analyse..........................................................102 Exercice N 3: Communication srie....................................108 TD6: Tableaux, clusters et graphes....................................................115 Exercice N 1: Cration d'un tableau..................................116 Exercice N 2: Graphe X-Y...................................................122 Exercice N 3: Graphe ..........................................................128 Exercice N 4: Graphe multicourbes....................................134 Exercice N 5: Curseurs .......................................................138 TD7: Fichiers.......................................................................................145 Exercice N 1: Enregistrement.............................................146 Exercice N 2: Enregistrement document..........................152 Exercice N 3: VI de niveau intermdiaire..........................158 Exercice N 4: Fichier texte...................................................164 Exercice N 5: Fichier de configuration...............................170 TD8: Structures complmentaires......................................................177 Exercice N 1: Structure squence.......................................178 Exercice N 2: Boite de calcul...............................................184 Exercice N 3: Boite onglets...............................................190

22 novembre 2002

22 novembre 2002

Initiation LabVIEW - Prsentation PrsentationL'ensemble des travaux dirigs proposs ci-aprs permettent de balayer les notions ncessaires la programmation graphique dans un environnement LabVIEW. Ils se prsentent sous une forme commune: Une page d'introduction

Prsente le thme du TD et les points abords. C'est une invitation la consultation de l'aide et des exemples proposs en ligne. Un ou plusieurs exercices avec: Une partie d'nonc

suivie d'une partie d'analyse

puis d'une partie solution .

Page - 7

Initiation LabVIEW - Prsentation

Tous les exemples proposs ci-aprs sont issus des tudes de faisabilit ou de prototypage relatives la ralisation du projet Banc de mesure d'excentrique propos. Nous nous appliquerons plus particulirement l'tude d'un module permettant de tester et valider le fonctionnement de la partie matrielle du banc. Le banc de mesure raliser est constitu d'une partie mcanique, d'une carte de contrle/commande et d'un logiciel de gestion s'excutant sur un ordinateur de pilotage. La partie mcanique, dcrite schmatiquement ci-dessous, comprend un moteur assurant le dplacement de l'excentrique, le capteur de position angulaire associ et un capteur de dplacement mesurant la variation de distance l'axe de rotation par rapport une valeur de rfrence.

La carte de contrle/commande assure les fonctions d'interface entre le logiciel de gestion d'une part et le groupe moteur / capteurs d'autre part. Elle communique avec l'ordinateur par le biais d'une liaison srie de type RS232 et suivant un protocole matre/esclave dfinir.

Page 8

Initiation LabVIEW - PrsentationBibliographie COTTET F. - LabVIEW, Programmation et application. Dunod, 2001 JOHNSON G. - LabVIEW, Graphical Programming Practical Application in Instrumentation and Control. McGraw Hill, 1997 NATIONAL INSTRUMENTS. - Initiation LabVIEW. National Instruments,Sept 2000 NATIONAL INSTRUMENTS. - Cours Basic I et II. ftp://ftp.ni.com/pub/training/

Page - 9

22 novembre 2002

Initiation LabVIEW - TD1: Cration d'un VI TD1: Cration d'un VIDans le cadre du dveloppement du logiciel de pilotage d'un banc de contrle dimensionnel d'un excentrique, nous allons tudier un simulateur remplaant la partie matrielle du projet. Pour ce premier exercice nous allons mettre en place les fonctionnalits de base de ce simulateur. Nous allons introduire les notions de base sur: Les 3 lments d'un VI Les Contrles et Indicateurs Les outils d'dition Les sous-VI

Page 11

Initiation LabVIEW - TD1: Cration d'un VISimul_0.viExercice N 1: Simulateur A partir d'une commande de position angulaire (P exprime en degrs par pas de 1.8) le programme doit calculer la position atteinte (A valeur angulaire modulo 360) et une mesure de la variation relative du rayon ( R exprime en millimtre), donne pour un excentrique de diamtre 100 mm et dont l'excentration (E) est de 10 mm avec un angle de dphasage (D) de 30. R = Esin ( P D )

Analyser le problme en terme de flux de donnes. Mettre en place les lments de la face. Enregistrer sous le nom Simul_0.vi Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:Quotient & Reste Calcule le quotient entier et le reste des entres. Sinus Calcule le sinus de x, avec x en radians.

Sauvegarder

Page 12

Initiation LabVIEW - TD1: Cration d'un VI

Page - 13

Initiation LabVIEW - TD1: Cration d'un VISimul_0.viVariables d'entres: P Sous titre dfaut 0

Position angulaire atteindre exprime en degrs. Position min type max double incr 1.8 apparence standard

Variables de sortie: A Sous titre Valeur angulaire modulo 360 Angle type double apparence standard

R Sous titre

Variation relative du rayon exprime en millimtres Dplacement type double apparence standard

Flux de donne:Angle Position Variation R

Page 14

Initiation LabVIEW - TD1: Cration d'un VI

Ergonomie: Pour des raisons d'uniformit nous adopterons un style pour tous nos VI.

Le cadre (lment de dcoration) sert dlimiter la face avant (impression). Seul les sous-titres sont visibles (times new roman /12 /bleu roi), les contrles/indicateurs sont aligns par le haut et par la gauche. Analyse Deux calculs indpendants sont faits: le calcule de l'angle modulo 360. le calcule du dplacement suivant la formule: R = Esin ( P D ) calcul de l'argument conversion en radian calcul du dplacement E (excentration) et D (dphasage) sont des paramtres constants.

Page - 15

Initiation LabVIEW - TD1: Cration d'un VISimul_0.viDiagramme

Modifier si ncessaire les options de LabVIEW pour voir sur le diagramme des points aux jonctions de fils ( outils>>options diagramme). Regrouper les blocs fonctionnels et aligner les variables, paramtres et constantes pour une meilleure lisibilit. Documenter le diagramme.

Page 16

Initiation LabVIEW - TD1: Cration d'un VI

Page - 17

Initiation LabVIEW - TD1: Cration d'un VISimul_0.viExercice N 2: notion de sous-VI Le module de simulation doit pouvoir tre appel par d'autres VI. Pour cela, il faut dfinir des liaisons entre les commandes et indicateurs de sa face avant (entres et sorties de la fonction de simulation) et le VI appelant. C'est le rle des connecteurs situs derrire l'icne de la face avant.

Dessiner l'icne Cbler les connecteurs Documenter Sauvegarder

Page 18

Initiation LabVIEW - TD1: Cration d'un VI

Rsultat Obtenu:

Page - 19

22 novembre 2002

Initiation LabVIEW - TD2: Sous-VI TD2: Sous-VILa carte de contrle/commande du banc pilote le moteur pas pas en fonction du nombre de pas (et non de l'angle) et assure la conversion de la mesure R en valeurs numriques signes grce un convertisseur analogique numrique sur 12 bit. Nous allons modifier le VI de simulation en consquence.

Nous aborderons les points suivant: Appel de sous-VI Proprits des objets Notions sur les attributs Fonctions de test Mise au point

Page 21

Initiation LabVIEW - TD2: Sous-VITD2_1.viExercice N 1: Appel d'un sous-VI crire un programme de simulation qui en appelant le VI simul_0.vi, accepte en entre une commande sous forme de position exprime en nombre de pas puis retourne l'angle atteint galement exprim en nombre de pas (200 pas par tour) et la mesure sous forme numrique. Nous considrerons que la correspondance entre la valeur physique en millimtres et la valeur numrique retourne est linaire entre -25mm et +25mm (2048 pour 25mm ). Afin de donner plus de ralisme notre simulateur, nous allons introduire une erreur de mesure alatoire sur la mesure de dplacement de 5 LSB (5 units sur la gamme de mesure).

Analyser avec soin le problme Mettre en place les lments de la face avant d'un nouveau VI. Enregistrer sous le nom TD2_1.vi Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:Nud d'expression Utilisez le Nud d'expression pour calculer des expressions ou des quations, qui contiennent une variable unique. Les Nuds d'expression sont utiles lorsqu'une quation a seulement une variable mais est complique. Vous pouvez utiliser n'importe quel type de donnes lorsque vous crez un nud d'expression.

Sauvegarder.

Page 22

Initiation LabVIEW - TD2: Sous-VI

Page - 23

Initiation LabVIEW - TD2: Sous-VITD2_1.viVariables d'entres:

P Sous titre dfaut 0

Position angulaire atteindre exprime en pas Position min type max Entier 16 incr apparence standard

Variables

de sortie: Valeur angulaire en pas dans le tour Angle type Entier 16 apparence standard

A Sous titre

R Sous titre

Variation relative du rayon sur 12 bit Dplacement type Entier 16 apparence standard

Page 24

Initiation LabVIEW - TD2: Sous-VI

Ergonomie

La position angulaire en nombre de pas est convertie en angle (par multiplication par la valeur du pas 1,8) pour donner la valeur de l'entre P du sous-VI de simulation simul_0.vi. En sortie de simul_0.vi, la valeur de l'angle est convertie en nombre de pas (par division par 1,8). Le rsultat donne la valeur de la variable de sortie A. La sortie dplacement de simul_0.vi donne aprs conversion (rgle de 3 ....../25*2048) et addition du bruit, la valeur de la variable de sortie R. le bruit est gnr partir de la fonction Random [0-1] symtrise 1 avant d'tre mis l'chelle. La valeur de sortie est borne 2048 soit explicitement (correction) soit implicitement en bornant la valeur de l'indicateur

Page - 25

Initiation LabVIEW - TD2: Sous-VITD2_1.viDiagramme

Page 26

Initiation LabVIEW - TD2: Sous-VI

Le lecteur remarquera les changements automatiques de type de donnes I16 DBL et DBL I16

Page - 27

Initiation LabVIEW - TD2: Sous-VISimul_1.viExercice N 2 : Cration d'un sous-vi Le dtail de la ralisation du bruit symtrique ajout la mesure n'apporte rien la comprhension du vi. Nous allons voir comment encapsuler le diagramme correspondant pour en faire un sous-vi. Slectionner les fonctions et constantes devant tre encapsules. Dans le menu Edition choisir Crer un sous vi . Editer le nouveau vi, nommer les variables et documenter Sauvegarder sous le nom +bruit.vi. Sauvegarder le vi appelant sous le nom Simul_1.vi aprs avoir document l'aide.

Page 28

Initiation LabVIEW - TD2: Sous-VI

Page - 29

Initiation LabVIEW - TD2: Sous-VI+bruit.viVariables d'entres:

Sous titre dfaut min

type apparence max incr

Sous titre dfaut min

type apparence max incr

Variables de sortie:

Sous titre

type apparence

Page 30

Initiation LabVIEW - TD2: Sous-VI

Ergonomie

Page - 31

Initiation LabVIEW - TD2: Sous-VI+bruit.viAdditionne un bruit alatoire entier dont l'amplitude est dfinie par l'entre Amplitude Cadre connecteur

Diagramme

Page 32

Initiation LabVIEW - TD2: Sous-VI

Page - 33

Initiation LabVIEW - TD2: Sous-VISimul_1.viCadre connecteur

Diagramme

Position dans la hirarchie

Page 34

Initiation LabVIEW - TD2: Sous-VI

Page - 35

Initiation LabVIEW - TD2: Sous-VITD2_2.viExercice N 3: Mise au point crire un programme de test qui en appelant le VI simul_1.vi, prsente les mesures soit en valeur physique, soit en valeur numrique en fonction de l'tat d'un slecteur boolen en face avant. Analyser avec soin le problme Mettre en place les lments de la face avant d'un nouveau VI. Enregistrer sous le nom TD2_2.vi Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:Slectionner Retourne la valeur connecte l'entre t ou f, en fonction de la valeur de s. Si s est VRAI, cette fonction retourne la valeur connecte t. Si s est FAUX, cette fonction retourne la valeur connecte f.

Sauvegarder.

Page 36

Initiation LabVIEW - TD2: Sous-VI

Page - 37

Initiation LabVIEW - TD2: Sous-VITD2_2.viVariables

Internes: Choix du type d'affichage , mm (F) ou numrique (T) Slecteur F min type apparence max Bolen incr

Slecteur Sous titre dfaut

Glissire Sous titre

Valeur angulaire en pas dans le tour Glissire type Double apparence Glissire Valeur angulaire en pas dans le tour Jauge type apparence Double Jauge

Jauge Sous titre

Page 38

Initiation LabVIEW - TD2: Sous-VI

Ergonomie

Les valeurs de chaque sortie de simul_1.vi sont affiches soit directement soit aprs conversion suivant la valeur de l'entre Slecteur. Suivant le type d'affichage les chelles des indicateurs doivent tre reconfigures.

Page - 39

Initiation LabVIEW - TD2: Sous-VITD2_2.viDiagramme

Page 40

Initiation LabVIEW - TD2: Sous-VI

Page - 41

22 novembre 2002

Initiation LabVIEW - TD3: Boucles et Graphes droulants TD3: Boucles et Graphes droulantsNous aborderons les points suivants:

Prsentation des graphes droulants Structures de boucle For et While ( les tunnels) Registres dcalage Pour valider notre VI de simulation nous allons tracer l'allure du dplacement en fonction de la position demande sur une plage relativement large. A chaque pas de calcul, le rsultat est prsent sur un graphique de type oscilloscope.

Page 43

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_1.viExercice N 1: Boucle FOR En utilisant le VI de simulation Simul_1.vi, nous allons tracer les variations du rayon en fonction de la commande de position sur un tour (de 0 360) pour un nombre de points fix (compris entre 10 et 200). Les angles seront exprims en degrs.

Analyser avec soin le problme Mettre en place les lments de la face avant d'un nouveau VI. Enregistrer sous le nom TD3_1.vi Programmer les oprations ncessaires. Tester puis corriger les problmes de configuration d'axe. Sauvegarder.

Page 44

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Page - 45

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_1.viVariables d'entres: Nb Sous titre dfaut 200 Nombre de points par tour Points min 10 type max Entier 16 non sign 200 incr 1 apparence standard

Variables de sortie: Graphe droulant Sous titre Variation de rayon (valeur numrique) Graphe droulant type Entier 16 apparence standard

Page 46

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Ergonomie

La boucle For fait un nombre d'itrations prdtermin. A chaque itration de la boucle, la variable Position passer au sous vi Simul_1.vi est dfinie par : 200 Position=iEnt( ) Nb ou i est l'indice de boucle. La variable de sortie R du sous vi Simul_1.vi est directement affiche sur le graphe droulant . Le nombre d'itrations faire est dfini par la variable Nb. 200 ) est calcul en amont de la boucle. L'incrment angulaire Ent( Nb Le graphe est correctement initialis: effacement de la courbe configuration dynamique de l'chelle des x

Page - 47

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_1.viDiagramme

Page 48

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Le nud de proprit de l'objet graphe droulant permet de configurer dynamiquement l'chelle des x en prcisant la valeur de l'incrment en x (en degrs) et les valeurs minimale et maximale de l'chelle. La proprit Historique permet, par un artifice , d'initialiser le graphe (ce serait une mthode) en forant le tableau des valeurs reprsenter sa valeur initiale (structure vide). La structure d'erreur issue du nud de proprit est relie un tunnel d'entre de la boucle pour crer un lien de dpendance; tous les tunnels doivent tre valids avant que la boucle puisse dmarrer, nous nous assurons ainsi que le graphe est initialiser avant de tracer la courbe. Les points griss en entre des fonctions (multiplication et Simul_1.vi) marque un changement de type de donne.

Page - 49

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_2.viExercice N 2: Boucle WHILE En utilisant le VI de simulation Simul_1.vi, nous allons tracer les variations du rayon en fonction de la commande de position entre une Position de dpart et une Position d'arrive pour un incrment angulaire infrieur ou gal 15 pas. Les angles seront exprims en degrs, l'incrment angulaire en pas.

Page 50

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Page - 51

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_2.viVariables d'entres:

Pas Sous titre dfaut 1

Incrment angulaire (en pas) Pas min 1 type max Entier 16 15 incr 1 apparence standard

Dbut Sous titre dfaut -360

Position de dbut de mesure (en degrs) Dbut min type max double incr 1.8 apparence standard

Fin Sous titre dfaut 360

Position de la dernire mesure (en degrs) Fin min type max double incr 1.8 apparence standard

Variables de sortie: Graphe droulant Sous titre Variation de rayon (valeur numrique) Graphe droulant type Entier 16 apparence standard

Page 52

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Face-avant

La boucle While itre depuis la position de dbut jusqu' la position de fin. Les positions exprimes en degrs devront tre au pralable converties en nombre de pas (.../1.8). A chaque itration de la boucle, la variable Position passer au sous vi Simul_1.vi est dfinie par : Position=Dbut iPas ou i est l'indice de boucle. La variable de sortie R du sous vi Simul_1.vi est directement affiche sur le graphe droulant . La condition d'arrt est atteinte ds que la position venir (prochaine itration) dpasse la position de fin demande. Le test darrt tant fait en fin de boucle, la boucle itre tant que la position courante est infrieure ou gale la valeur de fin diminue de l'incrment angulaire (Pas). Le graphe est initialis (nud de proprits) effacer le graphe dfinir le dbut et la fin de l'axe de x dfinir l'incrment et le dcalage de la courbe

Page - 53

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_2.viDiagramme

Page 54

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Les conversions en I32 assurent une compatibilit de type des oprateurs contenus dans la boucle; vite les conversions chaque itration ce qui optimise le temps de boucle (non obligatoire). Remarque: L'entre Position du vi Simul_1 ne correspond pas au type de donne reue

Page - 55

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_3.viExercice N 3: Registre dcalage Dans cet exercice, le calcul de la position sera optimis.

Modifier le VI TD3_2 afin de calculer la position courante par la formule Position (i + 1) Position (i ) + Pas Sauvegarder sous TD3_3.

Page 56

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Page - 57

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_3.vi

Page 58

Initiation LabVIEW - TD3: Boucles et Graphes droulants

La boucle While itre depuis la position de dbut jusqu' la position de fin. Les positions exprimes en degrs devront tre au pralable converties en nombre de pas (.../1.8). A chaque itration de la boucle, la variable Position passer au sous vi Simul_1.vi est dfinie par : Position= Position 1 Pas La variable de sortie R du sous vi Simul_1.vi est directement affiche sur le graphe droulant . La premire boucle doit s'excuter pour la position de dpart. Il faut initialiser le registre avec cette valeur et calculer aprs l'appel du vi de simulation, la valeur de la position venir. La condition d'arrt est atteinte ds que la position venir (prochaine itration) dpasse la position de fin demande (tant qu'elle est infrieur ou gale ....) Le graphe est initialis (nud de proprits) effacer le graphe dfinir le dbut et la fin de l'axe de x dfinir l'incrment et le dcalage de la courbe

Page - 59

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_3.viDiagramme

Page 60

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Page - 61

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_4.viExercice N 4: Graphe Multicourbes (Complmentaire) Pour mettre en vidence les erreurs de mesure, nous allons calculer et tracer la drive de la courbe de mesure. La drive sera value en fonction du point prcdent et du point suivant. Y 1 Y Y= 1 (2 X ) Reprendre l'exercice prcdent pour ajouter la seconde courbe sur le mme graphe droulant. Le lecteur consultera l'aide en ligne du graphe et l'exemple indiqu avant de faire l'analyse du problme. Configurer le graphe l'diteur pour avoir deux chelles pour les axes des Y, une pour la mesure, une pour la drive.

Page 62

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Page - 63

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_4.vi

Page 64

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Face-avant

Page - 65

Initiation LabVIEW - TD3: Boucles et Graphes droulantsTD3_4.viDiagramme

Page 66

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Le lecture remarquera le changement de structure du graphe droulant Scalaire Cluster

Page - 67

Initiation LabVIEW - TD3: Boucles et Graphes droulantsSimul_2.viExercice N 4: Registre non initialis Aprs une tude dtaille du fonctionnement du moteur, force est de constater qu'il est plus astucieux de passer en paramtre non pas la position atteindre, mais le nombre de pas excuter. D'autre part, la rotation prend un temps proportionnel au nombre de pas, de l'ordre de 5 milli-secondes par pas. Complter le vi Simul_1.vi pour prendre en compte ces deux remarques. Prvoir une entre d'initialisation pour positionner le moteur pas pas sur une position de rfrence (sortie Angle gale 0). Enregistrer sous le nom Simul_2.vi. Le vi obtenu sera considr dans la suite des exercices comme le simulateur de la partie physique du banc de test.

Page 68

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Page - 69

Initiation LabVIEW - TD3: Boucles et Graphes droulantsSimul_2.viVariables d'entres: P Sous titre dfaut 0 Nombre de pas demand Incrment min type max Entier 16 incr apparence standard

Initialisation Sous titre dfaut F

Force la position 0 Initialisation min type max Bolen incr apparence standard

Variables de sortie: A Sous titre Valeur angulaire en pas dans le tour Angle type Entier 16 apparence standard

R Sous titre

Variation relative du rayon sur 12 bit Dplacement type Entier 16 apparence standard

Page 70

Initiation LabVIEW - TD3: Boucles et Graphes droulantsErgonomie

La position atteinte dans le tour doit tre mmorise par le vi (registre dcalage non initialis) A chaque appel sans demande d'initalisation, la position est calcule en ajoutant le nombre de pas demands la valeur mmorise. Pour un appel avec demande d'initialisation, la position est force 0, le nombre de pas demand est ignor. Pour ajouter au ralisme, nous mettrons en place une temporisation gale 5 ms par pas de dplacement excuter. Calcul du nombre de pas excuter diffrence entre la position atteindre et la position mmorise en valeur absolue. Multiplication par 5 ms et appel de la fonction de temporisation

Page - 71

Initiation LabVIEW - TD3: Boucles et Graphes droulantsSimul_2.viDiagramme

Cadre connecteur

Page 72

Initiation LabVIEW - TD3: Boucles et Graphes droulants

Page - 73

22 novembre 2002

Initiation LabVIEW - TD4: Structure Condition TD4: Structure ConditionPour tester la carte de pilotage du banc, il est ncessaire d'envoyer des commandes choisies par l'utilisateur et prises parmi le jeux de commandes comprises par la carte (Initalisation, Dplacement, Mesure, ....). Il faudra galement analyser les rponses et les ventuelles erreurs. Nous allons dans les exercices proposs ci-aprs nous familiariser avec les problmes de test ou de choix multiple. Nous introduirons les notions de base sur: Les structures de condition Les contrles et indicateurs de chane de caractres Listes droulantes et numrations Les contrles Bolen Les actions mcaniques Les tableaux et les manipulations de tableaux Les variables locales

Page 75

Initiation LabVIEW - TD4: Structure ConditionTD4_1.viExercice N 1: Condition Vrai / Faux (Facultatif) Nombre de vi de la bibliothque LabVIEW retournent en cas d'erreur une valeur -1 pour l'une des variables de sortie (gnralement un index). En utilisant le vi +Bruit.vi de telle sorte qu'il gnre un nombre compris entre -1 et 7, crire un vi qui, chaque fois qu'une erreur est signale, demande l'oprateur s'il veut poursuivre ou non l'excution du vi. Analyser avec soin le problme du test. Mettre en place les lments de la face avant d'un nouveau VI en visualisant le paramtre retourn +Bruit.vi et format en entier.

Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:Bote de dialogue 2 boutons Affiche une bote de dialogue qui contient un message et deux boutons. nom du bouton V et nom du bouton F sont les noms affichs sur les boutons de la bote de dialogue.

Page 76

Initiation LabVIEW - TD4: Structure Condition

Page - 77

Initiation LabVIEW - TD4: Structure ConditionTD4_1.vi

Page 78

Initiation LabVIEW - TD4: Structure Condition

Ergonomie

Le programme boucle jusqu' la validation d'une erreur par l'oprateur (structure while). Le vi +Bruit.vi reoit en entre les paramtres 3 (Entre) et 4 (Amplitude), sa sortie est convertie en entier pour donner Paramtre. Paramtre doit tre test, s'il est ngatif (-1) il y a erreur. S'il n'y pas d'erreur, la condition de boucle doit tre positionne Vrais (T). S'il y a erreur, le vi Bote de dialogue 2 boutons.vi est appel, configur pour demandez si le programme continu (une rponse affirmative donne une sortie T) et la condition de boucle est active par sa sortie.

Page - 79

Initiation LabVIEW - TD4: Structure ConditionTD4_1.viDiagramme

Page 80

Initiation LabVIEW - TD4: Structure Condition

La Temporisation permet de ralentir la boucle ( seconde) afin de laisser l'oprateur le temps de visualiser les valeurs affiches. Cette boucle prsente deux processus indpendants, la squence de gnration/test et la temporisation. Ils doivent tre tous les deux termins avant de passer l'itration suivante.

Le lecteur remarquera le tunnel de sortie qui reoit imprativement une valeur de chaque condition.

Page - 81

Initiation LabVIEW - TD4: Structure ConditionTD4_2.viExercice N 2: Menu droulant Pour cet exercice, nous allons partir d'un contrle de type menu droulant, demander l'excution de l'une des trois fonctions de base (Initalisation, Dplacement, Mesure). Chaque fonction consiste ici crire un message et dure respectivement 5 secondes, 2 secondes et 1 seconde. Un bouton Stop permet d'arrter le programme. Analyser le problme Mettre en place les lments de la face avant d'un nouveau VI . Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:Attendre (ms) Attend pendant le nombre de millisecondes spcifi et retourne la valeur de l'horloge en millisecondes. La fonction Attendre (ms) excute des appels de systme asynchrones, mais les nuds fonctionnent de manire synchrone. Elle attend donc que le temps spcifi se soit coul pour terminer l'excution.

Page 82

Initiation LabVIEW - TD4: Structure Condition

Page - 83

Initiation LabVIEW - TD4: Structure ConditionTD4_2.viVariable d'entres: Menu droulantes Sous titre dfaut 0 1 2 3 Slection de la fonction Menu droulant Attente commande Initialisation Positionnement Messure type U16 apparence Menu doulant

Variable de sortie: Message Sous titre Indique la fonctionnalit excute message type apparence Variable interne stop Sous titre dfaut F stop Action Mcanique type Bolen apparence Bouton STOP Armement l'appui chaine

Page 84

Initiation LabVIEW - TD4: Structure Condition

Face-avant

Le programme boucle jusqu' l'arrt par l'oprateur (bouton STOP). Le menu droulant permet de slectionner 1 tat parmi 4, les trois fonctions et un tat d'attente. Cet tat est pris comme tat par dfaut. Pour chaque tat, il doit tre dfini, un message et un temps. Ces valeurs sont passes un afficheur et une fonction de temporisation. En fin de boucle, le menu droulant doit tre forc au cas par dfaut. Remarque: L'utilisation d'un menu droulant ou d'une numration comme contrle d'entre donne deux vi rpondant la mme analyse mais avec une lisibilit du diagramme diffrente

Page - 85

Initiation LabVIEW - TD4: Structure ConditionTD4_21.viDiagramme

La temporisation de 100 ms pour le cas dfaut permet d'adapter le temps de boucle au temps de raction de l'oprateur et surtout de librer du temps machine pour le systme d'exploitation.

Page 86

Initiation LabVIEW - TD4: Structure ConditionTD4_22.viDiagramme

L'utilisation de la variable locale permet de rinitialiser le contrle d'entre la valeur 0, choisi comme valeur par dfaut. Le mme rsultat pourrait tre obtenu en forant la proprit valeur du nud de proprits du contrle.

Page - 87

Initiation LabVIEW - TD4: Structure ConditionTD4_3.viExercice N 3: Machine d'tat. Nous allons reprendre l'exercice prcdent en modifiant l'ergonomie du vi; le menu est remplac par un ensemble de boutons, un par fonction.

Page 88

Initiation LabVIEW - TD4: Structure Condition

Page - 89

Initiation LabVIEW - TD4: Structure ConditionTD4_3.viVariable de sortie: Message Sous titre Indique la fonctionnalit excute message type apparence Variable interne stop Sous titre dfaut Init Sous titre dfaut F Init Action Mcanique type Bolen apparence Bouton-poussoir Armement l'appui F stop Action Mcanique type Bolen apparence Bouton STOP Armement l'appui chaine

Positionnement Sous titre dfaut Mesure Sous titre dfaut F Mesure Action Mcanique type Bolen apparence Bouton-poussoir Armement l'appui F Positionnement Action Mcanique type Bolen apparence Bouton-poussoir Armement l'appui

Page 90

Initiation LabVIEW - TD4: Structure Condition

Face-avant

Le programme boucle jusqu' l'arrt par l'oprateur (bouton STOP). Un seul poussoir pouvant tre actif simultanment, il suffit de chercher s'il y un poussoir valid et lequel. Pour chaque tat, il doit tre dfini, un message et un temps. Ces valeurs sont passes un afficheur et une fonction de temporisation. Si aucun poussoir n'est valid, le cas par dfaut (attente) est excut. Sinon, le cas valid est excut Aprs lecture, les poussoirs prennent leur valeur par dfaut (action mcanique de type armement)

Page - 91

Initiation LabVIEW - TD4: Structure ConditionTD4_3.viDiagramme

Page 92

Initiation LabVIEW - TD4: Structure Condition

Pour rechercher quel est le poussoir valid, les poussoirs sont regroups dans une structure de tableau, puis le tableau analys par une fonction de recherche de valeur (ici la valeur vrai). Si aucun lment correspond, la valeur de l'index est donne -1, sinon elle indique le numro du premier lment correspondant. L'ordre dans le tableau dfinit une priorit de traitement. Remarque: Le bouton stop aurait pu tre intgr au tableau est trait par la structure condition.

Page - 93

Initiation LabVIEW - TD4: Structure ConditionTD4_4.viExercice N 4: Choix d'un cas parmi N Pour raliser la simulation de la carte de commande du banc de mesure, il faudra tre capable de choisir l'excution d'une commande partir du message reu. Chaque commande est concrtise dans ce message par une lettre (I Initalisation, P Dplacement, M Mesure). Nous allons raliser un programme qui partir de la saisie d'une lettre dans un contrle de type chane de caractres excute la fonction demande si la lettre correspondante est saisie (en majuscule ou minuscule).

Page 94

Initiation LabVIEW - TD4: Structure Condition

Page - 95

Initiation LabVIEW - TD4: Structure ConditionTD4_4.viVariable d'entres: Commande Sous titre dfaut vide Lettre dfinissant la commande excuter Commande type apparence chaine

Variable de sortie: Message Sous titre Indique la fonctionnalit excute message type apparence Variable interne stop Sous titre dfaut F stop Action Mcanique type Bolen apparence Bouton STOP Armement l'appui chaine

Page 96

Initiation LabVIEW - TD4: Structure Condition

Face-avant

Le programme boucle jusqu' l'arrt par l'oprateur (bouton STOP). Pour chaque commande, il doit tre dfini, un message et un temps. Ces valeurs sont passes un afficheur et une fonction de temporisation. Toute lettre saisie est teste en respectant la casse, avec la lettre de chaque commande. S'il n'y a pas correspondance le cas par dfaut (attente) est excut. En fin de boucle, le contrle Commande doit tre effac (variable locale).

Page - 97

Initiation LabVIEW - TD4: Structure ConditionTD4_4.viDiagramme

Page 98

Initiation LabVIEW - TD4: Structure Condition

La proprit Focus Clavier permet de forcer le curseur dans la zone d'criture.

Page - 99

22 novembre 2002

Initiation LabVIEW - TD5: Chanes de caractresTD5: Chanes de caractresL'utilisation des chanes de caractres est courante, saisie de paramtres, lecture de fichiers de configuration, sauvegarde de rsultats, communication.... Au travers les exercices ci-aprs, vous dcouvrirez les fonctions lmentaires, la consultation des exemples vous apportera de prcieux complments. Nous allons introduire les notions de base sur: Manipulation de chanes Configuration de VI Mise en forme Notions sur les entres/sorties srie Introduction aux clusters Dans ce TD, nous allons tudier la communication entre le calculateur et la carte de pilotage. Un premier exercice nous permettra de mettre en forme les commandes, un deuxime d'analyser une rponse et de grer les erreurs, enfin un troisime intgrera les deux premiers en les faisant communiquer par le port srie.

Page 101

Initiation LabVIEW - TD5: Chanes de caractresTD5_1.viExercice N 1: Mise en forme Pour cet exercice, nous allons partir par un ensemble de boutons poussoir crer la chane de commande correspondant la fonction choisie (Initalisation, Dplacement ou Mesure). Ce vi s'inspire fortement de l'exercice n3 du TD prcdent, la boucle s'excutant jusqu' la validation d'un choix, la slection du bouton Stop retournera une commande vide. Le jeux de commandes retenu pour le pilotage du banc est un jeux de bas niveau correspondant au trois fonctions de base; mise en place initiale, avancer d'un ou plusieurs pas (1,8), mesure du dplacement relatif. Toutes les commandes sont codes en ASCII sur le mme format, un dlimiteur, : , une lettre majuscule dfinissant la commande, C , un paramtre optionnel et un caractre de fin de commande, le symbole Line Feed(\n) :C\n Tous les nombres sont des entiers cods en ASCII Tous les changes se font sur le modle matre/esclave. Le matre met une commande puis attend la rponse de l'esclave. L'esclave attend une commande, l'excute, met en forme la rponse et la retourne. Initialisation Commande :I\n Rponse :Iaaa\n ou aaa est un entier non sign sur 3 digit donnant la valeur de la mesure angulaire Pas Commande :Pppp\n Rponse :Paaa\n

ou ppp est un entier non sign sur 3 digit ou aaa est un entier non sign sur 3 digit donnant le nombre de pas effectuer donnant la valeur de la mesure angulaire

Page 102

Initiation LabVIEW - TD5: Chanes de caractres

Mesure Commande :M\n Rponse :Mmmmm\n ou mmmm est un entier sign sur 4 digit donnant la valeur de la mesure de dplacement Remarque: pour les champs numriques, les chiffres non significatif sont remplacs par des zro (0)

Page - 103

Initiation LabVIEW - TD5: Chanes de caractresTD5_1.viVariable de sortie: Commande Sous titre Indique la fonctionnalit excute message type apparence Variable interne Init Sous titre dfaut F Init Action Mcanique type Bolen apparence Bouton-poussoir Armement l'appui chaine

Positionnement Sous titre dfaut Mesure Sous titre dfaut Stop Sous titre dfaut Pas Sous titre dfaut 1 F Stop Action Mcanique type Bolen apparence Bouton-poussoir Armement l'appui F Mesure Action Mcanique type Bolen apparence Bouton-poussoir Armement l'appui F Positionnement Action Mcanique type Bolen apparence Bouton-poussoir Armement l'appui

Incrment angulaire (en pas) Pas min 1 type max Entier 16 200 incr 1 apparence standard

Page 104

Initiation LabVIEW - TD5: Chanes de caractres

Ergonomie

Le jeux de fonctions est gr par une machine d'tat Ds qu'un bouton est valid, le vi retourne la chane de commande. Si le bouton Stop est activ, la chane de commande retourne est une chane vide. Les commandes sont obtenues par concatnation de l'entte commune ( : ), de la chane spcifique chaque choix et du caractre de fin de commande ( \n ). Les commandes I et M sont obtenues par simple concatnation, la commande P par mise en forme de la valeur du pas

Page - 105

Initiation LabVIEW - TD5: Chanes de caractresTD5_1.viDiagramme

Page 106

Initiation LabVIEW - TD5: Chanes de caractres

Page - 107

Initiation LabVIEW - TD5: Chanes de caractresTD5_2.viExercice N 2: Analyse La chane de commande reue est analyse pour afficher un message indiquant soit la fonction demande (Initialisation, Dplacement de n pas ou Mesure) soit la nature de l'erreur (format ou commande).

Page 108

Initiation LabVIEW - TD5: Chanes de caractres

Page - 109

Initiation LabVIEW - TD5: Chanes de caractresTD5_2.viVariables d'entres: Commande Sous titre dfaut vide Commande type apparence Chane de caractre

Variables de sortie: Message Sous titre Message type apparence Chane de caractre

Erreur Sous titre Erreur type Bolen apparence Led carre rouge

Page 110

Initiation LabVIEW - TD5: Chanes de caractres

Face-avant

Si le premier caractre n'est pas gal au caractre de dbut, ou si la commande ne contient pas le symbole Line Feed, le message devient erreur de format et la sortie d'erreur est positionne sinon le premier caractre suivant est valu Si ce caractre n'est pas une commande valide, le message devient erreur de commande et la sortie d'erreur est positionne. Pour les commandes I et M le message est positionn en consquence. Pour la commande P, la chane de commande est balaye pour extraire la valeur du pas. En cas d'erreur, une erreur de commande est spcifie, sinon le message indiquant le nombre de pas de dplacement est mis en forme

Page - 111

Initiation LabVIEW - TD5: Chanes de caractresTD5_2.viDiagramme

Page 112

Initiation LabVIEW - TD5: Chanes de caractres

En sortie de la fonction de balayage, les ventuelles erreurs sont signale dans une structure de type cluster. La variable boolenne de ce cluster est extraite pour tester la conformit au format recherch.

Page - 113

Initiation LabVIEW - TD5: Chanes de caractresTD5_3.viExercice N 3: Communication srie Les commandes cres par TD5_1.vi sont transmises par le biais d'un port de communication au module d'analyse TD5_2.vi. Le port de communication srie choisi devra tre bouchonn (court-circuit des lignes TD et RD) pour permettre le dialogue. A l'excution, deux fentres sont ouvertes. Une fentre principale, permettant de choisir le port de communication, d'interrompre l'excution, et d'afficher les messages d'interprtation avec les ventuelles erreurs. Une fentre secondaire affiche les boutons de choix de la fonction demande.

Page 114

Initiation LabVIEW - TD5: Chanes de caractres

Page - 115

Initiation LabVIEW - TD5: Chanes de caractresTD5_3.vi

Page 116

Initiation LabVIEW - TD5: Chanes de caractres

Face-avant

Page - 117

Initiation LabVIEW - TD5: Chanes de caractresTD5_3.viDiagramme

Page 118

Initiation LabVIEW - TD5: Chanes de caractres

Si une erreur de communication apparat, l'excution est interrompue. Le vi d'erreur permet d'interprter le cluster d'erreur retourn par l'ensemble des vi de communication. La dure du time-out (1 seconde) et la valeur de dlimiteur de fin de commande (/n ou 0X0A ou 10) sont dfinies la configuration du port. La lecture du port se fait concurrence de 100 caractres (impossible), de la dtection du caractre de fin (/n)ou d'un dlai trop long. Si une commande vide est retourne par TD5_1 (bouton Stop) le vi est arrter. Le nud du sous-vi TD5_1 est configur pour s'ouvrir ds le chargement de l'application.

Page - 119

22 novembre 2002

Initiation LabVIEW - TD6: Tableaux, clusters et graphes TD6: Tableaux, clusters et graphesDans la suite de ce recueil de TD, nous allons tudier la gestion des mesures acquises; prsentation, reprsentation graphique et archivage. Aprs une acquisition simule sur un tour l'aide du VI Simul_2.vi nous allons prsenter les rsultats obtenus de diverses faons. Nous aborderons les points suivant: Cration d'un tableau par auto indexation Graphes X-Y Polymorphisme Manipulations et fonctions sur les tableaux Graphes Curseurs

Page 121

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_1.vi

Exercice N 1: Cration d'un tableau Nous allons prsenter les rsultats sous la forme d'un tableau de deux colonnes, la premire contenant les angles, la seconde les dplacements (une structure identique celle que retournerait une carte d'acquisition). La mesure se fait sur un tour, pour un nombre de points fix (compris entre 10 et 200). Reprendre l'exercice 1 du TD3. Mettre en place les lments de la face avant. Programmer en utilisant un tunnel avec auto-indexation.

Page 122

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Page - 123

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_1.viVariables d'entres: Nb Sous titre dfaut 200 Nombre de points par tour Points min 10 type max Entier 16 200 incr 1 apparence standard

Variables de sortie: Tableau Sous titre Tableau de mesure Position / Variation sur 2 colonnes Tableau type Entier 16 apparence standard

Page 124

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Face-avant

La boucle For fait un nombre d'itrations prdtermin. A chaque itration de la boucle, la variable Pas passer au sous vi Simul_2.vi. La position dans le tour A et la mesure R issues sous vi Simul_2.vi sont assembles pour construire un tableau de 2 lments. Un tunnel de sortie empile l'ensemble des lignes ainsi obtenues. A la premire itration (i=0) le sous vi Simul_2.vi doit tre initialis en forant l'entre Initialisation vrai Le nombre d'itrations faire est dfini par la variable Nb. 200 ) est calcul en amont de la boucle. L'incrment angulaire I =Ent( Nb La structure contenue dans le tunnel de sortie est affiche dans la variable Tableau.

Page - 125

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_1.viDiagramme

Position dans la hirarchie

Page 126

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

L'auto-indexation du tunnel de sortie doit tre active dans son menu contextuel.

Page - 127

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_2.vi

Exercice N 2: Graphe X-Y A partir du tableau obtenu prcdemment, nous allons construire une reprsentation de l'excentrique sachant que la position de rfrence du capteur de dplacement est 50 mm de l'axe de rotation. Rappeler le vi TD6_1et le transformer en sous-VI. Mettre en place les lments de la face avant. A partir du tableau de mesure, extraire les vecteurs Angles et Dplacements, calculer le rayon et tracer le profil. Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:Polaire vers cartsien 1D (uniquement dans la version avance) Convertit deux tableaux de coordonnes polaires reprsentes par les tableaux d'entre d'amplitude et de phase en deux tableaux de coordonnes cartsiennes, selon les formules suivantes : x = magnitude*cos(phase) y = magnitude*sin(phase)

Page 128

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Page - 129

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_2.viVariables d'entres: Nb Sous titre dfaut 200 Nombre de points par tour Points min 10 type max Entier 16 200 incr 1 apparence standard

Variables de sortie: Graphe XY Sous titre Profil de l'excentrique Graphe XY Type cluster apparence standard

Page 130

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Face-avant

Le tableau de mesure donne des informations dans un repre polaire, la reprsentation que nous souhaitons se fait dans un repaire cartsien, il faudra donc changer de repre. Le tableau de mesure est clat en deux vecteurs: le vecteur des variations de rayon et celui des angles. Chaque vecteur est converti en unit physique par multiplication par une constante ( les angles en radians pour pouvoir faire les calculs de projection) le vecteur rayon est obtenu en ajoutant la position de rfrence du capteur de dplacement au vecteur des variations de rayon. Les coordonnes polaires obtenues sont converties en coordonnes cartsiennes puis assembles pour former une courbe.

Page - 131

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_2.viDiagramme

Remarques: d'autres solutions sont possibles pour les conversions.

Page 132

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

La courbe est construite partir d'un cluster contenant le tableau des abscisses et le tableau des ordonnes. Le lecteur remarquera le polymorphisme des fonctions utilises. Par exemple, l'addition accepte comme entres un tableau et un scalaire et s'adapte automatiquement

Page - 133

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_3.vi

Exercice N 3: Graphe En utilisant le tableau retourn par le vi TD6_1.vi, construisons la reprsentation des variation de rayon sur un tour.

Page 134

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Page - 135

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_3.viVariables d'entres: Nb Sous titre dfaut 200 Nombre de points par tour Points min 10 type max Entier 16 200 incr 1 apparence standard

Variables de sortie: Graphe Sous titre Variation du rayon Graphe type cluster apparence standard

Page 136

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Page - 137

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_3.viDiagramme

Page 138

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

La courbe est construite partir d'un cluster [X0,X,Y]

Page - 139

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_4.vi

Exercice N 4: Graphe multicourbes (Complmentaire) Pour observer l'impact du choix du nombre de points sur l'aspect de la courbe, vous allez reprsenter sur un mme graphe, les courbes obtenues pour des pas diffrents Reprendre le vi TD4_3 et le sauvegarder sous TD4_4.vi Dupliquer la partie du diagramme correspondant la construction d'une courbe. Construire le graphe multicourbes

Page 140

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Page - 141

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_4.viDiagramme

Page 142

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Les deux courbes sont assembles dans un tableau de courbes. Le lecteur remarquera le changement de la structure d'initialisation.

Page - 143

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_5.vi

Exercice N 5: Curseurs (Complmentaire) Nous allons finir le vi prcdent en y ajoutant un curseur permettant de visualiser les coordonnes d'un point du graphe. Ce curseur pourra tre attach l'une des courbes, et prendra sa couleur, ou tre libre et visualis en vert. Reprendre le vi TD6_4 et le sauvegarder sous TD6_5.vi. Ajouter un curseur et modifier le vi suivant l'analyse que vous avez faite du problme

Page 144

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Page - 145

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_5.vi

Analyse des modifications pour l'ajout du curseur

Page 146

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

Face-avant

Page - 147

Initiation LabVIEW - TD6: Tableaux, clusters et graphesTD6_5.viDiagramme

Page 148

Initiation LabVIEW - TD6: Tableaux, clusters et graphes

La proprit Courbe.active permet d'adresser une des courbes afin de pouvoir accder ses paramtres.

Page - 149

22 novembre 2002

Initiation LabVIEW - TD7: Fichiers TD7: FichiersQuel que soit le systme dvelopp, il est ncessaire de lire des donnes ou de sauvegarder des rsultats dans un ou plusieurs fichiers. Nous allons voir comment enregistre et relire des donnes sous forme de texte tabul, compatible avec toute suite bureautique. De mme, il est utile de pouvoir lire des donnes de configuration. Nous verrons comment lire un fichier contenant de telle donnes. Nous aborderons les points suivants: Fonctions d'entre/sortie fichiers de haut niveau Fonctions d'entre/sortie fichiers de niveau intermdiaire Fichiers de configuration

Page 151

Initiation LabVIEW - TD7: FichiersTD7_1.viExercice N 1: Enregistrement. En utilisant le programme crit en premier exercice du TD6, TD6_1.vi, enregistrer le tableau de donnes obtenu dans le fichier de votre choix sous un format de type texte tabul. Le nom du fichier choisi sera affich afin de pouvoir l'ouvrir avec un tableur ou un diteur de texte.

Ouvrir un nouveau VI, appeler TD6_1.vi, crer les Entres / Sorties ncessaires et l'enregistrer sous TD7_1.vi. Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:crire dans un fichier tableur Convertit un tableau 2D ou 1D de nombres simple prcision (SGL) en une chane de texte et crit la chane dans un nouveau fichier standard ou ajoute la chane un fichier existant. Vous pouvez choisir une option pour transposer les donnes. Le VI ouvre ou cre le fichier avant d'y crire et le ferme ensuite. Vous pouvez utiliser ce VI pour crer un fichier texte lisible par la plupart des applications de type tableur. Ce VI requiert la fonction Tableau en chane au format tableur pour convertir les donnes.

Page 152

Initiation LabVIEW - TD7: Fichiers

Page - 153

Initiation LabVIEW - TD7: FichiersTD7_1.viVariables d'entres:

Nb Sous titre dfaut 200

Nombre de points par tour Points min 10 type max Entier 16 200 incr 1 apparence standard

Variables de sortie: Tableau Sous titre Tableau de mesure Position / Variation sur 2 colonnes Tableau type Entier 16 apparence standard

Chemin Sous titre

Position et nom du fichier de sauvegarde. Chemin type path apparence standard

Page 154

Initiation LabVIEW - TD7: Fichiers

Ergonomie

Page - 155

Initiation LabVIEW - TD7: FichiersTD7_1.viDiagramme

Position dans la hirarchie

Page 156

Initiation LabVIEW - TD7: Fichiers

La fonction par dfaut ouvre l'explorateur de fichier pour choisir ou crer le fichier de sauvegarde et retourne le chemin de ce dernier. Nous remarquons que la variable contenant cette information est d'un type spcifique. Le format d'criture des donnes est dfini pour toutes les valeurs.

Page - 157

Initiation LabVIEW - TD7: FichiersTD7_2.viExercice N 2: Enregistrement document. Le fichier enregistr ne contient aucune information pour documenter les donnes. Nous allons le complter par une entte contenant deux lignes, la premire la date de mesure, la seconde le titre de chaque colonne. Ouvrir TD7_1.vi et l'enregistrer sous TD7_2.vi Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:crire des caractres dans un fichier crit une chane de caractres dans un nouveau fichier standard ou ajoute la chane un fichier existant. Le VI ouvre ou cre le fichier avant d'y crire et le ferme ensuite. Chane de date/heure Convertit un nombre, indpendant du fuseau horaire, suppos tre le nombre de secondes coules depuis le vendredi 1er janvier 1904 midi (temps universel) en une chane de date/heure dans le fuseau horaire configur pour votre ordinateur.

Page 158

Initiation LabVIEW - TD7: Fichiers

Page - 159

Initiation LabVIEW - TD7: FichiersTD7_2.viVariables d'entres:

Nb Sous titre dfaut 200

Nombre de points par tour Points min 10 type max Entier 16 200 incr 1 apparence standard

Variables de sortie: Tableau Sous titre Tableau de mesure Position / Variation sur 2 colonnes Tableau type Entier 16 apparence standard

Chemin Sous titre

Position et nom du fichier de sauvegarde. Chemin type path apparence standard

Page 160

Initiation LabVIEW - TD7: FichiersParalllement l'acquisition du tableau de mesure, l'entte est construite et crite au dbut du fichier. Paralllement l'acquisition du tableau de mesure, l'entte est construite par concatnation des lments et crite en dbut de fichier. Elle comprend, la date au format long pour la premire ligne (\n comme dlimiteur de fin de ligne), la ligne de titres avec Angle et Dplacement spars par une tabulation (dlimiteur de colonne) Le tableau de mesure acquis est crit au format texte tabul la suite (entre ajouter au fichier? ) du mme fichier (chanage du nom de fichier)

Page - 161

Initiation LabVIEW - TD7: FichiersTD7_2.vi

Diagramme

Position dans la hirarchie

Page 162

Initiation LabVIEW - TD7: Fichiers

Le lecteur remarquera le squencement entre les deux fonctions d'criture dans le fichier impos par le flot de donnes; la sortie nouveau chemin de fichier du vi crire des caractres dans un fichier pilote l'entre chemin de fichier du vi crire dans un fichier tableur

Les vi d'ouverture et de fermeture du fichier sont appels plusieurs fois.

Page - 163

Initiation LabVIEW - TD7: FichiersTD7_3.vi

Exercice N 3: VI de niveau intermdiaire. Dans le VI prcdent, le fichier est ouvert puis ferm deux fois. Nous allons reprendre le VI de telle sorte que le fichier soit ouvert en dbut d'excution, l'entte crite, puis chaque passage dans la boucle point par point, les donnes acquises enregistres et enfin le fichier ferm. Cette approche permet un contrle plus fin de l'criture sur le fichier. Le flux de donnes impose le squencement des tches.

Ouvrir TD6_1.vi et l'enregistrer sous TD7_3.vi Programmer les oprations ncessaires en utilisant les fonctions listes ci-aprs:Ouvrir/Crer/Remplacer le fichier Ouvre un fichier existant, cre un nouveau fichier ou remplace un fichier existant en utilisant une bote de dialogue de fichier de faon programme ou interactive. crire dans un fichier crit les donnes dans le fichier dsign par refnum. L'criture commence l'emplacement dsign par mode pos et offset de pos pour un fichier standard et la fin du fichier pour les fichiers journaux. Formater dans un fichier Convertit des arguments d'entre en une chane rsultante dont le format est dtermin par la chane de format. Fermer un fichier Ferme le refnum spcifi et renvoie le chemin du fichier associ au refnum. Gestionnaire d'erreur simple Dtermine si une erreur est survenue. Il contient une base de donnes des codes d'erreur et de leur description, en fonction de laquelle il cre une description de l'erreur et affiche ventuellement une bote de dialogue. Gestionnaire d'erreur simple appelle le gestionnaire d'erreur gnral et possde la mme fonctionnalit de base que Gestionnaire d'erreur gnral, mais avec moins d'options.

Page 164

Initiation LabVIEW - TD7: Fichiers

Page - 165

Initiation LabVIEW - TD7: FichiersTD7_3.viVariables d'entres:

Nb Sous titre dfaut 200

Nombre de points par tour Points min 10 type max Entier 16 200 incr 1 apparence standard

Variables de sortie: Tableau Sous titre Tableau de mesure Position / Variation sur 2 colonnes Tableau type Entier 16 apparence standard

Chemin Sous titre

Position et nom du fichier de sauvegarde. Chemin type path apparence standard

Ergonomie

Page 166

Initiation LabVIEW - TD7: Fichiers

La boucle For fait un nombre d'itrations prdtermin. A chaque itration de la boucle, la variable Pas passer au sous vi Simul_2.vi. La position dans le tour A et la mesure R issues sous vi Simul_2.vi sont assembles pour construire un tableau de 2 lments. Un tunnel de sortie empile l'ensemble des lignes ainsi obtenues. Les mesures mises en forme (ligne tabule) sont crites la suite du fichier ouvert, les erreurs ventuelles sont traites afin d'interrompre l'criture si ncessaire. A la premire itration (i=0) le sous vi Simul_2.vi doit tre initialis en forant l'entre Initialisation vrai Le nombre d'itrations faire est dfini par la variable Nb. 200 ) est calcul en amont de la boucle. L'incrment angulaire I =Ent( NB Le fichier est ouvert (cr ou remplac) avant d'y crire l'entte (voir analyse prcdente). La structure contenue dans le tunnel de sortie est affiche dans la variable Tableau. Le fichier est ferm et les ventuelles erreurs reportes.

Page - 167

Initiation LabVIEW - TD7: FichiersTD7_3.viDiagramme

Page 168

Initiation LabVIEW - TD7: Fichiers

Le format d'criture des donnes peut tre dfini de manire spcifique pour chaque valeur. Le registre dcalage permet d'valuer chaque boucle l'ventuelle erreur apparue la boucle prcdente et interrompre ainsi le processus d'criture le cas chant. En son absence, se serait l'ventuelle erreur commise lors de l'criture de l'entte qui serait teste chaque itration.

Page - 169

Initiation LabVIEW - TD7: FichiersTD7_4.viExercice N 4: Fichier texte. Les fichiers crs l'exercice prcdent doivent tre relus et les mesures prsentes sous forme de tableau. Pour mmoire, vous trouverez ci-contre l'un de ces fichiers ouvert avec un tableur.

Page 170

Initiation LabVIEW - TD7: Fichiers

Page - 171

Initiation LabVIEW - TD7: FichiersTD7_4.viVariables d'entres:

Variables de sortie: Tableau Sous titre Tableau de mesure Position / Variation sur 2 colonnes Tableau type Entier 16 apparence standard

Chemin Sous titre

Position et nom du fichier lu. Chemin type path apparence standard

Date Sous titre

Position et nom du fichier de sauvegarde. Date Type Chane de caractres apparence standard

Page 172

Initiation LabVIEW - TD7: Fichiers

Ergonomie

Les fichiers sont enregistrs sous forme de lignes de texte, deux pour l'entte suivies d'un nombre indtermin pour les mesures. La forme gnrale du vi sera une boucle contrle par le nombre de lignes de donnes restant lire (structure while). A chaque itration de la boucle, une ligne du fichier est lue. La position dans le tour A et la mesure R sont extraites et assembles pour construire un tableau de 2 lments. Un tunnel de sortie empile l'ensemble des lignes ainsi obtenues. La pointeur courant sur le fichier est compar la taille du fichier ouvert pour dterminer la condition d'arrt (une ligne comprend au pons deux caractres). Une erreur de lecture arrte galement la boucle. En dbut de programme le fichier est ouvert en lecture, la premire ligne (date) est lue est sont contenu affich. La deuxime ligne (titres des colonnes) est lue avant de commencer la boucle. Le tableau est initialis. En fin de boucle, le fichier est ferm et les ventuelles erreurs reportes.

Page - 173

Initiation LabVIEW - TD7: FichiersTD7_4.viDiagramme

Page 174

Initiation LabVIEW - TD7: Fichiers

Page - 175

Initiation LabVIEW - TD7: FichiersTD7_5.viExercice N 5: Fichier de configuration. (Complmentaire) Pour pouvoir avoir accs un fichier de paramtre de faon alatoire, LabVIEW supporte les fichiers de configuration au sens Windows du terme. Nous allons crire un VI qui rcupre les paramtres de configuration du banc consigns dans un fichier TD7.ini crit comme si dessous avec votre diteur prfr.Dfinition des paramtres du banc [Copyright] @= ESIM [Moteur] Pas= 200 Inc= 1.8 [Capteur] a= 0.01220703125 b= 0.0 Rf= 50.0

Page 176

Initiation LabVIEW - TD7: Fichiers

Page - 177

Initiation LabVIEW - TD7: FichiersTD7_5.viVariables de sortie: Auteur Sous titre Auteur du vi Auteur type Chane de caractre apparence standard

Sous titre

type apparence standard

Page 178

Initiation LabVIEW - TD7: Fichiers

Ergonomie

A partir du chemin du vi appelant ( TD7_5.vi ) le chemin du fichier de configuration est construit. Le fichier est ouvert Les paramtres souhaits sont points par le nom de la section et de la clef pour tre lu. Le fichier est ferm et les ventuelles erreurs reportes.

Page - 179

Initiation LabVIEW - TD7: FichiersTD7_1.viDiagramme

Page 180

Initiation LabVIEW - TD7: Fichiers

Page - 181

22 novembre 2002

Initiation LabVIEW - TD8: Structures complmentaires TD8: Structures complmentairesSous la forme d'un travail de synthse visant faire le prototype d'un logiciel de contrle d'excentrique, nous allons introduire trois structures complmentaires. Nous aborderons les points suivant: Structure squence Boite de calcul Boite onglets

Page 183

Initiation LabVIEW - TD8: Structures complmentairesTD8_1.vi

Exercice N 1: Structure squence Pour saisir les informations relatives la pice tester, nous allons crire un vi qui demande un nom de 8 lettres, puis une confirmation du diamtre et de la tolrance associe avant de construire la rfrence de la pice comprenant le nom suivi de la valeur du diamtre (Excentrique-100) qui servira de nom au fichier de sauvegarde. Ce vi pourrait tre construit de plusieurs faons, nous utiliserons ici une structure squence.

Page 184

Initiation LabVIEW - TD8: Structures complmentaires

Page - 185

Initiation LabVIEW - TD8: Structures complmentairesTD8_1.viVariables d'entres: Excentrique Sous titre dfaut Diamtre Sous titre dfaut 100 Nom de la pice tester Excentrique min Valeur du diamtre Diamtre min 50 type max I16 150 incr 10 apparence standard type max Chane de caractres incr apparence standard

Tolrance Sous titre dfaut Valid Sous titre dfaut F 0.1

Tolrance sur le diamtre Tolrance min 0.05 type max DBL 0.5 incr 0.01 apparence standard

Bouton de validation de la saisie Valid min type max Bolen incr apparence standard

Variables de sortie: fich Sous titre Nom du fichier de sauvegarde Nom du fichier type Chane de caractres apparence standard

Page 186

Initiation LabVIEW - TD8: Structures complmentaires

Face-avant

La structure squence assure l'enchanement des actions dans un ordre impos Initialisation de la face avant, seul le contrle Excentrique est visible, le curseur est positionn dessus. Saisie de la Chane concurrence de 8 caractres (boucle While). Les contrles sont rendus visibles. On attend la validation(boucle While). Construction du nom de fichier et affichage.

Page - 187

Initiation LabVIEW - TD8: Structures complmentairesTD8_1.viDiagramme

Page 188

Initiation LabVIEW - TD8: Structures complmentaires

Page - 189

Initiation LabVIEW - TD8: Structures complmentairesTD8_2.vi

Exercice N 2: Boite de calcul A partir des informations sur le diamtre, valeur et tolrance, et d'une mesure factice du diamtre, nous allons vrifier si la mesure est valide. Nous utiliserons une boite de calcul.

Page 190

Initiation LabVIEW - TD8: Structures complmentaires

Page - 191

Initiation LabVIEW - TD8: Structures complmentairesTD8_2.viVariables d'entres: Mesure Sous titre dfaut Diamtre Sous titre dfaut 100 Valeur mesur du diamtre Excentrique min Valeur du diamtre Diamtre min 50 type max I16 150 incr 10 apparence standard type max DBL incr apparence standard

Tolrance Sous titre dfaut 0.1

Tolrance sur le diamtre Tolrance min 0.05 type max DBL 0.5 incr 0.01 apparence standard

Variables de sortie: Valide Sous titre Rsultat du test de validit Valide type Bolan apparence Led Rouge/Verte

Page 192

Initiation LabVIEW - TD8: Structures complmentaires

Face-avant

Page - 193

Initiation LabVIEW - TD8: Structures complmentairesTD8_2.viDiagramme

Remarques: Syntaxe du C

Page 194

Initiation LabVIEW - TD8: Structures complmentaires

Page - 195

Initiation LabVIEW - TD8: Structures complmentairesTD8_3.vi

Exercice N 3: Boite onglets Nous allons crire l'ossature d'un vi de test d'excentrique qui devrais nous permettre de: Saisir l'identification d'une pice. Lancer une squence de mesure. Visualiser et vrifier la pice. Sauvegarder les rsultats. Pour chaque pice, il est possible de mesurer et visualiser plusieurs fois, seul le dernier contrle est sauvegard. Chacune de ces phases du processus demande une interface spcifique. Nous pourrions faire appel plusieurs sous-vi, chacun avec son IHM spcifique, ou utiliser une boite onglets. Vous vous appuierez sur les vi dj crits pour construire ce dernier.

Page 196

Initiation LabVIEW - TD8: Structures complmentaires

Page - 197

Initiation LabVIEW - TD8: Structures complmentairesTD8_3.viVariables

Page 198

Initiation LabVIEW - TD8: Structures complmentaires

Face-avant

Page - 199

Initiation LabVIEW - TD8: Structures complmentairesTD8_3.viDiagramme Structure gnrale

La variable onglet permet par le biais d'une structure condition d'associer chaque partie de l' IHM un code spcifique . La boucle While, qui se termine aprs la sauvegarde des donnes, permet de mmoriser et de renvoyer la valeur des paramtres par le biais de registres dcalage, assurant ainsi le passage de valeur d'une partie de code l'autre.

Page 200

Initiation LabVIEW - TD8: Structures complmentaires

Page - 201

Initiation LabVIEW - TD8: Structures complmentaires

Page 202

Initiation LabVIEW - TD8: Structures complmentaires

Page - 203

Initiation LabVIEW - TD8: Structures complmentaires

Page 204

Initiation LabVIEW - TD8: Structures complmentaires

Page - 205

Initiation LabVIEW - TD8: Structures complmentaires

Page 206

Initiation LabVIEW - TD8: Structures complmentaires

Page - 207

22 novembre 2002