le 05-23-2017 06:53 AM
Ah d'accord. La structure globale de la "condition FAUX" reprend-elle celle de la "condition VRAI" c.à.d. avec le cluster "configuration", son désassemblage, l'énum, l'indexation et le DAQ "créer une tâche" ?
le 05-23-2017 07:18 AM
le 05-23-2017 07:33 AM
D'accord mais concrètement comment câbler le VI DAQ read avec la waveform dans la "condition FAUX" ? Je n'en ai aucune idée.
le 05-23-2017 07:49 AM
Regarde les exemples de l'aide LabVIEW ainsi que ce que j'ai déjà envoyé. Les graphs et la lecture de données sont de vastes sujets. Trouve un exemple qui correspondrait à ton application et inspire t'en.
- procède par étapes
- défini bien quels sont les types de données à acquérir et ce que tu veux en faire (mesure ponctuelle ? tableau ? graph ? fréquence d'acquisition,...)
Commence à construire quelque chose et reviens nous voir par la suite pour qu'on t'aiguille. De plus, on a tous été bloqué sur les mêmes étapes que toi. De nombreux problèmes ont déjà été résolus sur le forum (si tu comprends l'anglais, le forum anglophone est encore plus complet)
Les débuts en LabVIEW commencent par beacoup de recherches
Yddet
le 05-23-2017 08:36 AM
Oui je pose beaucoup de question et je me suis rendu compte que j'avais la solution sous le nez dans ton programme. Ca fonctionne parfaitement maintenant.
Merci beaucoup !
Je vais arrêter de t'embêter maintenant. Tes conseils et astuces m'ont été d'une très grande utilité !
Je me débrouille pour peaufiner le programme mais j'ai la structure globale.
A bientôt peut-être Yddet. Encore merci pour ton aide !
le 05-30-2017 02:15 AM
Salut Yddet,
J'espère que tu vas bien. Je reviens vers toi concernant le programme que tu m'as envoyé. Je n'ai pas bien compris pourquoi créer un tableau de cluster. Sur la face avant, cela paraît un peu confus. J'ai compris ton programme globalement et j'ai réussi à en recréer un quasi-similaire. C'est vraiment le tableau qui me pose problème. Tu m'as pourtant expliqué ta démarche à suivre mais je ne l'ai pas comprise.
Et puis lorsque j'augmente le nombre de ligne du tableau dans le compteur rien ne se passe, or je pensais que ça allait peut-être augmenter le nombre de configurations possible. Je me suis creusé la tête pour trouver, j'ai manipulé le programme, j'ai essayé plusieurs choses mais je n'arrive pas à comprendre le pourquoi du comment du tableau de Clusters.
J'attends ta réponse avec impatience. Merci d'avance.
le 05-31-2017 03:21 AM
Bonjour Yddet, je te relance aujourd'hui encore. J'ai vraiment pris le temps de comprendre ton programme. Je pensais que j'arriverais à faire la lumière dessus mais des zones d'ombres persistent.
Premièrement, pour la tâche à spécifier dans la constante "Tâche par défaut", pour moi je dois la créer dans NI max mais seulement comment la créer ? On créer dedans une tâche pour chaque capteur auxquels on affecte une voie ? J'ai essayé mais au final, j'obtiens des erreurs dans l'affichage de mes courbes sur le graphe ou sinon cela m'empêche carrément de sélectionner mes paramètres directement sur la face avant ce qui est logique car les paramètres (voie physique, excitations, valeurs min et max) sont déjà directement pré-définis dans la tâche créée par NI MAX.
Deuxièmement le tableau de cluster n'enregistre aucune des configurations que j'ai testé et de plus il gêne dans la face-avant ou je n'aimerais voir apparaître qu'un cluster pour les différentes acquisitions possibles en simultannée.
Tierco je ne comprend pas à quoi va servir l'énum, quelle est son utilité ?
Enfin, pour la démarche que tu m'as expliqué qui est la suivante:
"
Comment j'ai procédé :
- je choisis quelle voie modifier dans un énum
- je change mes paramètres dans un cluster
- je valide
- mes nouveaux paramètres sont enregistrés dans un tableau de clusters qui contient les configurations de toutes les voies
- j'efface la tâche actuelle, j'en crée une nouvelle et je crée chaque voie avec ses paramètres personnalisés.
N'oublie pas de faire la gestion des erreurs sinon il y a un risque de "race condition" qui t'affichera une erreur "cette tâche existe déjà"
Et il te faut répéter cette opération pour chaque tâche de type différent (AI, DI, compteur,...). " faut-il valider la configuration pendant que l'on lance l'acquistion ou hors acquisition ? Tu m'as suggérer de répéter l'opération pour chaque tâche mais je n'en ai qu'une seule qui "tension personnalisée avec excitation": donc pour créer jusqu'à 10 acquisitions de pression en même temps, je dois créer encore 9 boucles condition et for en tâche "tension personnalisée avec excitation" auquel je dois associer à une tâche pré-définie ?
Je sais que ça fait beaucoup comme question mais j'ai vraiment besoin que tu éclaircisse ces points là. On peut parler par messagerie si tu veux.
Merci d'avance,
Bien cordialement.
Simon
le 06-02-2017 06:23 AM
Bonjour Simon,
Je réécris mon message car le forum n'a pas jugé bon de le publier ou de le sauvegarder....
- Sur la face avant, tu peux rendre invisible le tableau de clusters avec un clic droit. Mais ce n'est pas très pratique alors je préfère bouger cet indicateur en dehors du champs de vision (le "sortir" de l'écran visible).
- Tudois acquérir 10 pressions en simultané. Si ces 10 tensions sont acquises par une seule carte, tu peux créer 10 voies "tension avec excitation" dans une seule tâche. Si tu as plusieurs cartes d'acquisition alors il faut plusieurs tâches et dupliquer ce code pour chaque
- J'ai supprimé l'enum et remplacé par une simple liste déroulante qui permet d'actualiser les choix pendant l'acquisition. Le principe est le même : il faut choisir quelle voie on souhaite modifier, on change les paramètres, on valide, si on souhaite changer une autre voie, on répète ces opérations.
- Dans ce nouvel exemple, j'ai remplacé la commande "sauvegarde toutes voies" par une constante. L'indicateur encore présent ne sert qu'à la compréhension, tu peux le supprimer. Le nombre de voies est fixé par la taille de la constante de tableau de clusters. Dans ton cas, il faut remplir 10 cases pour acquérir 10 voies. Pour changer dynamiquement le nombre de voies à acquérir, c'est plus compliqué, nous verrons quand cette partie fonctionnera.
- Je crée maintenant la tâche par défaut directement dans le programme sans passer par MAX. c'est plus souple, c'est plus mieux (pour moi en tout cas ) Tu dois donc compléter le cluster avec tous les paramètres qui t'interessent
Cet exemple est plus robuste, j'espère qu'il fonctionnera nickel chez toi. Dis moi si tu as encore des zones d'ombres
Yddet
le 06-06-2017 01:25 AM
Salut Yddet,
désolé mais j'étais en week-end. Merci pour ta réponse. Je suis tes recommandations, regarde comment ça fonctionne et t'en dis des nouvelles.
A très bientôt !!!
le 06-06-2017 04:09 AM
RE-bonjour Yddet,
Je me suis penché sur ton programme. Ce que je n'arrive pas à saisir dans ce programme comme avec le précédent ce sont la succession des étapes que tu détailles dans le programme et quand ces étapes se produisent; par exemple:
"met à jour la liste des voies crées dans le menu déroulant ...": Le programme met à jour la liste des voies, tu parles des voies physiques ou des capteurs ?
Je ne comprends pas du tout la fonction "menu déroulant" d'ailleurs un message d'erreur s'affiche sur celui-ci lorsque je lance l'acquisition.
Mes tâches sont une "tension personnalisée AVEC EXCITATION". Le principe est toujours le même ? En effet j'ai plein de messages d'erreur concernant mon échelle personnalisé.
Je n'arrive pas à comprendre non plus pourquoi initialiser des paramètres car moi je souhaite gérer les paramètres pour chaque voie manuellement sur autant de cluster qu'il y a de capteurs. Je souhaiterais afficher soit toutes les courbes des capteurs sur un même graphe ou sur 10 graphes séparés.
Est ce que toute la succession des étapes que tu détailles se produisent lorsque l'on lance l'acquisition (ce que je suppose) ? Et pourquoi effacer une tâche et ses voies lors d'une acquisition alors que je souhaiterais plutôt en recueillir les données de plusieurs capteurs en même temps.
J'ai vraiment du mal à comprendre et à adapter le programme à mon application. Désolé pour le dérangement.