Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

TCP/IP Receive

Empfangen Sie Daten über das TCP/IP-Netzwerk vom angegebenen Remotecomputer

  • 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 erfolgt einmalig zu Beginn der Modellausführung. Der Block erfasst während der Laufzeit des Modells Daten entweder im blockierenden oder im nicht blockierenden Modus. 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 hat keine Eingangsanschlüsse. Es verfügt über einen oder zwei Ausgabeports, je nachdem, ob Sie den blockierenden oder nicht blockierenden Modus auswählen. Wenn Sie den Blockierungsmodus auswählen, verfügt der Block über einen Ausgabeport, Data, der den empfangenen Daten entspricht. Wenn Sie den Sperrmodus nicht auswählen, verfügt der Block über zwei Ausgabeports: Data und Status.

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

Weitere unterstützte Funktionen

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

  • Der TCP/IP Receive-Block unterstützt die Verwendung von Modellreferenzen. Mit dieser Funktion kann Ihr Modell andere Simulink-Modelle als modulare Komponenten enthalten.

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

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

Ports

Ausgabe

alle erweitern

Vom Block von der Remote-Adresse empfangene Daten, die als Vektor, Matrix oder Array zurückgegeben werden.

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

Status „Neue Daten verfügbar“, zurückgegeben als logisches 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 Blockierungsmodus aktivieren.

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, Zeichenfolge

Remote-Port auf dem TCP/IP-Server, mit dem Sie eine Verbindung herstellen möchten, angegeben als Zahl zwischen 1 und 65535.

Programmatische Nutzung

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

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

Größe der Ausgabedaten oder die Anzahl der Werte, die bei jedem Simulationszeitschritt gelesen werden sollen. Dieser Parameter wird als Skalar oder Vektor angegeben. Die Daten enthalten nicht die Terminatorwerte.

Programmatische Nutzung

Blockparameter: DataSize
Typ: Zeichenvektor, Zeichenfolge
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 Remote-Adresse übereinstimmen. Sie können diesen Parameter nicht verwenden, um den Datentyp der Daten an der Remote-Adresse zu ändern.

Programmatische Nutzung

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

Dieser Parameter definiert das Format der empfangenen String-Daten. Sie können die folgenden Konvertierungsspezifizierer oder eine Kombination davon verwenden.

Hinweis

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

Numerischer FeldtypKonvertierungsspezifiziererDetails

Ganzzahl, vorzeichenbehaftet

%d

Basis 10

%i

Die Werte in den Daten bestimmen die Basis:

  • Die Standardeinstellung ist Basis 10.

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

  • Wenn die Anfangsziffer 0 ist, sind die Werte oktal (Basis 8).

%ld oder %li

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

Ganzzahl, ohne Vorzeichen

%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 Folgendes enthalten (ohne Berücksichtigung der Groß-/Kleinschreibung): Inf, -Inf, NaN oder -NaN.

%e

%g

Programmatische Nutzung

Blockparameter: ASCIIFormatting
Typ: Zeichenvektor, Zeichenfolge
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 anzeigt. Die Simulation betrachtet alle Daten, die vor dem Terminator stehen, als neuen Datenblock. Die Terminatordaten werden nicht an den Ausgabeport gesendet. Dieses Terminator muss mit dem Terminator in den Daten übereinstimmen, die Sie von Ihrem Remotecomputer lesen.

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

Programmatische Nutzung

Blockparameter: Terminator
Typ: Zeichenvektor, Zeichenfolge
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 stehen, als neuen Datenblock. Die Terminatordaten werden nicht an den Ausgabeport 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.

Art des ASCII-ZeichensBeispiel für ein ASCII-ZeichenMATLAB-BefehlParameterwert
Steuerzeichen (Escape-Sequenz)"LF" ("\n")uint8(sprintf('\n'))[10]
Sonderzeichen"#"uint8('#')[35]
Numerisch"81"uint8('81')[56 49]
Alphabet"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, Zeichenfolge
Werte: Integer-Array
Standard: '10'

Abhängigkeiten

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

Sequentielle Reihenfolge, in der Bytes zu größeren numerischen Werten angeordnet werden. Wenn die Byte-Reihenfolge little-endian ist, wird das erste Byte in der ersten Speicheradresse im empfangenen TCP/IP-Paket organisiert. Wenn die Byte-Reihenfolge big-endian ist, wird das letzte Byte in der ersten Speicheradresse im empfangenen TCP/IP-Paket organisiert.

Konfigurieren Sie vor dem Empfangen von Daten die Byte-Reihenfolge so, dass sie dem entsprechenden Wert für Ihren Remote-Computer entspricht. Informationen zur Reihenfolge, in der Bytes gespeichert werden, finden Sie in der Dokumentation Ihres Geräts.

Programmatische Nutzung

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

Dieser Parameter lässt die Simulation warten, während der Block Daten empfängt. Wenn neue Daten verfügbar sind, wird die Simulation ab dem nächsten Zeitschritt fortgesetzt. Deaktivieren Sie das Kontrollkästchen, wenn der Lesevorgang nicht zu einer Wartezeit der Simulation führen soll.

Wenn Sie den Sperrmodus aktivieren, wartet die Simulation, bis die angeforderten Daten verfügbar sind. Bei jedem Zeitschritt wartet das Modell bis zu der durch den Parameter Timeout angegebenen Zeit. Wenn innerhalb dieser Zeit keine Daten empfangen werden, gibt der Block einen Wert von 0 aus.

Wenn Sie den Sperrmodus nicht aktivieren, läuft die Simulation kontinuierlich und der Block verfügt über zwei Ausgabeports, Status und Data. Der Data-Port enthält für jeden Zeitschritt den angeforderten Datensatz. Der Status-Port enthält 0 oder 1, je nachdem, ob er zum angegebenen Zeitpunkt neue Daten empfangen hat.

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

Programmatische Nutzung

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

Zeit in Sekunden, die das Modell während jedes Simulationszeitschritts auf Daten wartet. Dieser Wert ist relativ zur realen Welt bzw. zur „Wanduhr“-Zeit.

Programmatische Nutzung

Blockparameter: Timeout
Typ: Zeichenvektor, Zeichenfolge
Werte: positiver 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 Rate, mit der der Block während der Simulation ausgeführt wird. Weitere Informationen finden Sie unter Timing in Hardware Interface Models.

Programmatische Nutzung

Blockparameter: SampleTime
Typ: Zeichenvektor, Zeichenfolge
Werte: positive numerische
Standard: '0.01'

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt in R2007b

Siehe auch