Utilisation de variables d'E/S (Real-Time, Windows)
- Mise à jour2025-08-27
- Temps de lecture : 16 minute(s)
Une variable d'E/S est un type de variable partagée qui transfère des données d'E/S. Lors d'un accès local, les variables d'E/S utilisent le moteur de balayage NI pour accéder point par point aux données d'E/S. Lors d'un accès à distance, les variables d'E/S utilisent le protocole PSP (NI Publish-Subscribe Protocol) pour accéder point par point ou avec un buffer aux données d'E/S. Une variable d'E/S peut communiquer directement avec une voie d'E/S physique ou transférer des données d'E/S personnalisées entre un VI FPGA et un VI RT (temps réel) qui s'exécutent sur la même cible.
Le tableau suivant résume les cas d'utilisation des variables d'E/S :
| Utilisation | Type de variable d'E/S |
|---|---|
| Transfert de données d'E/S à l'échelle entre le matériel d'E/S et un VI LabVIEW sans utiliser le module LabVIEW FPGA | Variables d'E/S pour des données d'E/S à l'échelle |
| Transfert de données d'E/S de processus FPGA personnalisées entre un VI LabVIEW FPGA et un VI LabVIEW Real-Time s'exécutant sur le même périphérique. | Variables d'E/S pour des données d'E/S FPGA personnalisées |
Variables d'E/S pour des données d'E/S à l'échelle
Pour utiliser des variables d'E/S pour des données d'E/S mises à l'échelle, vous devez commencer par connecter un périphérique d'E/S supporté à une cible sur laquelle le moteur de balayage NI est installé, puis ajouter le périphérique d'E/S à la cible dans le projet LabVIEW.
Lorsque vous ajoutez un périphérique d'E/S supporté à une cible supportée dans la fenêtre de l'Explorateur de projet, LabVIEW ajoute automatiquement une variable d'E/S pour chaque voie d'E/S. Si vous ajoutez physiquement un périphérique d'E/S à une cible qui fait partie du projet LabVIEW actuel, vous devez ajouter le nouveau périphérique d'E/S au projet et déployer les variables d'E/S correspondantes avant de pouvoir les utiliser.
Si vous supprimez physiquement un périphérique d'E/S d'une cible qui fait partie du projet LabVIEW actuel, vous devez aussi le supprimer du projet et redéployer la cible qui contenait le périphérique d'E/S. Le redéploiement de la cible assure que la configuration sur la cible reflète celle du projet. Vous pouvez utiliser la boîte de dialogue Comparaison du projet et du système pour vérifier que les configurations du projet et de la cible sont les mêmes.
Variables d'E/S pour des données d'E/S FPGA personnalisées (modules FPGA ou Real-Time)
Si le projet comporte une cible FPGA qui supporte le moteur de balayage NI, vous pouvez créer des variables d'E/S définies par l'utilisateur pour transférer des données d'E/S personnalisées entre les VIs FPGA et les VIs RT qui s'exécutent sur le même périphérique.
Vous pouvez ajouter des variables d'E/S définies par l'utilisateur sur les diagrammes des VIs FPGA et des VIs RT qui s'exécutent sur le châssis qui héberge les variables d'E/S définies par l'utilisateur. Cependant, comme toutes les variables d'E/S sont unidirectionnelles, vous devez configurer la direction de chaque variable d'E/S définie par l'utilisateur comme étant Du FPGA à l'hôte ou De l'hôte au FPGA. Par exemple, vous pouvez acquérir des données d'E/S analogiques et effectuer une FFT sur les données dans un VI FPGA, utiliser une variable d'E/S Du FPGA à l'hôte pour transférer les données traitées à une boucle de contrôle dans un VI RT, puis utiliser une variable d'E/S De l'hôte au FPGA pour transférer les données renvoyées par la boucle de contrôle RT à la voie d'E/S physique en passant par le bus FPGA.
Vous devez installer le module LabVIEW FPGA pour créer des variables d'E/S définies par l'utilisateur. Cependant, si vous avez seulement le module Real-Time, vous n'avez pas besoin d'installer le module LabVIEW FPGA pour accéder à des variables d'E/S définies par l'utilisateur à partir de VIs RT. Par exemple, un développeur pourrait utiliser le module LabVIEW FPGA pour créer des variables d'E/S définies par l'utilisateur et compiler un fichier bitfile FPGA pour accéder à ces variables. Puis il pourrait distribuer le fichier bitfile et le projet LabVIEW contenant les variables d'E/S définies par l'utilisateur à un autre développeur qui n'a pas le module FPGA, qui pourrait alors utiliser le projet pour exécuter le fichier bitfile sur un châssis CompactRIO. Dans ce cas, le second développeur ne pourrait pas créer de nouvelles variables d'E/S définies par l'utilisateur, mais il pourrait utiliser le module Real-Time pour accéder aux variables d'E/S définies par l'utilisateur créées par le premier développeur.
(Windows) Si la publication sur réseau est activée sur une variable d'E/S définie par l'utilisateur, vous pouvez utiliser la variable dans n'importe quel VI RT ou VI qui s'exécute sur Windows qui se trouve dans le même projet LabVIEW. Par exemple, vous pouvez utiliser les variables d'E/S publiées sur réseau pour créer un VI d'interface utilisateur qui s'exécute sous Windows.
Configuration de variables d'E/S
Vous pouvez configurer des variables d'E/S de manière interactive au moment de l'édition ou de l'exécution ou par programmation lors de l'exécution. Vous pouvez également utiliser plusieurs de ces méthodes. Le tableau suivant résume les avantages et inconvénients de chaque méthode :
| Méthode | Cas d'usage | Avantages | Inconvénients |
|---|---|---|---|
| Interactif | Configuration des paramètres pour les variables d'E/S lorsque vous avez accès à la fenêtre de l'Explorateur de projet. | Requiert moins de programmation. |
|
| Programmatique |
|
|
Requiert davantage de programmation. |
Configuration de variables d'E/S de manière interactive
Utilisez la boîte de dialogue Propriétés de la variable partagée pour configurer une variable d'E/S, ou la fenêtre Éditeur de variables multiples pour configurer plusieurs variables d'E/S en même temps.
Vous pouvez mettre à jour les options de description, de réseau et de mise à l'échelle d'une variable d'E/S même si un VI qui utilise la variable d'E/S est en cours d'exécution. Cependant, vous ne pouvez pas mettre à jour le nom ou le type de données d'une variable d'E/S pendant l'exécution.
Configuration de variables d'E/S par programmation
Effectuez les étapes suivantes pour utiliser les propriétés de Variable afin de configurer une variable d'E/S par programmation :
- Ajoutez un nœud de propriété de variable au diagramme.
- Cliquez avec le bouton droit sur l'entrée référence et sélectionnez Créer»Constante dans le menu local.
- Cliquez sur le bouton fléché sur le côté droit de la constante refnum de variable partagée et sélectionnez Parcourir.
- Utilisez la boîte de dialogue Naviguer jusqu'à un objet variable pour sélectionner la variable d'E/S à configurer.
- Cliquez avec le bouton droit sur la constante refnum de variable partagée et utilisez le menu local Sélectionner la classe Variable pour sélectionner la classe de la propriété à utiliser.
- Cliquez sur la zone blanche du nœud de propriété de variable et sélectionnez la propriété à utiliser.
- (Facultatif) Utilisez l'outil Flèche pour redimensionner le nœud de propriété de variable et afficher plusieurs propriétés à la fois.
La figure suivante représente un exemple de configuration par programmation d'une variable d'E/S sur une cible distante :
Dans cet exemple, le nœud de propriété de variable spécifie la limite actuelle d'une voie sur un module CompactRIO en configurant la variable d'E/S qui correspond à cette voie.
- Ouvrez le fichier labview\LabVIEW.ini avec un éditeur de texte.
- Sur une nouvelle ligne, entrez RemoteIOVConfigurationTimeout= suivi par la nouvelle durée avant timeout en nombre de secondes. Par exemple, si vous voulez que la durée avant un timeout dure 10 secondes, entrez RemoteIOVConfigurationTimeout=10.
- Enregistrez le fichier et fermez-le.
Déploiement de variables d'E/S
Pour déployer des variables d'E/S, cliquez avec le bouton droit sur l'élément de projet qui contient les variables d'E/S dans la fenêtre de l'Explorateur de projet et sélectionnez Déployer dans le menu local.
Lorsque vous exécutez un VI qui contient des nœuds de variable d'E/S, LabVIEW déploie automatiquement les conteneurs de variables d'E/S auxquels ces variables d'E/S appartiennent. Cette action déploie toutes les variables d'E/S dans les conteneurs.
Mise à l'échelle des valeurs de variables d'E/S
Vous pouvez activer une mise à l'échelle linéaire sur une variable ou un alias d'E/S sur la page Mise à l'échelle de la boîte de dialogue Propriétés de la variable partagée. Cependant, les variables d'E/S ne supportent pas la mise à l'échelle non linéaire.
Création d'alias d'E/S
Vous pouvez créer des alias d'une variable d'E/S pour nommer et mettre à l'échelle des données d'E/S différemment dans différents contextes. Par exemple, si vous avez une variable d'E/S connectée à une entrée de thermocouple, vous pouvez créer un alias Celsius et un alias Fahrenheit. Vous pourrez alors mettre chaque alias à l'échelle et les utiliser pour afficher la température dans les deux unités de mesure.
La valeur d'un alias d'E/S est lié dans les deux directions à la valeur de la parente, de sorte que la mise à jour de la valeur de la parente met à jour celle de l'alias et vice versa. Par extension, la mise à jour d'un lien dans une chaîne d'alias d'E/S met à jour tous les autres liens de la chaîne.
Création d'un alias d'E/S
Pour créer un alias d'E/S, cliquez avec le bouton droit sur une cible qui contient des variables d'E/S dans la fenêtre de l'Explorateur de projet et sélectionnez Nouveau»Variable dans le menu local pour afficher la boîte de dialogue Propriétés de la variable partagée. Entrez un nom pour l'alias d'E/S et sélectionnez Alias d'E/S dans le menu déroulant Type de variable. Ensuite, cliquez sur le bouton Parcourir et sélectionnez la variable d'E/S ou l'alias d'E/S existant auquel vous voulez lier le nouvel alias d'E/S.
Vous pouvez utiliser la fenêtre de l'Explorateur de projet pour éditer le nom, la description, les paramètres de publication sur réseau et la mise à l'échelle d'un alias d'E/S. Vous pouvez aussi utiliser la fenêtre Multiple Variable Editor pour éditer plusieurs alias d'E/S simultanément.
Création simultanée de plusieurs alias d'E/S
Vous pouvez utiliser la boîte de dialogue Création de variables par lots pour créer plusieurs alias d'E/S simultanément. Effectuez les étapes suivantes pour créer des groupes d'alias d'E/S :
- Créez un alias d'E/S unique qui servira de modèle pour le processus de création d'un groupe.
- Cliquez avec le bouton droit sur la bibliothèque de variables qui contient l'alias d'E/S et sélectionnez Créer des variables dans le menu local pour afficher la boîte de dialogue Création de variables par lots.
- Sélectionnez Copier les propriétés de, cliquez sur le bouton Parcourir et sélectionnez l'alias d'E/S existant que vous voulez utiliser comme modèle.
- Entrez le nombre d'alias d'E/S à créer dans le champ Nombre à créer et cliquez sur le bouton OK pour créer les nouveaux alias d'E/S.
Une fois ces étapes achevées, LabVIEW ouvre automatiquement la fenêtre Multiple Variable Editor, ce qui vous permet d'éditer les nouvelles variables. Vous pourriez, par exemple, éditer le Chemin de l'alias de chaque alias d'E/S pour le lier à une variable d'E/S unique.
Forçage des valeurs de variables d'E/S
Vous pouvez forcer la valeur d'une variable d'E/S de manière interactive ou par programmation. Lorsqu'une variable d'E/S est forcée, les données d'E/S associées prennent la valeur que vous spécifiez jusqu'à ce que vous annuliez le forçage de la variable, que vous redémarriez la cible, ou que vous forciez la variable à prendre une autre valeur. L'annulation du forçage d'une variable d'E/S rend le contrôle de la valeur d'E/S au moteur de balayage NI.
Forçage des valeurs de variables d'E/S de manière interactive
Utilisez le Gestionnaire de systèmes distribués NI pour forcer ou annuler le forçage de la valeur d'une variable d'E/S pendant la mise au point ou pour contrôler manuellement une voie d'E/S. À partir de LabVIEW, sélectionnez Outils»Gestionnaire de systèmes distribués pour lancer le Gestionnaire de systèmes distribués NI. Vous pouvez aussi lancer le gestionnaire de systèmes distribués en cliquant avec le bouton droit sur une cible RT dans la fenêtre de l'Explorateur de projet et en sélectionnant Utilitaires»Afficher dans le gestionnaire de systèmes.
Forçage des valeurs de variables d'E/S par programmation
Utilisez les VIs de la palette Forçage pour forcer et annuler le forçage des variables d'E/S par programmation.
Forçage d'alias d'E/S
Le forçage s'applique aussi bien aux alias qu'aux variables d'E/S. Si vous forcez une variable d'E/S, vous forcez aussi tous les alias associés. Lorsque vous forcez un alias, vous forcez aussi la variable d'E/S parente et tous les autres alias associés.
Forçage ou annulation du forçage de toutes les variables d'E/S sur une cible simultanément
Vous pouvez utiliser l'état de forçage global d'une cible pour forcer ou annuler le forçage de toutes les variables d'E/S sur la cible simultanément. Vous pouvez activer et désactiver le forçage global sur une cible de manière interactive ou par programmation.
Utilisez les boutons Activer le forçage et Désactiver le forçage dans le Gestionnaire de systèmes distribués NI pour activer et désactiver le forçage global sur une cible de manière interactive. Utilisez les VIs Activer le forçage des variables et Désactiver le forçage des variables pour activer et désactiver le forçage global sur une cible par programmation.
Effectuez les étapes suivantes pour forcer simultanément toutes les variables d'E/S d'une cible :
- Désactivez le forçage sur la cible pour pouvoir définir individuellement les valeurs de forçage de toutes les variables d'E/S sans devoir les forcer individuellement.
- Définissez les valeurs de forçage désirées pour toutes les variables d'E/S sur la cible.
- Activez le forçage sur la cible pour forcer toutes les variables d'E/S sur la cible simultanément.
Accès à distance à des variables d'E/S
Si la publication sur réseau est activée sur une variable d'E/S, vous pouvez y accéder à partir d'un ordinateur distant connecté au même réseau que la cible qui héberge la variable d'E/S. Vous pouvez accéder à des variables d'E/S distantes de manière interactive en utilisant l'affichage Sonde de variable d'E/S du Gestionnaire de systèmes distribués NI. Vous pouvez aussi accéder à des variables d'E/S distantes par programmation dans un VI.
Utilisez la boîte de dialogue Propriétés de la variable partagée pour activer et désactiver la publication sur réseau d'une variable d'E/S. Activez la publication sur réseau si vous avez besoin de surveiller des valeurs d'E/S sur un ordinateur hôte ou d'accéder à une variable d'E/S à partir d'une cible distante. Utilisez la page Moteur de balayage pour définir la fréquence globale de publication sur réseau pour toutes les variables d'E/S sur une cible.
Accès local à des variables d'E/S
LabVIEW ajoute les variables d'E/S à un mappage de mémoire global du moteur de balayage et met les valeurs de toutes les variables d'E/S à jour en même temps. Cependant, pour accéder à une variable d'E/S sur la cible locale qui l'héberge, vous pouvez configurer chaque nœud pour utiliser un accès par balayage ou direct.
Effectuez les étapes suivantes pour sélectionner le mode d'accès local d'un nœud de variable d'E/S :
- Cliquez avec le bouton droit sur un nœud de variable d'E/S sur le diagramme.
- Sélectionnez Mode d'accès local dans le menu local.
- Sélectionnez le mode d'accès que vous voulez utiliser pour le nœud.
Sélection d'un mode d'accès local
En général, l'accès par balayage convient pour des groupes de voies d'E/S ayant des fréquences de mise à jour similaires, alors que l'accès direct est approprié pour des voies d'E/S individuelles dont les mises à jour ne sont pas synchronisées avec la période de balayage. La table suivante résume dans quels cas chaque méthode d'accès aux E/S est appropriée :
| Usage courant | Méthode d'accès |
|---|---|
| Accès point par point à des voies d'E/S qui partagent la même fréquence de mise à jour | Balayé |
| Accès point par point à des voies d'E/S locales qui ne se synchronisent pas avec la période du Moteur de balayage NI (une écriture unique pour une sortie d'arrêt d'urgence, par exemple) (non supporté pour les variables d'E/S définies par l'utilisateur) | Accès direct |
Accès par balayage
Par défaut, LabVIEW configure les nœuds de variable d'E/S pour qu'ils utilisent l'accès par balayage. Utilisez l'accès par balayage pour des ensembles de voies d'E/S mises à jour à la même fréquence et pour des voies d'extension d'E/S. L'accès par balayage utilise le mappage de mémoire du moteur de balayage pour effectuer des lectures et écritures d'E/S non bloquantes, comme le montre la figure suivante :
À chaque fois que vous lisez une variable d'E/S en utilisant un accès par balayage, le moteur de balayage NI renvoie immédiatement la toute dernière valeur stockée dans le mappage de mémoire sans blocage ni attente d'une nouvelle valeur. À chaque balayage, LabVIEW lit la toute dernière valeur d'E/S et écrit cette valeur dans le mappage de mémoire du moteur de balayage NI.
À chaque fois que vous écrivez sur une variable d'E/S en utilisant un accès par balayage, vous écrasez la valeur qui était stockée dans le mappage de mémoire du moteur de balayage. À chaque balayage, LabVIEW pousse la valeur stockée dans le mappage de mémoire sur la voie d'E/S physique. Pour éviter de perdre des données, vous devez synchroniser toutes les écritures de variable d'E/S avec la période de balayage.
Accès direct
Utilisez l'accès direct pour les lectures ou écritures de données de voies d'E/S point par point qui ne sont pas synchronisées avec la période de balayage. Vous pouvez utiliser l'accès direct lorsque l'application a besoin d'écrire une valeur dès que possible. L'accès direct n'utilise pas le mappage de mémoire du moteur de balayage mais communique directement avec le driver du périphérique d'E/S pour effectuer des lectures et écritures d'E/S non bloquantes, comme le montre la figure suivante :
Interprétation des icônes des nœuds de variable d'E/S
Chaque nœud de variable d'E/S du diagramme comporte un symbole qui indique une des méthodes d'accès suivantes :
| Méthode d'accès | Apparence du nœud |
|---|---|
| NI-PSP |
|
| Balayé |
|
| Accès direct |
|