You are on page 1of 48

!

Texte
Son
Images
mesures

Traitement
Informatique
Donnes

Rsultats

Entres

Sorties

Texte
Son
Images
mesures

"

# $

Texte
=> Fichier source

COMPILATEUR

crire en respectant la syntaxe


d'un langage, la suite des
tches devant tre excutes
par l'ordinateur, de faon
logique et structure

Langage de
programmation

Logiciel
install dans
l'ordinateur

Application
autonome
Fichier
excutable

%
Langage Evolus :
C, Pascal, Fortran, Basic
Visual Basic, LabVIEW

Assembleur

Compilation = Traduction

Langage Machine

Le seul comprhensible
par l'ordinateur

&
$

" '
(

# $
"

(
!

"

)
-

" ,

!
%
A lg o r it h m e

S u it e d 'in s t r u c t io n s q u i u n e
f o is e x c u t e s c o r r e c t e m e n t
c o n d u it u n r s u lt a t d o n n

A lg o r ith m iq u e

S c ie n c e q u i t u d ie la
s t r u c t u r e lo g iq u e d e s
p ro g ra m m e s

'

%
Pascal

Fortran

Algorithme
LabVIEW

Visual Basic

- ,
/0
/
/1
/2

Basic

"#
3456!

'

'
, '

'
,

!
!
)

1&

7 1 8&,8
9!3
$

3446!
:!

!
-

,'

"
"

%
)

!
$%
' )
)

'
'

0
7 )
1
'
>
)
<
<

'
)

'

$
')
<

'
%

"

'

1
- ")

=
=

!
#

>=

=
' *
)

'

<
<

=!
!

&$%

"
)

o
o
o
o 0
o
>

' @

o
'
o 0
o
/ o
>

<

;
A

) !

B!

"
$-

) !
$!

"

FACE ARRIERE : DIAGRAMME

1re variable

FACE AVANT
2me variable

'

,
o
o
o
o

*
<

$ '

"

>=
!

C * ?

'

<

, '
:?

'
=!

La palette d'outils (Tool Palette)

Pour agir sur les


commandes

Bouger
l'ensemble
(diag ou FA)

Texte

Pipette (copier
une couleur)
Colorer un objet

Pour cbler

Placer un point d'arrt Poser une sonde


(probe)

'

<

=!
*
"

B' ,
) *

'
!

! ' (
(

)
"
$
)

)
(

)&
$

"

F3

FG

)*
;
;

- !

&

!
!
)

"
)

'$

LA MEMOIRE :
Empilement
d'octets

'

)
o
o

'

"

%
#

PALETTE DE COMMANDES

Les commandes (sauf tableaux)

Palette complte : il suffit de la


parcourir pour tout comprendre
(ou presque)

'

"

PALETTE DE COMMANDES

Les indicateurs (sauf tableaux)

Palette complte : On retrouve


les commandes et les
indicateurs

)
&

"'

)
' @"

'

!
)

$%
+, - ./ /0+1
CODAGE SUR UN OCTET

Sans bit de signe


Valeurs dcimales possibles

de 00000000 11111111
de

28 -1 = 255

Type unsigned char (langage C) Type U8 en LabVIEW

Avec bit de signe

positif
Type char (langage C)
Type I8 en LabVIEW

Complment deux

4. 0

de

27 -1 = 127

de 11111111 10000000

f
ngati

' +22 0 1 0- 3

de 00000000 01111111

+0, 0.

de

-1

" #

- 27 = -128

+, - ./ &+1 .
CO DAG E S UR DE UX O CTE TS

S ans b i t d e si gne
V aleurs dcim ales possibles

de

2 16 -1 = 65535

Type unsigned int (langage C ) Type U 16 en LabV IE W

A vec b i t d e si gne
p o s it i
Type int (langage C)
Type I16 en LabV IE W

n g at
Com plm ent deux

&$%

f
de

2 15 -1 = 32767

de

-1

- 2 15 = -32768

if

!
Un nombre virgule flottante peut toujours s'crire :

+ 0,662 * 2 - 26
Signe : 1 bit
Exposant :8 bits

