Contenu principal

TCP/IP Receive

Recevoir les données d’une machine distante spécifiée via un réseau TCP/IP

  • 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 via le protocole TCP/IP. La configuration et l’initialisation s’effectuent une seule fois au démarrage de l’exécution du modèle. Le bloc acquiert les données en mode bloquant ou non bloquant pendant le run-time du modèle. Utilisez le bloc TCP/IP Receive pour lire les données en streaming via un réseau TCP/IP. Ce bloc fonctionne uniquement en tant que client TCP/IP. Il ne peut pas être utilisé comme serveur TCP/IP.

Ce bloc ne comporte aucun port 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 bloquant, il a un seul port de sortie, Data, qui correspond aux données qu’il reçoit. Si vous ne sélectionnez pas le mode bloquant, il a deux ports de sortie, Data et Status.

Ce bloc utilise une mémoire tampon FIFO (First In, First Out) pour recevoir les données. À chaque pas de temps, le port Data renvoie les valeurs demandées à partir de la mémoire 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. Si le port Status affiche 0, aucune nouvelle donnée n’est disponible.

Autres fonctionnalités supportées

  • Le bloc TCP/IP Receive supporte l’utilisation des modes Simulink® Accelerator et Rapid Accelerator. Cette fonctionnalité accélère l’exécution des modèles Simulink.

  • Le bloc TCP/IP Receive supporte le référencement de modèles. Cette fonctionnalité permet à votre modèle d’inclure d’autres modèles Simulink en tant que composants modulaires.

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

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

Exemples

Ports

Sortie

développer tout

Données reçues par le bloc à partir de 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

Disponibilité de nouvelles données, renvoyée sous forme de 1 (true) ou 0 (false) logique. Si ce port renvoie 1, de nouvelles données sont disponibles en lecture.

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 dont vous souhaitez recevoir les données.

Utilisation programmatique

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

Port distant sur le serveur TCP/IP auquel vous souhaitez vous connecter, spécifié sous forme de nombre compris entre 1 et 65 535.

Utilisation programmatique

Paramètre de bloc : Port
Type : vecteur de caractères, chaîne de caractères
Valeurs : de 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 en sortie ou nombre de valeurs à lire à chaque pas de temps de la simulation. Ce paramètre est spécifié sous forme de scalaire ou de vecteur. Les données n’incluent pas les valeurs de terminateur.

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é sous forme de type de données MATLAB.

Ce type de données doit correspondre à celui des données de l’adresse distante. Vous ne pouvez pas utiliser ce paramètre pour modifier le type de données de 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 d’entre eux.

Remarque

Si vous générez du code C/C++ avec 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 contenues dans les données déterminent la base :

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

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

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

%ld ou %li

Valeurs 64 bits en base 10, 8 ou 16

Entier non signé

%u

Base 10

%o

Base 8 (octal)

%x

Base 16 (hexadécimal)

%lu, %lo, %lx

Valeurs 64 bits en base 10, 8 ou 16

Nombre à virgule flottante

%f

Les champs à virgule flottante peuvent contenir n’importe laquelle des valeurs suivantes (non sensibles à la 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 précèdent le terminateur comme un nouveau bloc de données. Les données de terminateur ne sont pas envoyées au port de sortie. Le terminateur doit correspondre à celui des données lues depuis la 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 précèdent le terminateur comme un nouveau bloc de données. Les données de terminateur ne sont pas envoyées au port de sortie.

Le tableau numérique spécifié dans ce paramètre est la représentation en nombres entiers uint8 des caractères ASCII correspondants. Le format exact de ce paramètre dépend du type de caractère ASCII.

Type de caractère ASCIIExemple de caractère ASCIICommande MATLABValeur de 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]
Alphabétique"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 de nombres 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 organisés pour former des valeurs numériques plus grandes. Si l’ordre des octets est little-endian, le premier octet est placé dans la première adresse mémoire dans le paquet TCP/IP reçu. Si l’ordre des octets est big-endian, le dernier octet est placé dans la première adresse mémoire dans le paquet TCP/IP reçu.

Configurez l’ordre des octets pour qu’il corresponde à la valeur appropriée pour la machine distante avant de recevoir les données. Consultez la documentation de votre instrument pour plus d’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 met la simulation en attente pendant que le bloc reçoit les données. Lorsque de nouvelles données sont disponibles, la simulation continue à partir du pas de temps suivant. Décochez cette case si vous ne voulez pas que l’opération de lecture mette la simulation en attente.

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

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

Pour plus d’informations, consultez 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'

Délai en secondes pendant lequel le modèle attend de recevoir des données à chaque pas de temps de la simulation. Cette valeur se rapporte au temps réel, ou durée chronométrée.

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.

Pas d’échantillonnage du bloc pendant la simulation. Il s’agit de la fréquence d’exécution du bloc pendant la simulation. Pour plus d’informations, consultez Timing dans les modèles d’interface hardware.

Utilisation programmatique

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

Capacités étendues

développer tout

Historique des versions

Introduit dans R2007b

Voir aussi