LabVIEW dispose de plusieurs méthodes de communication de données, chacune adaptée à une situation d'utilisation particulière. Afin de vous assurer que vous implémentez la méthode de communication de données appropriée pour votre application, reportez-vous à l'aperçu présenté dans cette rubrique. Pour obtenir des informations détaillées sur une méthode particulière de communication des données, cliquez sur le nom de la méthode que vous souhaitez consulter.

Type de communication de données : Éléments de flux de données Interfaces buffer Interfaces de type variable
Utilisation : Envoi de données entre la plupart des objets du diagramme. Envoi de données entre plusieurs emplacements lorsqu'il est important d'éviter d'écraser ou de perdre des valeurs. Stockage d'une valeur facilement accessible en mémoire et lorsque la valeur la plus récente prime. À utiliser avec précaution pour éviter les situations de compétition.
Exemples : Transfert de données d'une sortie de VI à une entrée de VI. Acquisition d'une waveform, envoi d'un message ou d'une commande, diffusion d'une image en continu. Surveillance de la température actuelle, surveillance de l'état du système.
Catégories : — Fil de liaison — Registres à décalage — Nœud de rétroaction — Conduit

Sur la cible ou l'ordinateur

— File d'attente — FIFO RT — Événements utilisateur — Bibliothèque de référence AMC (Asynchronous Message Communication)

En réseau

— Flux réseau — TCP — Bibliothèque de référence STM (Simple TCP Messaging)

Sur un FPGA

— FIFO de cible — FIFO définie par VI — DRAM

Entre un FPGA et un hôte

— FIFO DMA

De FPGA à FPGA

— FIFO P2P (Peer-to-Peer)

Sur la cible ou l'ordinateur

— Variable locale — Variable globale — Variable globale fonctionnelle (VGF) — Variable partagée à processus unique — Référence de valeur de données — Table de valeurs actuelles

En réseau

— Variable partagée publiée sur réseau — API Variable partagée programmée — Services Web — UDP

Sur un FPGA

— Variable globale — Élément de mémoire — Élément de registre

Entre un FPGA et un hôte

— Lire/Écrire à une commande — Moteur de balayage NI et variables — Variable d'E/S définie par l'utilisateur

Éléments de flux de données

Pour tirer parti de l'environnement de programmation par flux de données de LabVIEW, vous devriez utiliser des fils de liaison, des registres à décalage, des nœuds de rétroaction et des conduits comme principale méthode de communication de données dans votre application.

Méthode Attributs
Fil de liaison
  • Principale méthode de transfert de données entre les objets du diagramme
Registre à décalage
  • Principale méthode de transfert de données entre les itérations de boucle
Nœud de rétroaction
  • Principale méthode de transfert de données entre les itérations de code (ne requiert pas de boucle)
Conduit
  • Principale méthode de transfert de données pour la communication asynchrone entre des sections de code parallèles

Interfaces buffer

Utilisez des interfaces buffer lorsque vous devez envoyer des données d'un emplacement à un autre et que vous ne souhaitez pas écraser ni perdre de valeurs. Une interface buffer est souvent représentée comme un buffer FIFO (first-in, first-out) à un ou plusieurs éléments dans lequel un ou plusieurs scripteurs ajoutent des données à une extrémité du buffer et un lecteur récupère des données à l'autre extrémité.

Sur la cible ou l'ordinateur

Méthode Attributs
File d'attente
  • Taille et options d'accès flexibles
  • Non déterministe
FIFO RT (Module Real-Time)
  • Déterministe
  • Le mode Interrogation (par défaut) gère les temps d'attente de lecture et d'écriture de manière déterministe, mais augmente le temps système du processeur
  • Le mode Blocage optimise l'utilisation du processeur pendant les temps d'attente d'écriture et de lecture, mais ne gère pas les opérations de manière déterministes
  • Moins flexible que les files d'attente à cause de la taille fixe et des options d'accès limitées
Événements utilisateur
Asynchronous Messaging Communication (AMC) Library

(Disponible sur ni.com)

  • Communication par messages envoyés dans un processus ou entre des processus
  • Plus facile d'emploi que les files d'attente lorsqu'un framework de messagerie est désigné
  • Inclut le modèle Gestionnaire de messages dans une file d'attente (GMF) Remarque : il s'agit d'une ressource de la communauté dont le contenu est soumis aux dispositions du document Sample Code License Terms disponible sur ni.com/samplecodelicense

En réseau

Méthode Attributs
Flux réseau
  • Communication un à un
  • Plus facile à implémenter que le TCP
  • Gère automatiquement les déconnexions et reconnexions
  • Unidirectionnel
  • Disponible uniquement pour les systèmes Windows et temps réel
TCP
  • Des fonctionnalités étendues pour les applications qui requièrent une communication réseau avec des périphériques sans support de flux de réseau
  • Un protocole de bas niveau qui introduit une certaine complexité dans l'implémentation
Simple TCP Messaging (STM) Reference Library

