11-08-2013 04:28 PM
Mi problema es el siguiente, tengo un programa que hice que me cuenta el numero de vueltas que da un motor y me las convierte en revoluciones por minuto, hasta ahi todo esta bien, el problema viene cuando le agrego el control de un servomotor porque el programa ya no me muestra la lectura correcta de las RPM´s pero el servo funciona a la perfeccion.Dejo imagenes de mi codigo para ver si alguien cual es el error en la programacion y como lo corrigo, espero que alguien me pueda ayudar.
Este es el programa con el servo y el contador de rpm
este es el codigo sin el control del servomotor.
Este es el panel frontal solo del tacometro, siempre me da una lectura uniforme de 1200 +_- 60 RPM´s
pero cuando le pongo el servo me da esto:
El tacometro varia de 800 a 1020.
Espero que alguien me pueda ayudar porque esto ya me esta desesperando.
11-09-2013 02:47 AM
Post your question here
11-12-2013 04:37 PM
Hola hickok,
Estuve analizando tu código y es necesario hacerle varias modificaciones ya que seguramente estas teniendo condiciones de carrera. Para evitar este fenómeno, te sugiero hacer uso de Shift Registers y evitar el uso de variables locales siempre que puedas ya que además de evitar este fenómeno ahorraras recursos de memoria y tendrás un mejor control del flujo de datos. Te dejo este link sobre el uso de Shift Registers para que los implementes en lugar de usar variables locales y eliminar cualquier condición de carrera que pudieras tener en tu indicador CONTADOR:
http://www.ni.com/gettingstarted/labviewbasics/shiftregisters.htm
Además de las mejoras que te comento, otra cosa que puedes intentar también es separar ambas tareas en 2 ciclos diferentes (una para RPMs y otra para el control del servo).
Finalmente te recomiendo ir monitoreando la información que se envía a CONTADOR mediante el uso de breakpoints y la herramienta de highlight execution.
Espero que te sirva la información!
Saludos!
Luis C.
National Instruments
Ingenieria de Aplicaciones
11-13-2013 12:15 PM
me sirvio el consejo que me diste LuisC_AE y me redujo el problema de la variacion pero aun no me da el valor exacto de las rpm solo se queda mas constante, e intente poner el servo y el contador por separado pero no funciona
11-13-2013 02:12 PM
Hola hickok,
Puedes utilizar el contador de ciclos de los While Loops para analizar cuantos ciclos hay de diferencia en la medición del error. Utiliza también la herramienta de "Probes" en conjunto con la herramienta de highlight execution para determinar los datos que van pasando a tu indicador CONTADOR a través de los Shift Registers y analizar porque se incrementa el número de ciclos cuando ejecutas la tarea de control del servo.
Espero te sirva la información!
Saludos!
Luis C.
National Instruments
Ingeniería de Aplicaciones
11-17-2013 03:08 PM
Hola compa.... una consulta, que mas que una respuesta a su problema, es saber si me puede ayudar con algo...
hay un icono en el diseño de su programa que tiene dos esferas una roja y una verde y una flecha diagonal, y en mi labview 2011, no la encuentro, me puede ayudar con el nombre de esta funcion.... de antemano gracias
03-21-2014 05:02 AM
hai,
is your problem solved?
i am kinda facing the same problem. can you post your vi or tell me the logic how to implement vi to make rpm measurement using arduino + labview.
03-21-2014 05:02 AM
hai,
is your problem solved?
i am kinda facing the same problem. can you post your vi or tell me the logic how to implement vi to make rpm measurement using arduino + labview.