Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

comment ajouter Pause dans un timer

Bonjour,

 

J'ai trouvé une librairie de ''Multiple Independent Timers" sur le site de NI. C'est un VI non réentrant, on change le numéro de timer et on peut reset ou auto initialiser facilement sans influencer les auters timers et ça marche vraiment bien.

 

Maintenant, j'aimerais bien adapter ce programme en ajoutant un bouton ''pause'' et j'ai réussi à faire l'adaptaion mais ça ne marche pas pour tous les timers. S'il n'y a qu'un seul, ça marche très bien, mais s'il y a plusieurs, c'est l'enfer, le code ne marche pas du tout. 

 

J'ai trouvé pourquoi ça ne marche pas, mais j'ai pas vraiment des solutions.

 

Pourriez-vous jeter un coup d'oeil sur le code et me donner des conseils?

 

Merci d'avance.

 

Lily

 

 

0 Compliments
Message 1 sur 7
3 687 Visites

Un petit tour ici devrait vous aider 😉

 

Cdt,

Eric

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

0 Compliments
Message 2 sur 7
3 673 Visites

Je crois bien avoir zappé une partie de l'énoncé (multiple timers) !

 

En réalité, le fait d'avoir un controle sur le timer pose un problème car la non-réentrance du VI fait qu'on va imposer la pause à tous les timers (dans la façon dont c'est actuellement implémenté notamment à cause des noeuds de rétroaction pour voir un front montant/descendant). Repartir sur le code de mon précédent poste, avec l'idée d'un tableau (pour multiple timers) est plus viable à mon sens.

 

J'espère que c'est clair >_<

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

Message 3 sur 7
3 652 Visites

Bonjour Eric,

 

Merci d'avoir regardé mon code. Vous avez très bien expliqué le problème.

 

J'ai la solution maintenant, sans utiliser le flanc montant et le flanc descendant, non plus noeud de rétroaction, bien sûr.

 

C'est un collègue(Thank you Subir if you can see this message) qui m'a aidé de refaire le code mais toujours à la base de non réentrant. ça a pris un peu de temps, mais on s'est très bien amusé, ce genre de code est vraiment intéressant.Smiley très heureux

 

Votre poste précédent est intéressant aussi, je vais les regarder après.

 

Vous travaillez comment pour faire un code de timer dans une séquence d'automatisme? Par exemple, reset, pause, start pour une application qui utlisenet beaucoup de timers?

Je maîtrise pas bien, et je cherche toujous une solution idéale.

 

Merci d'avance.

 

Lily

 

0 Compliments
Message 4 sur 7
3 645 Visites

Hello Lily,

 

A propos de l'utilisation des pauses, elles ne sont pas si fréquentes que ça. En réalité, la plupart des besoins d'un état de pause est pour traiter une action utilisateur (qui arriverait donc à n'importe quel moment par exemple suite à un appui sur un booléen, et pas après un temps défini).

 

Dans la plupart des "cas d'école" où l'on souhaite se rapprocher de l'algorithmique de l'automatisme, on utilise des machines à états, en conjugaison avec quelques timers (souvent 1 suffit!) simples pour mesurer le temps écoulé avant de passer à l'état suivant, sans bloquer l'exécution d'autres portions de code.

 

Niveau ressource si vous n'êtes pas forcément utilisateur/trice de machine à états, je ne saurai que trop vous encourager à aller faire une petite recherche (genre, mots-clé "machine" + "état" + "automate") ou étudier les projets-modèles (ou autre modèle de conception dans le menu Fichier->Nouveau) de machine à états pour constater leur puissance et leur simplicité pour la mise en oeuvre.

 

Cdt,

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

0 Compliments
Message 5 sur 7
3 641 Visites

Bonjour Eric,

 

J'utilise les machines à états pour un projet d'automatisme. Mais si ce n'est pas le ''cas d'école", vous travaillez comment?

 

Vous dites 1 timer est suffisant, parce que vous utilise ce code en réentrant, je suppose.

 

Bien à vous.

 

Lily

0 Compliments
Message 6 sur 7
3 627 Visites

Salut Lily ,

 

Je t'ai fais un exemple rapide est très simple au niveau du fonctionnement.

 

a+

 

 

0 Compliments
Message 7 sur 7
3 612 Visites