Mantisse : 23 bits

Valeurs extrmes possibles :


Nombre nul : 0
Nombre positifs de : 1,21 10 -38 3,40 10 38
Nombres ngatifs 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

DOUBLE PRECISION : 8 octets


1 bit

11 bits

52 bits

PRECISION ETENDUE : 10 octets


1 bit

15 bits

64 bits

*$%!

Vraie : True
Variable Boolenne

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
)

"@

"

"

*
(

Le wagon doit s'arrter quand il rencontre l'obstacle.

Contact fin de course


Marche avant
Lire contact

oui

Contact appuy ?

non

Arrt moteur

Variable Mav boolenne


Variable contact boolenne
Mav
1
Lire contact
Si contact = 1
alors Mav
0
sinon aller 4me ligne
fin

Organigramme

Pseudo code

'
Dbut
Si condition vraie
alors instructions 1
sinon instructions 2
Suite

Dbut

oui

Condition

Instructions 1

non

Instructions 2

Suite

Une
structure
conditionnelle
(structure de choix) permet de
raliser une suite d'instructions
ou une autre, en fonction du
rsultat d'un test.

En LabVIEW : excution d'un diagramme ou d'un autre suivant le


rsultat vrai ou faux d'un test

"

Cliquer pour visualiser le diagramme ralis si


condition fausse
Diagramme
dlimit, excut si
condition vraie
Condition crire

Un seul diag
visible la fois

La transmission des
donnes se fait via un
tunnel d'entre ou de
sortie.
La condition :
met en jeux
un oprateur
de
comparaison

Les tunnels de sortie


doivent tre relis dans les deux
diagrammes conditionnels

Le rsultat boolen de la
condition est connect au
slecteur ?

Le diagramme
cach

"

La comparaison peut tre simple : elle met en oeuvre un oprateur de


comparaison (>, <, etc ... ou d'galit) comme dans l'exemple prcdent.
Elle peut tre plus complexe et mettre en oeuvre galement des oprateurs
logiques.

Les structures
conditionnelles
peuvent
tre
imbriques

Diagramme cach

! ' (

%
$
H
J
*

H !

'$

G!G

'
)

$
'

5
(

Le wagon doit s'arrter quand il rencontre l'obstacle.

Ici, on lit l'tat du contact


tant qu'il n 'a pas t enfonc

Contact fin de course


Marche avant

Variable Mav boolenne


Variable contact boolenne
Mav
1
Faire tant que contact = 0
Lire contact
Mav
0
fin

Lire contact
oui

Contact appuy ?

non

Arrt moteur

Organigramme

Pseudo code

"
La boucle While permet la rptition d'une suite
d'instruction tant qu' une condition est vraie.
Instructions du dbut
Faire
instructions rpter
tant que condition
suite du programme

Dbut

Instructions
rpter

non

Condition

oui

While = Faire... tant que ....

Toujours ralis au moins une fois !


Suite

2 6/ 7

0+2

, 4

+0.0 .

.,4 2 048

+)

"

"

Diagramme rpt

Terminal conditionnel
Terminal d'itration :
compte les rptitions

,
Pseudo code correspondant :
Variable N type entier
Variable compt type entier
N 100
Faire
compt
N-1
afficher compt
attendre 1s
tant que N >0
Fin

Attente (configure 1s)


2 possibilits

&
Le wagon doit faire 10 aller-retour.

Dbut
i

La variable i compte les rptitions


(itrations)

oui

non

i=9

Variable i type entier


Pour i = 0 9
aller-retour
i
i+1
fin

aller-retour

Fin

i+1

Organigramme

Pseudo code

!
La boucle FOR permet la rptition d'une suite
d'instructions un nombre prdtermin de fois
Instructions du dbut
Pour i = 0 N-1, faire :
instructions rpter
i
i+1
suite du programme

Dbut
i

oui

non

i = N-1

Instructions
rpter
i

FOR = Pour ... faire ...

i+1

Suite

Non ralis si N = 0
Organigramme
2 6/ 7

0+2

, 4

+0. . ,4 2 048

+)

"

