Discusiones sobre Productos NI

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

Problemas con la conexión de NI-DAQ 6009

Buenos Días

Estoy trabajando actualmente con una DAQ 6009 para un sistema de prueba bajo presión hidrostática. Con esto yo quiero hacer un monitoreo de la presión de prueba durante todo el ciclo de trabajo, la cual inicia en cero y llega hasta los 3000 psi (esto varía dependiendo del proceso). Cuento con un manómetro análogo y presostato digital el cual me da una salida en milivoltaje. Este presostato lo tengo conectado a una entrada análoga de la tarjeta. La otra conexión fisica que tengo a la tarjeta es un relevador conectado al botón de la consola que se usa para iniciar la prueba, el cual ya en el software me da la habilitación del programa para comenzar la lectura.

La captura de datos la hago con el módulo de lectura de la DAQ, la cual estará recibiendo valores en mV. Esta señal la paso por un bloque de Scaling and Mapping con una interpolación ya definida para asignar cada valor de milivoltaje a un valor en PSI y de ahí se grafica. Lo demás en el programa son validaciones de datos y escritura de los datos capturados a una base de datos en red.

Ahora, el problema es que el programa me muestra la gráfica hasta que termina la prueba, y me gustaría que pueda irla mostrando al momento de irse capturando, no se si haya manera de hacer esto.

Otro detalle es que la señal que llega del presostato (mV) trae demasiado ruido, debido a la sensibilidad del transductor que tiene el dispositivo, sumado a la turbulencia que genera el agua al momento de la prueba. Habrá alguna forma de poder presentar una gráfica con solamente la línea de tendencia o valores promedio generales? porque para motivos de auditoría me puede afectar el hecho de que la grafica no se muestra en una presión estable, siendo que el manómetro analogo conectado también al sistema si lo está. La señal la he intentado pasar por algunos filtros pero no resuelve mucho ese ruido.

Y por último, el programa se deja corriendo, pero en sí la operación de lectura sólo se realiza durante las pruebas, que son aproximadamente cada 2 minutos. Mientras el programa se encuentra en standby llega un momento en el que pierde la conexión con la tarjeta. Lo que hemos estado haciendo es desconectar el cable USB y volverlo a conectar, restaurando la conexión, con lo cual el prograa vuelve a correr normalmente. Esto pasa muy seguido, así que quisiera saber si alguien me pudiera asistir en estos problemas.

 

Muchas Gracias

Adjunto imágenes del panel frontal y del diagrama de bloques.

 

Front Panel.PNG

 

Block Diagram.PNG

0 kudos
Mensaje 1 de 2
3.552 Vistas

Buenos días imtalbert,

 

Estuve revisando tu código, encontré vairos puntos donde podemos mejorarlo.

 

Primero que nada, es recomendable que no tengas cosas encimadas en tu código, ya que así es mucho más facil saber que es lo que está pasando. Otra cosa que puedes hacer para que tu código se haga más pequeño es todos tus íconos dando click derecho y quitar la palomita donde dice show as an icon.

 

Ahora, sobre el problema del refrescado de tu gráfica, esto es por que lo tienes dentro de un while que no entra en todo momento por tener whiles anidados dentro de un case structure. Cuando en tu case no tienes verdadero a la entrada no se refrescará nada. Te recomendaría ampliamente tener sólo un ciclo while en tu programa, es decir, no tener ciclos anidados por que esto hace que no corra de manera como esperamos.

 

Por lo que entiendo, adquieres una señal cada dos minutos y después lo escribes en tu base de datos.

 

Lo ideal sería utilizar una máquina de estados, para que en un estado adquirieras tus datos y en otro escribieras y finalmente en otro esepraras el tiempo que requieres. Todo esto sin detener tu tarea.

 

Hablando de detener tareas, por el hecho de que detienes tu tarea y luego la vuelves a inicializar y así es que pierdes la conección con la tarjeta USB, ya que como solo la detienes pero no la borras, después cuando quieres inicializar nuevmaente la tarea más adelante ya está ocupado el recurso.

 

Mira, te dejo este link para que le heches un ojo, es sobre la máquina de estados!

 

http://zone.ni.com/devzone/cda/tut/p/id/3024

 

Y finalmente te recomiendo utilizar un ejemplo de DAQmx que ya esté en LV, estos utilizan puros VIs de bajo nivel y entenderas mejor como funcionan para que no te pasen esas cosas de desconexiones.

 

Saludos, y mucho exito.

 

 

Luis Elias
NI VeriStand and HIL Product Manager
0 kudos
Mensaje 2 de 2
3.539 Vistas