Synchonisation et communication

Publié: mars 19, 2011 dans LabVIEW
Tags:, , , , , , , ,

Quelques notions avancées pour ceux qui préparent le CLAD. Le but de cet article est juste de montrer que ces notions existent et vous donne juste ce qu’il faut pour passer la certification, mais il est conseillé de creuser la question pour les utiliser dans des architectures avancées.

FIFO

Aujourd’hui j’aimerai introduire une notion sur ce blog, notion que je commence à beaucoup utiliser. Les queues, et donc la plus utilisées, la FIFO (First In First Out). Le principe est assez simple on crée une file d’attente (on peut en définir la profondeur), on viens écrire un élément dans la file (une chaine de caractères, un énum (par exemple l’état d’une machine d’état), un cluster, un variant, des numériques…) on peut ensuite « dépiler » un ou plusieurs éléments pour les traiter ensuite, dans une autre boucle par exemple, mais aussi dans un autre VI qui tourne en parallèle. Il suffit ensuite de détruire la file d’attente en fin de programme.

Les files d’attentes peut aussi être utilisées pour passer des données vers TestStand, file d’attentes qui existent aussi dans TestStand pour passer des données entre différentes séquences par exemple(elles fonctionnent de manière analogue à celles de LabVIEW).

Notifications

On peut utiliser un notificateur pour synchroniser des exécutions, un notificateur ne peut faire passer qu’un seul élément contrairement à une file d’attente. On l’utilise par exemple pour passer un booléen pour signaler qu’une action est terminée dans un autre thread et qu’il faut donc terminer une autre exécution.

Sémaphores

Un sémaphore est utilisé pour verrouiller une ressource afin que plusieurs tâches ne puissent accéder à une ressource simultanément, et donc éviter les « races conditions » deux tâches ne doivent pas écrire en même temps dans une variable.

 

Variables locales

Une variable locale permet de passer une donnée au sein d’un même VI (plus généralement au sein d’une même séquence dans TestStand). Cela permet par exemple de contrôler deux threads qui tournent en parallèle dans une exécution.

Variables partagées

Les variables partagées sont des variables stockées sur un serveur , et permettent de partager des données entre plusieurs VI.

Publicités
commentaires
  1. robert dit :

    Bonjour

    J’ai un soucis sous labview c est la raison pour laquelle je me troune vers vous pour demander de l’aide. voila j’aimerai faire un VI qui represente un table d’adresse que je pourrai indexe moi meme , une table ou je peux soit lire soit ecrire les données.
    es ce que vous avez une idee sur comment faire
    merci

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s