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.

Discusiones sobre Productos NI

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

Generar una señal discreta de 0-5V dado el tiempo high y low

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

0 kudos
Mensaje 1 de 10
5.316 Vistas

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

0 kudos
Mensaje 2 de 10
5.290 Vistas

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

 

 

0 kudos
Mensaje 3 de 10
5.287 Vistas

 

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

0 kudos
Mensaje 4 de 10
5.283 Vistas

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

0 kudos
Mensaje 5 de 10
5.281 Vistas

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

0 kudos
Mensaje 6 de 10
5.269 Vistas

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

0 kudos
Mensaje 7 de 10
5.266 Vistas

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

0 kudos
Mensaje 8 de 10
5.263 Vistas

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?

 

 

 

0 kudos
Mensaje 9 de 10
5.250 Vistas

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

0 kudos
Mensaje 10 de 10
5.238 Vistas