el 06-20-2007 01:13 PM
el 06-20-2007 05:02 PM
Hola Fercho 8:
Gracias por utilizar los foros de National Instruments.
Puedes programar secuencias mediante las estructuras Flat Sequence Structure o Stacked Sequence Structure. Dichas estructuras obligan a que el código se ejecute en forma de secuencia una parte después de la otra y no al mismo tiempo. Otra forma de llevar un orden en la programación es utilizar la estructura de la máquina de estados la cual es secuencial, pero al mismo tiempo permite el regresar a otros estados mediante decisiones booleanas. Te anexo algunos ejemplos que espero te sean de ayuda, de igual manera puedes buscar ejemplos en el Example Finder de la ayuda de LabVIEW.
Que tengas un excelente día y estamos en contacto.
Carlos Pazos
AE
NI México
el 06-20-2007 05:07 PM
Podrías utilizar un "Flat sequence structure" ó un "Stacked sequence structure" pára realizar el proceso en serie que tu requieres. Te adjunto una gráfica y espero te ayude.
JC
el 06-22-2007 03:27 PM
el 06-22-2007 03:48 PM
Hola Fercho 8:
Te anexo los archivos para LV8.0.
Saludos.
Carlos Pazos
AE
NI Mexico
06-25-2007 01:10 PM - editado 06-25-2007 01:10 PM
Mensaje editado por sebapostigo
el 06-26-2007 02:31 AM
Bueno, para responderte hay que considerar uno de los paradígmas de LabVIEW: cada VI, cada icono en tu programa podrá ser ejecutado en cuanto tenga todos los señales listos a sus ingresos. Si esta condición es realizada, el VI puede ser ejecutado en cualquier momento, independentemente del estado del proceso y de lo que pasa en otros VI en el mismo esquema (y por la ley de Murphy, puedo garantizar que efectivamente será ejecutado en el peor momento posible!
).
Para evitar esto, LV te proporciona las sequencias que garantizan que los VI puestos en un frame vengan ejecutados antes de los que están en frames posteriores. Todo esto tiene obviamente un coste, y es la rigidez de las estructuras que no te permiten omitir la ejecución de ciertos frames ni tampoco regresar a frames anteriores.
Ahora, si bien la ejecución paralela puede resultar una novedad tremenda y hasta peligrosa para los que estamos acostumbrados a lenguajes de texto, este mismo paradígma puede ser transformado en una válida opción para tu aplicación, basta con considerar que un VI NO viene ejecutado hasta que TODOS sus ingresos contengan datos válidos. Es este sentido, si tú puedes trazar un hilo que conecta una de las salidas de un VI al ingreso de otro, estarás seguro que el segundo no será ejecutado hasta que el primero termine su ejecución aunque otros ingresos del segundo ya tengan listos sus datos.
Todo esto puede aplicarse de manera muy simple en procesos de adquisición de mediciones u de comunicación con dispositivos externos mediante VISA, puesto que todos estos vi tienen los terminales error in / error out y muchos tienen un resource reference in / out: si conectas en serie estos vi estarás seguro que, por ejemplo, la adquisición de las mediciones no viene ejecutada hasta que el task sea corectamente configurado. Este procedimiento es masivamente aplicado en todos los ejemplos de DAQ y VISA presentes en LV: te sugiero que los examines mirando en especial modo este esquema.
el 10-02-2007 06:31 PM
el 10-02-2007 06:32 PM
el 10-03-2007 08:36 AM