NI Home > Community > NI Discussion Forums

Discusiones sobre Eventos de NI

Mostrando los resultados de 
Buscar en lugar de 
Querías decir 
Responder
Member
jonilla
Mensajes publicados: 5
0 kudos

introducir datos en una tabla

Hola quiero diseñar un .vi en el cual se van a introducir unos datos en un array 3*1 (colum*filas),los datos de las tres columnas seran los parametros de entrada en otro .vi.

 

Mi cuestión es: como podria hacer para que, una vez corra el programa me aparezca un array de 3*1 y un boton?, con el fin de que una vez se intriduzcan los datos de la fila, pulsemos el boton y aparezca otra fila y asi sucesivamente.

 

Muchas gracias de antemano.

Active Participant
lfelias
Mensajes publicados: 604
0 kudos

Re: introducir datos en una tabla

Que tal jonilla

 

No estoy seguro como quieres hacer tu Vi, pero por lo que entiendo quieres tener un VI corriendo y que tu puedas introducir los datos en tu arreglo de manera manual con tu teclado. Una vez que hayas metido los valores en tu arreglo quieres que al dar click en un boton este mande los valores a otro sub VI.

 

Si este es el caso, hay una manera muy sencilla de hacerlo.

 

Lo que debes de hacer es crear en el Front Panel un control de arreglo y meterle el tipo de dato que quieres, que por lo que noté en tu VI es un dato numérico.

 

Teniendo este arreglo en tu Front Panel, solo debes arrastrarlo a la derecha con tu mouse para que sea de 3*1.

 

Teniendo este arreglo en tu diagrama de bloques te saldrá un icono que dice Array 1, lo puedes renombrar como gustes.

 

Ahora deberás tener una estructura de ciclo While en tu diagrama de bloques. Tu control de arreglo (flecha a la derecha) deberá estar adentro.

 

Una vez plasmada la estructura, con el boton de la derecha dar click en la terminal condicional (cuadrito con un circulo rojo) le das en crear control. Esto generará un boton en tu panel frontal que por default se llama STOP pero puedes renombrarlo y cambiarlo para que diga algo más representativo como enviar datos.

 

Ahora deberás plasmar tu subVI fuera del ciclo While y conectar tu control de arreglo a tu sub VI que se encuentra fuera, y al momneto que das stop a tu ciclo while, es decir, le das click al boton. todos los datos que se encuentren dentro del arreglo seran mandados a tu subVI. Mientras no des click a tu boton el VI seguira corriendo y puedes meter, quitar o modificar datos de tu arreglo.

 

De todas maneras te agrego una imagen del ejemplo que hice.Solo debes guardar la imagen y arrastrarla a tu diagrama de bloques.

 

En el ejemplo no puse otro VI, puse simplemente un indicador para que se vea como funciona. También puedes correr el VI en Highlight execution para ver visualisar mejor el funcionamiento.

 

También existen otros métodos como estrucutras de ventos o de maquina de estados que te pueden ayudar pero no creo que sea necesario que los uses, esta solucion te debe de ayudar.

 

Otra cosa importnate, agregué un VI de temporisación, esto es para que tu ciclo while no corra a la maxima velocidad que te da el CPU ya que esto puede agotar tu CPU sin sentido ya que no se puede meter de manera manual los datos tan rapido.

 

Saludos,

 

PD No olvides en tu subVI poner un control de arreglo y en el conector panel seleccionar que esa sera tu entrada.

 

Exito en tu aplicación.

 

array1snip.png

 

 

 

Luis Fernando
National Instruments Cono Sur
Ingeniería de Campo y Consultoría
http://chile.ni.com/
Active Participant
lfelias
Mensajes publicados: 604
0 kudos

Re: introducir datos en una tabla

Ahora, para poder incrementar las filas o columnas de manera manual mientras corre tu VI esta esta solución,

 

array2snip.png

 

Aqui lo que pasa es que inicializamos las variables (shift registers) con los valores que habias dado y si el boton está precionado aumentara en uno ya sean las columnas o las filas!

 

El único problema que tiene este VI es que si dejas precionado mucho tiempo el boton este generara más columnas de las deseadas, que si no inicilizas con un valor no pasa nada, pero se verá feo tu panel frontal.

 

Si quieres evitar esto puedes utilizar Eventos, si ese es el caso solo dime y con mucho gusto podemos hacer un ejemplo o platicar al respecto.

 

Saludos! y exito en tu aplicación

Luis Fernando
National Instruments Cono Sur
Ingeniería de Campo y Consultoría
http://chile.ni.com/
Active Participant
lfelias
Mensajes publicados: 604
0 kudos

Re: introducir datos en una tabla

Que tal Jonilla,

 

Estuve pensando y se me ocurrió una mejor solución, simplemente debes de dar click derecho en los botones y ahí seleccionar en mechanical action latch when released y con esto ya no tendras probelma de que se crean más filas o columnas.

 

