You are on page 1of 6

COMUNICACIN TCP/IP

I.

OBJETIVO

El objetivo de realizar esta aplicacin es utilizar la tecnologa de comunicaciones TCP/IP a fin de


compartir informacin en una red LAN.

II. DESARROLLO
Comunicaciones en una RED LAN

EL SERVIDOR
DESCRIPCIN
Este programa genera datos que son enviados por una red local. Los datos son enviados cuando se abre
una conexin por un puerto especificado desde otro programa (cliente). Los datos que se envan pueden
ser datos de una seal senoidal, cuadrada o aleatoria a peticin del cliente. Este VI termina su ejecucin
si luego de 10 segundos no se detecta ninguna conexin.

PANEL FRONTAL
El panel frontal del servidor debe lucir de la siguiente manera:

Asegrese que el control port sea de tipo entero sin signo V16 y que el nmero de puntos sea entero tipo
I32. El control de amplitud modifica las seales senoidal y cuadrada, mientras que la frecuencia y duty
cycle aplican exclusivamente a la seal cuadrada. Adicionalmente se indica el tipo de seal solicitado y la
direccin del cliente.

Inserte el bloque TCP Listen.vi, el cual crea un escucha para aceptar una conexin TCP por el
puerto que se indica. El port ser determinado desde el panel frontal mediante el control
numrico, y el tiempo de espera (timeout) para la conexin, ser una constante de 10000 ms.

El cableado ser el siguiente:

Cree un Case Structure como se muestra en la figura:

La entrada al case (?) Ser provista por el cliente. Tendremos 3 casos (0, 1, 2)
correspondiente a cada una de las seales solicitadas por el cliente. Para el caso 0, se ha colocado la
generacin de seal cuadrada.
Para el caso 1, coloque dentro un Sine Pattern

Para el caso 2, coloque dentro el bloque de seal aleatoria.

Dentro del case se ha considerado el indicador tipo string Signal requested, para indicar la seal que
se est emitiendo en un cierto momento. Para poder escribir el mensaje en cada instancia del case, se
debe crear una variable local en modo de escritura para este indicador (click derecho sobre el indicador,
Create local variable).
Coloque el bloque TCP Read

Este bloque permite recibir datos de una conexin TCP. Los puntos a conectar en este bloque
son la conexin ID que viene del bloque de escucha, el nmero de bytes que se debe recibir y a la
salida se obtiene los datos en formato string. Tras aplicar este bloque de lectura, se consigue conocer la
seal requerida por el cliente.

Coloque el bloque TCP Write

Este bloque enva datos a una conexin TCP. Los puntos a conectar en este bloque son la conexin ID
que viene del bloque de escucha y la data que se desea enviar data in como una cadena. Notar que se
necesita dos de estos bloques para enviar, en primer lugar, el tamao de la data que se enva y luego, la
data propiamente dicha.
Puesto que los datos entregados por el case son de valor numrico, estos deben ser convertidos
en una cadena de caracteres (string) con el bloque Type Cast:

Una vez convertida en string la data a transmitir, se obtiene el tamao de la data con el bloque
String Length:

Esta longitud es transmitida por el bloque TCP Write, para luego comenzar con el envo de la data
convertida en string con una nueva llamada a TCP Write. Las conexiones, hasta este punto, son
como se muestran en la figura:

Notar que se ha agregado un temporizador de 100 milisegundos.


El lazo while se incorpora para poder hacer capturas continuas sin cerrar el canal de
comunicacin. La condicin de parada del lazo se ver afectada por el estado del botn stop o por la
produccin de algn tipo de error de comunicacin (Unbundle By Name). Para considerar las dos
posibles fuentes de error, se emplea un OR lgico para detener el lazo.

A la salida del while loop se debe cerrar la conexin del puerto. Para ello usamos el bloque Close
connection una vez que el dato ha sido enviado.

Finalmente, el diagrama de bloques resulta como sigue:

EL CLIENTE
DESCRIPCIN
Este programa se encarga de recibir la data que es enviada por el programa que genera datos
(servidor) usando la red local. Para ello deber abrir una conexin por el puerto especfico, colocar la
direccin del servidor y elegir la seal que desea capturar. Una vez recibida la data, esta es visualizada
en pantalla en una grfica.

A. PANEL FRONTAL
En el panel frontal se debe colocar un numeric control para indicar el port de conexin, un string
para indicar la direccin o nombre del servidor, un Text Ring para seleccionar la seal que se desea
(click derecho, Edit Items) y un Waveform Chart para visualizar la data recibida (configure Update
Mode como Scope Chart cuando ejecute el programa). Tambin coloque un botn de stop para terminar
la ejecucin del VI. El panel frontal debe lucir como sigue:

B. DIAGRAMA DE PROGRAMACIN
Lo primero que debemos hacer es abrir una conexin TCP por un puerto especfico. El puerto ser el
canal de comunicacin lgica por donde el servidor enviar datos al cliente. Ello lo realizamos con el
bloque TCP Open Connection.

Colocaremos la direccin del servidor que viene de un control del panel frontal y el nmero de port
que tambin viene de un control del panel frontal como se muestra:

Una vez establecido el canal de comunicacin, el cliente le enva al servidor el cdigo de la seal
que desea obtener. Luego de esto, el cliente recibe la informacin de cantidad de datos que le va a
enviar, para posteriormente recibir la integridad de datos. Esto se muestra en el diagrama con el bloque
de lectura y un tipo array definido en el Type Cast.
El diagrama de bloques del cliente resulta como sigue:

Se debe poder comprobar que el cliente tiene el control de seleccin de seal, usando el control Text
Ring y que la comunicacin se mantiene hasta que el botn de parada se accione. Slo en el servidor se
puede modificar los parmetros de las seales generadas como amplitud o frecuencia. Este VI puede
modificarse para que un servidor enve datos correspondientes a seales de proceso adquiridas con una
tarjeta DAQ a los nodos clientes que comparten su red local con fines de supervisin y registro de
informacin.

You might also like