Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

TCP/IP Receive

Recevoir des données sur le réseau TCP/IP à partir d'une machine distante spécifiée

  • TCP/IP Receive block

Bibliothèques :
Instrument Control Toolbox

Description

Le bloc TCP/IP Receive configure et ouvre une interface vers l'adresse distante spécifiée à l'aide du protocole TCP/IP. La configuration et l'initialisation se produisent une fois au début de l'exécution du modèle. Le bloc acquiert des données soit en mode bloquant, soit en mode non bloquant pendant l'exécution du modèle. Utilisez le bloc TCP/IP Receive pour lire des données en streaming sur un réseau TCP/IP. Ce bloc fonctionne uniquement comme client TCP/IP et ne peut pas être utilisé comme serveur TCP/IP.

Ce bloc n'a pas de ports d'entrée. Il dispose d'un ou deux ports de sortie selon que vous sélectionnez le mode bloquant ou non bloquant. Si vous sélectionnez le mode de blocage, le bloc dispose d'un port de sortie, Data, correspondant aux données qu'il reçoit. Si vous ne sélectionnez pas le mode de blocage, le bloc dispose de deux ports de sortie, Data et Status .

Ce bloc utilise un tampon premier entré, premier sorti (FIFO) pour recevoir les données. À chaque pas de temps, le port Data renvoie les valeurs demandées à partir du tampon. En mode non bloquant, le port Status indique si le bloc a reçu de nouvelles données. Si le port Status affiche 1, de nouvelles données sont disponibles et si le port Status affiche 0, aucune nouvelle donnée n'est disponible.

Autres fonctionnalités prises en charge

  • Le bloc TCP/IP Receive prend en charge l'utilisation du mode Accélérateur Simulink® et de l'Accélérateur Rapide. Cette fonctionnalité accélère l'exécution des modèles Simulink.

  • Le bloc TCP/IP Receive prend en charge l'utilisation du référencement de modèle. Cette fonctionnalité permet à votre modèle d'inclure d'autres modèles Simulink en tant que composants modulaires.

  • Le bloc TCP/IP Receive prend en charge la génération de code C/C++. Cette fonctionnalité vous permet de générer du code C et C++ en utilisant Simulink Coder™.

Pour plus d'informations sur ces fonctionnalités, consultez la documentation Simulink.

Ports

Sortie

développer tout

Données reçues par le bloc depuis l'adresse distante, renvoyées sous forme de vecteur, de matrice ou de tableau.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Nouvel état de données disponibles, renvoyé sous forme de 1 (true) ou 0 (false) logique. Si ce port renvoie 1, de nouvelles données sont disponibles pour être lues.

Dépendances

Pour activer ce port, désélectionnez le paramètre Enable blocking mode.

Types de données : Boolean

Paramètres

développer tout

Adresse IP ou nom du serveur TCP/IP à partir duquel vous souhaitez recevoir des données.

Utilisation programmatique

Paramètre de bloc: Host
Type: vecteur de caractères, chaîne

Port distant sur le serveur TCP/IP auquel vous souhaitez vous connecter, spécifié sous la forme d'un numéro compris entre 1 et 65535.

Utilisation programmatique

Paramètre de bloc: Port
Type: vecteur de caractères, chaîne
Valeurs: 1 à 65 535
Par défaut: '80'

Cliquez sur ce bouton pour vérifier si une connexion à l'adresse et au port distants spécifiés est valide.

Taille des données de sortie, ou nombre de valeurs à lire à chaque pas de temps de simulation. Ce paramètre est spécifié comme un scalaire ou un vecteur. Les données n'incluent pas les valeurs de terminaison.

Utilisation programmatique

Paramètre de bloc: DataSize
Type: vecteur de caractères, chaîne de caractères
Valeurs: vecteur
Par défaut: '[ 1, 1 ]'

Type de données que le bloc reçoit de l'adresse distante, spécifié comme type de données MATLAB.

Ce type de données doit correspondre au type de données à l'adresse distante. Vous ne pouvez pas utiliser ce paramètre pour modifier le type de données à l'adresse distante.

Utilisation programmatique

Paramètre de bloc: DataType
Type: vecteur de caractères, chaîne de caractères
Valeurs: 'single' | 'double' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'ASCII'
Par défaut: 'uint8'

Ce paramètre définit le format des données de chaîne de caractères reçues. Vous pouvez utiliser les spécificateurs de conversion suivants ou une combinaison de ceux-ci.

Remarque

Si vous générez du code C/C++ à l'aide de Simulink Coder, vous ne pouvez utiliser qu'un seul spécificateur de conversion.

Type de champ numériqueSpécificateur de conversionDétails

Entier, signé

%d

Base 10

%i

Les valeurs dans les données déterminent la base:

  • La valeur par défaut est la base 10.

  • Si les chiffres initiaux sont 0x ou 0X, alors les valeurs sont hexadécimales (base 16).

  • Si le chiffre initial est 0, alors les valeurs sont octales (base 8).

%ld ou %li

Valeurs 64 bits, base 10, 8 ou 16

Entier, non signé

%u

Base 10

%o

Base 8 (octale)

%x

Base 16 (hexadécimal)

%lu, %lo, %lx

Valeurs 64 bits, base 10, 8 ou 16

Nombre à virgule flottante

%f

Les champs à virgule flottante peuvent contenir l'un des éléments suivants (sans distinction de casse): Inf, -Inf, NaN ou -NaN.

