el 10-09-2011 09:04 PM
Resubo el tema porque sigo pillado en el mismo sitio, y me gustaria encontrar la manera de temporizar el tiempo de la forma de onda para pararlo cuando haga X periodos, me interesa esta manera porque me vale tambien para otro programa que tengo que hacer de generar un solo periodo de señal cuadrada pero que pueda controlar el tiempo de ese periodo. Haber si me podeis hechar una mano 😉
Un saludo y gracias.
el 10-10-2011 10:07 AM
Hola Montero
Disculpa la tardanza, no habia tenido la oportunidad de contestarte. Respecto al temporizador en tu while, podrias utilizar un count tick para tomer el tiempo en ms y detener tu ciclo, pero para esto debes saber cuanto tiempo se requiere para un periodo. Otra forma en que lo puedes hacer, es remover el ciclo while y dejar la configuracion del Timing como Finite y estableciendo el numero de muestras que quieres en la salida. De igual forma necesitas saber la frecuencia de tu senal y el numero de muestras que necesitas.
Saludos
el 10-10-2011 11:46 AM
Muchas gracias James por contextar, mira te envio la prueba que he hecho con el tick count, el tema de saber cuando tiempo dura el periodo lo calculo a partir de la frecuencia (T=1/f). La idea es esa pero el problema que tiene es que el tick count empieza a contar nada más ponerlo y no cuando le doy a arrancar el programa y además no para de contar ni se resetea el contador cuando lo para el programa. ¿Como podria solucionar esto?
el 10-10-2011 09:41 PM
Muy buenas James, pues al final trasnochando mucho (son las 4:35 de la madrugada), he conseguido solucionar el problema. He usado al final el elapsed time, que he aprendido a usarlo y es precisamente lo que buscaba 😉
Pero claro tantas horas con labview solucionan un problema pero salen a la luz otro par de ellos jeje. Ahora tengo problemillas con dibujar la grafica, cuando la muestro en el grafico solo me aparece el valor instantaneo moviendose por la grafica pero no deja la ''estela'' a su paso para verla dibujada, me ha pasado más veces y por mucho que toqueteo propiedades no soy capaz. Hechame un cable por favor 😉
Y luego ahora estoy en el punto casi final y lo que necesito es guardar esos datos en modo texto (en realidad da igual el formato, pero que se guarden los datos). He visto algo de crear arrays o algo así pero no llego a entenderlo bien, ¿me puedes explicar o enseñar algun ejemplo?
Adjunto el VI con la temporizacion del numero de ciclos que seguro que tambien viene bien a alguien. Lo unico que tengo el error de la forma de dibujar la grafica (por lo que aqui puedes ver lo que te comentaba, James).
Y no me cansaré de darte las gracias James, eres mi gran apoyo y gracias a tu ayuda estoy sacando el proyecto adelante. Un saludo y muchas gracias 😉
el 10-13-2011 08:24 AM
Lo subo para ver si alguien me puede ayudar con el tema de dibujar la grafica y el guardado de datos en texto.
Un saludo y muchas gracias.
el 10-13-2011 07:15 PM
Hola Montero
Una disculpa por no contestar, he estado fuera de la oficina toda la semana y por lo general sin acceso al Internet. Te habia puesto lo de utilizar el elapsed time pero creo que no se pudo subir desde mi celular. Una disculpa por eso.
Respecto a tu VI, ahorita no puedo verlo puesto que estoy con el celular jeje , tan pronto tenga internet en mi maquina lo checo.
Con las graficas te comento lo siguiente. La diferencia principal entre un Chart y un Graph esta en que en el primero te muestra los datos punto a punto, osea que por cada valor te muestra el valor en la grafica, y con el Graph tu almacenas varios valores en un arreglo y muestras varios puntos al mismo tiempo.
Para usarlo con arreglos, usa el autoindex para el ciclo que tengas de for, con el boton derecho seleccionas la parte derecha del FOR y le pones autoindex con esto va almacenando los datos en el ciclo ( La N del for puede ir sin valor). y al ultimo mostrarlo o ir mostrando los valores en el graph. Nose si sea este el problema que tengas.
Para la escritura puedes utilizar un VI express fuera del while, ya que si lo pones dentro se alenta por ser VI express, pues abre , escribe y cierra el archivo cada vez que lo llamas. Sino usa las funciones de bajo nivel de write measurement file, con esto escribes en un texto o archivo de excel los valores de tu señal. cuando me sea posible te envio un ejemplo y espero esto quede impreso
Saludos cordiales
el 10-13-2011 09:03 PM
Te agradezco mucho James que aun no pudiendo conectarte me contextes desde el cecular.
La verdad que sigo teniendo el mismo problema con la grafica aunque uso un Graph para mostrarla aunque lo del arreglo no lo he podido probar porque no tengo un bucle for sino while. Cuando puedas hechale un ojo al VI porque imagino que es más de problema de propiedades de visualizacion que otra cosa, aunque esa es mi impresion.
Y el tema de captura de datos en texto, si te soy sincero no se usar un VI express, ni cual usar, asique si supieras de un ejemplo para ilustrar genial 😉
Bueno un saludo y muchas gracias 😉
el 10-16-2011 08:59 PM
James, me alegra decirte que ya he solucionado el tema de la grafica, pero sigo sin poder capturar los datos en el fichero de texto, estoy usando un array y el write to spreadsheet file.vi pero solo consigo que se me guarde el ultimo valor de la grafica. Te mando la prueba que estoy haciendo.
Luego tengo otro problemilla al margen de este y es que cuando quiero adquirir varias señales a la vez con el DAQ Assistant me da un error de que esta ocupado el dispositivo, te mando el VI de la prueba tambien por si puedes tambien hecharle un ojo.
Un saludo y muchas gracias por toda la ayuda 😉
el 10-16-2011 11:41 PM
James, ya he resuelto mis dos dudas 😉 voy avanzando mucho.
Ahora solo me queda saber si podria ejecutar dos VI a la vez y que me pueda meter en un tab control las graficas de ambos programas convinados. Es mas necesito que cuando pare uno, se pare tambien el otro. Es algo con los subVI pero no se como funcionan.
Un saludo y muchas gracias.
el 10-17-2011 09:38 AM
Hola Montero
Si, se pueden ejecutar tantos VIs como quieras de manera simultanea. Si lo que quieres es mandar datos de un VI otro necesitarias utilizar variables globales si utilizas VI en proyectos diferentes, o bien puedes utilizar variables compartidas si los VIs estan en el mismo proyecto.
Te anexo tutoriales para el uso de tales variables. de esta manera podrias poner por ejemplo un boton de stop en un VI y que en el otro lea el estado del boton y tambien para la ejecucion del programa.
http://zone.ni.com/devzone/cda/tut/p/id/7590
http://zone.ni.com/devzone/cda/tut/p/id/7517
http://zone.ni.com/devzone/cda/tut/p/id/4679
Saludos