Discusiones sobre Productos NI

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

Problema al colocar un ciclo CASE dentro de un ciclo WHILE

  Hola buen día, antes que nada quiero informar que soy bastante nuevo en el ambiente de LABVIEW y bueno mi problema es el siguiente: tengo un VI donde mando señales por medio de USB a una tarjeta Phidget 1012 (esto ya funciona) pero necesito hacer de alguna manera un selector que me permita activar una salida determinada, por ejemplo que selecciona la salida 5 y solo active esa salida, en mi VI si selecciono la salida 5 enciende también las anteriores (la 0,1, 2, 3 y 4). Trate de hacerlo con un CICLO CASE dentro del ciclo WHILE que tengo pero me marca el error The Case structure must have a Boolean, numeric or enumerated input wired to its selector terminal (the '?'). y no se que hacer.

 

  Además también tengo otra VI donde leo las entradas( también ya funciona) pero en este caso necesito saber automáticamente (por así decirlo) que entrada fue activada y no preguntarle al VI (que es como lo tengo actualmente) para de este manera determinar en base al numero de entrada activada el proceso que debe realizar la VI y gráfica el comportamiento de dicha entrada.

 

  Espero puedan ayudarme, saludos.

 

Anexo los VI´s que tengo.

 

 

Descargar todos
0 kudos
Mensaje 1 de 4
3.715 Vistas

Hola Hector, el problema que te esta marcando el case es porque no estas conectando nada a la terminal de Selección. La terminal de selección es la que tiene un signo de interrogación en la estructura Case. En base a la entrada que tenga aquí determina que caso se va a ejecutar.

Ahora el que tan fácil es detectar que línea cambio en tu programa depende de los métodos que te de el driver de tu dispositivo, si este no te esta dando uno con detección de cambio no lo vas a poder hacer en forma automática.

Una opción es que coloques varios nodos y leas el estado de todas las entradas y ya en el programa de LabVIEW compares el estado actual de la entrada con el anterior y de esta forma podrás ver si un cambio ocurrió en la entrada. Para ver el estado anterior lo que puedes utilizar son los Shift register, para crear estos solo dale click en la orilla de ciclo y dale Create shift register, con estos lo que tu cables a la salida lo vez en el siguiente ciclo.

 

 Para empezar a trabajar con LabVIEW te recomiendo mucho este curso de 6 Horas en Español:

    National Instruments México - Guía de Aprendizaje "LabVIEW en 6 Horas" 

También como recomendación general para mejorar la legibilidad de tu código siempre cable de izquierda a derecha, evita cables que corran en dirección contraria aunque crezca un poco mas tu Vi en alguna dirección. Aun así lo ideal es que tu VI entre en una sola pantalla.  Para ayudarte a esto puedes crear subVIS, eso se discute un poco en  la guía.

 

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 2 de 4
3.694 Vistas

 Muchas gracias Benjamin por tu pronta respuesta, estudiare el manual que me recomendaste, saludos...

0 kudos
Mensaje 3 de 4
3.690 Vistas

 Hola buen día Benjamín, disculpa que te moleste nuevamente, lo que pasa es que necesito gráficar las señales que ingresen en las entradas de la tarjeta que estoy utilizando en mi VI pero esta solo me entrega valores boléanos y no me la acepta la herramientas de gráficos, trate de cambiar las características de la entrada de la tarjeta pero no me da mas opción que tipo booleano, a grandes rasgos las señales que se le ingresaran a la tarjeta es una señal cuadrada TTL que provienen de un encoder Heidenhain en total son 6 señales las cuales debo comparar ya sea en gráficos independientes o en uno solo, el objetivo simplemente en gráficarlas, o si me podrías orientas como tratar ese tipo de señales, si es posible convertirlas o que puedo hacer, de antemano gracias. Saludos ...


Hectorower escribió:

 Muchas gracias Benjamín por tu pronta respuesta, estudiare el manual que me recomendaste, saludos...


 

0 kudos
Mensaje 4 de 4
3.676 Vistas