Discusiones sobre Productos NI

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

Problemas con el Menu de usuario

Buenas tardes, he estado realizando un menú de usuario, he avanzado pero se me ha presentado el siguiente problema.

 

Corro la aplicación principal me abre sin ningún problema y del menú que diseñe uno tipo persiana utilizando eventos. Selecciono una aplicación a correr del menú y se me abre, la corro y me realiza los procesos asignados, el problema se me presenta cuando la quiero cerrar para abrir otra aplicación del menú, yo le tengo asignado en las propiedades del vi que se abra cuando se le llame. Pero eso no lo hace pues cierro la aplicación para seleccionar otra del menú y no me deja hacerlo pues se abre de inmediato la que cerré.

Claro está siempre quiero tener activa la ventana principal donde tengo el menú de usuario.

 He estado revisando pero no he encontrado una solución, espero que me puedan ayudar.

 

Para mayor compresión envió un ejemplo del código que estoy implementando. Esta hecho con labview 8.6.

0 kudos
Mensaje 1 de 6
3.131 Vistas

Buen día,

 

Ya revisé los archivos adjuntos, y te menciono algunas recomendaciones:

 

  • No es necesario hacer un VI aparte para realizar el MENU, simplemente puedes utilizar una máquina de estados.
  • Cuando actualizas el valor de Tab Control, no se actualiza el valor del RING Control que tienes en el Menu.vi.  Es por esto que se abre el úlitmo VI que corriste. 
  • Si el código dentro de cada case del EMI.vi se va a repetir, es recomendable crear un SubVI para que no tengas que reescribir el código y sea mas fácil de leer.  

Te dejo una liga donde podrás encontrar una máquina de estados muy básica, que puedes utilizar para crear tu aplicación.

 

https://decibel.ni.com/content/docs/DOC-3116

 

Saludos,

 

Anuar Rojas

 

Anuar R.
National Instruments México y Latinoamérica
Ingeniería de Aplicaciones
www.ni.com/soporte
0 kudos
Mensaje 2 de 6
3.128 Vistas

 

Efectivamente  no es necesario realizar otro vi, pero en mi caso lo hago debido a que ese vi donde desarrollo el menú, será la página de presentación, allí tendré otros datos, solo que no lo he terminado, de preparar la parte decorativa.

El código dentro de EMI vi, no se repite, son todos diferentes, solo que los coloque así, para hacer ver el efecto, lo que uso son ecuaciones muy grandes, y las tengo que estar copiando con cuidado para evitar los errores. Además del archivo emi, tengo 4 archivos más de idénticas caracteristicas, esa es la razón de la existencia del menú y por lo cual lo he desarrollado así.

Yo todavía estoy aprendiendo labview, y antes lo hacía todo en un solo vi, pero ahora tengo que hacerlo así, por el proyecto que estoy desarrollando.

 

Me podrían aclarar mejor lo de actualizar el valor de ring control

 

Los archivos los estoy usando como subvi

0 kudos
Mensaje 3 de 6
3.120 Vistas

Buen día,

 

El ring control que estas utilizando en el Menu.vi no se actualiza correctamente desde el EMI.vi.  Cuando se ejecuta el EMI.vi, al terminar la ecuación tu estableces un valor para el Tab Control con la finalidad de cambiar de pestaña en este mismo VI.  Tu Tab Control está configurado para actualizar los valores de las gráficas e indicadores dentro del mismo cuando se hace pasar el mouse sobre el botón correspondiente al nombre de la pestaña (los que están del lado izquierdo del Tab Control).  De cualquier manera, cuando se ejecuta la secuencia de STOP cambias el número de TAB por un 3, cuando no existe este número de TAB.  Asimismo, cuando regresa al Menu.vi después de ejecutarse el subVI EMI.vi, el Ring Control permanece con el valor que elegiste la última vez.  Es por esto que se vuelve a cargar el mismo subVI que utilizaste la última vez.  La mejor manera de solucionar esto es utilizando una Estructura de Secuencia (Sequence Structure) donde primero se ejecute el subVI EMI.vi y después se actualice el valor del Ring Control para elegir una opción del Menú.  Para actualizar el valor del Ring Control, puedes utilizar un Property node con la propiedad de Value.  Te recomiendo que el valor que introduzcas sea el del Default Case, para asegurarte que no se ejecute ningún sub menú hasta que tu lo elijas.  Por ejemplo, ejecutas tu programa y seleccionas del Menú el número 2, y se ejecuta el EMI.vi.  Cuando regresas al Menu.vi, debe quedarse esperando con el Ring Control en la opción 1 hasta que tu selecciones un nuevo sub menú.

 

Adjunto el Menu.vi con los datos que te sugerí incluidos en el Case 1, para que revises mi sugerencia.

 

Saludos,

 

Anuar Rojas

Anuar R.
National Instruments México y Latinoamérica
Ingeniería de Aplicaciones
www.ni.com/soporte
0 kudos
Mensaje 4 de 6
3.115 Vistas

Gracias por la ayuda prestada ya pude solucionar el problema del menú, pero usando el de máquinas de estado que lo adapte al que tenía, y funciono perfectamente.

 

Ahora se me presento el siguiente problema. Estoy corriendo un  proceso en un Mathscript Node, uno mucho más grande que el mostrado en el archivo emi.vi, al realizar la corrida del vi el computador se cuelga, cuando corro el mismo sistema en maple funciona, Si me puedan ayudar con algunas sugerencias de cómo tratar el problema. Gracias.

 

 

Caracteristicas del computador

 

Procesador core 2 duo

Memoria RAM 4 GB

0 kudos
Mensaje 5 de 6
3.092 Vistas

Buen día,

 

En la siguiente liga podrás encontrar un tutorial muy sencillo que explica como utilizar la herramienta de los "MathScript Nodes".  El propósito es que revises la última sección del documento ("What does this yellow..."), a reserva de que compruebes que los estas utilizando de manera correcta.  Esto te lo menciono porque es muy probable que el código dentro del MathScript Node sea sumamente pesada o contenga errores, y esto causa que la aplicación en LabVIEW no funcione correctamente.

 

http://zone.ni.com/devzone/cda/tut/p/id/3256

 

Una solución a este problema podría ser que rediseñaras tu archivo *.m para realizar algunas partes de tu código en LabVIEW, sin necesidad de ejecutar todo en el archivo de Matlab.  Esto podría reducir considerablemente la carga del procesador.

 

De cualquier manera, te invito a que utilices las herramientas que vienen especificadas en la última sección del tutorial que te anexo.

 

Saludos,

 

Anuar Rojas

Anuar R.
National Instruments México y Latinoamérica
Ingeniería de Aplicaciones
www.ni.com/soporte
0 kudos
Mensaje 6 de 6
3.058 Vistas