LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

simultaneous video and data

I use labview 6.i on win nt to get video (by ie 1394 ccd camera)
and data (pci card (4350) with tbx 68T).
During my experiment (20 min) I get video first (20 min)
and then 20 min data (temperature, pression).
I don't sucess to synchronize together.
My first NI contact was use RTSI instruction,
I read some information but it seems not easy.
First, I try to make two programs in one (2 while conditions)
one video and one data.
My second way is make 2 different programs, in all
case, I don't get simultaneous acquisition.

thank

titim

ps : they are no special data exchange
between my daq and video
0 Kudos
Message 1 of 8
(3,413 Views)
I forget, I make a .avi movie
my camera have 1.75 frame per second,
but I take a picture all 2 second
0 Kudos
Message 2 of 8
(3,405 Views)
0 Kudos
Message 3 of 8
(3,400 Views)
J'ai pas eu le temp de tout analyser mais est ce que t'as vu que dans la condition "Faire acquisition et sauvegarde" --> Vrai --> vrai --> faux : tu as une séquence qui n'est relié à rien ?
Je travaille sous labview 7.1 et je n'ai pas installer les modules visions. Est ce que tu peux faire une librairie de ton VI (enregistrer avec option, cocher l'option inclure les VI repertoire vi.lib) ? Normalement avec cette méthode tu crées une lib qui contient les VI imaq que j'ai pas .
Voila je regarde ça plus en détail demain
0 Kudos
Message 4 of 8
(3,394 Views)
ben voila la biblio avec tous les vi,
les conditions vrai faux sont présentes
pour la création d'un répertoire journalier.
La première aquisition ne sert qu'à créer le répertoire
avec la date du jour. Quand au dernier cas vrai vrai vrai vrai
c'est la que ce situe la double aquisition
la biblio est jointe.
0 Kudos
Message 5 of 8
(3,376 Views)
Dans ton processus d'acquisition tu utilises 2 boucles distinctes, une qui permet d'enregistrer une video et l'autre qui permet d'enregistrer les températures.
Ces deux boucles ne possèdent aucune synchro entre elles. Si la première boucle se fait en 25ms et la deuxième en 40ms tu obtiens très rapidement un décallage entre ta température et ta video.
Pour synchroniser les 2 tu peux utiliser, les outils de synchronisation fourni par labview (dans la partie diagramme, palette d'outil, avancé --> synchronisation )
ça fait longtemps que j'ai pas fais de labview 6.1 du coup je sais pas si ces options existent. Si ça n'existe pas, fusionne tes 2 boucles
(la synchronisation est meuilleur mais il existe encore un décallage).
Pour t'assurer ensuite une bonne synchro:
-soit tu utilises une struct séquence de deux cases. Dans la première tu places les blocs d'acquistions (AI WAVE et IMAQ1394 GRAB ACQUI) et
dans la deuxième tous le reste. (cela t'obliges à tout décabler et recabler)
-Soit tu places juste avant tes blocs d'acquistion (AI WAVE et IMAQ1394 GRAB ACQUI) une boucle while cablée sur une constante qui l'oblige à
s'arrêter du premier coup. Tu fais passer dans cette boucle les cables qui vont sur tes blocs d'acquistions.
(qu'est ce qui se passe dans cette méthode ? Une boucle ne s'execute que quand les cables qui y rentrent sont renseignés.(Voila la synchro).
Ensuite le cablage sur une condition vrai permet de ne pas rester bloqué)

Ces 2 techniques ne sont pas optimales mais elles peuvent peut être t'aider un peu. (a moins que j'ai rien compris à ta question)
Je te joins un VI, malheureusement comme je travaille sous labview 7.1, je ne peux enregistrer que sous format 7.0. Si une bonne ame pouvait convertir ce VI au format 6.1 se serait sympa.
Message 6 of 8
(3,372 Views)
bigre y'a de l'idée !!!!
j'ai réussi à l'ouvrir avec une version étudiante
je vais essayer de ce pas
merci
0 Kudos
Message 7 of 8
(3,367 Views)
Bonjour tout le monde,

Vous voulez avoir une exécution synchrone de deux boucles.
Votre problème provient plutôt du fait que vous ayez mis une connexion entre les deux boucles While.
Le but, d'après ce que j'ai compris, c'est qu'avec un seul booléen STOP pouvoir arrêter les deux boucles qui elles s'exécutent en même temps.
Vous avez alors connecté le STOP pour arrêter l'autre boucle.
La programmation LV est une programmation par flux de données, c'est à dire qu'une fonction ne s'exécutera que si elle a toutes les entrées disponibles. Cette définition s'applique également aux boucles.
Ce qui va se passer alors lors de l'exécution : La première boucle va s'exécuter, vous allez cliquer sur STOP pour arrêter l'exécution de la première boucle et c'est à ce moment là où votre deuxième boucle s'exécutera.
Ci-joint un VI en version 6.1 résumant le problème rencontré.

Pour résoudre le problème, la solution serait de créer une variable locale du STOP et de la connecter à la deuxième boucle.
Cf. Fichier joint.

J'espère que ma réponse vous aidera à avancer dans votre projet.
Cordialement,

Sanaa TAZI
National Instruments France

Sanaa T.
National Instruments France

0 Kudos
Message 8 of 8
(3,296 Views)