Discusiones sobre Productos NI

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

Congelar indicadores

¡Resuelto!
Ir a solución

Buenas Noches a todos

 

He tratado todo el dia de hacer un metodo para congelar datos numericos de indicadores y lamentablemente no he tenido exito

 

bueno la razon por la que quiero congelar datos numericos de un arreglo es la siguiente

estoy realizando un proyecto el cual consiste conectar 6 entradas analogas  por lo cual son las siguientes

- 5 lasers IL-600

-1 sensotec Honeywell (mide fuerza en newton)

 

bueno aun no me llegan las DAQS pero estoy empezando a programar para que al momento de que lleguen las DAQS unicamente cambie las variables por estas dichas entradas.

 

He aqui mi dilema hay un calculo que se realiza el cual se le denomina rate que consiste en calcular  la diferencia de fuerza menos la fuerza original todo esto sobre el rango de flexion. todo esto se hace mediante el sensor de fuerza que mencione anteriormente el cual solamente es 1 y por ese motivo es el que quiero congelar una cantidad anterior dado a que el sensor de fuerza se debe de utilizar 2 veces seguidas y mostrara 2 cantidades y yo rerquiero de esas 2 cantidades para realizar mi rate de la cantidad de fuerza y de la cantidad de fuerza con flexion.

 

trate de poner un indicador en una estructura case el cual lo denomine fuerza normal por medio de un pulso de 1 segundo una cantidad se congela en tal indicador y esa cantidad se puede apreciar ahi pero al momento de calcular el rate esta no  toma en cuenta dicha cantidad.

estoy realizando esta prueba con numero aleatorios y por esa razon me doy cuenta de que no toma en cuenta el indicador congelado si no toma en cuenta el otro indicador de carga el cual muestra cantidades diferentes por segundo.

 

quiero mandar el rate en un archivo TDSM por medio de un pulso pero puedo apreciar desde la table y esta no me captura nada jeje agradeceria a alguien que me pudiera dar un consejo para conseguir lo deseado.

para eso a continuacion adjuntare mis VIS para que puedan apreciar mi problema y claro espero haberme aclarado bien.

 

antes de abrir el proyecto primero tienen que abrir el LOGIN.vi y ponen el siguiente nombre

Adrian De Luna

pass: 25663+

ya despues hecho esto se te abrira el vi supongo y ahi en donde dice operador pongan cualquier nombre y listo el VI correra

 

Enserio me gustaria aprender mucho sobre la instrumentacion virtual asi que si alguien se toma la molestia de abrir mis VIS quisiera que me diera sus puntos de vista enserio quiero aprender mucho y estoy a la dispocision de criticas y hasta de regaños solo por aprender

 

muchisimas gracias a las presonas que leyeron todo mi post  

Descargar todos
0 kudos
Mensaje 1 de 7
5.463 Vistas

Hola Kuro-Moon,

 

me gustaria ayudarte con lo poco que se, solo te pediria de favor, si pudieras guardar

tus VIs en la version 2010, para poder verlos.

 

Saludos.





0 kudos
Mensaje 2 de 7
5.455 Vistas

Saludos

aqui dejare mi proyecto para versiones del 10.0 espero y les pueda servir en lo que llevo en este proyecto es que si puedo capturar el rate pero no me deja almacenar el datos a la ruta TDMS que le asigne porque me lo toma como un cero a pesar de que el indicador tiene cantidad no entiendo porque  no me registra la cantidad en TDMS supongo que es porque desactivo la estructura case al no mantener presionado el boton y ´por esa razon me lo toma con un cero pero solo es una suposicion.

 

Saludos a todos y gracias!!

 

este VI esta mas entendible que el anterior si me quieren ayudar les recomiendo abrir este en lugar del pasado

entran de la misma manera que el pasado

 

Descargar todos
0 kudos
Mensaje 3 de 7
5.432 Vistas
Solución
Aceptado por el autor del tema Kuro-moon

Hola, buenas noches Kuro-moon.

 

La verdad tu codigo esta bastante desordenado, y no pude correrlo debido

a que me marca los siguientes errores:

- Formula 'Formula 2': Library versión is incompatible with XNode version.

- Formula 'Formula': Library versión is incompatible with XNode version.

Esto me imagino que se produjo al pasar de una version a la otra.

 

Pero a lo que vi en tu codigo, tu problema del "rate", es porque lo que estas

mandando a tu otro case el valor que tiene el false case, que en este caso

esta marcado "Use deafault if Unwired" por lo cual te manda el valor de cero.

 

