Comunicación TCP/IP básica en LabVIEW

Información general

Este artículo es una introducción a los conceptos básicos de la comunicación TCP/IP. Requiere algunos conocimientos previos sobre LabVIEW. Si usted es un principiante en LabVIEW, consultar primero este Tutorial de LabVIEW podría ayudarlo a comprender mejor este artículo.

Contenido

Protocolo de comunicación TCP

El protocolo de internet (IP), el protocolo de datagramas de usuario (UDP) y el protocolo de control de transmisión (TCP) son las herramientas básicas para la comunicación de red. El nombre TCP/IP proviene de dos de los protocolos más conocidos del conjunto de protocolos de Internet, el Protocolo de Control de Transmisión y el Protocolo de Internet. Con TCP/IP puede comunicarse a través de redes individuales o redes interconectadas (Internet).

La comunicación TCP/IP proporciona una interfaz de usuario simple que oculta las complejidades de garantizar comunicaciones de red confiables. Consulte Usar LabVIEW con TCP/IP y UDP de la Ayuda de LabVIEW para obtener más información sobre cómo funciona la comunicación TCP/IP. 

Utilice las funciones TCP/IP ubicadas en la paleta Functions»Data Communication»Protocols»TCP para la comunicación TCP en LabVIEW. Al igual que con DAQ, el instrumento y la comunicación de E/S de archivos, el proceso implica abrir la conexión, leer y escribir la información y cerrar la conexión.

Con la mayoría de las comunicaciones de E/S, el procesador es siempre el cliente que inicia una conexión con el servidor de la unidad de disco, el servidor de instrumentos externo o el servidor de la tarjeta DAQ. Con las conexiones TCP/IP, una PC puede funcionar como cliente o como servidor. El siguiente diagrama de bloques representa una aplicación cliente que inicia una conexión a un servidor remoto con Conexión Abierta TCP. El servidor, o daemon, escucha las conexiones remotas y responde adecuadamente.

Conexión abierta TCP

Los usuarios de LabVIEW pueden desarrollar aplicaciones personalizadas para la comunicación TCP/IP. El programador es responsable de desarrollar tanto el cliente como el servidor. 

Dado que cualquiera puede iniciar una conexión a un servidor, es posible que desee un control de acceso al servidor. El siguiente diagrama de bloques muestra cómo el servidor utiliza el valor de salida de la dirección remota del TCP Listen VI para determinar si un cliente remoto tiene permiso para acceder al servidor.

TCP Listen VI

Desarrollar aplicaciones de comunicación TCP/IP

La mayoría de las aplicaciones hacen más que escribir y leer un valor. La comunicación es un proceso continuo que involucra protocolo. Por ejemplo, supongamos que un cliente envía los siguientes cuatro comandos por entero de 8 bits al servidor:

1 = adquirir datos y confirmar
2 = enviar datos
3 = obtener estado
4 = cerrar conexión

La siguiente imagen* muestra cómo el servidor recibe estos comandos. Observe que se incluyen las mismas funciones básicas de TCP, pero el código circundante permite conexiones más complejas y una comunicación robusta.

  • Un ciclo While rodea el resto del VI. Esto le permite al VI manejar múltiples conexiones secuenciales sin tener que reiniciar después de que se cierre cada conexión. El VI no puede manejar múltiples conexiones simultáneas. 
  • La estructura externa de la caja determina si se produjo una conexión válida. 

    • Si no se establece una conexión válida, no sucede nada. 
    • Si se produce una conexión válida, el VI ingresa en un ciclo While que lee un byte desde el puerto TCP/IP. Este byte mantiene los comandos del 1 al 4 del cliente.
    • Si la conexión es válida pero no se recibe ningún comando dentro del período de tiempo de espera de lectura, el caso predeterminado de la estructura de caso interna envía un valor VERDADERO a la terminal de continuación del ciclo While interno para mantener la conexión activa.
       
el caso predeterminado de la estructura de caso interna envía un valor VERDADERO


El siguiente diagrama de bloques muestra las otras cuatro cajas de la afirmación de la caja interna. Cada caja maneja un comando específico que el servidor puede enviar. Cada caso envía información a la terminal de continuación, que determina si continuar el ciclo. En particular, la caja Quit siempre devuelve un valor de FALSO. Después de salir del ciclo, el servidor cierra la conexión con el cliente.

el caso Quit siempre devuelve un valor de FALSO el caso Quit siempre devuelve un valor de FALSO
el caso Quit siempre devuelve un valor de FALSOel caso Quit siempre devuelve un valor de FALSO


Este tipo de arquitectura de servidor le permite desarrollar servidores flexibles para los procedimientos de comunicación de red más complejos. Los protocolos que desarrolle pueden ser más complejos que el ejemplo anterior.

* Tenga en cuenta que estas imágenes son de una versión anterior de LabVIEW. Es posible que los colores de los cables de datos y los íconos de función no coincidan con su versión. La estructura del código sigue siendo aplicable.

Ejemplo de TCP/IP en LabVIEW

Was this information helpful?

Yes

No