LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Guardar datos en memoria

Buenas compañeros.

 

Tengo el siguiente problema, tengo una serie de Strings que me muestra cierta información numérica y lo que quiero es poder guardar esos datos numéricos para luego cuando yo presione un botón se vayan sumando esos valores junto con los nuevos.

 

En si quedaría así para ver si me entienden mejor, tengo 10 strings numéricos. Quiero guardar en memoria esos primeros 10 datos y al mismo tiempo que se borre la información en los strings para poder llenarla nuevamente con información nueva.

 

Cuando ya tenga mi nueva información entonces por medio de un botón que se llama "Calcular", me sume todos los datos que escribi en esos 10 strings.

Lo he tratado de hacer usando "Build Array" pero no entiendo muy bien el funcionamiento.

 

Espero que me hayan entendido.

 

Saludos y gracias por la ayuda.

0 Kudos
Message 1 of 8
(5,636 Views)

Que tal  Revy!

 

mira por lo que veo necesitas de un arreglo el cual cambie el contenido de sus elementos dependiendo de determinadas condiciones. Así mismo, necesitas programaticamente sumar los elementos.

 

Formas de solucionar esto hay muchas, sin embargo, personalmente te recomiendo utilizar el patrón de diseño conocido como máquina de estados.

 

Te adjunto una liga que te resultará de utilidad si es que no estás familiarizado con este patrón:

 

http://www.ni.com/white-paper/3024/en/

 

Saludos, estamos a la orden y muchas gracias por participar de los foros de la comunidad de NI

 

 

Klaus Breuer
Business Development Manager NI
Farnell Global.
0 Kudos
Message 2 of 8
(5,606 Views)

Hola Klaus.

 

Gracias por la respuesta.

Efectivamente lo pensé utilizando una máquina de estados, el problema que tengo o no entiendo muy bien es a la hora de meter los datos en el arreglo y q este me sume los datos cada vez que yo presione un Boolean.

 

Si me podrias brindar algún ejemplo o ayuda te lo agradecería mucho.

 

Y otra consulta aparte, en labview ¿yo puedo exportar el código de programación a otro lenguaje, por ejemplo a C o C++??

 

Gracias.

0 Kudos
Message 3 of 8
(5,599 Views)

Saludos Revy:

 

Si me cuentas un poco más en detalle tu aplicación, puede que te pueda ayudar, pero por lo que entiendo, podrías agregar una estructura case, en la cual el terminal de condición puede ser el botón booleano. El caso "True" de esta estructrura puede tomar todos los elementos del arreglo y sumarlos (utiliza "Index array" para extraer los elementos del arreglo y sumarlos), el caso "False" puede dejar el arreglo tal cual. Insisto eso sí, si me cuentas un poco más de tu aplicación en sí o me muestras que tienes hecho, te puedo ayudar mejor.

 

Respecto a tu segunda Pregunta, te invito a que revises información acerca de nuestro "NI LabVIEW C Generator", adjunto liga:

 

http://sine.ni.com/nips/cds/view/p/lang/en/nid/209015

 

Saludos!

Klaus Breuer
Business Development Manager NI
Farnell Global.
0 Kudos
Message 4 of 8
(5,591 Views)

Hola Klaus.

 

Te cuento un poco mi proyecto. 

Realizo una serie de cálculos en el diagram de bloques dependiendo de una selección previa de datos y el resultado final lo muestro en un indicador en el panel frontal. Son 10 resultados que muestro por medio 10 indicadores en el panel frontal. Lo que quiero hacer es que cuando yo presione un botón en mi panel frontal me guarde en memoria esos 10 primeros resultados y a su misma vez me limpie los cálculos iniciales; para así dejar disponible nuevamente los 10 indicadores para mostrar otros resultados distintos.

 

Una vez yo haya metido otros datos en esos indicadores, utilizo el botón que te mencione anteriormente para que estos últimos datos se vayan sumando con los que se mostraron primeramente y así sucesivamente N cantidad de veces.

 

Espero me haya explicado un poco mejor.

 

Gracias

0 Kudos
Message 5 of 8
(5,580 Views)

Hola Revy:

 

te sugiero que tu proyecto cuente con lo siguiente:

 

  • implementa una máquina de estados con eventos, es como la máquina de estados convencional, pero los eventos envían al nuevo estado. En este caso, presionar el botón boleano que señalas te llevará hasta el estado deseado
  • puedes leer un valor de un indicador por medio de "local variables"
  • estos 10 valores medidos los puedes guardar en memoria por medio de shift register y/o arreglos.
  • Por medio de "property nodes" puedes volver a hacer cero el valor de cualquier terminal numérico.
  • Todo esto dentro de un bucle, para que así esto pueda iterar N veces.

Cualquier concepto que no conozcas por favor hazme saber para poder ayudarte.

 

Saludos! 

 

Klaus Breuer
Business Development Manager NI
Farnell Global.
0 Kudos
Message 6 of 8
(5,552 Views)

Hola Klaus.

 

Analizando un poco la ayuda que me das, tienes toda la razón de los Shift Register... Se me había olvidado esa herramienta... De igual forma dejame implementar la ayuda que me brindas y lastimosamente volver a realizar la aplicación. Ya que por motivos de "mala manipulación" mía perdí todo el proyecto que llevaba... Entonces toca volver a empezar de cero.

 

Muchas gracias por la ayuda Klaus de verdad. Cualquier cosa te aviso..

 

Saludos.

0 Kudos
Message 7 of 8
(5,542 Views)

Que tal  Revy!

 

Claro! Shif Registers pueden ser muy útiles a la hora de querer almacenar datos en memoria.

 

Lamento que perdieras tu código. Mucho éxito con la versión 2.0 y sigue utilizando los foros de National Instruments

 

Saludos

 

Klaus Breuer

Klaus Breuer
Business Development Manager NI
Farnell Global.
0 Kudos
Message 8 of 8
(5,530 Views)