Avec 10 tours de boucle, i voluera de 0 9

Diagramme rpt
Nombre de tours de
boucle
Terminal d'itration :
compte les rptitions

!
Modifications par l'utilisateur
prises en compte

Valeur transmise au premier


tour de boucle.
Toute intervention de l'utilisateur
devient inutile
Valeur obtenue
au dernier tour
de boucle

9 11 5)
I

GI

'

'

1 &!

9 11 5)&
K<

=!

9 11 5)*
)

GI
I

"

"
#

" $

Exemple : Tableau nomm Tab de 3 entiers


type U8
Chaque lment du
tableau est repr par
un indice i allant de 0
N-1

LA MEMOIRE :
Empilement
d'octets

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

Les trois lments se


retrouvent trois adresses
diffrentes qui se suivent

Clic droit sur la


face avant

&
'
(
"

Tableau vide

&

Indice du 1er
lment visible

Tableau de variables
numriques

&
)+
,
-

Tableau vide

Tableau de variables
numriques

(
" $

"
*

&

(
&

'

(
$% 0 0 4

Indexation : Au ime tour de boucle,


le ime lment du tableau
est transmis par le tunnel d'entre.
Lors du cblage, l'indexation se
ralise automatiquement.

Tous les lments du tableau


sont multiplis par i
chaque tour de boucle

Pas d'indexation : le tableau est transmis


chaque tour de boucle dans son intgralit
par le tunnel d'entre.

"

&$% 0.+

Pas d'indexation :
la dernire valeur
calcule au dernier tour
de boucle est transmise
via le tunnel de sortie

indexation : un tableau des valeurs


calcules chaque tour de boucle
est transmis via le tunnel de sortie

/01

:)
3I

GI!

)
!

(
I

:)&
3-

GI! <

'$

"

3I
=!

6
#

"
!

:)*7

L
M"

.1.. .,/0 41 33 304


MD3

'

'

'

#2/

,
,

2/ ,

& %

&

,(

$N

0 /0 ./

:)57

L
M"

.; <

=%

% $ N $ /3 D

24 6/ ,

D !
2

2 9> ;

.1.. .,/0 41 33 3+MD3

'

.+06;

2 6/

'
'

#2/

!
!

,
,

2/ ,

& %

&
0

(
%

$N

,(
D !

!
%

N<

$N
N

=?M N

$ /3 D
D

< ? =3?M N

< ? =?M

D
N

< ? =3?M

P ! < ? =?M Q

% $ N ! < ? =?M JNH $ N ! < ? =/3?M ! < ? =3?M


$ /3 ! < ? =3?M

$N
0 /0 ./

-4+24 6/ ,

2 9> ;

$ N ! P< ? =3?M Q
,

.+06; < % =%

?
7 " @ A+ 2
Le rle du graphe droulant : Waveform Chart est d'afficher
l'volution temporelle d'une donne variable dans le temps.

)
A chaque instant le graphe ne reoit qu'une donne la fois :
Ce n'est pas un tableau de valeurs.
Par programmation, il faut donc rpter l'envoi
des donnes au graphe, le terminal graphe
doit donc tre dans une boucle while.
9 2 3 , 0.

" 7

Gnration d'un
nombre alatoire

Le Graphe droulant est un indicateur.


Par dfaut son type est DBL.
Ce n'est pas un tableau de valeur (trait fin):
Cet indicateur ne reoit qu'une valeur la fois,
il doit tre dans la boucle.

' @

) !

LE FORMATAGE DU GRAPHE

7 " @ A+ 2

Le rle du graphe est de reprsenter graphiquement un tableau de


donnes.
0
1
2
3
4
5
6
7

donne
5
10
15
20
25
30
35
40

Le graphe reoit simultanment


l'ensemble des donnes
sous forme d'un tableau de valeurs.
Les donnes sont gnralement
calcules dans une boucle

Par programmation, il ne faut envoyer


les donnes au graphe qu'une seule fois,
le terminal graphe doit donc tre hors de la boucle.
Le tableau peut tre obtenu par indexation
du 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 dfaut son type est DBL.
Cet indicateur reoit toutes les valeurs la fois,
il doit tre hors de la boucle.

