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: 

Mostrar variables de un ejecutable escrito en c

Hola,tengo un problema que no sé como resolver.A ver si me podeis ayudar.

Quiero mostrar con labview unas variables de un programa que estará ejecutandose(*.exe)escrito en C.

He leido algo sobre hacer una dll,usar CIN,pero queria saber si labview posee alguna función o característica para hacer esto de una manera más sencilla.

Muchisimas Gracias por adelantado.

0 kudos
Mensaje 1 de 6
3.651 Vistas

Hola javito, cuando tu generas un ejecutable este por lo general tiene sus variables en su propio espacio en memoria, para poder leer las variables de este tienes que generar una forma de comunicarte.

Una opción es que lo conviertas en un servidor de ActiveX o en un ensamble de .net, así lo podrías llamar desde LabVIEW por Active X o . Net

Otra opción es que estés transmitiendo desde tu programa en C los datos por TCP/IP, UDP o Datasocket y desde LabVIEW los recibas. Para ver cómo usar TCP en LabVIEW, hay varios ejemplos que ya estan en Help>>Find Examples.

 

Por último como mencionas una forma común de hacer es generar un DLL y mandarlo a llamar desde LabVIEW, cuando trabajas con DLLs es como si escribieras una función en C y la llamas desde LabVIEW.

En forma adicional si tu programa de C es en LabWindow/CVI, puedes usar variables de Red (CVI) y variables compartidas para la comunicación.

 

Ahora si tu programa de C quieres que corra en forma independiente, y LabVIEW básicamente solo lo este monitoreando las opciones de TCP, y Active X pueden ser las mas útiles.

Saludos

 

 

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 2 de 6
3.641 Vistas

Hola BeCeGa,

¿como puedo convertir mi aplicación en C en servidor ActiveX?¿como puedo enviar las variables por TCP?

Muchas Gracias.

0 kudos
Mensaje 3 de 6
3.624 Vistas

Hola Javito, estas programando en "C" o alguna otra versión como LabWindows CVI, C++, C#?

En internet hay distintos ejemplos de como hacer esto:

TCP/IP Sockets in C: Practical Guide for Programmers

Dependiendo de C que estés utilizando es que tan sencillo te va a ser crear el servidor Active X de tu programa pero también puedes hacerlo al revés, usar LabVIEW como servidor Active X y llamarlo desde C .

Para generar LabVIEW como Active X cuando generes el Ejecutable en las opciones avanzadas esta la opción de Active X

http://digital.ni.com/public.nsf/allkb/AF3523C118BEB9948625694A0073A5E3   

http://forums.ni.com/ni/board/message?board.id=170&message.id=19912&requireLogin=False

 

Puedes darnos mas detalles de que es lo que estas haciendo?

 

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 4 de 6
3.615 Vistas

Hola BeCeGa,

Tengo un programa ejecutable hecho en C con visual studio(con librerias propias) en el cual comunico con una tarjeta de adquisición de datos y capturo varias variables en tiempo real.Lo que quiero es ejecutar la aplicación(*.exe)y mientras está corriendo representar esas variables en labview.

Lo único que había encontrado era hacer una dll y usar call library function o usar code interface node(CIN)pero no sé como usarlo.

Muchas Gracias.

0 kudos
Mensaje 5 de 6
3.612 Vistas

Hola Javito si ests usando Visual Studio la comunicacion es mucho mas facil, puedes usar Variables compartidas en LabVIEW y datasocket en C.

Aqui hay unas ligas que te pueden ayudar:

 

Multiple DataSocket Write with Published Shared Variables in Microsoft Visual C#

Multiple DataSocket Read with Published Shared Variables in Microsoft Visual C# 

Using the LabVIEW Shared Variable 

Saludos
Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 6 de 6
3.607 Vistas