LabView - contador en labview

 
Vista:

contador en labview

Publicado por Pedro (6 intervenciones) el 17/05/2007 11:58:20
Me gustaría poner un contador en labview que incrementase su valor en una unidad cada vez que se active una salida. Sólo quiero que se incremente una unidad cada vez que la salida se active.
Por ejemplo, un contador que me indique las veces que se ha pulsado un botón (y que funcione bien cuando el botón se pulse de forma prolongada, sólo incrementando una unidad).
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:contador en labview

Publicado por cristian (2 intervenciones) el 17/05/2007 16:28:15
me parece q deberias crear una variable local si la necisitas solo para ese proceso y una general si la necesitas en todo el programa y luego en el diagrama de bloques all functions, numeric , hay una funcion q esta encerrada en un triangulo con un +1 que dice increment
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Pedro (6 intervenciones) el 17/05/2007 16:45:30
Eso he probado, pero se incrementa en una unidad el valor y no sé cómo volver a asignarle el valor ya incrementado a la variable. Quiero decir, que si el contador vale uno y lo incremento, pasa a valer 2 pero se lo tengo que asignar a otra variable. No sé cómo hacer que sea el valor de la variable la que se modifique con una unidad más.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Vicente (103 intervenciones) el 17/05/2007 17:43:13
A ver... tienes una salida booleana y si no me equivoco, quieres que cuando pase a true se incremente un contador, no?
Abrete una estructura case y conecta el terminal de la interrogación a tu salida booleana. Seleciona el caso true, vete al panel frontal y crea un control numérico, que sea un control, que un indicador no vale. Vete al diagrama de bloques y clicka con el secundario sobre el control creado, seleciona create y despues local variable. Como ves, ahora tienes un control numerico y un indicador de mismo nombre. Arrastra el indicador hasta colocarlo dentro del caso true y el control numerico dejaló fuera del case. Conecta el control a la estructura case (creando un tunel). En la opción true del case conecta el tunel creado a un increment (está en la libreria Numeric) y la salida del increment al indicador.

De este modo lo que consigues referenciar tu variable mediante el control y actualizarla mediante el indicador.

SUERTE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Pedro (6 intervenciones) el 17/05/2007 18:18:20
Hola Vicente. Eso es lo que había intentado yo, pero se ve que el case se ejecuta en bucle infinito mientras la salida booleana está activada, por lo que en vez de incrementar en una unidad el contador cuando la salida se activa empieza a incrementarlo todo el rato, puesto que la salida sigue a true. El contador se incrementa sin parar mientras la salida está activada.
Me gustaría que sólo se incrementase cuando haya un flanco de subida en la salida booleana, o algo similar.
Gracias y hasta luego.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Vicente (103 intervenciones) el 17/05/2007 19:30:14
Entonces el problema no lo tienes con el contador sino con la señal booleana que esta siempre a true. El Case no puede caer un bucle infinito, si se ejecuta es porque hay un true a la entrada. ¿No será que el disparo se generando esta a esa velocidad?¿como generas la señal booeleana?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Pedro (6 intervenciones) el 17/05/2007 19:42:13
Muchas gracias por la ayuda Vicente. Te lo explico mejor a ver si me puedes ayudar.
Estoy trabajando en un SCADA y quiero contabilizar las piezas que va produciendo la máquina, y las piezas defectuosas...
Entonces lo que hago es leer una salida del autómata, que me indica por ejemplo que la pieza es defectuosa. Esa salida del autómata se pone a '1' cuando una pieza está mal, y se mantiene unos segundos a '1'. Lo que yo quiero conseguir es que cuando esa salida pase a valer '1' el contador se incremente en una unidad, pero al utilizar un case, lo que hace es incrementar el valor a toda velocidad mientras la salida se encuentra activada. A mí sólo me interesa ver cuándo la salida ha pasado de valer '0' a valer '1', para incrementar el contador en una unidad. La próxima vez que se active la salida que me indica que una pieza es defectuosa querría que el contador se volviese a incrementar en otra unidad... y así sucesivamente.
Ahora lo que me pasa es que como la señal está activada unos segundos el contador se incrementa sin parar mientras la señal está activada, y no solamente una vez como yo quiero.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Vicente (103 intervenciones) el 17/05/2007 21:43:37
¿Sabes el tiempo exacto que el automata mantiene el 1 a la salida? porque si es así, es tan facil como introducir un tiempo de espera en el true de la estructura CASE que antes te comentaba. Es decir, si entra un 1, el programa se detiene x milisegundos hasta que se pone a 0. Lo malo de esto es que detienes el programa por completo y si tienes otras cosas en paralelo...mal rollo.

