Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Programme à étapes

Bonjour à tous,

 

Je travaille depuis quelques mois sur Labview 8.2. J'ai écrit un programme qui gère différents instruments (générateur de courant DC, générateur micro-ondes, débitmètres...) J'ai un raque NI Compact DAQ, des cartes d'acquisitions et des relais.

Le programme actuel est séquencé en 3 parties. 1ere partie : ouverture des voies, 2eme partie : actions (lecture; écriture...) avec une boucle While, 3eme partie : arrêt des taches.

Mon programme fonctionne correctement mais n'est pas terminé.

Je voudrais à présent créer une fonction qui me permettrait d'exécuter mon programme plusieurs fois en intégrant une cellule temps.

 

Je donne en exemple mon programme, j'ai plusieurs paramètres configurables (des consignes et des interrupteurs pour activer les consignes).

Je clique sur une icône 'Étape 1" (que je n'ai pas encore) et je règle les paramètres dans les cellules de consigne. Je souhaiterai que ma première étape soit l'allumage de mes débitmètres et l'allumage du chauffage pendant 10 minutes (fonction temps qui n'est pas encore intégrée) . 

Je fais de même pour l'étape 2, je clique sur "Etape 2" et configure le temps de l'étape, les débitmètres, le chauffage mais j'ajoute une consigne pour les micro-ondes.

Je clique sur étape 3 et ainsi de suite. Je souhaite au total avoir 10 étapes.

 

Donc après la configuration, je reviens sur "étape 1" et je clique sur "start" (que je n'ai pas encore) et là, le programme se lance, un compteur se met en route (que je n'ai pas également). Seuls les instruments que j'ai configuré démarrent. Au bout de 10 minutes, le programme passe à l'étape 2 etc...

 

Quel(s) outil(s) me permettrait de faire se genre de programmation? Est ce qu'il serait possible d'avoir un exemple d'un programme de ce type? Je peux également poster une version simplifiée du programme pour vous donner une idée de ce que j'ai déjà fait.

 

Je vous remercie d'avance pour votre aide

0 Kudos
Message 1 of 11
(4,671 Views)

Bonjour Jonathan,

 

Il pourrait être intéressant d'utiliser une architecture "State Machine" pour répondre à ta problématique. En effet à l'aide de la fonction"temps écoulé" il te seras possible de changer d'état après un certains temps.

 

Le liens suivant vers la DevZone te donneras surement des exemples intéressants:

http://search.ni.com/nisearch/app/main/p/bot/no/ap/tech/lang/fr/pg/1/sn/ssnav:dzn/q/state%20machine/

 

Cordialement

Message 2 of 11
(4,645 Views)

Merci, cela devrait bien m'aider.

 

Jonathan

 

0 Kudos
Message 3 of 11
(4,613 Views)

Bonjour;

 

Je travaille toujours sur mon projet et je ne trouve pas une machine à états qui correspond à ce que j'ai besoin.

Ma version de Labview me limite car il y a des exemples que je ne peux pas lire (version supérieure à la mienne)

 

J'ai joins un document Word de mon programme avec les cases qui me manquent, un start et stop du programme selectionné, le temps de chaque étape à définir et le nombre d'étapes également à définir. Toutes les autres cellules sont des paramètres que je souhaite modifier pour chaque étape. Exemple, poule l'étape 1 je veux un débit total de gaz égale à 100 sccm et l'étape 2 uniquement 50 sccm.

 

Est ce que l'on peut me proposer un exemple simple svp?

 

Merci d'avance pour votre aide

 

0 Kudos
Message 4 of 11
(4,543 Views)

Bonjour,

 

en lisant ta réponse, je ne suis pas sûr que tu aies bien compris le principe d'une machine à états.

Tu peux entièrement définir tous les états et les transitions (soit une action extérieure soit un délai) d'une machine à états.

 

Commence par définir toutes tes étapes et transitions, et ensuite tu adaptes le code aux exemples de machine à états.

 

Cordialement

 

Benoît C.
Certified LabVIEW Developer
Message 5 of 11
(4,537 Views)

Voici un exemple assez simple

 

En appuyant sur un bouton sa execute le code voulu, il suffit de mettre le code dans la structure condition

 

 

Rodéric L
Certified LabVIEW Architect
Message 6 of 11
(4,525 Views)

Bonjour,

 

Voici un lien concernant les machines à états :

 

http://zone.ni.com/devzone/cda/tut/p/id/3024

 

Cordialement.

0 Kudos
Message 7 of 11
(4,521 Views)

Le problème dans mon cas est que le procédé ne se déroule jamais de la même façon.

Il est donc difficile, je suppose, de mettre en place une machine à états (et assez simplement)...

 

J'ai pensé mettre l'affichage dans des onglets comme on peut le voir dans certains exemples.

Je pourrais configurer les onglets (un onglet = une étape) et faire exécuter un programme. Lorsque l'étape 1 (onglet 1) est terminé, l'étape 2 se lance et ainsi de suite.

Je ne sais pas si c'est une bonne idée..?

 

 

 

0 Kudos
Message 8 of 11
(4,497 Views)

Peut être faire un onglet avec les paramètres du test, et un tableau qui contiendrait les étapes, l'utilisateur choisirait dans ce tableau (d'énums) l'ordre des étapes du test. Ou alors faire une petite interface avec des drag and drop...

 

 

Rodéric L
Certified LabVIEW Architect
0 Kudos
Message 9 of 11
(4,485 Views)

Bonjour,

 

Je vais faire le programme sous forme d'onglets (un onglet = une étape). Je vais intégrer le programme global dans une boucle While avec des registres à décalage qui m'enverront d'une étape à une autre.

Je fais des tests sur les registres à décalage avant de le faire dans le programme final.

Je n'aurai pas accès aux 10 programmes que j'avais pensé au début mais déjà un ça ira.

 

Cela va me faire un programme assez lourd mais je verrai par la suite pour simplifier tout ça.

 

Merci pour votre aide.

0 Kudos
Message 10 of 11
(4,456 Views)