mpeea.free.frmpeea.free.fr/data/labview/cours-labview-06.pdf · visual basic, labview le seul...
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. �
�
�
�����*�
�����*�
�����*�
�����*