Discusiones sobre Productos NI

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

Cambio de estado de una variable cada vez que entre en un "Case Structure"

¡Resuelto!
Ir a solución

Hola a todos, quisiera tener una variable, por ejemplo un led que cambie de estado cada vez que se activa un Case Structure. He hecho lo que podéis ver en el archvivo adjunto y funciona, pero si el cambio se hace meidante un pulso, pero si esta parte de código la introduzco en un Case el led parpadea o no funciona de igual forma que en el caso anterior.

 

Lo que necesito en definitiva, es que cada vez que se sea "true" un Case Structure cambie de estado el led. Decir que este "true" dura solo una fracción de segundo.

 

Cuanquier sugerencia es bienvenida.

 

Gracias y que pasen un buen día

0 kudos
Mensaje 1 de 15
9.171 Vistas

que tal framirez,

 

No estoy muy seguro que es lo que necesitas, pero te subo un ejemplo donde dependiendo el caso en tu CASE te manda a prender o apagar un led!!

 

Revisalo y si tienes dudas estoy a tus ordenes.

 

Saudos,

 

boleano.png

Luis Elias
NI VeriStand and HIL Product Manager
0 kudos
Mensaje 2 de 15
9.169 Vistas

Gracias Luis Elías por tu respuesta. He intentado hacer lo que me has dicho pero no he obtenido resultado, quizás sea que me falta saber lo que poner que ocurre en "True" ya que no puedo verlo en la imagen. (Adjunto está lo que he intentado hacer).

 

Por otro lado decierte que lo que intento hacer es lo siguiente: cada que que entre este case structura cambie el estado del led, es decir la primera vez se enciende, la segunda lo apaga, la tercera lo vuelve a encender, etc (creo que esto se llama toggle).

 

De nuevo gracias por vuestro interés.

0 kudos
Mensaje 3 de 15
9.165 Vistas

Hola!

 

Te paso una imagen de lo que quieres hacer (bucle superior).

 

He añadido como se haría para que simplemente cambie de color debajo del bucle, por si se ajusta mejor a lo que quieres.

 

Un saludo,

Applications Engineer - Certified LabVIEW Developer & Certified TestStand Developer
0 kudos
Mensaje 4 de 15
9.158 Vistas

Por cierto, acabo de ver que querías que fuera con un case structure, así que te paso otra imagen.

 

En el caso True todo es igual, excepto que la constante es False.

 

Un saludo,

 

Applications Engineer - Certified LabVIEW Developer & Certified TestStand Developer
0 kudos
Mensaje 5 de 15
9.154 Vistas

que tal framirez, no había etnendido que era lo que estabas buscando, pero como mi compañero te contestó solo debías almacenar el valor del control para después negarlo.

 

saludos,

Luis Elias
NI VeriStand and HIL Product Manager
0 kudos
Mensaje 6 de 15
9.153 Vistas

Gracais a todos por vuestras respuestas. La verdad es que he aprendido algo más con los ejemplos que me habéis proporcionado, pero en realidad no es eso exactamente lo que deseo realizar. Intentaré esta vez explicarme un poco mejor:

 

Tengo un Case Structure, el cual en algún momento del proceso un "1" entra durante un perido corto de tiempo para realizar todas las funciones que están en su "True" ( es decir una especie de pulso), lo que deseo hacer es que cada vez que obtenga este pulso un led (que está dentro del "True") cambie de estado. Inicialmente está apagado, la primera vez que este Case reciba el pulso, se encenderá, la segunda vez lo apagará, la tercera lo volverá a enceder y así sucesivamente.

 

Espero haberlo explicado esta vez un poco mejor, en caso contrario, subiré todo el ejemplo (con lo que deseo realizar) para poder ver lo que deseo hacer (No subo todo el ejemplo ahora ya que quizás sería un poco más complicado explicar todo el proceso que realiza)

 

De nuevo gracias a todos por vuestro interés.

 

0 kudos
Mensaje 7 de 15
9.143 Vistas

