Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la versión original en inglés.

TCP/IP Receive

Recibir datos a través de la red TCP/IP desde una máquina remota específica.

  • TCP/IP Receive block

Bibliotecas:
Instrument Control Toolbox

Descripción

El bloque TCP/IP Receive configura y abre una interfaz a la dirección remota especificada utilizando el protocolo TCP/IP. La configuración e inicialización se realizan una sola vez, al inicio de la ejecución del modelo. El bloque adquiere datos en modo síncrono o asíncrono durante la ejecución del modelo. Utilice el bloque TCP/IP Receive para leer datos en tiempo real a través de una red TCP/IP. Este bloque funciona únicamente como cliente TCP/IP y no puede utilizarse como servidor TCP/IP.

Este bloque no tiene puertos de entrada. Dispone de uno o dos puertos de salida, dependiendo de si se selecciona el modo de bloqueo o el modo sin bloqueo. Si selecciona el modo de bloqueo, el bloque tendrá un puerto de salida, Data, que corresponde a los datos que recibe. Si no selecciona el modo de bloqueo, el bloque tiene dos puertos de salida, Data y Status.

Este bloque utiliza un búfer FIFO (primero en entrar, primero en salir) para recibir datos. En cada paso de tiempo, el puerto Data devuelve los valores solicitados desde el búfer. En modo sin bloqueo, el puerto Status indica si el bloque ha recibido nuevos datos. Si el puerto Status muestra 1, hay nuevos datos disponibles y si el puerto Status muestra 0, no hay nuevos datos disponibles.

Otras características admitidas

  • El bloque TCP/IP Receive admite el uso de los modos Accelerator y Rapid Accelerator de Simulink®.. Esta función acelera la ejecución de los modelos de Simulink.

  • El bloque TCP/IP Receive admite el uso de referencias de modelo. Esta función permite que su modelo incluya otros modelos de Simulink como componentes modulares.

  • El bloque TCP/IP Receive admite la generación de código C/C++. Esta función permite generar código C y C++ usando Simulink Coder™.

Para obtener más información sobre estas características, consulte la documentaciónSimulink.

Ejemplos

Puertos

Producción

expandir todo

Datos recibidos por el bloque desde la dirección remota, devueltos como un vector, matriz o arreglo.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Estado de disponibilidad de nuevos datos, devuelto como un 1 lógico (true) o 0 (false). Si este puerto devuelve 1, hay nuevos datos disponibles para leer.

Dependencias

Para habilitar este puerto, desactive el parámetro Enable blocking mode.

Tipos de datos: Boolean

Parámetros

expandir todo

Dirección IP o nombre del servidor TCP/IP del que desea recibir datos.

Uso programático

Parámetro de bloque: Host
Tipo: vector de caracteres, cadena

Puerto remoto en el servidor TCP/IP al que desea conectarse, especificado como un número del 1 al 65535.

Uso programático

Parámetro de bloque: Port
Tipo: vector de caracteres, cadena
Valores: 1 a 65.535
Predeterminado: '80'

Haga clic en este botón para comprobar si la conexión a la dirección remota y al puerto especificados es válida.

Tamaño de los datos de salida, o el número de valores que se leerán en cada paso de tiempo de la simulación. Este parámetro se especifica como un escalar o un vector. Los datos no incluyen los valores de terminación.

Uso programático

Parámetro de bloque: DataSize
Tipo: vector de caracteres, cadena
Valores: vector
Predeterminado: '[ 1, 1 ]'

Tipo de datos que el bloque recibe de la dirección remota, especificado como un tipo de datos de MATLAB.

Este tipo de datos debe coincidir con el tipo de datos de la dirección remota. No puede utilizar este parámetro para cambiar el tipo de datos de la dirección remota.

Uso programático

Parámetro de bloque: DataType
Tipo: vector de caracteres, cadena
Valores: 'single' | 'double' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'ASCII'
Predeterminado: 'uint8'

Este parámetro define el formato de los datos de cadena recibidos. Puede utilizar los siguientes especificadores de conversión o una combinación de ellos.

Nota

Si genera código C/C++ usando Simulink Coder, solo puede usar un único especificador de conversión.

Tipo de campo numéricoEspecificador de conversiónDetalles

Entero, con signo

%d

Base 10

%i

Los valores de los datos determinan la base:

  • El valor predeterminado es la base 10.

  • Si los dígitos iniciales son 0x o 0X, entonces los valores son hexadecimales (base 16).

  • Si el dígito inicial es 0, entonces los valores son octales (base 8).

%ld o %li

Valores de 64 bits, en base 10, 8 o 16.

Entero, sin signo

%u

Base 10

%o

Base 8 (octal)

%x

Base 16 (hexadecimal)

%lu, %lo, %lx

Valores de 64 bits, en base 10, 8 o 16.

Número de punto flotante

%f

Los campos de punto flotante pueden contener cualquiera de los siguientes caracteres (sin distinción entre mayúsculas y minúsculas): Inf, -Inf, NaN o -NaN.