Para corregir esto, aunque no es la manera más adecuada, pero creo  que te

va servir para salir de tu problema es:

 

  • Crear un variable local del indicador rate (Click derecho del mouse en el indicador Rate -> create -> local variable).

 

  • Esta local variable la cambias a lectura (Click derecho del mouse en la variable local -> change to read)

 

  • Y en lugar de conectar lo que salga de esta estructura case a la otra estructura case, conecta esta variable local

a la otra estructura case.

 

 

 

Me imagino que con esto te va a correr bien, pero si te recomendaria que fueras un poco más ordenado en tu

manera de programar para que puedas encontrar y corregir tus errores de manera más sencilla y rápida.

 

Suerte, y cualquier otra duda es bienvenida.

Saludos.





Mensaje 4 de 7
5.418 Vistas

Como recomendaciones para mejorar tu estilo de programar:

 

te recomendaria primero que nada seguir con las ganas de aprender que muestras actualmente,

 

Despues, si cuentas con los recursos economicos suficientes:

 

  • Seria bastante recomendable llevar algunos de los cursos de National Instruments (core 1,2 y 3)

en los cuales seguramente aprenderas a programar de la manera más correcta.

 

  • Comprar algun libro de programación de labview, hay varios buenos, nomas por mencionar alguno esta

 "Labview for everyone" (yo no lo he leido pero he visto varios comentarios que dicen que es bastante util).

 

 

Si no cuentas con los recursos economicos, no te desanimes hay bastante información gratuita:

  • Aprender a traves de preguntas en foros o viendo las respuestas de otras preguntas (en el foro en ingles hay mayor informacion).
  • Videos en internet (en youtube hay bastantes cursos gratuitos).
  • Webcasts de la pagina de national instruments ( http://www.ni.com/webcasts-and-videos/esa/ )
  • Ejemplos de programas ya hechos. En el find examples de labview hay bastantes programas de ejemplos, que te pueden servir de ejemplo para cualquier cosa que quieras realizar (en el menu de labview -> help -> find examples)
  • Pero sobre todo seguir prácticando.
  • Etc.

 

Y algunos consejos que te puedo dar son:

  1. Utilizar subVI con tareas bien definidas, esto le da limpieza a tu codigo, utiliza de manera mas eficiente los recursos de tu computadora.
  2. Utilizar algun Design pattern como podria ser maquina de estados o alguna otra, cuando creas un nuevo VI tienes la opción de abrir alguno de estos design pattern FILE->New... -> eliges la plantilla que más se adapte a tu proyecto.
  3. Comentar tu codigo.
  4. Agrupar tus controles, indicadores o constantes en arrays o cluster.
  5. No realizar codigos tan enormes, debes procurar que se vea completa en la pantalla y si no es posible, tener que mover tu barra de desplazamiento en una sola dirección solamente.
  6. Evitar anidar tantas estructuras, por ejemplo en tu programa tienes dentro de un while, un case y dentro de este case otro case y dentro de ese case un while.... lo cual vuelve muy complicado tu programa.
  7. Etc.

 

 

Bueno ojala mi comentario se de alguna utilidad,

Saludos y felices fiestas.

 

 





0 kudos
Mensaje 5 de 7
5.414 Vistas

Buenos dias Manuel

 

Listo gracias a las variables locales pude hacer lo que buscaba enserio muchisimas gracias ahora bien me sorprende el hecho de que hayas respondido cada punto de mi pregunta asi que no me queda mas que decir que muchisimas gracias.

ahora estoy trabajando con las queues paras pasar un indicador de un VI a otro VI pero esto lo estoy investigando por mi cuenta tambien vere si puedo conseguir ese libro que me mencionaste y respecto a la limpieza jeje orita tengo todo desordenado pero ya que termine de realizar todos los puntos de programacion comenzare con la limpieza y con mis super ciclo case adentr de un while y ahi otro case y adentro otro while con loop jajaja lo hare mas compacto

 

Saludos y feliz 2015 te deseo lo mejor y nuevamente muchas gracias por enseñarme

0 kudos
Mensaje 6 de 7
5.375 Vistas

No hay de que, para eso es esta comunidad.

 

Y que bueno que te halla sido útil la información y lograras resolver tu

problema.

 

Para comunicar un VI  con otro que se ejecuta al mismo tiempo, existen las

VARIABLES GLOBALES.

 

 

Gracias por tus deseos, mucha suerte con tus aplicaciones,

y yo tambien te deseo un feliz 2015 de lo mejor.

 

Saludos.

 

 





0 kudos
Mensaje 7 de 7
5.369 Vistas