Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Initialiser le compteur d'une boucle for

Bonjour, 

J'ai en program en queue et j'aimerai bien initialiser le compteur i de ma boucle for a chaque fois que je run mon program.

 

Une idee comment initializer svp? 

0 Kudos
Message 1 of 9
(2,650 Views)

Bonjour,


Par définition, le chamsp d'incrémentation de la boucle "FOR" démarre toujours à 0. C'est un fonctionnement intrinsèque de labview, non modifiable. Si tu as besoin d'utiliser une variable d'initialisation différente, il te faut créer celle-ci grâce à un registre à décalage.


Cdt,

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
Message 2 of 9
(2,628 Views)

Bonjour Michael,

oui, un shift-register comportant l'initialisation et l'incrémentation.

C'est la solution "High-tech" ça   Smiley Happy

Pour les petits budgets ... peut-être juste une addition entre la valeur init et le terminal d'itération (?)

Dans l'absolu, moins de possibilités ... mais si c'est juste pour avoir un "i" de départ différend de zéro ...

0 Kudos
Message 3 of 9
(2,624 Views)

Bonjour, 

Merci pour votre reponse, une boucle for demarre des le debut de 0. Mais si vous stoppez votre VI et vous le simulez de nouveau   votre boucle demarrera du dernier nombre et ajoutera le nombre voulu.. 

Mais j'ai utilise des invoke node pr redemarrer a 0. Merci pour votre aide. 

 

Une derniere question svp: Saviez vous si c'est possible de redemarrer une boucle while par programmation apres l'avoir stoppee? (genre restart mais pas de tout le VI juste de la boucle)

0 Kudos
Message 4 of 9
(2,614 Views)

@marwah1 :

"Mais j'ai utilise des invoke node pr redemarrer a 0"

Je serais intéressé de voir ton code, serait-il possible de le placer sur le forum ? (merci).

"c'est possible de redemarrer une boucle while par programmation apres l'avoir stoppee

(genre restart mais pas de tout le VI juste de la boucle)"

oui, en plaçant ta boucle while dans une autre boucle.

0 Kudos
Message 5 of 9
(2,611 Views)

Alors la je suis pas du tout d'accord avec toi Marwah.


Je voudrais bien voir ton programme de test. Car une fois la boucle "For" terminer, son compteur d'iteration redémarrera toujours de 0.

 

Ou alors je n'ai pas du tout compris ce que tu souhaites dire.

 

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Kudos
Message 6 of 9
(2,604 Views)

Oui biensure.. Mais sa n'a rien de special j'utilise des indicateur que je reinitialise avec des property node.. Mon program est assez grand.. Mais c'est dans la partie resistance.. 

 

Sinon concernant restart une boucle ? tu pourras m'expliquer plus. J'ai pas compris comment je pourrais redemarrer une boucle apres l'avoir arrete en la mettant dans une autre boucle

0 Kudos
Message 7 of 9
(2,603 Views)

Je m'excuse pour le doublon

Michael, J'ai mis un indicateur sur i que je regardais a chaque fois sa ne reprend automatiquement de 0. 

peut etre que je me trompe.. mais j'ai essayee dans mon programme et d'autre plus simple .. sa ne reprend pas de 0

0 Kudos
Message 8 of 9
(2,603 Views)

Bonjour,

Je déterre un peu le post, mais avec le jeu des vacances, ca fait un moment que je suis pas passé par là.


Je viens de regarder ton programme, et je suis au regret de te dire que cela ne vas pas du tout.

Tu ne respectes aucun des principes de bases de labview et de la programmation, ce qui rend ton programme illlisible, et impossible à débuguer.

 

En effet, nous ne cesserons jamais de le répéter, mais il faut qu'un diagramme tienne sur un seul écran, on peut tolérer quelques dérives ponctuelles, mais en restant raisonnable (scrolling léger à l'horizontal pour rester cohérent avec le flux de données). Dans ton cas, il y a un nombre incalculable de boucle while jeter à droite à gauche sur le diagramme. Impossible de savoir dans quel ordre les boucles vont démarrer, et rien ne garanti que cet ordre soit le même entre 2 lancements de ton programme.

 

Tu ne respecte pas le flux de données. Par principe, dans le vi de haut niveau de ton programme, il n'est pas raisonnable que des boucles n'est aucun lien physique, à minima une gestion d'erreur commune. Dans ton cas, pourquoi ne fait tu pas un VI par boucle while dans ce cas là, plutôt que de charger un diagramme unique.


Il te faut mettre de l'ordre dans ton diagramme si tu veux que l'on puisse t'aider efficacement. Ici nous ne pouvons pas avoir une vision globale pour apporter une réponse claire, ce ne serait que mettre une rustine de chambre à air sur un barrage hydro-électrique ....


Bon courage à toi.

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Kudos
Message 9 of 9
(2,472 Views)