Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um das englische Original zu sehen.

TCP/IP Receive

Daten über das TCP/IP-Netzwerk von einem angegebenen Remote-Rechner empfangen

  • TCP/IP Receive block

Bibliotheken:
Instrument Control Toolbox

Beschreibung

Der TCP/IP Receive-Block konfiguriert und öffnet eine Schnittstelle zur angegebenen Remote-Adresse unter Verwendung des TCP/IP-Protokolls. Die Konfiguration und Initialisierung erfolgen einmalig zu Beginn der Modellausführung. Der Block erfasst Daten entweder im blockierenden oder im nicht-blockierenden Modus während der Laufzeit des Modells. Verwenden Sie den TCP/IP Receive-Block, um Streaming-Daten über ein TCP/IP-Netzwerk zu lesen. Dieser Block funktioniert nur als TCP/IP-Client und kann nicht als TCP/IP-Server verwendet werden.

Dieser Block besitzt keine Eingangsanschlüsse. Es verfügt über einen oder zwei Ausgänge, je nachdem, ob Sie den blockierenden oder nicht-blockierenden Modus wählen. Wenn Sie den Blockierungsmodus auswählen, verfügt der Block über einen Ausgangsport, Data, der den empfangenen Daten entspricht. Wenn Sie den Blockierungsmodus nicht auswählen, verfügt der Block über zwei Ausgänge, Data und Status.

Dieser Block verwendet einen FIFO-Puffer (First In, First Out) zum Empfangen von Daten. In jedem Zeitschritt gibt der Port Data die angeforderten Werte aus dem Puffer zurück. Im nichtblockierenden Modus zeigt der Port Status an, ob der Block neue Daten empfangen hat. Wenn am Port Status der Wert 1 angezeigt wird, sind neue Daten verfügbar; wird am Port Status der Wert 0 angezeigt, sind keine neuen Daten verfügbar.

Weitere unterstützte Funktionen

  • Der TCP/IP Receive-Block unterstützt die Verwendung des Simulink®-Beschleunigermodus und des Schnellbeschleunigers. Diese Funktion beschleunigt die Ausführung von Simulink-Modellen.

  • Der TCP/IP Receive-Block unterstützt die Verwendung von Modellreferenzierung. Diese Funktion ermöglicht es Ihnen, andere Simulink-Modelle als modulare Komponenten in Ihr Modell einzubinden.

  • Der TCP/IP Receive-Block unterstützt die C/C++ Codegenerierung. Mit dieser Funktion können Sie C und C++ Code mit Simulink Coder™ generieren.

Weitere Informationen zu diesen Funktionen finden Sie in der Simulink-Dokumentation.

Beispiele

Ports

Ausgabe

alle erweitern

Die vom Block von der Remote-Adresse empfangenen Daten werden als Vektor, Matrix oder Array zurückgegeben.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Status der Verfügbarkeit neuer Daten, zurückgegeben als logischer Wert 1 (true) oder 0 (false). Wenn dieser Port 1 zurückgibt, stehen neue Daten zum Lesen bereit.

Abhängigkeiten

Um diesen Port zu aktivieren, deaktivieren Sie den Parameter Enable blocking mode.

Datentypen: Boolean

Parameter

alle erweitern

IP-Adresse oder Name des TCP/IP-Servers, von dem Sie Daten empfangen möchten.

Programmatische Nutzung

Blockparameter: Host
Typ: Zeichenvektor, Zeichenkette

Der Remote-Port auf dem TCP/IP-Server, zu dem Sie eine Verbindung herstellen möchten, angegeben als Zahl von 1 bis 65535.

Programmatische Nutzung

Blockparameter: Port
Typ: Zeichenvektor, Zeichenkette
Werte: 1 bis 65.535
Standard: '80'

Klicken Sie auf diese Schaltfläche, um zu prüfen, ob eine Verbindung zur angegebenen Remote-Adresse und zum angegebenen Port gültig ist.

Ausgabedatengröße bzw. die Anzahl der Werte, die in jedem Simulationszeitschritt gelesen werden sollen. Dieser Parameter wird als Skalar oder Vektor angegeben. Die Daten enthalten keine Terminatorwerte.

Programmatische Nutzung

Blockparameter: DataSize
Typ: Zeichenvektor, Zeichenkette
Werte: Vektor
Standard: '[ 1, 1 ]'

Datentyp, den der Block von der Remote-Adresse empfängt, angegeben als MATLAB-Datentyp.

Dieser Datentyp muss mit dem Datentyp der Daten an der Remoteadresse übereinstimmen. Mit diesem Parameter kann der Datentyp der Daten an der Remoteadresse nicht geändert werden.

Programmatische Nutzung

Blockparameter: DataType
Typ: Zeichenvektor, Zeichenkette
Werte: 'single' | 'double' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'ASCII'
Standard: 'uint8'

Dieser Parameter definiert das Format der empfangenen Zeichenkettendaten. Sie können die folgenden Umrechnungsspezifizierer oder eine Kombination davon verwenden.

Hinweis

Wenn Sie C/C++ Code mit Simulink Coder generieren, können Sie nur einen einzigen Konvertierungsspezifizierer verwenden.

Numerischer FeldtypKonversionsspezifiziererDetails

Ganze Zahl, vorzeichenbehaftet

%d

Basis 10

%i

Die Werte in den Daten bestimmen die Basis:

  • Standardmäßig wird die Basis 10 verwendet.

  • Wenn die Anfangsziffern 0x oder 0X lauten, dann sind die Werte hexadezimal (Basis 16).

  • Wenn die erste Ziffer 0 ist, dann sind die Werte oktal (Basis 8).

%ld oder %li

64-Bit-Werte, Basis 10, 8 oder 16

Ganzzahl, vorzeichenlos

%u

Basis 10

%o

Basis 8 (oktal)

%x

Basis 16 (hexadezimal)

%lu, %lo, %lx

64-Bit-Werte, Basis 10, 8 oder 16

Gleitkommazahl

%f

Gleitkommafelder können folgende Zeichen enthalten (Groß-/Kleinschreibung wird nicht beachtet): Inf, -Inf, NaN oder -NaN.

%e

%g

Programmatische Nutzung

Blockparameter: ASCIIFormatting
Typ: Zeichenvektor, Zeichenkette
Werte: '%d' | '%i' | '%ld' | '%li' | '%u' | %o' | '%x' | '%lu' | '%lo' | '%lx' | '%f' | '%e' | '%g'
Standard: '%f'

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Source Data type auf ASCII.

Wenn dieser Parameter ausgewählt ist, können Sie das Abschlusszeichen angeben, das das Ende Ihres Datenblocks kennzeichnet. Die Simulation betrachtet alle Daten, die vor dem Terminator auftreten, als neuen Datenblock. Die Abschlussdaten werden nicht an den Ausgangsport gesendet. Dieser Terminator muss mit dem Terminator in den Daten übereinstimmen, die Sie von Ihrem Remote-Rechner lesen.

Wenn Sie Custom Terminator auswählen, können Sie Ihren eigenen Terminatorwert angeben.

Programmatische Nutzung

Blockparameter: Terminator
Typ: Zeichenvektor, Zeichenkette
Werte: 'CR' | 'LF' | 'CR/LF' | 'LF/CR' | 'Custom terminator'
Standard: 'LF'

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Source Data type auf ASCII.

Benutzerdefinierter Terminator, der das Ende Ihres Datenblocks anzeigt. Die Simulation betrachtet alle Daten, die vor dem Terminator auftreten, als neuen Datenblock. Die Abschlussdaten werden nicht an den Ausgangsport gesendet.

Das in diesem Parameter angegebene numerische Array ist die uint8-Ganzzahldarstellung der entsprechenden ASCII-Zeichen. Die genaue Form dieses Parameters hängt vom Typ des ASCII-Zeichens ab.

