Discussions au sujet de NI LabVIEW

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

connecter deux types différents

Résolu !
Accéder à la solution

J'ai beau changer la valeur de consigne jusqu'à 10% cela ne change rien car de base mon moteur est trés précis et donc même les 1% sont élevé pour lui il à une meilleur précision encore d'ailleurs lorsque je demande au moteur de se placer à 98mm il est soit à 98mm soit a 98.0001mm, le fait est que le programme ne fait pas tout le tableau est s'arrête à la ligne de tableau numéro 1 et je ne comprend pas pourquoi 

0 Compliments
Message 21 sur 32
2 100 Visites

Tu sors ou pas de la boucle "while" ? que donne les valeurs de position dans cet boucle.
Il faut que tu comprennes pourquoi ca ne sors pas de cette boucle.


C'est à dire, pourquoi la position du moteur n'arrive jamais dans la gamme de position tolérée.

 

EDIT : Fait un screen de la boucle while en mode pas à pas avec les valeurs sur les cables.

“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 Compliments
Message 22 sur 32
2 094 Visites

La consigne n'est pas le problème , la 1 ère position s'efectue met la boucle while ou se trouve la lecture de position n'arrete pas de s'executer indefiniment sans jamais en sortir et ça je ne comprend pas pourquoi. C'est seulement la partie du programme de la boucle while ( celle que j'ai mis en screen) qui n'arrête pas de s'effectuer sans s'arreter, elle arrive dans la position toléré mais seulement pour la 1ère et vue qu'elle ne sort pas de la boucle while elle ne peut pas se rendre à la deuxième 

Tout télécharger
0 Compliments
Message 23 sur 32
2 091 Visites

Regarde tes screeens, les valeurs min & max en entrées de la fonction "dans la gamme?" ne te choque  pas????

 

Tu sors pas de al boucle while car même si la position est bonne ton intervalle de validité lui ne va pas.*

 

Tu rentres comme borne de validité MAX = 1 et min = 0.99, au lien d'avoir quelque chose du genre MAX = Consigne *1,01 et MIN = CONSIGNE * 0.99

“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 Compliments
Message 24 sur 32
2 081 Visites

Je l'avais vue et c'est pourquoi dans mon programme acteul j'ai carrement supprimé la partie consigne ce qui n'empeche pas a la boucle while de tourner indéfiniment , la preuve et que les registres à décalage ont toujours une luminosité faible 

Tout télécharger
0 Compliments
Message 25 sur 32
2 075 Visites

Je t'ai aidé, mais il serait bon de commencer à réellement réfléchir.


Test tests n'ont aucun sens, puisque forcément que ta boucle sera en infini si tu cables l'arrêt que sur uen erreur de remonter d'information moteur. Smiley frustré

 

Tu n'as clairement pas compris le principe de la boucle while, et de ce côté là, je ne peux plus rien pour toi.

 

JE tente uen dernière fois de t'explique rle principe, passer cela, je laisse quelqu'un d'autre trouver les mots justes.

 

Voici un schéma synoptique de tes étapes (que tu es censé maitriser à ce stade)

Boucle FOR

1) J'envoies ma consigne de position au moteur

2) Boucle while

2a - Je remonte la position du verrin

2b - Je vérifie cette position par rapport à un intervalle de validité

2c - Si c'est dans la gamme je sors dde la boucle, sinon je poursuit

3)Je passe à l'itération suivante de ma boucle FOR.


Bon courage à toi, et je t'invite vivement à te poser 5 minutes et à comprendre le but et les fonctionnaltiés de ton programme, n'hésides pas à affichier la fenetre d'aide contextuel, et à lire la documentation de chaque fonction, et si besoin les exemples associés.

 

 

“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 26 sur 32
2 069 Visites

Je comprend le fonctionnement de la boucle while, je l'ai utilisé dans tous mon programme,  c'est juste que j'ai mal formulé ma requête.

JE ne comprend pas pourquoi le formule entré dans mon noeud d'expression ne prend pas en compte l'entré que je lui fournis car à cause de ça la game qui est sensé faire tourner la boucle while et être une condition d'arret de cette boucle ne se fait pas 

Le noeud d'expression ne prend pas en compte ma valeur de tableau 98 et n'effectue donc pas mon calcul

0 Compliments
Message 27 sur 32
2 066 Visites

Met un "." comme spérateur décimale dans le noeud d'expression, et ton calcul de borne se fera correctement.


par contre, j'ai beacoup de mal à voir la relation entre ta consigne de 98 et ta  position demoteur à 3,95E+5

“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 Compliments
Message 28 sur 32
2 061 Visites

J'ai compris d'où  venais l'erreur elle venait de la séparation "." et du fait du "3,95E+5" qui en fait signifier que le get position lisait non pas la position en mm mais en microstep et donc il n'aurait jamais pu s'accorder avec la gamme 

0 Compliments
Message 29 sur 32
2 053 Visites

Bon ben tant mieux si ca marche.


Bonne continuation.

“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 Compliments
Message 30 sur 32
2 050 Visites