Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

boton stop no detiene al instante

Hola amigos del forum tengo un problema tengo varios programas que usan botones stop y play para ejecutarse el boton play funciona correctamente pero el boton no stop no para la ejecucion del programa la instante si no que espera que carguen todos los datos para detener la ejecucion

0 kudos
Mensaje 1 de 6
4.826 Vistas

Hola Afrodjeff,

 

Espero estés muy bien. Estuve revisando tu pregunta y tu código. El problema principal es de que el botón de stop se lee por el ciclo while hasta que se termina la iteración completa de dicho ciclo. Por lo que te recomiendo como una solución un poco más instantánea, implementar variables locales de lectura de tu botón de stop (dar clic secundario en el control del botón de Stop, Create/Local Variable) y colocarla dentro de tu for loop principal (el que engloba los demás foor loops). Y agregar una condición de fin de tu ciclo for principal, dando clic secundario en el marco del ciclo for, y darle en Conditional Terminal, esto va a permitir salirnos del ciclo for antes de que termine todas las iteraciones especificadas. Ya solo faltaría conectar la variable local a esta condición de fin y con eso debería de ser suficiente.

Podrías implementar lo mismo en cada uno de los fors que tienes dentro del for principal, pero solo te lo recomendaría si es que cada uno va a tomar mucho tiempo en ejecutarse, y por lo que veo el ciclo principal del for es el que más tiempo va a tardar, principalmente por el wait de 1 segundo que tiene para cada iteración.

 

Espero te sea de utilidad esta información.

 

Que tengas buen día.

 

Guillermo O.

National Instruments.

Certified-LabVIEW-Developer_rgb.jpg

Guillermo Oviedo
R&D Software Engineer
CLA | CTD
0 kudos
Mensaje 2 de 6
4.800 Vistas

Ya lo probe gracias pero quize aplicar el mismo metodo a otro VI que hace otras cosas pero no funciono de la misma forma y tambien requiero detenerlo. No se si haya alguna forma de detenerlo

0 kudos
Mensaje 3 de 6
4.788 Vistas

Hola de nuevo Afrodjeff,

 

En este VI tendrías que implementar lo mismo que te comentaba en el VI pasado, pero para cada uno de los For loops, ya que en este caso los tienes independientes, y en el pasado todos estaban dentro del for principal.

Al trabajar con variables locales, puedes crear más de una siempre y cuando las estés trabajando todas de lectura y solo una de escritura (para evitar condiciones de carrera). Por lo que en tu caso no deberías de tener problema insertando una variable local de lectura en cada uno de los ciclos for en paralelo que tienes dentro de tu estructura de casos.

 

Saludos y que tengas buen día.

 

Guillermo O.

National Instruments

Certified-LabVIEW-Developer_rgb.jpg

Guillermo Oviedo
R&D Software Engineer
CLA | CTD
0 kudos
Mensaje 4 de 6
4.783 Vistas

Bueno amigo pero al crear la variable local me dice que es incopatible con el boton stop, Yo obte por colocarle otro boton stop y ocultar el otro porque era un solo ciclo, pero si aca tengo varias condiciones como le hago si las variables locales no acepta

Descargar todos
0 kudos
Mensaje 5 de 6
4.777 Vistas

Hola de nuevo Afrodjeff,

 

Cuando utilizamos variables locales en un elemento booleano, quedamos limitados de utilizar las acciones mecánicas de latch en los controles. Para poder cambiar la acción mecánica, puedes darle clic secundario a tu control booleano, y en Mechanical Accion, cambiar por alguna de las opciones de Switch.

 

En el siguiente documento se explica el comportamiento de cada una de las acciones mecánicas disponibles:

Changing the Mechanical Action of a Boolean Object

 

Saludos

 

Guillermo O.

National Instruments

Certified-LabVIEW-Developer_rgb.jpg

Guillermo Oviedo
R&D Software Engineer
CLA | CTD
0 kudos
Mensaje 6 de 6
4.758 Vistas