Measurement Studio for VC++

cancel
Showing results for 
Search instead for 
Did you mean: 

Interfaz Visual C++ con Labview

Saludos,

 

Tengo el siguiente problema y espero me puedan ayudar,

 

Tengo un programa en Visual C++ que controla una tarjeta de adquisicion de datos (PCI 6534) para adquirir la data dandole un pre procesamiento y almacenandola en archivos de 20 Mb, ahora...tengo un programa en Labview 8.2 que coje este archivo y se encarga de hacer todo el procesamiento y visualizacion de esta data, el problema que tengo es el siguiente, Todo esta bien, pero no puedo cojer un archivo que esta siendo almacenado en ese instante de tiempo (aprox 2 min.)lo cual me genera un desfasaje de 2 min para tratar de visualizar mi data en tiempo real fuera del tiempo de procesamiento propio de mi sistema. Lo que quiero hacer es una interfaz entre Visual C++ y labview, que visual c++ ya no me almacene datos sino los pase defrente a labview, intente mediante una dll, pero labview no reconoce (mi data es un vector de 100 000 datos, es decir se envia la data de 100 000 en 100 000) debe ser por que estan en distintas posiciones de memoria.(ambos programas trabajando al mismo tiempo y en la misma pc)

Investigue y encontre los pipes (tuneles)los cuales me generan un buffer al que puedo acceder de otro programa para cojer el bloque de datos que me mandan pero no he encontrado informacion en labview, tambien el uso de memoria compartida pero tampoco he encontrado informacion en labview, asi que si alguien pudiera decirme como puedo cojer datos desde una memoria compartida hecha en visual c++ con labview o aplicar pipe con labview u otro metodo para interfazar estos dos programas estaria muy agradecido.

0 Kudos
Message 1 of 4
(7,485 Views)

Que tal Ruben,

 

Existen varias maneras de pasar datos entrer C++ y LabVIEW, pero en mi opinion lo mas facil es modificar el codigo que tienes para que funcione como lo indicas. Al crear un archivo, se puede definir quien tiene permiso de abrir el archivo mientras se este usando.La implementacion depende de que funciones estes utilizando para abrir el archivo, pero casi todas las interfaces de archivo de Windows te permited abrir un archivo sin bloquear el acceso a otros procesos. 

 

Una vez que abres el archivo con permisos compartidos, puedes escribir un bloque de datos, hace un "flush" para asegurarse que los datos este en disco (y no solo en cache), y entoces el proceso de LabVIEW puede estar checando el tamaño del archivo para ver si hay datos nuevos y leerlos. Los detalles de la llamada para "flush" dependen tambien de tu implementacion. 

 

Espero que esta informacion sea de utilidad. 

 

Juan Carlos

0 Kudos
Message 2 of 4
(7,474 Views)

Saludos Juan Carlos,

 Gracias por tu respuesta, como dijiste hice un programa donde puedo acceder desde labview al archivo al mismo tiempo que éste está almacenando data; por otra parte (en paralelo) estoy programando la NI DAQ para migrar todo a LabVIEW y ahi medirè tiempos, gracias de nuevo....

0 Kudos
Message 3 of 4
(7,442 Views)

Que bueno que ya esta funcionando, no creo que sea muy dificil pasa el codigo de adquisicio a LabVIEW.

 

Suerte con tu proyecto.

 

Juan Carlos

0 Kudos
Message 4 of 4
(7,428 Views)