Le rle du graphe XY est de reprsenter graphiquement un tableau


de donnes Y en fonction d'un tableau de donnes X
Donne X Donne Y
Le graphe reoit simultanment
0,1
5
l'ensemble des donnes
10
0,2
sous forme de 2 tableaux de valeurs.
0,3
15
0,4
20
0,5
25
Les donnes sont gnralement
30
0,6
calcules dans une boucle
35
0,7
0,8
40
Par programmation, il ne faut envoyer
les donnes au graphe qu'une seule fois,
le terminal graphe XY doit donc tre hors de la boucle.
Les 2 tableaux sont obtenus directement
au niveau des 2 tunnels de sortie de la boucle.
Ils sont assembls pour former un cluster.

3. +0, 0.

" 7

Connecter le tableau
des abscisses ici
Connecter le tableau
des ordonnes ici

9 2 3 , 0.

" 7

Trac de courbe,
chelle linaire :
xi = xd + i * (xf-xd)/N
apparat
automatiquement

On dispose ici
d'un cluster
(assemblage)
de 2 tableaux.

!' (
(

?) 7

,4 +/30
R
R

#N 3I

) !
(

$
'
'

' *

,
1 &!

?)&7
$

! 3II

!
(

?)*7

( 41 33 304
'

$!
M" "

! '
(

<=N
$

<G

D =

) !

!
?)57

( 41 33 3+-

% L <=N GI

2 6/

'
P3 ? <3 D < !G =G =Q
,

'

) !
<

ST!