Saludos,

 

De todas maneras el dejar la temporización nos ayuda a tener un uso de procesador más eficiente, es mejor que esté ahí.

 

Exito!

Luis Fernando
National Instruments Cono Sur
Ingeniería de Campo y Consultoría
http://chile.ni.com/
Member
jonilla
Mensajes publicados: 5
0 kudos

Re: introducir datos en una tabla

Hola Luis!

 

Mira lo primero muchisimas gracias por ayudarme. E estado perdido por que se jodió mi portátil y no veas que quebradero de cabeza.

Bueno ya conseguí que mi LabView corriera en vista. Un logro por cierto.

Estoy muy interesado en seguir con este hilo para la consecución de mi proyecto.

 

Cordiales saludos y sinceras gracias.

Member
jonilla
Mensajes publicados: 5
0 kudos

Re: introducir datos en una tabla

Hola de nuevo Luis

 

Bueno ahora mi cuestión es la siguiente. Le e estado dando vueltas pero la opción del array deja un panel frontal un tanto feo. Bueno yo tengo que almacenar tres tipos de datos diferentes que posteriormente serán mandados individualmente por puerto serie (pero ese no es el problema).

Entonces la primera columna se destina a una variable que se repite por lo tanto de tipo entero sin signo, La segunda y tercera variable serán datos destinados a tiempo y potencia por lo que necesito que sean de tipo float.

Mi cuestión es como puedo hacer que el usuario introduzca los datos y los represente en un array (queda feo), tabla o multicolumn-listbox, para luego su descomposición y mandar los datos a los diferentes instrumentos que conforman la aplicación.

Bueno aqui te dejo un pequeño VI para que lo podamos tratar. Utilizo LabView 2009.

Active Participant
lfelias
Mensajes publicados: 604
0 kudos

Re: introducir datos en una tabla

Que tal jonilla,

 

Sobre la apariencia de tu front panel, existen maneras de editarlo para que quede más presentable. Si lo guardas en tablas o archivos, lo que puedes hacer es después descomponerlos en arreglos de una dismensión y mandarlos a tus instrumentos.

 

Otras solución para que quede más presnentable que se me ocurre, es tener tres arrelgos en tu diagrma de bloques y que puedas introducir datos al arreglo con un indicador del tipo de variable que necietes y un boton.

 

Puedes hacerlo con eventos o con ciclos while anidados.

 

Trataré de hacer un ejemplo en estos días!

 

Saludos,

Luis Fernando
National Instruments Cono Sur
Ingeniería de Campo y Consultoría
http://chile.ni.com/
Active Participant
lfelias
Mensajes publicados: 604

Re: introducir datos en una tabla

Ya desarrolle un pequeño ejemplo, revisalo, los arreglos están para que veas lo que escribiste, pero pues a lo mejor te sirve y se ve mejor.

 

Saludos,

Luis Fernando
National Instruments Cono Sur
Ingeniería de Campo y Consultoría
http://chile.ni.com/
Active Participant
Atom.
Mensajes publicados: 495

Re: introducir datos en una tabla

hola, te adjunto un codigo que genera un fichero de texto mientras guarda los datos en una tabla en el panel frontal, espero sea de utilidad, tambien puedes ingresar al foro de productos NI http://forums.ni.com/t5/Discusiones-sobre-Productos-NI/bd-p/6170, buena suerte

Active Participant
Jokelnice
Mensajes publicados: 434
0 kudos

Re: introducir datos en una tabla


@tom. Escribió:

hola, te adjunto un código que genera un fichero de texto mientras guarda los datos en una tabla en el panel frontal, espero sea de utilidad, también puedes ingresar al foro de productos NI http://forums.ni.com/t5/Discusiones-sobre-Productos-NI/bd-p/6170, buena suerte


@tom.¿ porque revivir post viejos?, además con códigos que se repiten en otras entradas al foro, donde su trabajo se ha limitado a cambiarle el nombre al archivo y publicar el mismo archivo, además déjeme decirle que su comportamiento los últimos meses es estraño ya que sus comentarios la mayoría de veces no aportan casi nada pero si extrañamente recibe kudos de tres perfiles diferentes todo el tiempo 

 

http://forums.ni.com/t5/user/viewprofilepage/user-id/258488

http://forums.ni.com/t5/user/viewprofilepage/user-id/257832 

http://forums.ni.com/t5/user/viewprofilepage/user-id/183144

 

 

y ya que estos usuarios no participan en los foros, permitame poner en duda la procedencia de los mismos. Asi que amablemente le pido que deje de realizar este tipo de acciones que para nada contribuyen a una comunidad. 


Jonathan Cruz

CHALLENGER
K U D O S __ B I E N V E N I D O S