Discusiones sobre Productos NI

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

shared variable con wireless

Buenas tardes a todos,
 
Escribo porque quiero realizar una aplicación que consiste en: Un ordenador por un lado, donde le he agregado un dispositivo wireless y tengo un VI. Lo he configurado para que tenga una conexión ad -hoc. Por otro lado, tengo un portatil, donde lo he configurado también como ad- hoc y tiene otro VI. Después, he conectado ambos equipos a través de la conexión ad-hoc, he añadido a cada uno una shared variable con el mismo nombre y he probado para ver si se mandan datos. Por lo visto, no funciona!!
 
Si alguien es tan amable de decirme si me he saltado algunos pasos para que sea posible transmitir datos entre shared varible, escribirme informandome de los pasos.
 
Un saludo a todos
 
Muchas Gracias.
0 kudos
Mensaje 1 de 9
3.883 Vistas
Te sugiero primero pruebes tus programas en una red local (LAN).
 
Saludos,
 
JC
0 kudos
Mensaje 2 de 9
3.877 Vistas

Hola De la Vega, como te dice JCNT es bueno que pruebas que tu programas este corriendo en red local para descartar problemas de programación.

Antes que otra cosa, las variables compartidas si pueden correr en una red Wireless Adhoc, para las variables es invisible si la red es Inalámbrica o inalámbrica siempre y cuando exista una conexión adecuada entre las dos.

Una vez que creaste tu red Adhoc asegúrate que ambas computadoras tengan un IP diferente, pero que se encuentre en la misma subred. Y prueba con Ping (desde ejecutar escribes Ping con la dirección IP) para ver si tienen comunicación.

Una vez que la comunicación a nivel Windows esta funcionando hay que asegurarse que los canales de comunicación de las variables compartidas estén funcionando.  Aquí hay dos posibles fallas que el binding de tus variables este hecho hacia una dirección IP incorrecta (o nombre de computadora incorrecto) o que el firewall de las computadoras este bloqueando las variables.

En la siguiente dirección puedes encontrar la lista de puertos necesarios para que funcionen los programas: ¿Qué Puertos Necesito Abrir en mi Firewall para que Funcione el Software de National Instruments?.

Ahora por ultimo te falta comprobar que estén funcionando. Un ejemplo sencillo es genera un proyecto para cada una de tus computadoras. El proyecto 1 va a ser tu Publisher y el proyecto 2 el suscribe (ahorita las dos están en la misma computadora).

En el proyecto 1 crea tus variables y el programa en forma normal por ejemplo escribe en un ciclo while valores aleatorios a la variable. Y corre el programa o haz deploy de las variables para que las puedas encontrar en el otro proyecto.

En el proyecto 2 genera variables con el mismo nombre que tienes en el proyecto 1 (no es necesario que tengan el mismo nombre pero es mas fácil para no mesclar datos). Cuando configuras las variables selecciona la opción de Bind to Source, después con browse busca la variable del proyecto 1, con el ultimo nombre y selecciónala. Y puedes hacer un programa sencillo por ejemplo que este leyendo la variable. Con esto deberías de tener comunicación en tu proyecto.