Hola!

 

Mira si ahora te sirve. En el caso del false, simplemente pasa el hilo del led directamente de un extremo a otro. En el ejemplo que he hecho, la entrada del case es un botón que tiene configurado el mechanical action como "latch when released", para que una vez leído el valor cuando pulsas solo entre una vez en el bucle (que es lo que entiendo que quieres).

 

Un saludo, ya me contarás si te sirve.

Applications Engineer - Certified LabVIEW Developer & Certified TestStand Developer
0 kudos
Mensaje 8 de 15
9.139 Vistas

Que onda!!

 

Tengo otra posible solución que te puede ayudar.

 

En este código siempre que entres al caso 1 cambiará de estado el led.

 

Si solo tienes true y false cuando estes en true cambiará y en false no.

 

ForoImage.jpg

Luis Elias
NI VeriStand and HIL Product Manager
0 kudos
Mensaje 9 de 15
9.124 Vistas

Buenos días a todos, en primer lugar os doy las gracias por el interés que estáis mostrando. Los ejemplos son buenos pero no se adapta a lo que quiero realizar, por lo tanto voy a exponer el ejemplo concreto que deseo, explicado brevemente el proceso.

 

Se trata de 5 depósitos que se deben de vaciar en un sexto que los mezcla, pero con la peculiaridad que solo existe un caudalímetro (este caudalímetro se simula en el ejemplo con un control de entrada llamado “Caudal de entrada (l/min)” y para que se vea bien debemos poner un valor de “1”). Al existir un único caudalímetro, se deben de vaciar estos cinco depósitos de uno en uno al sexto que es un mezclador.

 

El valor que se verterá de cada uno de los depósitos se escogen de un desplegable (ring) llamado “Selector”, así por ejemplo si se escoge “0-0-50-0-50”, significa lo siguiente:

 

Volumen a verter del depósito 1 = 0

Volumen a verter del depósito 2 = 0

Volumen a verter del depósito 3 = 50

Volumen a verter del depósito 4 = 0

Volumen a verter del depósito 5 = 50

 

Por otro lado cuando en el depósito donde se realza la mezcla, la batidora deberá comenzar a funcionar cuando termine de verterse el primer producto, en este caso en concreto, la batidora comenzará a funcionar cuando termine de vaciar los 50 litros del depósito 3. El fin del batido será cuando termine de verter todos los depósitos (algunos con valor cero) más un tiempo que el usuario introduce en un control de entrada llamado “T batido”.

 

Hasta aquí todo funciona, pero si se hace primero una mezcla  “0-0-50-0-50” con un “T batido” por ejemplo de 2 segundos (para que sea  corta la espera), y una vez finalizada esta mezcla realizamos otra “0-0-50-50-50”, funciona simultáneamente el motor del depósito 3 y 4, ya que por no se que motivo no se reinicia las variables.

 

Esto se puede subsanar si una vez que ha terminado el primer proceso es decir una mezcla “0-0-50-0-50”, cuando acaba el batido (último case structure), el selector (ring) se pone a cero, por lo tanto una vez que ha acabado si vuelvo a pulsar “inicio de proceso”, todas las variables se quedan a cero y ya si la siguiente mezcla es “0-0-50-50-50”, funciona correctamente.

 

Por lo tanto lo que deseo es que una vez realizada la primera pasada (0-0-50-0-50), al acabar el tiempo de batido realice de forma automática una segunda pasada con valores cero, subsanado  de esta forma el problema. De aquí el querer hacer el ejemplo original, y poner una variable (el led que cambia de estado cada vez que entra en él) en el último “case structure” y este valor lo pondré con una puerta “or” con la variable “inicio de proceso”

Si creéis que puede existir otra forma de hacerlo me lo comunicáis.

 

De nuevo mil gracias por todo el interés que estáis mostrando.

Que pasen un buen día.

 

 

0 kudos
Mensaje 10 de 15
9.116 Vistas