From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
el 04-13-2015 12:59 PM
Hola!
Quiero generar un programa que dado un tiempo (on y off) dado por un código MatLab, genere una señal discreta de forma que esté a 5V el tiempo on y a 0V el tiempo off. Una vez, haya finalizado, vuelva al programa de MatLab (ya está escrito) y vuelva a cogerme dos tiempos, y me genere otra vez la señal. Así sucesivamente.
Alguna idea de que funciones y controles utilizar?
El programa lo tengo (mas o menos), tengo el código de MatLab, pero no se como conectar el output de MatLab para que el generador de señales entienda que solo quiero esos tiempos on y off.
Muchas gracias por la ayuda!
Miguel
el 04-14-2015 02:00 PM
Hola Miguel,
No entiendo muy bien con que quieres comunicar tu actual código ¿Sería con otro componente de código desarrollado en LabVIEW? Por otro lado ¿Cuál es el hardware específico con el que te quieres comunicar? ¿Es hardware de National Instruments?
Saludos,
AGJ
el 04-14-2015 03:01 PM
Gracias por responder.
Intentare explicarme mejor. El hardware que estoy utilizando es de National Instruments.
Mi sistema se trata de una bomba hidraulica, una fuente de alimentacion a 12V, un transistor y mi ordenador. Simplemente quiero enviar una senal desde el pc al transistor, con ello se me cierra el circuito de fuente de alimentacion y bomba, y por tanto, empieza a funcionar.
Por que utilizo el ordenador? SImplemente lo quiero como herramienta de control, para apagar y encender la bomba desde el ordenador.
La senal digital ya la he conseguido enviar desde el ordenador, he conseguido visualizarla a traves de un osciloscopio.
Ahora mi problema es otro, deseo que cuando le de a la tecla "run", el codigo de LabView me vaya a un script de MatLab (existe una funcion en MatLab que se llama MatLab script), dicho script da como resultado dos valores que seran el tiempo que quiero que la senal este a 5V (time on) y el tiempo que la senal este a 0V (time off). Una vez la senal haya completado estos tiempos, vuelva a ir al script de MatLab y me vuelva a coger dos valores, y asi sucesivamente.
Como se puede ver, estos valores seran los tiempos que quiero que la bomba hidraulica este funcionando o apagada.
El script de MatLab lo tengo, mis dudas son acerca de como decirle a LabView que quiero que la senal este a 5V, el tiempo on y a 0V el tiempo off. Alguna idea?
Gracias de nuevo.
miguel
el 04-14-2015 04:07 PM
Miguel,
Gracias por los detalles. Sin embargo, aún no me indicaste el modelo del hardware específico que estás utilizando. National Instruments tiene múltiples elementos de hardware, y en función del que estés utilizando cambiará el driver y la forma en que se programa desde LabVIEW. También sería de ayuda si nos pudieras mostrar el código en LabVIEW que tienes desarrollado hasta ahora, para partir de ahí con algunas recomendaciones.
Saludos,
AGJ
el 04-14-2015 06:49 PM
Estoy trabajando con una NI PCI 6731 http://sine.ni.com/nips/cds/view/p/lang/en/nid/11310, la cual esta conectada a un BNC-2110.
El codigo que me genera la senal digital de 5V es el siguiente. Esta adaptado de un ejemplo que encontre para encender un ventilador.
Muchas gracias.
Miguel
el 04-15-2015 09:23 AM
Hola Miguel,
En este caso es una tarjeta DAQ que utiliza el driver de DAQmx. De acuerdo a tu descripción, lo que necesitas generar en este caso es una señal PWM que quieres controlar mediante el tiempo en bajo y alto (o mediante ciclo de trabajo y frecuencia). Existen varios ejemplos en línea para lograr esto, como por ejemplo:
Pulse Width Modulation (PWM) Using NI-DAQmx and LabVIEW:
http://www.ni.com/tutorial/2991/en/
Dynamic Duty Cycle of PWM using Counters with DAQmx Write:
https://decibel.ni.com/content/docs/DOC-30034
En la primera página puedes encontrar la opción para descargarlos en la parte superior derecha de la ventana. Uno de los ejemplos se llama Complete PWM y me parece que se ajusta a tus necesidades (aunque funciona a partir de la frecuencia de la señal y de su ciclo de trabajo).
Saludos,
AGJ
el 04-15-2015 11:13 AM
Muchas gracias AGJ!
Ahora miraré el PWM, estoy bastante seguro que habra alguna forma de indicarle el tiempo bajo y alto.
Si lo consigo sacar, lo colgaré y te lo enseño, asi otros tambien lo podran adoptar de ejemplo.
Saludos,
Miguel
el 04-15-2015 11:32 AM
Efectivamente Miguel. La modificación se encuentra en dos de los VIs. El de la creación de la tarea en el inicio y el de escritura en el ciclo principal. Haznos saber si tienes algún problema implementándolo y con gusto te apoyamos.
Saludos,
AGJ
National Instruments
el 04-16-2015 06:22 PM
Hola de nuevo!
Los ejemplos que me pasate me han sido muy utiles, sin embargo, la senal siempre se envia desde el "Counter". Puedo enviar senales desde los DIO? Mas adelante he de enviar multiples senales (64 senales), sin embargo, mi block (BNC 2110) tiene solo dos counter (Ctr1 i Ctr0). Por eso, me guataria utilizar los DIO en vez del "Counter". Se puede?
el 04-17-2015 11:18 AM
Hola Miguel,
Para ese tipo de ejemplos, estás limitado por la cantidad de contadores de tu tarjeta, que en este caso son 2 (los contadores se encuentran en la tarjeta, no en el bloque conector 2110). La generación del pulso se está efectuando a nivel de hardware que se encarga de escribir en el puerto de salida, y el software solo se encarga de controlar los valores de tiempo que se escriben en el hardware, logrando así la posibilidad de generar señales cuadradas con alta frecuencia y con una gran precisión en el ancho del pulso deseado.
También puedes utilizar DAQmx para generar tareas en las que la temporización es controlada por software y así utilizar todos tus puertos de salida digital. Sin embargo, con esta configuración la frecuencia de tu señal va a estar limitada y perderás considerablemente precisión (en el nivel de los segundos posiblemente). Esto porque ahora será el programa el que escriba directamente a los pines de salida. En el siguiente enlace se discuten estas limitaciones, y además se muestra un ejemplo que puedes considerar como punto de partida:
http://digital.ni.com/public.nsf/allkb/1561D31534F07D608625727900391114
Saludos,
AGJ