le 02-21-2013 04:01 AM
Bonjour à tous,
Je travaille actuellement sur l'acquisition en continu à l'aide de matériel NI cDAQ-9178 et d'une carte d'acquisition NI 9203 (courant en 4-20 mA)
J'arrive à acquérir et traiter les données (indicateurs, graphes, statistiques...) mais je bloque malheureusement pour la sauvegarde automatique. En effet, je souhaiterais effectuer une sauvegarde automatique quotidienne dans un tableau au format csv avec le modèle suivant:
En tête (première ligne): DATE(si possible en temps universel) / Signal X / Signal Y / Signal Z....
Lignes suivantes: Valeurs
Comment puis-je obtenir simplement ce format de sauvegarde (sans l'utilisation du Toolkit Report Generation)?
Enfin, comment effectuer une sauvegarde automatique quotidienne à 00h00 avec enregistrement toutes les 2 minutes?
D'avance merci pour vos réponses.
Bien cordialement,
Nicolas
le 02-22-2013 03:14 AM
bonjour,
tu as un VI dans E/S sur fichiers qui s'appelle Ecrire tableur qui permet d'écrire dans un tableur.
tu peux lui dire d'ajouter dans un fichier ou de l'écraser
choisir le séparateur etc....
soit toutes les 2 min tu va écrire la nouvelle acquisition ce qui en cas de plantage t'évitera de perdre une journée d'acquisition
soit tu écris dans un tableau 2D toutes les 2 min puis sauvegarde dans le fichier tableur à minuit.
pour sauvegarder à minuit tu peux mettres une condition sur la sauvegarde en jouant avec les fonctions d'horodatage
le 02-22-2013 03:45 AM
Bonjour,
Tout d'abord merci fred4255 pour ce retour.
- J'ai en effet cherché à utliser le VI Ecrire tableur et j'ai trouvé comment ajouté au fichier, transposé les données, sélectionné le séparateur... Cependant j'ai un premier problème (certainement très basic), au sujet du format de l'en tête. Je ne sais pas comment saisir une en tête prédefinie (que dois je utiliser et où dois le connecter?)
- Concernant l'acquisition, je suis 100% d'accord pour un enregistrement continu pour faire face au plantage. Cependant, c'est là mon second problème. Ccomment écrire ce code? ( quelle boucle (while, for..) ou structure (cadencé...), comment saisir les fonctions d'horodatage pour l'arrêt d'un fichier et le démarrage d'un autre à heure fixe?)
Il semblerait que ce soit pour toi un code assez simple. Si ça ne demande pas trop de temps, pourrais tu éventuellement me joindre un vi simple avec un signal simulé qui se sauvegarde toutes les 24heures dans un tableau avec une en tête modifiable? Je visualiserai mieux la solution.
Merci d'avance
le 02-22-2013 04:32 AM
Désolé mais je n'ai pas le temps de te faire un Vi!
et puis de le faire toi même te permettra d'apprendre!
Pour ton entete, tu peux à la création journalière de ton fichier, créer une première ligne avec tes entêtes.
un constante tableau 2D cablé sur l'entrée 2D avec dedans les entêtes devrait fonctionner.
pour le cadencement , tout dépend de la précision des 2min que tu recherches.
tu as les boucles cadencées, une fonction while avait un wait, ou alors un while avec une lecture de l'horodatage et une comparaison
pour la création toutes les 24h, dans ton Vi d'écriture sur le fichier tableur, tu nommes ton fichier avec la date du jour; quand tu vas basculer sur une nouvelle date, le fichier n'existera pas et donc la fonction ecrire dans tableur le créera. pour nommer ton fichier avec la date tu joues avec 'horodatage et les concaténations de chaines ainsi que les chemin de fichier
le 02-22-2013 04:41 AM
Merci pour ces informations je vais essayer.
Cordialement
Nicolas
le 02-22-2013 05:08 AM
Bonjour Nicolas,
Tu peux déjà trouver une multitude d'exemple sur notre site:
Après étant donné que ton code semble déjà commencé, n'hésite pas à nous en faire part pour des points précis où tu aurais besoin d'un conseil.
Cordialement,
Romain DUVAL || RF & Semiconductor Staff System Engineer || CLA || CTA
National Instruments France
le 02-22-2013 06:38 AM
Bonjour Romain,
Merci pour ce lien ciblé.
En m'inspirant de différents exemples je devrais pouvoir obtenir des résultats intéressants.
Cordialement,
Nicolas