B
C
(
EXEMPLE : Programmer n!
On sait que n! = (n-1)! . n
Pour calculer n!, il faut avoir d'abord calcul (n-1)!
Pour calculer (n-1)!, il faut avoir d'abord calcul (n-2) !
Pour calculer (n-2)!, il faut avoir calcul (n-3)!
Etc ....
4
A la ime itration,
on utilise le rsultat
calcul l'itration
prcdente

Variable facto type entier


Variable i type entier
facto
1
Pour i = 1 N faire
facto
facto.i
i
i+1
afficher facto
fin

En Labview cela se fait


grce au registre dcalage

"

On utilise des registres dcalage dans les boucles For et dans les
boucles While pour transmettre des valeurs d'une itration l'itration
suivante.
Au ime tour de boucle, la valeur
calcule est fonction
de la valeur calcule au tour prcdent
6

5# /

5#

5 #2/

!!

Factorielle n

Valeurs au dernier tour de boucle


La valeur calcule la
dernire itration sort par
le tunnel du registre

Clic droit sur le bord de la boucle

'''8 3769 9:74 ;


/=>7?7;
$

<' 74

7
,@

8 N<

/3

OG

= ?U

On rpte la mesure priodiquement => boucle while


Pour calculer Mi, on a besoin des valeurs mesures dans les deux
itrations prcdentes.

9
6

)
9

5# /

6
5#

)
9
6

5 #2/

La mesure est simule


par la gnration d'un
nombre alatoire

Tirer avec la
souris pour
disposer de la
donne
transmise par
la i-2me
itration

Affichage sur un
graphe droulant de
la moyenne des trois
derniers
nombres
alatoires gnrs

/
0

!"

Dans une boucle, si on retourne


la valeur calcule sur l'entre
d'un oprateur, il apparat un
noeud
de
rtroaction,
fonctionnant comme le registre
dcalage.
Noeud de rtroaction
Initialisation du noeud
de rtroaction pour
le 1er tour de boucle

&

"

'
!

(
0)

B)
'

"

'$

.!G

!
(

B)&

#
(
L
3I
8

'$
$
$
B)*

.!U

,
% #

%
$

"

"
3 /9
36

+/13. 2
3I

6/4 .<0 1+01 0

.A+ 142 0 1 1

,'

D3I!
I!

Langage classique :

Langage LabVIEW :

Flot d'instructions

Flot de donnes

@
Les instructions crites
s'excutent squentiellement

On ne matrise pas
l'ordre d'excution
des instructions

"

La structure squence dans LabVIEW :


La structure squence se prsente comme
une succession d'tapes
semblable la pellicule d'un film
Dans chaque tape (frame) : un diagramme.
Les tapes successives sont excutes dans l'ordre.

tape 1
diag 1

tape 2
diag 2

tape 3
diag 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.
)
)

<

"

'$

!
!

!#

Etape 0 : Acquisition du temps


Gnration du nombre alatoire
tant qu'il est diffrent du nombre atteindre

Etape 1 : Acquisition du temps


Calcul et affichage de la dure

!
Cette structure est souvent utilise
en informatique d'instrumentation

tape 1
tape 2
Configuration
Acquisition
carte d'acquisition Sortie Commande

tape 3
RAZ carte daq

Cette structure peut galement tre utilise galement pour


commander un systme squentiel (feux de carrefour)

!$

!
)

'

'

,'

'

&
A

*
,)

(
!

D) 7
. $

$
G

'
!

E
!
&
)

<
!

)
" +

'$
!

" )

)
)
!

<)
<3ID =W !

="
'

'

)
"

,
*

'$

" )
"

!
33

*!

7
M
'

"
!
,

'E

' )

)
!

*
)

"'

' @

'
)

'
!
! &
, )

"
'
,'

)
"

,
'
'E !

"

'E

'E

*
,

"
'

'E

/
"
!

,'

0
7

%
"

) , )
'E
!<

!
*

'

=!

"

' (
(

E) 7 +2

/ 8 F.4 4..

#
'

!
<=

2/B

&

&

(2/B

E/

/B
3X?
<

GI

<: )
=

'

!
2F
F
;

(8/B

DC

GX?C

<=

YZ!

=
'

<=
#

IUT BELFORT MONTBELIARD


Dpt MESURES PHYSIQUES
EXAMEN PARTIEL DINFORMATIQUE 2004/2005 Sujet D
Dure 3h

Sorties interdites
Tous documents manuscrits autoriss
Accs rpertoire personnel autoris
Tlphones portables interdits

!
!
!
"

Sauvegardez priodiquement votre travail


EXERCICE 1 7 pts (2+2+3)
Un rcepteur inductif aliment sous U = 220 V consomme une puissance active P .
Lintensit du courant quil absorbe est I.
P et I sont des commandes (potentiomtre rotatifs) sur la face avant.
0 < P < 5000 W et 0 < I < 50 A.
1/ Afficher sur un vu-mtre le cos.
2/ Ajouter une commande sur la face avant reprsentant un condensateur en parallle.
Afficher le nouveau cos obtenu sur un second vu-mtre.
*
Afficher le courant nouveau courant I consomm sur un indicateur.

!"#

$ % &'(

)*

# )*#

*
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 lhorizontale, partir dune position initiale de coordonnes (0,0).
Les frottements tant ngligs, les quations horaires des coordonnes cartsiennes du
centre dinertie sont :
"5

B E E IB=

H>02
5 B

B E B E /BB

&

'7J

$ %

&
#

'
*

/0

(
#

)
+ ,-

&

*
1

(
3

/0
'

&

4
*

N.B : Avec les valeurs de V0 et de proposes, le pas temporel pourra tre t = 0,1
et le nombre de points N = 100.

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


1/ Raliser un programme qui affiche la variable yi pour i allant de 0 9 sur un graphe
droulant sachant qu la ime itration :
yi = (xi /2 + x i-1/4 + x i-2 / 8)
xi est un tableau de commandes numriques initialis (1, 0, 0.)
Le droulement du graphe sera temporis par une attente de 100 ms.
Lensemble du programme tournera en boucle et sarrtera par appui sur un bouton
STOP.
# K*

>

>

"*

*
2/ Raliser un programme qui affiche la variable yi pour i allant de 0 9 sur un graphe
droulant sachant qu la ime itration :
yi = (xi + y i-1 ) / 2
xi est un tableau de commandes numriques initialis (1, 0, 0.)
Le droulement du graphe sera temporis par une attente de 100 ms.
Lensemble du programme tournera en boucle et sarrtera par appui sur un bouton
STOP.
*

You might also like