Eso es una forma pero espera... me viene una idea mejor, jugemos con el false del CASE.

Crea un control con una valiable booleana que este inicializada a true. Coloca una puerta and de dos entradas, una entrada del and para la salida del automata y la otra conectala al control booleano que has creado. Convierte el control booleano en variable local, hazlo por partida doble (necesitamos dos indicadores de la misma variable).

Vete al true del CASE y al final del mismo, pon uno de los indicadores booleanos creados conectado con un False, es decir, que el control booleano pase a false.

Ahora vete al caso False del CASE, crea dos tuneles, uno con la señal del automata y otra con la del control booleano creado. Conecta estos dos tuneles a un Equal? y la salida del Equal? al indicador de del control booleano.

Te explico el funcinamiento:

Definamos el estado de reposo como: salida_del_automata=false variable_de_control_booleana=true.
Cuando llega el primer 1 (true) del automata, las dos entradas de la puerta and estan true por lo tanto pasamos al true del CASE. Se incrementa el contador y la variable de control booleana pasa a false. Imaginemos que el automata sigue mandando un 1, en este caso al llegar a la puerta and tenemos un 1 y un 0 de la variable de control, por lo tanto pasamos al false de CASE. En el false miramos si las dos variables booleanas son iguales, como no es el caso, a la salida del Equal? tenemos un False, con lo que la variable booleana de control sigue siendo false; asi evitamos que el contador se incremente aun cuando el automata siga mandando el 1.
Ahora el automata cambia a 0, por lo que a la salida de la puerta and tenemos un false (and(0,0)=0) y se ejecuta el false de CASE. Sin embargo, ahora las dos entradas del Equal son iguales (0,0), por lo tanto la variable de control boolena pasa a true.
Resumiendo, al final de esta secuencia tenemos: salida_del_automata=false variable_de_control_booleana=true, y por lo tanto hemos cerrado el eterno y gracil bucle.

OK?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Vicente (103 intervenciones) el 21/05/2007 11:48:49
Pedro hay un fallo en el programa que antes te comentaba, se soluciona cambiando el Equal? por un Select. Descargate el VI (LV 8.20) de esta dirección, yo lo he probado y funciona.

http://www.jvmunoz.info/respuestas_foro/pedro_17_05_2007.zip

Espero que no se te pierdan muchos tornillos.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Pedro (6 intervenciones) el 21/05/2007 17:01:57
Hola Vicente, una última cosilla. ¿Podrías guardarlo para una versión 8.0 de LabView seleccionando la opción "File" --> "Save for previous version"?
Es que no sé por qué, aun teniendo el LabView 8.2b23 no me deja abrirlo. Me dice que el archivo es de una versión superior.

Muchísimas gracias por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Vicente (103 intervenciones) el 21/05/2007 18:23:17
Ya lo tienes, cuentanos si funciona.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Pedro (6 intervenciones) el 31/05/2007 12:41:21
Perdón por la tardanza pero he andado liado.
El contador funciona correctamente. Yo lo había conseguido haciendo básicamente lo mismo pero con un Formula Node, pero aunque en mi ordenador hacía los incrementos de uno en uno, al ir a probarlo en el ordenador donde había de instalar el SCADA se incrementaba de 3 en 3, no sé a qué se deberá esto.
El tuyo me funciona perfectamente.

Muchas gracias por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Cecilia Garibay (1 intervención) el 11/06/2008 17:20:47
buen dia....

Yo tengo el mismo problema con el contador.....

podrian ayudarme pasandome el VI en version 7.1????

GRACIAS

ATTE Cecilia Garibay
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por jorge gonzalez (1 intervención) el 28/03/2012 18:02:30
que tal vicente, sabes yo tengo el mismo problemma, me podrias mandar el programa por favor, te lo agradeceria muchisimo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contador en labview

Publicado por Alexander colombia (1 intervención) el 28/08/2008 23:35:35
Muchas gracias Vicente, me funcionó inmediatamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar