CONEXIÓN TCP/IP ENTRE DOS
ESTACIONES USANDO LABVIEW 7
EXPRESS
Autor: Carlos Fernando Jiménez
Ingeniero electrónico Universidad
Industrial de Santander UIS
[email protected]
Febrero el 2005
a
gráfica
orientado
Establecer una comunicación de red utilizando los
protocolos TCP/IP usando el labview 7 espress se
logra gracias a los vis para comunicación en red
que nos ofrece este ambiente de desarrollo de
programación
la
instrumentación.
Una comunicación de red que use TCP/IP el cual
es un protocolo orientado a conexión y con
control de errores que garantiza la integridad de la
información es
ideal para aplicaciones de
automatización y control, esto unido al entorno de
desarrollo ofrecido por el LabView 7 nos da una
poderosa herramienta para el diseño de sistema de
control y monitoreo remoto tales como las redes
SCADA.
Para comenzar, en primera estancia para realizar
una comunicación TCP/IP deben existir al menos
dos estaciones que van a realizar la comunicación,
una estación pasiva la cual espera por una
conexión entrante y una estación activa la cual
inicia la comunicación realizando una llamada al
numero IP y puerto de la estación pasiva, veamos
a continuación como se logra esta comunicación
con LabView 7.
Estación pasiva
El bloque encargado de esperar por una conexión
TCP/IP se puede encontrar en All functions ->
su nombre es
Comunicación
“TCPlisten.vi” y cuyo
icono se presenta a
continuación
-> TCP y
Figura 1. TCP Listen
Los principales conectores de este bloque son:
ID nos
conecction
La entrada port por medio de la cual se establece
el puerto a través del cual se realizara la
comunicación con la otra estación o dispositivo,
no se debe olvidar que ambas estaciones deben
tener configurado el mismo numero de puerto, la
salida
suministra un
identificador para hacer accesos a esta conexión
una vez establecida, esta salida debe estar
cableada a todos los bloques TCP involucrados en
la comunicación con el fin de garantizar claridad
respecto a cual canal de comunicación usar,
continuamos con la salida remote address la cual
reporta la dirección IP de la estación activa que
inicio la conexión una ves esta a sido establecida,
la salida error out informa de errores surgidos en
el proceso de conexión TCP, finalmente tenemos
la entrada timeout ms por medio de la cual se
establece el lapso de tiempo durante el cual se
esperará por una conexión TCP entrante, si
transcurrido el
tiempo programado no se a
realizado una llamada de otra estación este
conector generará un error.
Estación activa
Como se dijo anteriormente la diferencia entre la
estación activa y la pasiva es que la pasiva espera
por una conexión entrante mientras la activa inicia
una comunicación llamando a una estación pasiva
usando el numero IP y puerto de la estación con la
cual se quiere realizar la comunicación , el bloque
principal que hace a una estación activa es TCP
Open Conection el cual se puede encontrar en All
functions -> Comunicación -> TCP y cuyo icono
se muestra a continuación.
Figura 2.TCP Open Connection
Por medio de la entrada address se configura la
dirección IP de la estación o dispositivo al cual se
esta llamando y la entrada remote port establece el
puerto por el cual se realizara la conexión, la
entrada time out mide el tiempo limite para que
una estación pasiva conteste, finalmente tenemos
las salidas error out y connection ID que tienen
las mismas funciones que para el bloque TCP
Listen.vi
Figura 3 TCP Write
Bloques para leer y escribir
Una vez establecida la conexión los datos pueden
fluir de la estación pasiva a la activa o al revés
este flujo de información se controla con los
bloques TCP Read y TCP Write para recibir y
enviar datos, específicamente por medio del
bloque TCP Write se envían datos de una estación
a otra.
Los conectores principales de TCP Write son:
Connection ID el cual debe ir cableado a la salida
con el mismo nombre del bloque TCP Listen o
TCP Open Connection con el cual se inicio la
comunicación para que se indique cual conexión
se deben utilizar para enviar los datos, por la
entrada data in se ingresa la cadena de caracteres
que se desee enviar, timeout ms vigila que no se
exceda el tiempo máximo que puede transcurrir
mientras la otra estación recibe los datos, en caso
de que este tiempo se exceda la salida error out
generará un mensaje de error, la salida bytes
written indica cuantos bytes se han enviado
satisfactoriamente.
Figura 4. TCP Read
inicio
TCP Read tiene como función recibir datos
enviados desde otra estación, sus principales
conectores son: Connection ID el cual al igual que
en TCP Write debe ir cableado a la salida del
mismo nombre del bloque TCP Listen o TCP
Open Connection con el cual se
la
comunicación para que se indique cual conexión
se debe usar para recibir los datos, en la entrada
bytes to read se programa el numero de bytes que
se esta esperando en esta recepción, timeout ms al
igual que en los vi anteriormente explicados tiene
como función permitir establecer el
tiempo
máximo que se esperará para que se realice la
operación de recepción de datos, error out reporta
los errores ocurridos durante esta operación, la
salida data out retorna
los bytes recibidos
dependiendo del valor de la entrada mode la cual
establece uno de cuatro modos de operación.
Modos de operación de TCP Read
Utilizando la entrada mode se especifica el modo
de recepción de datos, el cual puede tomar uno de
cuatro valores, Standard, Buffered, CRLF o
Immediate:
En el modo Standard el cual es el modo por
defecto, este bloque espera a que todos los bytes
programados en la entrada bytes to read arriben o
a que expire el tiempo establecido con timeout ms
antes de retornar cualquier valor, en caso de que
expire el tiempo establecido se retornarán los
bytes que se alcanzaron a recibir por la salida
data out y se reportara un error.
Cuando se usa el modo Buffered este vi funciona
casi igual que en el modo Standard con la única
diferencia de que en caso de que expire el tiempo
programado y solo se han recibido una parte de
los bytes programados no se retorna ningún byte y
se reporta un error.
En el modo CRLF este vi espera por la cantidad
de bytes programados seguidos por un carácter de
return CR seguido de una alimentación de línea
LF o a que expire el tiempo establecido para la
recepción antes de retornar cualquier valor, en
caso de que se reciban dados sin el carácter return
seguido de la alimentación de línea no se retorna
ningún dato y se reporta un error.
Finalmente en modo Immediate este vi retorna
todos los bytes recibidos en el momento en que
estos arriban, y solo espera que el tiempo
programado expire si no se a recibido ningún
dato.
Configuración de
la estación pasiva
Petición de
conexión.
Nro de puerto?
NO
?
SI
Se establece la
conexión
NO
Expiro el tiempo?
SI
Se reporta un
error
Figura 5. Diagrama de flujo del
establecimiento de conexión en la
estación pasiva
Flujo básico de las rutinas para comunicación
TCP/IP en LabView
de
una
TCP/IP
rutina
en
que
labview,
Se puede decir que hay dos flujos básicos para la
soporte
realización
comunicación
el
establecimiento de
la comunicación y el
intercambio de datos, a continuación se presenta
un diagrama y una breve explicación.
Establecimiento de la comunicación.
La estación pasiva espera el tiempo establecido a
que otra estación inicie una comunicación por el
puerto programado, la estación activa llama a la
estación pasiva y solicita la conexión por un
puerto especifico, si la estación pasiva detecta que
una conexión se esta solicitando a través del
puerto establecido se establece la comunicación y
tanto la estación activa como pasiva queda en
capacidad para enviar y recibir datos, en la figuras
5 y 6 su pueden apreciar los diagramas de flujo
correspondientes a estas operaciones.
Envió de datos o escritura
Cualquiera de las dos estaciones envía un número
de datos determinado, si la estación receptora no
recibe todos los datos y sin errores se reporta un
error en la estación emisora, en la figura 7 se
muestra el diagrama de flujo correspondiente.
Configuración de
la estación activa
Petición de
conexión a la
estación pasiva
Número IP y
Número de
puerto
Conexión
aceptada?
SI
Se establece la
conexión
NO
NO
Expiro el tiempo?
SI
Se reporta un
error
Figura 6. Diagrama de flujo del
establecimiento de conexión en la
estación activa
Cualquiera de las
dos estaciones
conectadas envía
n datos a la otra
estación.
NO
Todos lo datos
llegaron a la
estación
receptora sin
errores?
SI
Operación
exitosa
NO
Expiro el tiempo?
SI
Se reporta un
error
Figura 7. Diagrama de flujo de una
operación de escritura o envío de datos
TCP/IP
Recepción de datos o lectura
Durante una operación de lectura cualquiera de las
dos estaciones que han establecido una conexión
espera por datos, y dependiendo del modo
programado puede actuar de cuatro maneras
diferentes como fue explicado anteriormente, en
la figura 8 se puede apreciar
Comentarios de: Conexión TCP/IP entre dos estaciones usando Labview 7 Express (0)
No hay comentarios