el 07-30-2013 06:08 AM
Buenas a todos, estoy trabajado con un sensor que se conecta al PC mediante un USB. Este sensor tiene un programa de configuración mediante el cual se pueden ejecutar determinados comandos que permimten, encender luces del mismo o lo que me interesa mandar un comando de lectura de datos y el sensor envía al programa en cuestión los datos que esta leyendo con una frecuencia que se le marca con el comando.
El problema lo tengo por que quiero tener acceso a estos datos del sensor. Estoy intentando dos vías y en ambas estoy atascado, a ver si alguien me puede hechar una mano.
La primera vía que estoy intentando es desde labview, abrir este software de comunicación con el sensor e intentar interactuar con el mismo para poder de forma paralela al software leer los datos del sensor como String mediante LAbview. Con esta solución, puedo abrir el software pero desconozco si existe algún comando o funcion (ActiveX etc...) que se pueda emplear para acceder a campos determinados de un programa externo al que estoy programando en Labview, o si puedo ver de algún modo a los parámetros de este software de configuración que puedo tener acceso desde Labview.
El otro punto que estoy intentando es abrir de forma simultanea una comunicación con el puerto COM donde tengo conectado el sensor de tal forma que pueda ver la comunicación que se produce entre el programa de configuración y el sensor, de esta manera por así decirlo bypasearía la comunicación leyendo cuando me interesa los valores del sensor. El problema que tengo es que el programa de configuración abre la comunicación con el puerto COM y al abrirlo yo obviamente no me deja abrir/leer los datos que quiero. Alguien sabe si esto se puede hacer? o tenido un idea feliz?
Gracias de antemano.
Saludos.
el 07-31-2013 10:11 AM
Hola Gabriel,
Vamos por partes, me pareces que estas en la pista correcta, hay 2 metodos posibles, el primero es usar LabVIEW y VISA para controlar tu dispositivo y olvidarte de usar el software/driver del fabricante, esto puede resultar dificil, ya que necesitas conocer el set de instrucciones, el siguiente articulo te puede ser utilidad:
http://www.ni.com/white-paper/4478/en/
El otro camino seria tratar de utilizar el controlador tu instrumento creado por el fabricante, para eso tienes q revisar si hay DLL´s ya sean construidas en C o en .NET q se puedan llamar para ejecutar comandos. Y ya un poco mas obsolote llamar objetos de ActiveX como mencionas, pero eso dependera de como fue contruido el driver de tu instrumento.
Saludos
Martin
07-31-2013 10:52 AM - editado 07-31-2013 10:55 AM
Hola Gabriel.
Complemento lo indicado por Martin:
1) a través de un protocolo llamado USB TMC (USB Test & Measurement Class). Aquí mayor información.
2) usando el Modo USB RAW. Más información acá.
Problemas que podrías tener al utilizar la configuración USB RAW aquí.
Saludos !!
el 08-01-2013 06:00 AM
Gracias margasan y pcortes.
Después de comunicarme con el fabricante del sensor. Me ha recomendado una configuración del puerto de (Baud Rate: 38400, Stop Bits: 1, Parity Bits: None, Flow Control : RTS / CTS, DTR: On) despues de probar esto con el MAX y hacer un simple VI para comunicarme con el sensor lo he conseguido, mediante la libreria de VISA. Me da la impresión que todo el "secreto" puede ser en el FLOW CONTROL, aunque no termino de entender por que.
Para profundizar algo más en lo que es la programación de la aplicación me gustaría saber si es posible trabajar con eventos con la escritura/lectura en el sensor, quiero decir al mandar un comando de leer sensor, este comienza a enviarme una trama de datos como puedo determinar que ha terminado de enviar datos? para dejar de leer por el puerto? Tal vez me puedan remitir a algún ejemplo de estas características.
De todas formas el "trabajo" más complicado está hecho pues lo complicado era la comunicación.
Gracias!!