el 09-22-2011 10:07 AM
Hola Montero
Mira te paso el codigo que me mandaste con el error corregido, pruebalo. Tambien te envio el otro guardado para la version 8.5
Espero te sirva la ayuda , si tienes problemas o dudas adelante, estamos para ayudarte
Saludos
el 09-22-2011 01:28 PM
Muchas gracias James, he podido abrir el Waveform sawtooth.vi pero no me deja seleccionar el canal de salida analogica solo se muestran para seleccionar entradas analogicas, he cambiado ese selector por otro con las salidas analogicas y me da el error de antes (te lo envio en una captura).
Y con el vi que me has corregido, va bien el programa, no da errores y se muestra la señal pero no la transmite a la salida analógica, osea que no optengo la señal en el AO0 pero el programa si la dibuja en la grafica (la salida fisica funciona bien), en el DAQmx write sale un error y parece como que no estan seleccionadas las I/O pero no me da ninguna opción para seleccionar (tambien te envio la captura).
Te envio tambien el vi con las ultimas modificaciones que simplente he añadido unos controles de Amplitud y SR, tambien comentarte que cuando le doy al STOP me sale el mismo error de antes. Y queria saber como puedo hacer que la grafica me pinte de forma continua, osea que deje impreso en pantalla el recorrido de la señal que como puedes ver ahora que he ajustado las escalas dibuja solo lo del instante actual.
Perdona que te inunde de dudas, me imagino que serán tonterias pero mis conocimientos se estancan aqui, aunque poco a poco voy aprendiendo más cosas, se cumple de que con los errores se aprende 😉
Muchas gracias de nuevo por tu buen trato y ayuda.
Saludos.
el 09-22-2011 02:01 PM
Hola,
Se me olvido que estabas utilizando USB 6009 , remueve el sample clock de tu programa. Tambien asegurate que el nombre del dispositivo corresponde al que aparece en max para tu USB 6009, osea que sea Dev1 y no Dev2 o Dev3. Si te genera mas errores tambien puedes utilizaz una funcion express para la salida analoga, seria mas facil que la otra manera y la podrias utilizar debido a que aqui el tiempo no es importante y tu codigo no es muy largo.
El nombre de tu dispositivo aparece en MAX, aqui esta un tutorial de como verlo:
http://zone.ni.com/devzone/cda/tut/p/id/7980
No se si ya lo hayas visto, pero te dejo este ejemplo que puedes utilizar directamente en tu USB 6009 sin cambiarle nada.En especial creo que esta aplicacion era la que estabas buscando.
https://decibel.ni.com/content/docs/DOC-14687, solamente debes seleccionar el canal adecuado ( Dev).
Y por ultimo tambien aqui hay algunas aplicaciones que puedes realizar con tu dispositivo
https://decibel.ni.com/content/docs/DOC-8357
Saludos, cualquier duda me la comentas.
el 09-22-2011 02:09 PM
Muy buenas de nuevo, mira he encontrado un VI hecho que genera una señal senoidal y esta si que logro obtenerla en la salida analogica, pero sigo siendo incapaz de cambiar la señal senoidal por la triangular que necesito.
Saludos.
el 09-22-2011 04:10 PM
Hola
Ya lo probaste con el ejemplo que te recomende en esta liga?
https://decibel.ni.com/content/docs/DOC-14687
El funcionamiento es basicamente el mismo que el que tu encontraste pero con la forma de diente de sierra.
Modifique el ejemplo anterior para que sea una grafica continua. Lo probe con la tarjeta que tengo y el funcionamiento es correcto. Lo puedes visualizar en la grafica. Informame si te funciona tambien.
Saludos
el 09-22-2011 10:18 PM
¡¡¡FUNCIONA A LA PERFECCIÓN!!! Muchas gracias James, este si que funciona bien, la salida siempre utilizaba la Dev1 asi que no se porque no funcionaban los otros, pero con este genial, ahora solo tengo que adaptarlo a mis necesidades que el tema de la velocidad de barrido me da tarea pero vamos que esto ya lo tengo!!! Muchisimas gracias 😉
Lo unico que no entiendo es lo que representa el: Software Loop Time (ms) y el sampling info (Fs y #s), es que queria quitar los controladores porque lo unico que necesito controlar es la velocidad de barrido (mV/s) y quizas con estos valores pueda crearlo pero no los entiendo, si me pudieras asesorar con ellos te lo agradeceria mucho.
Un saludo y muchas gracias 😉
el 09-23-2011 09:40 AM
Hola, excelente que ya funciona 🙂 .
El Software Loop si te fijas tiene una duracion de 1 ms (puede ser 0) , esto es nadamas para darle tiempo al CPU de realizar otros procesos. El sampling info es para configurar el tiempo de muestreo y el numero de muestras de la señal que vas a generar .
sampling info contains sampling information.
Fs is the sampling rate in samples per second. The default is 1000. | |
#s is the number of samples in the waveform. The default is 1000. |
Saludos
el 09-25-2011 08:10 PM
Muchas gracias por toda la información James, ya tengo lo de la velocidad de barrido programado. Ya solo me falta el conseguir poder controlar el numero de periodos que quiero que se repita la señal (no tiene que ser continua). He estado probando con ponerle una comparación en la restriccion del bucle while pero no se como temporizar para contar el tiempo que lleva el bucle en funcionamiendo, ¿sabrias de alguna forma de hacerlo?.
Un saludo y muchas gracias.
el 09-26-2011 09:51 AM
Para esto remueve el ciclo while y juega con el sampling info asi como con la frecuencia de la señal que generas, para obtener el numero de periodos que tu quieres utilizar.
Saludos.
el 10-06-2011 11:57 AM
Muy buenas James, te contexto tarde porque he tenido que estar unos dias desconectado forzosamente a mi pesar, y siento decirte que vuelvo con la misma duda.
No logro conseguir el dibujar X periodos de la forma de onda y que se pare con el sampling info. Si remuevo el bucle while directamente no me dibuja nada :S
La idea que más me da vueltas en la cabeza es dejar el bucle while y poner un contador de tiempo que se carge con el tiempo que duran X periodos a traves del valor de la frecuencia, y que cuando acabe la cuenta detenga el programa con el stop del bucle while. Pero no se como hace un temporizador así, ¿hay manera de hacerlo así?, ¿o como podria hacerlo?.
Un saludo y muchas gracias por tu ayuda, y espero que estas dudas sean tambien instructivas a mas gente que este en mi situación.