24

LabVIEW™ real time programing

Embed Size (px)

DESCRIPTION

Architecture de programmation et communication dans LabVIEW™ Real-Time

Citation preview

Page 1: LabVIEW™ real time programing
Page 2: LabVIEW™ real time programing

Architecture de programmation et communication dans LabVIEW™ Real-Time

Alexandre StanurskiNational Instruments France

Page 3: LabVIEW™ real time programing

Sommaire

• Architecture de programmation• Transfert des données• Benchmarks• Conclusion

Page 4: LabVIEW™ real time programing

Définitions

• Déterminisme• Jitter• Mécanismes de verrouillage (exclusions mutuelles, sémaphores, sections critiques…)

• Conflits de ressources (bus, mémoire, fichier…)

Page 5: LabVIEW™ real time programing

Objectifs de l’architecture de programmation

• Optimiser les performances• Optimiser le déterminisme• Minimiser le Jitter

Page 6: LabVIEW™ real time programing

Architecture de programmation

• Prévenir les conflits de ressource• Retirer les opérations non déterministes des boucles

critiques

Page 7: LabVIEW™ real time programing

Transfert des données dans une application temps réel

Bouclecritique

Application temps réel

Boucle decommunication

E/S sur fichiers

Applicationexterne

Page 8: LabVIEW™ real time programing

Communication et ressources CPU

Time-Critical Loop Rate

Data

Amou

nt

Communication DataTime Critical Loop Data

Page 9: LabVIEW™ real time programing

Bouclecritique

Application temps réel

Transfert des données dans une application temps réel

Boucle decommunication

E/S sur fichiers

Applicationexterne(réseau)

Page 10: LabVIEW™ real time programing

Transfert des données dans une boucle critique

• Non sécurisé– Série, GPIB– E/S sur fichiers, TCP/IP– Files d’attente, notifications, VI Server

• Sécurisé– DAQ, VISA (par registres), CAN– Variables globales (faibles volumes de données)– FIFO temps réel (RT FIFO)

Page 11: LabVIEW™ real time programing

FIFO temps réel

• Liste FIFO avec pertes, de longueur fixe• Éléments de taille fixe• Reader unique, writer unique• Pas de mécanisme de verrouillage – c’est sécurisé• Conçu pour l’OS temps réel utilisé• Variables globales pour des valeurs simples (ex. : paramètres utilisateur)

Page 12: LabVIEW™ real time programing

Bouclecritique

Application temps réel

Transfert des données dans une application temps réel

Boucle decommunication

E/S sur fichiers

Applicationexterne

Page 13: LabVIEW™ real time programing

Transfert des données sur fichiers

• Le taux de transfert dépend de la taille des paquets– Taille optimale : 512 octets

Page 14: LabVIEW™ real time programing

Taux de transfert des données sur fichiers

0

500

1000

1500

2000

2500

3000

3500

4000

0 8192 16384 24576 32768 40960 49152 57344 65536

Transfer Size (Bytes)

Tran

sfer

Rat

e (kB

ytes

/sec)

WriteRead

0

500

1000

1500

2000

2500

128 256 384 512 640 768 896

Page 15: LabVIEW™ real time programing

Bouclecritique

Application temps réel

Transfert des données dans une application temps réel

Boucle decommunication

E/S sur fichiers

Applicationexterne

Page 16: LabVIEW™ real time programing

Méthodes de transfert des données à distance

• Série• CAN : déterministe• Réseau

– TCP : sans perte, synchrone, rapide, conversion des données

– UDP : avec pertes, le plus rapide, conversion des données– VI Server : basé sur TCP, plus simple, plus lent– DataSocket™ : le plus simple, avec pertes, sans conversion

de données

Page 17: LabVIEW™ real time programing

Taux de transfert des données sur le réseauMaximum Network Transfer Rate

0

100

200

300

400

500

600

700

0 512 1024 1536 2048 2560 3072 3584 4096

Payload Size (Bytes)

Tran

sfer

Rat

e (k

Byt

es /

sec) 6.1 TCP (PXI-8156B)

6.0.3 TCP (PXI-8156B)

Page 18: LabVIEW™ real time programing

Taux de transfert des données sur le réseauMaximum Network Transfer Rate

0

100

200

300

400

500

600

700

0 512 1024 1536 2048 2560 3072 3584 4096

Payload Size (Bytes)

Tran

sfer

Rat

e (k

Byt

es /

sec)

6.1 UDP (PXI-8156B)

6.0.3 UDP (PXI-8156B)

Page 19: LabVIEW™ real time programing

Taux de transfert des données sur le réseauMaximum Network Transfer Rate

0

1000

2000

3000

4000

5000

6000

0 512 1024 1536 2048 2560 3072 3584 4096

Payload Size (Bytes)

Tran

sfer

Rat

e (k

Byt

es /

sec)

6.1 TCP (PXI-8156B)

6.0.3 TCP (PXI-8156B)

6.1 TCP (PXI-8176 100Mbps)

Page 20: LabVIEW™ real time programing

Taux de transfert des données sur le réseauMaximum Network Transfer Rate

0

2000

4000

6000

8000

10000

12000

0 512 1024 1536 2048 2560 3072 3584 4096

Payload Size (Bytes)

Tran

sfer

Rat

e (k

Byt

es /

sec)

6.1 UDP (PXI-8156B)

6.0.3 UDP (PXI-8156B)

6.1 UDP (PXI-8176 100Mbps)

Page 21: LabVIEW™ real time programing

Nouveau : module LabVIEW 7 FPGA

• Combiné au module LabVIEW 7 Real-Time, il permet d’aller plus loin dans la distribution des tâches critiques et non critiques.

• Communication entre la carte RIO et le contrôleur PXI RT hôte par les RIO Host Interface VIs, similaires au VI Server.

Ethernet

TCP/IPDataSocket

Page 22: LabVIEW™ real time programing

Exemple : applications de régulation

LabVIEW FPGA & PXI-7831R– E/S synchronisées– Signaux numériques personnalisés – Déclenchements personnalisés

ACQUISITIONLV FPGA

IHMLV WIN

CONTRÔLELV FPGA

ANALYSELV RT

PRESENTATIONLV WIN

LabVIEW Real-Time– Calculs à virgule flottante– Taille d’application « illimitée »– Communication réseaux– E/S fichiers

Page 23: LabVIEW™ real time programing

Conclusions

• Architecture de programmation recommandée– Isoler les tâches critiques– Prévenir les conflits de ressources

• Méthodes de transfert des données– FIFO temps réel dans l’application temps réel– Paquets de 512 octets pour les opérations d’E/S sur fichiers– Choisir la méthode de transfert des données sur le réseau qui

convient le mieux à votre application• Notion de distribution des tâches Windows/Real-Time/FPGA

Page 24: LabVIEW™ real time programing

Questions ?