le 05-23-2009 11:26 AM
Bonjour, Je heurte à un problème que je n’arrive pas à résoudre. Je voudrai afficher une mesure en modifiant la fréquence d'acquisition via une commande. Je m'explique : la commande doit me permettre de m'afficher 1 point tous les secondes jusqu'à 10 secondes sur un graphe qui conserve 60 dernières valeurs. J'ai essayé avec le VI que je vous mets à votre disposition via les nœuds de propriétés mais cela ne fonctionne pas. Par ailleurs, est ce que gérer cela avec une boucle cadencé variable est fiable? Merci d'avance de l'aide que vous pourriez m'apporter! |
Résolu ! Accéder à la solution.
le 05-25-2009 01:00 AM
Salut,
Ton problème peut se résoudre simplement. Fais une acquisition à fréquence fixe (le plus grand multiple commun de toutes tes fréquences possibles), et supprime des points par programmation. En gros, fais une acquisition à 1Hz dans ton cas, et par programmation, supprime 2 points sur 3 si tuveux une période de 3Hz.
Tu peux aussi utiliser un timing soft (boucle cadencée ou autre). Vu que tes acquisitions se font à des fréquences très lentes, ça ne pose pas de soucis.
Quoi qu'il en soit, je ne pense pas que tu puisses modifier à la volée la fréquence d'une tâche DAQmx qui est déjà en cours d'utilisation.
Bonne continuation.
le 05-25-2009 02:35 AM
Bonjour,
Tout comme l'a proposé Mathieu Steiner, il est conseillé de sur-échanillonner les mesures pour se rapprocher au plus prèt de la la fréquence voulue. Il existe des modules de décimation continue, unique ou de tableau 1D (voir imprim. écran joint). Vous devriez trouver ce dont vous avez besoin avec la décimation en continue.
le 05-25-2009 02:38 AM
Bonjour et merci pour votre réponse.
Je ne suis pas sur d'avoir bien compris pour les valeurs des paramètres. J'ai déjà des difficultés à maîtriser les notions de bases (rate = vitesse, samples per channel = échantillons par voies et sample mode = nombre d'échantillons) Pourriez vous metttre à ma disposition un VI afin de facilité la compréhension.
Cordialement.
le 05-25-2009 03:12 AM
Bonjour,
Pour les notions de bas :
le 05-25-2009 09:47 AM
Bonjour,
Merci d'avoir répondu à mon problème. Votre réponse est vraiment pertinence, cela m'a permis de me rafraichir la mémoire.
Je souhaite d'acquérir un échantillon (point de mesure) tous les secondes jusqu'à 10 secondes. Pour le cas d'une seconde, je déduit que la fréquence d'acquisition est de 1Hz et de 0.1Hz pour 10 secondes.
Cordialement
le 05-25-2009 10:20 AM
Bonjour,
Donc le principe de la décimation serait d'acquérir de manière fixe les données puis de prendre un point sur X pour obtenir une periode d'acquisition différente.
Supposons que Fe soit 1Hz, que le nombre d'échantillons soit de 10 dans le cas où vous voulez :
Pour pallier au dernier souci il faut prendre un Fe plus grand, par exemple avec Fe = 100Hz et le nombre de points à 1000 :
Le VI joint pourrait vous être utile.
le 05-25-2009 10:24 AM
Bonjour,
Une solution est de faire l'acquisition à une fréquence de 1Hz et de faire un petit algorithme afin de sélectionner les échantillons voulus( tous pour 1 point toute les secondes, 1 sur 10 pour un point toute les 10 secondes) et limités le nombre d'échantillons à 60.
Voici un petit Vi d'exemple.
Cordialement
Yann C.
France
le 05-27-2009 10:26 AM
Bonjour,
Merci beaucoup pour votre contribution et votre rapidité à tous les deux.
Vous proposez deux bonne méthodes que je conserve dans mes archives.
Par ailleurs, j'ai utilisé la méthode de YannC pour simplifier mon code car j'ai plusieurs courbes à afficher. Mais j'ai un petit souci d'incompatibilité quand j'envoie sur le registre à décalage.
Je vous le mets en pièce jointe.
Merci d'avance pour votre aide.
05-27-2009 10:34 AM - modifié 05-27-2009 10:35 AM
Salut,
Clique droit sur la primitive "Array to cluster" puis sélectionne "Cluster size..."
Il faut qu'elle matche la taille de 10 que tu as défini dans ta constante avant la boucle.
Plus de fil brisé après ça
A+