5. Objectifs de l’architecture de programmation
• Optimiser les performances
• Optimiser le déterminisme
• Minimiser le Jitter
6. Architecture de programmation
• Prévenir les conflits de ressource
• Retirer les opérations non déterministes des boucles
critiques
7. 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
8. Communication et ressources CPU
Data Amount
Communication Data
Time Critical Loop Data
Time-Critical Loop Rate
9. 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)
10. 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)
11. 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)
12. 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
13. Transfert des données sur fichiers
• Le taux de transfert dépend de la taille des paquets
– Taille optimale : 512 octets
14. 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 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
21. 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
23. 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