Flux des données dans le diagramme

Aide LabVIEW 2014

Date d'édition : June 2014

Numéro de référence : 371361L-0114

»Afficher les infos sur le produit
Télécharger l'aide (Windows uniquement)

LabVIEW suit un modèle de flux de données pour l'exécution des VIs. Un nœud du diagramme s'exécute lorsque toutes ses entrées sont disponibles. Lorsqu'un nœud s'exécute, il produit des données en sortie et transfère les données au nœud suivant dans le chemin du flux de données. La direction dans laquelle les données se déplacent à travers les nœuds détermine l'ordre d'exécution des VIs et des fonctions sur le diagramme.

Visual Basic, C++, JAVA et la plupart des autres langages de programmation textuels s'appuient sur un modèle de flux de commandes pour l'exécution des programmes. Dans la programmation séquentielle, l'ordre séquentiel des éléments du programme détermine l'ordre d'exécution du programme.

Dans LabVIEW, c'est le flux de données, et non pas l'ordre séquentiel des commandes, qui détermine l'ordre d'exécution des éléments du diagramme. Il est donc possible de créer des diagrammes qui contiennent des opérations simultanées. Vous pouvez par exemple exécuter deux boucles For simultanément et afficher les résultats sur la face-avant, comme l'illustre le diagramme suivant.

LabVIEW est un système multitâche et multithread capable d'exécuter plusieurs threads d'exécution et plusieurs VIs simultanément.

Dépendance des données et dépendance artificielle des données

Dans le modèle de programmation séquentielle, l'exécution dépend des instructions. En revanche, dans le modèle de programmation à flux de données, ce sont les données qui déterminent l'ordre d'exécution. Un nœud qui reçoit des données d'un autre nœud ne s'exécute que lorsque le premier nœud a terminé son exécution.

Des nœuds de diagramme qui ne sont pas connectés par des fils de liaison peuvent s'exécuter dans n'importe quel ordre. Vous pouvez utiliser les paramètres dupliqués pour contrôler l'ordre d'exécution lorsqu'il n'existe pas de dépendance naturelle des données. Utilisez la structure Séquence pour contrôler l'ordre d'exécution lorsque les paramètres dupliqués ne sont pas disponibles.

Dépendance de données manquante

Ne présumez pas que l'exécution se déroule de gauche à droite et de haut en bas lorsqu'il n'y a pas de dépendance de données. Assurez-vous d'avoir clairement défini la séquence d'événements lorsque cela est nécessaire en câblant le flux des données.

Dans le diagramme suivant, il n'existe pas de dépendance de données entre la fonction Lire un fichier binaire et la fonction Fermer un fichier parce que la fonction Lire un fichier binaire n'est pas câblée à la fonction Fermer un fichier. Cet exemple peut générer des résultats inattendus, puisqu'il est impossible de savoir quel VI s'exécute en premier. Si la fonction Fermer un fichier est la première à s'exécuter, la fonction Lire un fichier binaire ne fonctionne pas.

Le diagramme suivant établit une dépendance en câblant une sortie de la fonction Lire un fichier binaire à la fonction Fermer un fichier. La fonction Fermer un fichier ne s'exécute pas tant qu'elle n'a pas reçu la sortie de la fonction Lire un fichier binaire.

Paramètres dupliqués

Les paramètres dupliqués, qui sont en général un refnum ou un cluster d'erreur, renvoient la même valeur que le paramètre d'entrée qui leur correspond. Utilisez ces paramètres pour contrôler l'ordre d'exécution lorsqu'il n'existe pas de dépendance naturelle des données. En câblant la sortie dupliquée du premier nœud que vous voulez exécuter à l'entrée correspondante du nœud que vous voulez exécuter ensuite, vous créez une dépendance artificielle de données. Sans ces paramètres dupliqués, vous devez utiliser des structures Séquence pour garantir que les opérations sur les données se déroulent dans l'ordre souhaité.

Flux des données et gestion de mémoire

L'exécution par flux de données facilite la gestion de mémoire par rapport au modèle d'exécution séquentielle. Dans LabVIEW, vous n'allouez pas de mémoire aux variables, ni ne leur attribuez des valeurs. À la place, vous créez un diagramme avec des fils de liaison qui représentent la transition des données.

Les VIs et les fonctions qui génèrent des données allouent automatiquement de la mémoire à ces données. Lorsque le VI ou la fonction n'utilise plus les données, LabVIEW désalloue la mémoire associée. Lorsque vous ajoutez de nouvelles données à un tableau ou à une chaîne, LabVIEW alloue assez de mémoire pour gérer les nouvelles données.

Comme LabVIEW gère la mémoire automatiquement, vous ne contrôlez pas les phases d'allocation et de désallocation. Si un VI utilise de grandes quantités de données, vous devez comprendre le principe de l'allocation de mémoire. Comprendre ces principes peut en effet vous aider à écrire des VIs avec des besoins en mémoire largement inférieurs. Il est parfois possible d'augmenter la vitesse d'exécution des VIs en minimisant l'utilisation de la mémoire.

CET ARTICLE VOUS A-T-IL ÉTÉ UTILE ?

Pas utile