Typ des ASCII-ZeichensBeispiel: ASCII-ZeichenMATLAB-BefehlParameterwert
Steuerzeichen (Escape-Sequenz)"LF" ("\n")uint8(sprintf('\n'))[10]
Sonderzeichen"#"uint8('#')[35]
Numerisch"81"uint8('81')[56 49]
Alphabetisch"End"uint8('End')[69 110 100]

Sie können diesen Parameter auch mithilfe der hexadezimalen Darstellung der ASCII-Zeichen angeben.

Programmatische Nutzung

Blockparameter: CustomTerminator
Typ: Zeichenvektor, Zeichenkette
Werte: Ganzzahl-Array
Standard: '10'

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Terminator auf Custom terminator.

Sequenzielle Reihenfolge, in der Bytes zu größeren numerischen Werten angeordnet werden. Bei der Byte-Reihenfolge little-endian befindet sich das erste Byte an der ersten Speicheradresse im empfangenen TCP/IP-Paket. Bei der Byte-Reihenfolge big-endian befindet sich das letzte Byte an der ersten Speicheradresse im empfangenen TCP/IP-Paket.

Konfigurieren Sie die Byte-Reihenfolge so, dass sie dem entsprechenden Wert für Ihren Remote-Rechner entspricht, bevor Sie Daten empfangen. Informationen zur Reihenfolge, in der das Gerät die Bytes speichert, finden Sie in der Dokumentation Ihres Geräts.

Programmatische Nutzung

Blockparameter: ByteOrder
Typ: Zeichenvektor, Zeichenkette
Werte: 'little-endian' | 'big-endian'
Standard: 'big-endian'

Dieser Parameter bewirkt, dass die Simulation wartet, bis der Block Daten empfängt. Sobald neue Daten verfügbar sind, wird die Simulation ab dem nächsten Zeitschritt fortgesetzt. Deaktivieren Sie das Kontrollkästchen, wenn Sie nicht möchten, dass die Simulation durch den Lesevorgang unterbrochen wird.

Wenn Sie den Blockierungsmodus aktivieren, wartet die Simulation, bis die angeforderten Daten verfügbar sind. In jedem Zeitschritt wartet das Modell bis zu einer Zeitspanne, die durch den Parameter Timeout angegeben wird. Werden innerhalb dieser Zeit keine Daten empfangen, gibt der Block den Wert 0 aus.

Wenn Sie den Blockierungsmodus nicht aktivieren, läuft die Simulation kontinuierlich und der Block verfügt über zwei Ausgänge, Status und Data. Der Port Data enthält in jedem Zeitschritt den angeforderten Datensatz. Der Port Status enthält 0 oder 1, je nachdem, ob er im jeweiligen Zeitschritt neue Daten empfangen hat.

Weitere Informationen finden Sie unter Enable Blocking Mode in Receive and Send Blocks.

Programmatische Nutzung

Blockparameter: EnableBlockingMode
Typ: Zeichenvektor, Zeichenkette
Werte: 'on' | 'off'
Standard: 'on'

Zeit in Sekunden, die das Modell während jedes Simulationszeitschritts auf Daten wartet. Dieser Wert bezieht sich auf die reale Zeit bzw. die Uhrzeit auf der „Wanduhr“.

Programmatische Nutzung

Blockparameter: Timeout
Typ: Zeichenvektor, Zeichenkette
Werte: Positiv-Skalar
Standard: '10'

Abhängigkeiten

Um diesen Parameter zu aktivieren, setzen Sie Enable blocking mode auf on.

Abtastzeit des Blocks während der Simulation. Dies ist die Geschwindigkeit, mit der der Block während der Simulation ausgeführt wird. Weitere Informationen finden Sie unter Timing in Hardware-Schnittstellenmodellen.

Programmatische Nutzung

Blockparameter: SampleTime
Typ: Zeichenvektor, Zeichenkette
Werte: positiv numerisch
Standard: '0.01'

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt in R2007b

Siehe auch