(Disponible sur ni.com

  • Wrapper de messages pour les fonctions TCP de bas niveau
  • Utilisée pour implémenter une communication de type 1:N, d'un serveur unique vers plusieurs clients Remarque: Il s'agit d'une ressource de la communauté dont le contenu est soumis aux dispositions du document Sample Code License Terms, disponible sur ni.com/samplecodelicense

Sur un FPGA

Méthode Attributs
FIFO de cible (Module FPGA)
FIFO définie par VI (Module FPGA)
  • Les options d'implémentation spécifient le type de stockage utilisé par la FIFO : bascules flip-flop, table de correspondance ou bloc de mémoire
  • Évite les conflits de ressources dans les sous-VIs réentrants en dupliquant la ressource pour chaque instance
  • Facilite la réutilisation du code pour les VIs utilisés dans plusieurs projets
  • Non visible ni personnalisable à partir de la fenêtre de l'Explorateur de projet
DRAM (Module FPGA)
  • Interface avec mémoire vive dynamique (DRAM) utilisant un élément de mémoire ou une interface CLIP
  • Fournit un large espace mémoire tampon en comparaison des FIFO de cible ou définies par un VI
  • Latence d'accès non déterministe
  • Non disponible sur toutes les cibles

Entre un FPGA et un hôte

Méthode Attributs
FIFO DMA (Module FPGA)

De FPGA à FPGA

Interfaces de type variable

Utilisez les interfaces de type variable lorsque vous devez stocker en mémoire une valeur à laquelle les lecteurs et les scripteurs peuvent accéder avec peu ou pas de contrôle de flux. Notez qu'il faut utiliser des variables lorsque la valeur la plus récente prime et qu'il est acceptable d'écraser les valeurs précédentes. À utiliser avec précaution pour éviter les situations de compétition.

Sur la cible ou l'ordinateur

Méthode Attributs
Variable locale
  • Stocke des données accessibles à partir d'un seul VI
Variable globale
  • Stocke des données accessibles à partir de plusieurs VIs dans une même instance d'application LabVIEW
Variable globale fonctionnelle (VGF)
  • VI qui utilise des registres à décalage non initialisés pour stocker des données globales
  • Capable d'implémenter des variables globales simples, ainsi que des structures de données plus complexes, telles que des piles ou des buffers de files d'attente
  • Aide à éviter les situations de compétition en définissant des opérations spécifiques que le code appelant peut exécuter sur la variable
Variable partagée à processus unique
Référence de valeur de données
  • Stocke de grands ensembles de données
  • Aide à gérer la mémoire et à éviter la copie des données
Current Value Table (CVT)

(Disponible sur ni.com

  • Dépôt de données commun aux variables dans des applications comprenant des composantes séparées
  • Utilise moins de ressources informatiques que les variables partagées en centralisant les opérations d'E/S Remarque: Il s'agit d'une ressource de la communauté dont le contenu est soumis aux dispositions du document Sample Code License Terms, disponible sur ni.com/samplecodelicense

En réseau

Méthode Attributs
Variable partagée publiée sur réseau
  • Option déterministe disponible
  • Idéal pour le suivi des valeurs
  • Stocke les valeurs sur un serveur de données en réseau (Moteur de variables partagées)
  • Gestionnaire de connexions intégré pour les configurations réseau 1:N et N:1
API Variable partagée programmée
  • Rend la conception plus évolutive en offrant un accès dynamique aux variables au lieu d'une liaison statique basée sur un nœud
  • Accès à plusieurs variables à l'aide d'une seule fonction de l'API Variable
  • Accès aux variables d'E/S publiées sur réseau
Services Web
  • Communication de données en réseau utilisant les protocoles HTTP standard
  • Lecture en continu de données de type MIME standard, comme du texte, des images et des vidéos
  • Construction et déploiement de services Web en utilisant les VIs LabVIEW
UDP
  • Supporte l'unicast (1:1) et le multicast (1:N) pour des communications de bas niveau entre les processus de périphériques
  • Plus performant que le protocole TCP dans les applications qui ne requièrent pas de transfert de données sans perte
  • Un protocole de bas niveau qui introduit une certaine complexité dans l'implémentation
  • Ne garantit pas que les clients reçoivent les données

Sur un FPGA

Méthode Attributs
Variable globale
  • Stocke des données accessibles à partir de plusieurs VIs dans une même instance d'application LabVIEW
Élément de mémoire (Module FPGA)
  • Capable de stocker les valeurs en de multiples points de données
  • Les options d'implémentation spécifient le type de stockage utilisé par l'élément de mémoire : bloc de mémoire, table de correspondance ou DRAM
  • Choix possible entre élément de cible (configuré dans le projet) et élément défini par un VI (configuré dans un VI pour une utilisation réentrante)
Élément de registre (Module FPGA)
  • Capable d'afficher un état à chaque période d'horloge
  • Choix possible entre élément de cible (configuré dans le projet) et élément défini par un VI (configuré dans un VI pour une utilisation réentrante)
  • Consomme moins de ressources sur le FPGA que les FIFO

Entre un FPGA et un hôte

Méthode Attributs
Lire/Écrire à une commande (Module FPGA)
  • Lit ou écrit une valeur dans une commande ou un indicateur dans le VI FPGA de niveau principal sur la cible FPGA.
Moteur de balayage NI et variables

(Module FPGA et support du moteur de balayage NI installés sur votre cible)

  • Communication simple et périodique de données d'E/S FPGA vers ou à partir d'un hôte RT
  • Réduit la quantité de code requise pour transférer des données d'E/S entre une cible FPGA et un hôte RT
Variable d'E/S définies par l'utilisateur (Module FPGA)
  • Envoi de données définie par l'utilisateur lorsque le moteur de balayage est utilisé en mode hybride
  • Transfert de données entre un VI FPGA et un VI hôte LabVIEW RT
  • Transfert de données d'E/S de processus FPGA personnalisées