Si tienes cualquier otra duda, o esto no funciono no dudes en hacer tu pregunta (y para ganar tiempo anexa tu código o con preguntas mas especificas.
Saludos

 

 

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 3 de 9
3.875 Vistas

Buenas tardes,

Vuelvo a escribir para comentaros que he podido hacer el intercambio de datos entre los dos ordenadores, pero de forma no correcta (creo). Os cuento:

He creado un public en un ordenador y he creado la variable1. Al principio no he chequeado la opción Bind Source. Después, en el otro ordenador, he realizado las mismas operaciones para crear el suscribe y la variable1. En principio, en este último ordenador tampoco he chequeado la opción Bind Source. Bien, esto no me ha funcionado. Por eso, más tarde, he chequeado la opción Bind Source y he puesto el enlace que podéis ver en la primera imagen. Bueno, pues resulta que me da el error de la segunda imagen y por tanto no ha funcionado.

Más tarde, y ya por probar, he quitado el chequeo del Bind Source del suscribe y he chequeado el Bind Source del public haciendo lo mismo que en la primera imagen, pero enlazandolo con el suscribe. El resultado es que sí hay transmisión de datos, pero resulta dos situaciones: la primera es que cuando paro primero el VI public, me sale un error en el suscribe, que podéis ver en la última imagen. La segunda situación es que si paro primero el suscribe, está todo correcto.

Después de todo este rollo (perdonar), me gustaría saber si es posible corregir esos errores que tengo para que sea el suscribe el que se enlace con el public y cuando pare los VI no me de errores.

Muchas gracias

Un saludo

Descargar todos
0 kudos
Mensaje 4 de 9
3.866 Vistas

Hola delavega,

En el caso 1 cuando no tienes ninguno con binding el hecho de que no funcione es el correcto. Esto se debe a que no hay liga entre los dos incluso aunque tu veas que es el mismo nombre a nivel variable (ej: Variable 1) el nombre completo a nivel red incluye el nombre de la librería y la computadora, por lo que no hay ninguna relación y no hay forma de que LabVIEW las una.

Ahora en general no debe de haber ningún problema entre el si ligas de una librería a otra. Aquí el problema que tienes puede ser que las variables las configuraste como write only por eso no te deja leerlas.

Estas haciendo deploy y undeploy programático? o estas accensando las variables compartidas con property nodes?

Estas trabajando ahorita en 2 computadoras o en una sola?

Puedes probar generar otra variable en una librería nueva y probarlo (en caso de que por alguna razón este dañada o restringida la variable por algún programa?

Saludos



Mensaje editado por BeCeGa
Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 5 de 9
3.815 Vistas

Buenos días,

Creo que el problema que tenía, es que en el ordenador que actua como public, tenía un suscribe, de las pruebas que había hecho para comprobar si funcionaba las shared variables en un mismo ordenador. Entonces, y no se por qué, en el ordenador que actuaba como suscribe, enlazaba (binding) al public, pero me salía un error de que no encontraba al suscribe(del otro ordenador que actua como public).

Lo que hice es borrar el suscribe de prueba, que tenía en el ordenador que actua como public, y de esta forma, el ordenador que actúa como suscribe, sí que pudo enlazar correctamente.

Realizare las mismas pruebas, pero intercambiando entre ordenadores la opción public y suscribe, porque necesito que sea el public el que pare las ejecuciones de los dos VI.

De todas formas, muchas gracias por vuestra ayuda. Prestaís un servicio muy bueno y constante, y si tengo cualquier duda, ya se a quien preguntar.

Un saludo para todos.

0 kudos
Mensaje 6 de 9
3.807 Vistas

   Hola amigo suena interesante tu proyecto, yo estoy tratrando de hacer algo parecido al tuyo, solo me kedan unas dudas.

¿Que tipo de variables transmites y recibes, (yo tengo k manejar numericas y boolenanas)? y otra muy inmportabte seria

¿Como le hiciste para k labview te mandara los datos por la red ad hoc (k modificaciones), yo actualmente tengo mi proyecto con el k mando los datos hacia un cliente por puerto Ethernet y funciona ok, ahora solo me falta transmitirlos por Wifi por la red Ad hoc.

   Espero me puedas sacar de esa duda o si pudieras mandarma tu VI seria mucho mejor, saludos y gracias de antemano 

   Leoo

   Mexico

0 kudos
Mensaje 7 de 9
3.505 Vistas

Hola,

 

Según mis conocimientos, en las propiedades de las shared variable, puedes configurar el tipo de dato que mandas. Yo también tengo booleanas y numéricos, y las transmite con ese formato.

Para que te mande los datos a través de ad-hoc, tienes que crearte una subred entre los dos ordenadores, comprobar que te funciona la red haciendo ping entre ellos, tener en cuenta que para que te funcione, debes de deshabilitar los firewall de cada ordenador, y después, podrás comprobar en la ventan de popiedades de las shared variables->bind to source->browser, que te aparece automáticamente el enlace del otro ordenador.También, tienes que tener en cuenta que tienes que hacer el deploy de las librerías que contienen las variables, para que se actualicen y aparezcan automáticamente.

 

Espero haberte ayudado

 

un saludo 

0 kudos
Mensaje 8 de 9
3.491 Vistas

Se me olvidaba comentarte, que estos pasos son lo mismo para una red wi-fi. Tienes que hacer lo mismo que si configuras una red ethernet, pero teniendo en cuenta que los dos ordenadores esten visibles el uno y el otro.

 

Saludos

0 kudos
Mensaje 9 de 9
3.490 Vistas