Architecture de programmation et
communication dans LabVIEW™ Real-Time
Alexandre Stanurski
National Instruments France
Sommaire
• Architecture de programmation
• Transfert des données
• Benchmarks
• Conclusion
Définitions
• Déterminisme
• Jitter
• Mécanismes de verrouillage (exclusions mutuelles,
sémaphores, sections critiques…)
•...
Objectifs de l’architecture de programmation
• Optimiser les performances
• Optimiser le déterminisme
• Minimiser le Jitte...
Architecture de programmation
• Prévenir les conflits de ressource
• Retirer les opérations non déterministes des boucles
...
Transfert des données dans une application temps
réel
Boucle
critique

Boucle de
communication

Application
temps réel

E/...
Communication et ressources CPU

Data Amount

Communication Data
Time Critical Loop Data

Time-Critical Loop Rate
Transfert des données dans une application temps
réel
Boucle
critique

Boucle de
communication

Application
temps réel

E/...
Transfert des données dans une boucle critique
• Non sécurisé
– Série, GPIB
– E/S sur fichiers, TCP/IP
– Files d’attente, ...
FIFO temps réel
• Liste FIFO avec pertes, de longueur fixe
• Éléments de taille fixe
• Reader unique, writer unique
• Pas ...
Transfert des données dans une application temps
réel
Boucle
critique

Boucle de
communication

Application
temps réel

E/...
Transfert des données sur fichiers
• Le taux de transfert dépend de la taille des paquets
– Taille optimale : 512 octets
Taux de transfert des données sur fichiers
4000

2500

3500

2000

Transfer Rate (kBytes/sec)

3000

1500

2500

Write
Rea...
Transfert des données dans une application temps
réel
Boucle
critique

Boucle de
communication

Application
temps réel

E/...
Méthodes de transfert des données à distance
• Série
• CAN : déterministe
• Réseau
– TCP : sans perte, synchrone, rapide, ...
Taux de transfert des données sur le réseau
Maximum Network Transfer Rate
700

600

Transfer Rate (kBytes / sec)

500
6.1 ...
Taux de transfert des données sur le réseau
Maximum Network Transfer Rate
700

600

Transfer Rate (kBytes / sec)

500
6.1 ...
Taux de transfert des données sur le réseau
Maximum Network Transfer Rate
6000

5000

Transfer Rate (kBytes / sec)

6.1 TC...
Taux de transfert des données sur le réseau
Maximum Network Transfer Rate
12000

Transfer Rate (kBytes / sec)

10000

8000...
Nouveau : module LabVIEW 7 FPGA
• Combiné au module LabVIEW 7 Real-Time, il permet d’aller
plus loin dans la distribution ...
Exemple : applications de régulation
LabVIEW FPGA & PXI-7831R

LabVIEW Real-Time

– E/S synchronisées
– Signaux numériques...
Conclusions
• Architecture de programmation recommandée
– Isoler les tâches critiques
– Prévenir les conflits de ressource...
Questions ?
LabVIEW™ real time programing
Upcoming SlideShare
Loading in...5
×

LabVIEW™ real time programing

645

Published on

Architecture de programmation et communication dans LabVIEW™ Real-Time

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
645
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
678
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

LabVIEW™ real time programing

  1. 1. Architecture de programmation et communication dans LabVIEW™ Real-Time Alexandre Stanurski National Instruments France
  2. 2. Sommaire • Architecture de programmation • Transfert des données • Benchmarks • Conclusion
  3. 3. Définitions • Déterminisme • Jitter • Mécanismes de verrouillage (exclusions mutuelles, sémaphores, sections critiques…) • Conflits de ressources (bus, mémoire, fichier…)
  4. 4. Objectifs de l’architecture de programmation • Optimiser les performances • Optimiser le déterminisme • Minimiser le Jitter
  5. 5. Architecture de programmation • Prévenir les conflits de ressource • Retirer les opérations non déterministes des boucles critiques
  6. 6. Transfert des données dans une application temps réel Boucle critique Boucle de communication Application temps réel E/S sur fichiers Application externe
  7. 7. Communication et ressources CPU Data Amount Communication Data Time Critical Loop Data Time-Critical Loop Rate
  8. 8. Transfert des données dans une application temps réel Boucle critique Boucle de communication Application temps réel E/S sur fichiers Application externe (réseau)
  9. 9. 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)
  10. 10. 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)
  11. 11. Transfert des données dans une application temps réel Boucle critique Boucle de communication Application temps réel E/S sur fichiers Application externe
  12. 12. Transfert des données sur fichiers • Le taux de transfert dépend de la taille des paquets – Taille optimale : 512 octets
  13. 13. Taux de transfert des données sur fichiers 4000 2500 3500 2000 Transfer Rate (kBytes/sec) 3000 1500 2500 Write Read 1000 2000 500 1500 0 128 1000 256 384 512 640 768 896 500 0 0 8192 16384 24576 32768 40960 Transfer Size (Bytes) 49152 57344 65536
  14. 14. Transfert des données dans une application temps réel Boucle critique Boucle de communication Application temps réel E/S sur fichiers Application externe
  15. 15. 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
  16. 16. Taux de transfert des données sur le réseau Maximum Network Transfer Rate 700 600 Transfer Rate (kBytes / sec) 500 6.1 TCP (PXI-8156B) 400 6.0.3 TCP (PXI-8156B) 300 200 100 0 0 512 1024 1536 2048 2560 Payload Size (Bytes) 3072 3584 4096
  17. 17. Taux de transfert des données sur le réseau Maximum Network Transfer Rate 700 600 Transfer Rate (kBytes / sec) 500 6.1 UDP (PXI-8156B) 400 300 6.0.3 UDP (PXI-8156B) 200 100 0 0 512 1024 1536 2048 2560 Payload Size (Bytes) 3072 3584 4096
  18. 18. Taux de transfert des données sur le réseau Maximum Network Transfer Rate 6000 5000 Transfer Rate (kBytes / sec) 6.1 TCP (PXI-8156B) 6.0.3 TCP (PXI-8156B) 4000 6.1 TCP (PXI-8176 100Mbps) 3000 2000 1000 0 0 512 1024 1536 2048 2560 Payload Size (Bytes) 3072 3584 4096
  19. 19. Taux de transfert des données sur le réseau Maximum Network Transfer Rate 12000 Transfer Rate (kBytes / sec) 10000 8000 6.1 UDP (PXI-8156B) 6.0.3 UDP (PXI-8156B) 6000 6.1 UDP (PXI-8176 100Mbps) 4000 2000 0 0 512 1024 1536 2048 2560 Payload Size (Bytes) 3072 3584 4096
  20. 20. 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/IP DataSocket
  21. 21. Exemple : applications de régulation LabVIEW FPGA & PXI-7831R LabVIEW Real-Time – E/S synchronisées – Signaux numériques personnalisés – Déclenchements personnalisés – Calculs à virgule flottante – Taille d’application « illimitée » – Communication réseaux – E/S fichiers LV WIN LV FPGA LV RT LV WIN IHM ACQUISITION ANALYSE PRESENTATION LV FPGA CONTRÔLE
  22. 22. 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
  23. 23. Questions ?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×