%e

%g

Utilisation programmatique

Paramètre de bloc: ASCIIFormatting
Type: vecteur de caractères, chaîne de caractères
Valeurs: '%d' | '%i' | '%ld' | '%li' | '%u' | %o' | '%x' | '%lu' | '%lo' | '%lx' | '%f' | '%e' | '%g'
Par défaut: '%f'

Dépendances

Pour activer ce paramètre, définissez Source Data type sur ASCII .

Si ce paramètre est sélectionné, vous pouvez spécifier le terminateur qui indique la fin de votre bloc de données. La simulation considère toutes les données qui apparaissent avant le terminateur comme un nouveau bloc de données. Les données du terminateur ne sont pas envoyées au port de sortie. Ce terminateur doit correspondre au terminateur des données que vous lisez à partir de votre machine distante.

Si vous sélectionnez Custom Terminator, vous pouvez spécifier votre propre valeur de terminateur.

Utilisation programmatique

Paramètre de bloc: Terminator
Type: vecteur de caractères, chaîne de caractères
Valeurs: 'CR' | 'LF' | 'CR/LF' | 'LF/CR' | 'Custom terminator'
Par défaut: 'LF'

Dépendances

Pour activer ce paramètre, définissez Source Data type sur ASCII .

Terminateur personnalisé qui indique la fin de votre bloc de données. La simulation considère toutes les données qui apparaissent avant le terminateur comme un nouveau bloc de données. Les données du terminateur ne sont pas envoyées au port de sortie.

Le tableau numérique spécifié dans ce paramètre est la représentation entière uint8 des caractères ASCII correspondants. La forme exacte de ce paramètre dépend du type du caractère ASCII.

Type de caractère ASCIIExemple de caractère ASCIICommande MATLABValeur du paramètre
Caractère de contrôle (séquence d'échappement)"LF" ("\n")uint8(sprintf('\n'))[10]
Caractère spécial"#"uint8('#')[35]
Numérique"81"uint8('81')[56 49]
Alphabet"End"uint8('End')[69 110 100]

Vous pouvez également spécifier ce paramètre en utilisant la représentation hexadécimale des caractères ASCII.

Utilisation programmatique

Paramètre de bloc: CustomTerminator
Type: vecteur de caractères, chaîne de caractères
Valeurs: tableau d'entiers
Par défaut: '10'

Dépendances

Pour activer ce paramètre, définissez Terminator sur Custom terminator .

Ordre séquentiel dans lequel les octets sont disposés en valeurs numériques plus grandes. Si l'ordre des octets est little-endian, alors le premier octet est organisé dans la première adresse mémoire du paquet TCP/IP reçu. Si l'ordre des octets est big-endian, alors le dernier octet est organisé dans la première adresse mémoire du paquet TCP/IP reçu.

Configurez l’ordre des octets pour qu’il corresponde à la valeur appropriée pour votre machine distante avant de recevoir des données. Reportez-vous à la documentation de votre instrument pour obtenir des informations sur l’ordre dans lequel il stocke les octets.

Utilisation programmatique

Paramètre de bloc: ByteOrder
Type: vecteur de caractères, chaîne de caractères
Valeurs: 'little-endian' | 'big-endian'
Par défaut: 'big-endian'

Ce paramètre fait attendre la simulation pendant que le bloc reçoit des données. Lorsque de nouvelles données deviennent disponibles, la simulation continue à partir de l’étape de temps suivante. Décochez la case si vous ne souhaitez pas que l'opération de lecture provoque l'attente de la simulation.

Si vous activez le mode blocage, la simulation attend que les données demandées soient disponibles. À chaque pas de temps, le modèle attend jusqu'à la durée spécifiée par le paramètre Timeout. Si les données ne sont pas reçues dans ce délai, le bloc génère une valeur de 0 .

Si vous n'activez pas le mode de blocage, la simulation s'exécute en continu et le bloc dispose de deux ports de sortie, Status et Data. Le port Data contient l’ensemble de données demandé à chaque pas de temps. Le port Status contient 0 ou 1 selon qu'il a reçu de nouvelles données à l'intervalle de temps donné.

Pour plus d'informations, voir Enable Blocking Mode in Receive and Send Blocks .

Utilisation programmatique

Paramètre de bloc: EnableBlockingMode
Type: vecteur de caractères, chaîne de caractères
Valeurs: 'on' | 'off'
Par défaut: 'on'

Durée en secondes pendant laquelle le modèle attend des données à chaque étape de simulation. Cette valeur est relative à l'heure réelle ou à l'heure « horloge murale ».

Utilisation programmatique

Paramètre de bloc: Timeout
Type: vecteur de caractères, chaîne de caractères
Valeurs: scalaire positif
Par défaut: '10'

Dépendances

Pour activer ce paramètre, définissez Enable blocking mode sur on .

Temps d'échantillonnage du bloc pendant la simulation. Il s'agit de la vitesse à laquelle le bloc est exécuté pendant la simulation. Pour plus d'informations, voir Timing in Hardware Interface Models .

Utilisation programmatique

Paramètre de bloc: SampleTime
Type: vecteur de caractères, chaîne de caractères
Valeurs: numériques positives
Par défaut: '0.01'

Capacités étendues

développer tout

Historique des versions

Introduit dans R2007b

Voir aussi