%e

%g

Uso programático

Parámetro de bloque: ASCIIFormatting
Tipo: vector de caracteres, cadena
Valores: '%d' | '%i' | '%ld' | '%li' | '%u' | %o' | '%x' | '%lu' | '%lo' | '%lx' | '%f' | '%e' | '%g'
Predeterminado: '%f'

Dependencias

Para habilitar este parámetro, establezca Source Data type en ASCII.

Si se selecciona este parámetro, puede especificar el terminador que indica el final del bloque de datos. La simulación considera como un nuevo bloque de datos cualquier dato que aparezca antes del terminador. Los datos del terminador no se envían al puerto de salida. Este terminador debe coincidir con el terminador de los datos que está leyendo desde su máquina remota.

Si selecciona Custom Terminator, puede especificar su propio valor de terminador.

Uso programático

Parámetro de bloque: Terminator
Tipo: vector de caracteres, cadena
Valores: 'CR' | 'LF' | 'CR/LF' | 'LF/CR' | 'Custom terminator'
Predeterminado: 'LF'

Dependencias

Para habilitar este parámetro, establezca Source Data type en ASCII.

Terminador personalizado que indica el final del bloque de datos. La simulación considera como un nuevo bloque de datos cualquier dato que aparezca antes del terminador. Los datos del terminador no se envían al puerto de salida.

El arreglo numérico especificado en este parámetro es la representación de entero uint8 de los caracteres ASCII correspondientes. La forma exacta de este parámetro depende del tipo de carácter ASCII.

Tipo de carácter ASCIIEjemplo de carácter ASCIIComando de MATLABValor del parámetro
Carácter de control (secuencia de escape)"LF" ("\n")uint8(sprintf('\n'))[10]
Carácter especial"#"uint8('#')[35]
Numérico"81"uint8('81')[56 49]
Alfabeto"End"uint8('End')[69 110 100]

También puede especificar este parámetro utilizando la representación hexadecimal de los caracteres ASCII.

Uso programático

Parámetro de bloque: CustomTerminator
Tipo: vector de caracteres, cadena
Valores: arreglo de enteros
Predeterminado: '10'

Dependencias

Para habilitar este parámetro, establezca Terminator en Custom terminator.

Orden secuencial en el que los bytes se organizan en valores numéricos mayores. Si el orden de bytes es little-endian, entonces el primer byte se organiza en la primera dirección de memoria en el paquete TCP/IP recibido. Si el orden de bytes es big-endian, entonces el último byte se organiza en la primera dirección de memoria en el paquete TCP/IP recibido.

Antes de recibir datos, configure el orden de bytes para que coincida con el valor apropiado para su máquina remota. Consulte la documentación de su instrumento para obtener información sobre el orden en que almacena los bytes.

Uso programático

Parámetro de bloque: ByteOrder
Tipo: vector de caracteres, cadena
Valores: 'little-endian' | 'big-endian'
Predeterminado: 'big-endian'

Este parámetro hace que la simulación espere mientras el bloque recibe datos. Cuando se dispone de nuevos datos, la simulación continúa a partir del siguiente paso de tiempo. Desmarque la casilla si no desea que la operación de lectura genere una pausa en la simulación.

Si habilita el modo de bloqueo, la simulación esperará a que los datos solicitados estén disponibles. En cada paso de tiempo, el modelo espera hasta el tiempo especificado por el parámetro Timeout. Si no se reciben datos dentro de este tiempo, el bloque genera un valor de 0.

Si no habilita el modo de bloqueo, la simulación se ejecuta de forma continua y el bloque tiene dos puertos de salida, Status y Data. El puerto Data contiene el conjunto de datos solicitado en cada paso de tiempo. El puerto Status contiene 0 o 1 dependiendo de si recibió nuevos datos en el paso de tiempo dado.

Para obtener más información, consulte la documentación Enable Blocking Mode in Receive and Send Blocks.

Uso programático

Parámetro de bloque: EnableBlockingMode
Tipo: vector de caracteres, cadena
Valores: 'on' | 'off'
Predeterminado: 'on'

Cantidad de tiempo en segundos que el modelo espera a que lleguen los datos durante cada paso de tiempo de la simulación. Este valor es relativo al tiempo real o al tiempo que marca el reloj de pared.

Uso programático

Parámetro de bloque: Timeout
Tipo: vector de caracteres, cadena
Valores: escalar positivo
Predeterminado: '10'

Dependencias

Para habilitar este parámetro, establezca Enable blocking mode en on.

Tiempo de muestreo del bloque durante la simulación. Esta es la velocidad a la que se ejecuta el bloque durante la simulación. Para obtener más información, consulte la documentación Sincronización en modelos de interfaz de hardware.

Uso programático

Parámetro de bloque: SampleTime
Tipo: vector de caracteres, cadena
Valores: numérico positivo
Predeterminado: '0.01'

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2007b

Consulte también