mpeea.free.frmpeea.free.fr/data/labview/cours-labview-06.pdf · visual basic, labview le seul...

48

Upload: lytruc

Post on 11-Sep-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ����� � ��� �

������������������� ������������������������

��

���� �������

���������� ��

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ����� � ��� �

���������������������������

����� ��� �� ������������������������������������������������������������������������������������ �����!��

Données

Traitement Informatique

Résultats

TexteSonImagesmesures

TexteSonImagesmesures

Entrées Sorties ��

������ ��������������������������� � �������� ���������"��������������������#���$��������������� � ��������!����

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

��

��$������������� � ��������� ����������%��

Langage Machine

Assembleur

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

Le seul compréhensible par l'ordinateur

Compilation = Traduction

������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!�� � ��� �

����� ���������&�� ������"� �'���� ������� ��� ����������� ��� �#���$�� �(��� ��� � �"� ��� ������ ���� ������� ��)���� *�����$�������������(����������"������+����� ������������������!���������������������,�������������� ������������)��������������������-�������"����,������+�����������������!������������������������ ��������%���

S u ite d 'in s t r u c t io n s q u i u n e fo is e x é c u té e s c o r re c te m e n t c o n d u it à u n ré s u l ta t d o n n é

A lg o r it h m e

A lg o r i th m iq u eS c ie n c e q u i é tu d ie la s t r u c tu re lo g iq u e d e s p ro g ra m m e s �

��'�� ������������������������������ � ��%���

Algorithme

CPascal

Fortran

Basic

LabVIEW Visual Basic ���(�� ��������������-���,�������������������.�����������(�������������%��

� /�0��������������)��������� � /������������������

� /�1������ � /�2�����������

���������������������� !��" �#������ � ���� ��� �� ������ ����� ��� 3456!� �'���� ��� �� ������ ��� ��)����������� �'��������������'���������������� ����� ���������-������� �������� ,� �'������������ ���� �������� ��� ������� ��� ,� ���������������!������������������ � �������� ���������� ��������!����������� �����������������������������7�1�8&�,�8�������������3446!����)�������������������1&��������)�������9!3����������$���� ����:�!����

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ����� � ��� �

�!������������������ ����� �!��" ������ ���������������������-���������������,��'���������������"������� ���������� �������;����������������������������������������%������������)����%����������������� ������%�����������

!����������������������$%������������������ ������������������������������������������������������'��)������������$��������%���

�� ��������������)���������'�������������� 0�����������������������'������������<����������1����������������$�����=�

�� 7���)�������������������������������<����-���"�)���������������������������=�

�� 1�������'�������������������� ���> �

�����������������������������)���������'������!�������� ����������� � <���� �$������%� ������ �"� ����#��� �������������� > =� ������ ���������� ,� ���� ����������<������� ���'��� �������'�)���������������������������������=������ ����������������������������������)����������'�����������<����������'���*������������ �=!������������������������������������)�����������������!��������'������������'����� �����������������������������������������������?�������!�

���������������

� �������������

� �����������

�������������

�����������������������

���������� �����������

������������������

����������

���������� �������������

������

����������

� ������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��"�� � ��� �

&$%�������������� ����� !��" �������������������������������������������������)�������������������'�@�������������%��

o �����������������o ��������������o ���������-�����������������,� �����-���o 0�����������������������������!�o ����> �

�o ��������'�������������o 0���������������������������������<������� �=�o �/�-�����o ����> �

�������@�����������������������������������������������������������;������������������������������)���!������������������A� �������������B!��

��

��!��������� ������ !��" �������� ���������������������� � �� ���������������������$�-������*����A���� ������B��������������������������)���!������������������������������������������������������������������$!�

������

�������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ����� � ��� �

FACE AVANT

1ère variable

2ème variable

FACE ARRIERE : DIAGRAMME

����'��������������� ���������������,����������������$�������������$��'�����������������������������%��

o �����������������������������o �����������������������o ���������������������������������*����o ��������������������� ����������<������"�����������> =�

�������������������������������������������������������������������������������������������� �����!���

���

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��#�� � ��� �

���� ��������� ����� ���������� ,� �'����� ��� ��� ����� ��� ��� �������� �'������� ���������� ���� ��� �����C��*���?���������'�������< ����:�?�������������=!���

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)

����'��������������)����D���� ���������������������� ���������� �����������������<�����������������=!������������*����A�����������B��'����,��������������;������������������'������E�������������������������� �����"�����������������)����*������������������������������ �����!����

!���'��(��������� ��������

��(��������)������������������� ������������������������������������������������������"��������������"���������������������������������$�������������!����)� ������������)�������(�������)&����������������� �������������������������������������������$���������������F3����FG��������������!�����(�������)*�������������� ��� ���������� ��������������� ��������������;������������-������������������������$�����������������;�������������-��!�

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � �� �� � ��� �

���������&��������! � ����� ��������������

�������� �������! � ����������� �������������������)��������������������������)�������!�0��������)�����������������������������������������������������������������������"���������������������������)�������������������)��������������������'�$�������������� �����!���

LA MEMOIRE :

Empilement d'octets

�����������'��������������)��������'������������������������������)�����'����"������������%���

o �������������)�������%���������������o �������������������������#���������)�������%����������������������������������)�������

������������������ �!���

������������������� ����� !��" ��

PALETTE DE COMMANDES

Les commandes (sauf tableaux)

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

����������������

�������

������������������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��$�� � ��� �

PALETTE DE COMMANDES

Les indicateurs (sauf tableaux)

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

���

����������� ��� ��������������������)������"��'�������������������)��������'��������������-���������������� �����!��&����������������������������'�@��"��������������������������������������)�������������������������!���

��������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���� �� � ��� �

�!�����������! � �������$%��� ��������������������������+,�-��./��/0�+1�����

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

��� �'��+22�0��1��0-���3������4.�0����+0�,�0.��� !��" �#��

��

����

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

1����+,�-��./��&�+1���.��

CODAGE SUR DEUX OCTETS

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

Sans b i t de signe

A vec b i t 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 ��

�&$%������� �!���������� �����

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 �

��

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

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

*$%�! � ���������������

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 !�

��

!����� ����� ����� ����

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���!�� � ��� �

�$�������������������'������� ���%���

���!��'��(��������� �����&�

���(�������&)�������������������� ����������'�$�������3!3�����������������#�������)�������������!���$������������� �����"����������������������������������������������������!�����(������&)&��

��������������� �������������������������������'������������������������� ������∆HI!������������������������;������������!���(������&)*����������� ��� ��� ������ ���� ���)������ ��� ������ ��� ����"� ��� @����"� �'������"� ��� �������� ��� �����������������������!����(������&)5����������� ��� ��� ������ ���� ���)������ ��� ������ ��� ��������� ��� ����"� @����"� ������"� �������� �����������!����

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

���������*����������������

������(������

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

��

���'�����������

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é�

�La 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�

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

�!���� �����������

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.

��

!�������� �����

��������������

�� ���

Les structures conditionnelles peuvent être imbriquées

Diagramme caché

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���#�� � ��� �

!��'��(��������� �����*��

���������������

�������������� ����������%���� �����������$��������������

�� ��������������������H��

�� �������������������������������������������J���� �����������������*������������������H�!��

������������������������������� ����������'�$�������G!G���������������������������'��������������������� �����������������������������������������������������������������������������������������������)���������������������!��������������������������������������$����������� ������������ ���������������������������������������'��������!�����������������������������������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��� �� � ��� �

���������5���������������� �

������(��������

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 !

��

�2��6/��7����0+2 ���,���4����+0.�0��.����.�,4���2�04�8����+��)��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���$�� � ��� �

������������"����������� !��" ��

Diagramme répété

Terminal conditionnel

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

����$������%��������,���������

Attente (configurée à 1s)

2 possibilités

Pseudo code correspondant :

Variable N type entierVariable compt type entierN 100Faire

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

Fin

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���� �� � ��� �

��������(������&��

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

��

�!����������������������

����������������������

�2��6/��7����0+2 ���,���4����+0.��.��,4���2�04�8����+��)�

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

Instructions du début�Pour i = 0 à N-1, faire :�

instructions à répéter�i i+1�

suite du programme�

FOR = Pour ... faire ...�

Début �

i = N-1�oui�

i 0�

non�

Suite�

Instructions �à répéter�

i i+1�

Organigramme�Non réalisé si N = 0�

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

!����������������� !��" ��

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

��!������� ������������� ����� ������������ ��������

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

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

!������(��������� �����5���9��1�1��5)������������������ ���������� ��-��������������������������������������������������������������������������I����GI�����������'����'����������#����������������1�&!�0��������� �������������#�������������������������� ���������������������������������!����9��1�1��5)&������������������ �������������������K�<�������������=!����������������������������������������������������� ����� ����� �� ��� ������������������9��1�1��5)*������������������ ��������������������������)������������������������������GI������-����)������������������� ������������������������������������������I�����������������������������)���������������������������������!����������������� ��

��

����������������������������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���!�� � ��� �

���������:��������� ��� �(�� �

����������������

����������������������������������������������������� ��������!���"������������!���

�����������

�����������������������������������"����������������������������������������

���������#�� ��������������������������������������"���$���

LA MEMOIRE :

Empilement d'octets

Exemple : Tableau nommé Tab de 3 entiers type U8

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

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

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

������� ��� ���� ���������� ��

Clic droit sur la face avant

Tableau vide

Tableau de variables numériquesIndice du 1er

élément visible

%���� ��

������� ���

������� ���� ���

����� ���&� ���

���������

'�� ������

���� ��� ���

�������� (�

� ����� ��� "���

��� ���������

�)�����*�

������� ���

����������

����� ���&�

������� ���

�������&�

�������� ���

�)�+��� ���

�����,����

��- �

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

Tableau vide

Tableau de variables numériques

��

�������� ������������� ��� �(�������������������������������������������������"�����$�����������������������������%���

���� ����� ���

�������� ����

������

�������� ���

�� ����� ������

��� ��� ��������

��� "��� ��� ���

���������*� ���&�

�� �� ����

�������� ���

����������

����� ���� (�

��������

�����&� ����

��������

��� ���� � ���

��������

������� '�����

�� ������ ���

������� ���

���� ������

���� ��������

�������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���"�� � ��� �

�!�������( �����

�$%��0��0��4���

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.

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

� &$%��0�.+������

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

.�����/01

���

!����(���������(������:)������������������ ���������� �����������������������������������3I������������������������������I����GI!��8�������������� ����������������������������)���������������������������������������������������������������������������!�����(������:)&����������������� ���������� �����������������������������������3I������������������������������I����GI!�<�����������������������������3-��������������'�$����������������=!��������������������� �����"��������������������������6��������������������������������������������"���������������������������������������������#���������������������������!�����

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���#�� � ��� �

�(������:)*�7�� .1�..�.�,�/0��41��33��3�04����)���L��������������������MD3���������'��������$����������������������'���� ������������������!��M"���������������������������������������������������'������������������ �����!���

������������ ������������� &���%�������������������$�������!������%���.�;�< ����=�%����� &���� ���(���������,��(������%���$��N�$��/3�D������� 0�����%��������������������������������������$��N����D���!������� 0���/0��./���������24��6/��,�����2�������2��9>�;������,�����.+0�6�;���.��

��(������:)5�7�� .1�..�.�,�/0��41��33��3+-�����2�6/���L��������������������MD3���������'��������$����������������������'�������������� ����������!��M"���������������������������������������������������'������������������ �����!���

���������� ����������� �������� ��

&���%�������������������$�������!������%�����N�<�� ��O��� ��=�?�M�N��� �<?�=3?M�

�� &���� ���(���������,��(������%��� �$��N��� �$��/3�D������� 0�����%��� �$��N���� ���D���!�����N��� ���D����� �<?�=3?M��N��� ���D��� �<?�=�?M��

� � �� � � � � � � � ����N��� �P���!�<?�=�?M��Q��� 7����%�$��N���!�<?�=�?M��JNH�$��N���!�<?�=�/3?M��!�<?�=3?M����� � � � ��������$��N�������$�/3�!�<?�=3?M�������$��N���!�P<?�=3?M�Q������� �

0���/0��./����-4+24���6/��,�����2�������2��9>�;������,�����.+0�6�;�< %�=�%�����

����

�� ��

�,�������

#2/������������,�������������

�2/�,�������

#2/������������,�������������

������ ������

�,�������

�2/�,�������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��� �� � ��� �

���������?��������� ������ �

������ �������� ���7�"�@�A+�2��������

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.

)����� �� �������������

3�����������

���9�2�3��,�0.��� !��" �7��

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

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

il doit être dans la boucle.

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

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���$�� � ��� �

���������������-�������� ���������)����*�����@������%�����������������'�@��� ��������������������)���!��

LE FORMATAGE DU GRAPHE

�������� �����7�"�@�A+�2��������

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 peut être obtenu par indexationdu tunnel de sortie de la boucle

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!� �� � ��� �

�9�2�3��,�0.��� !��" �7��

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.�

����

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!��� � ��� �

���3�.���+0�,�0.��� !��" �7��

Connecter le tableau des abscisses ici

Connecter le tableau des ordonnées ici

���

�9�2�3��,�0.��� !��" �7��

apparaît automatiquement

On dispose icid'un cluster

(assemblage)de 2 tableaux.

Tracé de courbe, échelle linéaire :

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

���

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!��� � ��� �

�!�'��(���������(������?)��7��������,4�+/3�0������������������ ������������������������� ��������������������������R���������!�������������������R����������#�N�3I����$������������� �����������������������������������'���������������� ����� �����,����������������������������������)���!������� ��������'���*��������������'��������������������1�&!����(������?)&�7����������������������������� ���������������������������������$����������������������R���������!�3II�����������������������!����(������?)*�7��������(��41��33��3�04������

������������� ������������������'���������������� �������������������<�=�N�������<Gπ����D�ϕ=����������������������I����1��$!�

�������������������M"��"��ϕ����1��$��������������������������������)���!���� �����������*���� ��������������!��'�������������������������������!����(������?)5�7��������(��41��33��3+-�����2�6/���������������� ������������������'���������������� ����������������������������������������'���

�����������%�L�<�=�N�GI��� �P�3�?�√�<�3�D�<��!Gπ�=�G�=�Q������������������������� �����,�����������������������!��������������������M���������������� ���������������������)���!����� ������������������������������������������ �����������<��������� ���-��������������=���������� ����������ST!����������������������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!!�� � ��� �

���������B���������������� ���� � �������C ��������� �����

� �

�������(�������������� �����

EXEMPLE : Programmer n!

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

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

facto facto.ii i+1

afficher factofin

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 ....

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

4�������������������������

��

�������������� ���� � ���� ����� !��" �

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.

��5�#�/

6�����

��5�#

6�����

��5�#2/

6�����

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

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

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!��� � ��� �

7�������*��������������������������(����������*�

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

��

'''�8�3769�9:74�;��<'��74�

/=>�7?7;��7��

��$������%��������������������,�@���������#�����8�����U������-����������������

�����8��N�<��

��D��

��/3�D��

��O�G��=��?�U�

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!"�� � ��� �

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.

��5�#�/

9� ������

6����� 9����)���

��5�#

9� ������

6����� 9����)���

��5�#2/

6�����

9� ������

9����)���

����������������������� �%���

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

��

���/

���0

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

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!��� � ��� �

�!�������������� ������

Dans une boucle, si on retourne la valeur calculée sur l'entrée d'un opérateur, il apparaît un noeud de rétroaction, fonctionnant comme le registre à décalage.

Noeud de rétroaction

Initialisation du noeud de rétroaction pour le 1er tour de boucle

��&��� �������� ��� �� ������ ,� ������ �"� ��� �V��� ��� ������������ ���������� ��� ���� �� ��� ����� ������;����������������'������������������������������������������������������!���!����(���������(������B)���0)����'�������������������"�������������'�$�������.!G������������������V������������������ %����������������������������������� ��������������������������!���������������� ����(������B)&�������������'�$�������.!U������������������� ������,������� ��%������������������������� ��"���������#���������������������$���������������%����#������$��������������������$� �������������������������������������������������������#�������$���� ��"������������������������������ �����(������B)*����� 3��/9���� +/13�.��2 ��6/4�.�<0��1+01��0����.�A+�142�0��1��1�������=��L��������������������36��� �������3I����������,��'������������������������������������������������O3I����D3I!��8�������������� ������������������������������������������I!�����

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!#�� � ��� �

���������D������������������� �

�����������������

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 » ��

�������� ������������������� ����� !��" ��

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.

Étape 1diag 1

Étape 2diag 2

Étape 3diag 3

Etc ...

Comme pour la structure condition, un seul diagramme n'est visible.Comme pour une boucle, on peut passer des valeurs d'une étape à l'autre.

���

��������������������������)����*�������������<����������)������,��������=�������������!�����������)����������������������������������������������"������E�����'�$�������!��

��� �������� �� �����

���������������������

���@��� ��� � ������

� �������� ���

����������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��! �� � ��� �

�����@���������������� ������������������������������������������������������������������������!���

���

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��!$�� � ��� �

�������(�������

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

�������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���� �� � ��� �

!���� �� ������! ������ ���� ������������������� �����)��������'����������,��'�������'�������������������������������������������������#����'���������!��

��������������������� ������������&������������������������������������� �����*������������������

������������� ������A���������������� �����,�)��������������������������������������

�������������� �������

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

��

��

���!�����(��������(������D)��7�������������� ������������������ �������������$������ ������������'��������������������!�����.����$��������������G�����G����������������)��������������������!������������������������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

���������E���������������

����! � ������� �����&���������������������� ��<�������������������������� ��������� ����="����������)������������,�����)�������������!����)���������������������������������������)��������'��� ���"���������*��������������������������������������"����+��������������������,����� ������)�����!���

��7�����'�$��������/�������"����)�����������������������������<)��������'������=����������;����������������������!��������������������������������������<3ID�=W�!��

��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���!�� � ��� �

7�����'�$����������������"����)�����������������������������!�������)�����������������3�������������������� �����"�����������������������33����������������*�!���

��

��

����������� �����7���� ���� �����M�������������������������������� �������������������������������"�������������������������������'��������������������� ��!������������������������,� �����������'��E������� ���������'��)��������������������������/�������!��������������������������������!��

������ � ����� ���� ��� ��� ������ ��������� ������ )�������� �'������� ��� ���� ������"� ��� �������� ���������������������������!� ��� ���������������*�������� �!� ��� ���)����� ���������'���������,� ������������� ���������������������)��������'����������������!�&��������� ����������������,��'���������'����������"��'����������'�@���������������)������������������,����)������"������������������� �������'��E��!��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

���������"�������������������'��E�����������������,������������ ������%�������������������'��E������������������������������������������������������������!���

��

���

��� ������;�� ������ ��� ���*���� ��/�������� �������������� ��������"� ����� ,� ���� �������� ��� ������"���'��������������'��E���������������������!��

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���"�� � ��� �

������)�������������������)� ����������������,��'������������������!���0������������������������ ����������������%��7���������� ������������ ���������������"�����������������������������������%���

�������;����������� �����)����,���)����������������������!��������������������'��E����������������������������� �������������������*��������������������'������������������� !�<������/�������=!��

��

4������������������

���������������������

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ������ � ��� �

����'��(���������������������(������E)��7��+2������/��8��F.�4�4.�.��������������������#���������������������$������������������������������������)��������������� ���������'������!���������������������������������������������������������������������<�=����������/�������!�����������3X?�������������� ����������������������� ����������������<:�)�����������=������������<�=���������������������� ������������������<��������1������$���������GI���=�����������'����'����������#�������������������!�������GX?�C�����������;�������������������������������������<�=�������� ������YZ!���

��������������������

��

2/B�

�/B�

��C��/�

%��������������&�����������(�8/B�

������D�C��

%��������������&�����������(�2/B�

������E��/�

2F�

��F�

����

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ���#�� � ��� �

IUT BELFORT MONTBELIARD Dpt MESURES PHYSIQUES

EXAMEN PARTIEL D’INFORMATIQUE – 2004/2005 – Sujet D

Durée 3h – Sorties interdites Tous documents manuscrits autorisés Accès répertoire personnel autorisé Téléphones portables interdits Sauvegardez périodiquement votre travail �

EXERCICE 1 – 7 pts (2+2+3) Un récepteur inductif alimenté sous U = 220 V consomme une puissance active P . L’intensité du courant qu’il absorbe est I. P et I sont des commandes (potentiomètre rotatifs) sur la face avant. 0 < P < 5000 W et 0 < I < 50 A. 1°/ Afficher sur un vu-mètre le cosϕ. 2°/ Ajouter une commande sur la face avant représentant un condensateur en parallèle. Afficher le nouveau cosϕ’ obtenu sur un second vu-mètre. ��Afficher le courant nouveau courant I’ consommé sur un indicateur. �

����������

��������� �ππππ������!"�ϕϕϕϕ#���$�%��&'(�����(�������)*ϕϕϕϕ�������#��)*�ϕϕϕϕ#��

G�������������� ���������������������������������������������ϕ����������������������������������������������������������������������������������������������������

EXERCICE 2 – 6 pts (4+1+1) Un projectile est lancé dans le champ de pesanteur terrestre avec une vitesse initiale V0 faisant un angle α avec l’horizontale, à partir d’une position initiale de coordonnées (0,0). Les frottements étant négligés, les équations horaires des coordonnées cartésiennes du centre d’inertie sont : �

"�5������H�>�0�2����B����������5����B���������

�B���α��������������������������������������� ����B�E��B�E�/BB�����B�E�α�E�IB=������&�����'7J ����������������������� ������������������

����� ������� �������� ��� ������� ��� � ����� ���

����� �� ������������

����� �������� �� ����� ��� ����� ����!� �����

�������������������!� ����������������������

�� ���!������������������������������ �������

"��� �� ��� �����#�� ��� ������� �� ���������� ��

������������

�����*�

�����*�

������������� � � �� � ����� � � � �� � � ��� � �� ������������������������������������������������������������������������������������������������������������������������������������������������������������������ � � ��� �� � ��� �

$���%��������&���������� ���� '� �����(��������������������)��� ��������

�������#����������*�����������������#������+�,-��

.������������/0��������������&��������������������������1����������� ����2������

��(������

3������������/0��������������&�������������������������������4����������������������

������������'��������������

N.B : Avec les valeurs de V0 et de αααα proposées, le pas temporel pourra être δδδδt = 0,1 et le nombre de points N = 100. �

EXERCICE 3 – 7 pts (3,5+3,5) �

1°/ Réaliser un programme qui affiche la variable yi pour i allant de 0 à 9 sur un graphe déroulant sachant qu’à la ième itération :

yi = (xi /2 + x i-1/4 + x i-2 / 8) xi est un tableau de commandes numériques initialisé à (1, 0, 0….) Le déroulement du graphe sera temporisé par une attente de 100 ms. L’ensemble du programme tournera en boucle et s’arrêtera par appui sur un bouton STOP. #�� K�*� ����� �������� � ������ � ������ �� � �� �������*� ������ �����>������>����� ����"�*�����

� 2°/ Réaliser un programme qui affiche la variable yi pour i allant de 0 à 9 sur un graphe déroulant sachant qu’à la ième itération :

yi = (xi + y i-1 ) / 2 xi est un tableau de commandes numériques initialisé à (1, 0, 0….) Le déroulement du graphe sera temporisé par une attente de 100 ms. L’ensemble du programme tournera en boucle et s’arrêtera par appui sur un bouton STOP. �

�����*�

�����*�

�����*�

�����*