From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Multitaches

 

Bonjour,

 

Je souhaiterai faire du multi-taches avec Labview. Par exemple Taches N°1 lancer une acquisition des mesures de température tout les secondes,

tâche N°2 Commander une électrovanne, tâche N°3 visualiser la pression d'une cuve etc...

 

Je ne sais pas est cela est possible sous Labview 2009.

 

Merci par avance.

 

  

    

0 Kudos
Message 1 of 5
(2,778 Views)

Cela est non seulement possible mais se fait très facilement. Il vous suffit par exemple de placer deux boucles sur votre diagramme pour obtenir deux tâches parallèles.

 

L'exemple attaché vous montre le concept de base. Structure événements, queue, sémaphore... permettent d'optimiser les performances du code en diminuant au maximum les ressources CPU et peuvent s'avérer utiles voires indispensables dans certains cas.

 

PS : Je vous recommande de poster les questions en français dans le forum spécifique à cette langue.

Message Edité par JB le 02-08-2010 08:06 AM
0 Kudos
Message 2 of 5
(2,758 Views)

 

Bonjour,

 

Merci pour la réponse. Vous avez placé une structure de séquence et deux boucles while placées en parallele, si j'ai 5 taches à effectuer je pourrai mettre 5 boucles while en // pour faire du multitaches.

 

Pourriez-vous me donner davantage de renseignements concernant l'autre méthode à savoir l'utilisation des structure évenements, queue et sémaphore...? Je suis plutot intéressé par cette méthode. Si vous avez un exemple de code ou bien les informations nécessaires(livres, lien informatique, exemple dans l'aide de labview..)  pour que je puisse regader de près si je pourrai l'utiliser dans mon projet.

 

 

Merci d'avance.

 

    

0 Kudos
Message 3 of 5
(2,744 Views)

PS : Dans mon premier courrier, veuillez lire notification au lieu de sémaphore.

 

 

Oui, il suffit de placer plusieurs boucles sur le diagramme pour obtenir autant de tâches parallèles.

 

La structure de base (boucles parallèles) reste la même avec l'utilisation des structures évéments et les autres fonctionnalités citées.

 

Par contre elles permettront d'optimiser le partage éventuel des données entre les boucles en évitant le "polling" qui est nécessaire avec des variables. Pour prendre l'exemple du bouton permettant d'arrêter les boucles :

 

- lecture de son état dans une des deux boucles à l'aide d'une structure événements (--> pas de polling mais réponse à un événement)

- transmission de son changement d'état à l'autre boucle par une notification (--> pas de polling mais programmation événementielle également dans la deuxième boucle).

 

--> excellente réactivité du programme tout en ayant une charge CPU négligeable

 

Mais dans la plupart des cas, il n'est pas indispensable d'utiliser ces techniques et les variables locales feront l'affaire.

Vous trouverez des VIs démontrant l'utilisation de ces techniques dans les exemples qui s'installent avec LabVIEW (menu LabVIEW>>Help>>Find Examples...>>onglet Search>>taper le mot recherché) ou sur le site de NI. 

 

0 Kudos
Message 4 of 5
(2,714 Views)

Je ne sais pas comment traduire ce terme en francais, mais pour un logiciel ayant plusieurs taches en parallel, je suggerais utiliser des Daemons (VI dynamiques).  Tu peux ainsi utiliser soit des "queues" ou des "Action Engines / Functional Globals" afin de passer les donnees des Daemons au programme principale.

 

R

0 Kudos
Message 5 of 5
(2,708 Views)