Contenido principal

TCP/IP Receive

Recibir datos a través de la red TCP/IP desde una máquina remota especificada

  • 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 y la inicialización ocurren una vez al inicio de la ejecución del modelo. El bloque adquiere datos en modo de bloqueo o en modo sin bloqueo durante el tiempo de ejecución del modelo. Utilice el bloque TCP/IP Receive para leer datos de transmisión a través de una red TCP/IP. Este bloque sólo funciona como cliente TCP/IP y no se puede utilizar como servidor TCP/IP.

Este bloque no tiene puertos de entrada. Tiene uno o dos puertos de salida dependiendo de si selecciona el modo de bloqueo o no bloqueo. Si selecciona el modo de bloqueo, el bloque tiene un puerto de salida, Data, correspondiente 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 del búfer. En el modo sin bloqueo, el puerto Status indica si el bloque ha recibido datos nuevos. Si el puerto Status muestra 1, hay nuevos datos disponibles y si el puerto Estado muestra 0, no hay nuevos datos disponibles.

Otras funciones admitidas

  • El bloque TCP/IP Receive admite el uso del modo Acelerador Simulink® y del Acelerador Rápido. Esta función acelera la ejecución de los modelos Simulink.

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

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

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

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

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

Dependencias

Para habilitar este puerto, anule la selección del 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 una conexión a la dirección remota y al puerto especificados es válida.

Tamaño de los datos de salida o la cantidad de valores que se leerán en cada paso de tiempo de simulación. Este parámetro se especifica como escalar o vector. Los datos no incluyen los valores del terminador.

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 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 los datos en 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 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, 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, base 10, 8 o 16

Número de punto flotante

%f

Los campos de punto flotante pueden contener cualquiera de los siguientes (sin distinguir 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, configure Source Data type en ASCII.

Si se selecciona este parámetro, puede especificar el terminador que indica el final de su bloque de datos. La simulación considera cualquier dato que aparezca antes del terminador como un nuevo bloque de datos. 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, configure Source Data type en ASCII.

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

La matriz numérica especificada en este parámetro es la representación entera 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 MATLABValor del parámetro
Carácter de control (secuencia de escape)"LF" ("\n")uint8(sprintf('\n'))[10]
Personaje 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: matriz de números enteros
Predeterminado: '10'

Dependencias

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

Orden secuencial en el que se organizan los bytes en valores numéricos más grandes. 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.

Configure el orden de bytes para que coincida con el valor apropiado para su máquina remota antes de recibir datos. Consulte la documentación de su instrumento para obtener información sobre el orden en el 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 tiene la espera de simulación mientras el bloque recibe datos. Cuando hay nuevos datos disponibles, la simulación continúa desde el siguiente paso de tiempo. Anule la selección de la casilla de verificación si no desea que la operación de lectura haga que la simulación espere.

Si habilita el modo de bloqueo, la simulación espera 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 emite un valor de 0.

Si no habilita el modo de bloqueo, la simulación se ejecuta continuamente 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 según si recibió datos nuevos en el paso de tiempo determinado.

Para obtener más información, consulte 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 datos durante cada paso de tiempo de simulación. Este valor es relativo al tiempo real o "de 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, configure 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 Timing in Hardware Interface Models .

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