Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l’originale in inglese.

TCP/IP Receive

Ricezione dei dati tramite rete TCP/IP da una macchina remota specificata.

  • TCP/IP Receive block

Librerie:
Instrument Control Toolbox

Descrizione

Il blocco TCP/IP Receive configura e apre un'interfaccia verso l'indirizzo remoto specificato utilizzando il protocollo TCP/IP. La configurazione e l'inizializzazione avvengono una sola volta, all'avvio dell'esecuzione del modello. Il blocco acquisisce i dati in modalità bloccante o non bloccante durante l'esecuzione del modello. Utilizza il blocco TCP/IP Receive per leggere i dati in streaming su una rete TCP/IP. Questo blocco funziona esclusivamente come client TCP/IP e non può essere utilizzato come server TCP/IP.

Questo blocco non ha porte di input. Dispone di una o due porte di output a seconda che si selezioni la modalità bloccante o non bloccante. Se si seleziona la modalità di blocco, il blocco dispone di una porta di output, Data, corrispondente ai dati che riceve. Se non si seleziona la modalità di blocco, il blocco dispone di due porte di output, Data e Status.

Questo blocco utilizza un buffer FIFO (First In, First Out) per ricevere i dati. Ad ogni intervallo di tempo, la porta Data restituisce i valori richiesti dal buffer. In modalità non bloccante, la porta Status indica se il blocco ha ricevuto nuovi dati. Se la porta Status visualizza 1, sono disponibili nuovi dati, mentre se la porta Status visualizza 0, non sono disponibili nuovi dati.

Altre funzionalità supportate

  • Il blocco TCP/IP Receive supporta l'utilizzo della modalità Acceleratore Simulink® e Acceleratore Rapido. Questa funzionalità velocizza l'esecuzione dei modelli Simulink.

  • Il blocco TCP/IP Receive supporta l'uso del riferimento al modello. Questa funzionalità consente al tuo modello di includere altri modelli Simulink come componenti modulari.

  • Il blocco TCP/IP Receive supporta la generazione di codice C/C++. Questa funzionalità consente di generare codice C e C++ utilizzando Simulink Coder™.

Per ulteriori informazioni su queste funzionalità, consultare la documentazione Simulink.

Esempi

Porte

Produzione

espandi tutto

Dati ricevuti dal blocco dall'indirizzo remoto, restituiti come vettore, matrice o array.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Stato di disponibilità di nuovi dati, restituito come valore logico 1 (true) o 0 (false). Se questa porta restituisce 1, sono disponibili nuovi dati da leggere.

Dipendenze

Per abilitare questa porta, deselezionare il parametro Enable blocking mode.

Tipi di dati: Boolean

Parametri

espandi tutto

Indirizzo IP o nome del server TCP/IP da cui si desidera ricevere i dati.

Uso programmatico

Parametro Blocco: Host
Tipo: vettore di caratteri, stringa

Porta remota sul server TCP/IP a cui si desidera connettersi, specificata come un numero compreso tra 1 e 65535.

Uso programmatico

Parametro Blocco: Port
Tipo: vettore di caratteri, stringa
Valori: Da 1 a 65.535
Predefinito: '80'

Fai clic su questo pulsante per verificare se la connessione all'indirizzo e alla porta remoti specificati è valida.

Dimensione dei dati di output, ovvero il numero di valori da leggere a ogni passo temporale della simulazione. Questo parametro è specificato come scalare o vettore. I dati non includono i valori del terminator.

Uso programmatico

Parametro Blocco: DataSize
Tipo: vettore di caratteri, stringa
Valori: vettore
Predefinito: '[ 1, 1 ]'

Tipo di dati che il blocco riceve dall'indirizzo remoto, specificato come tipo di dati MATLAB.

Questo tipo di dati deve corrispondere al tipo di dati dei dati all'indirizzo remoto. Non è possibile utilizzare questo parametro per modificare il tipo di dati dei dati all'indirizzo remoto.

Uso programmatico

Parametro Blocco: DataType
Tipo: vettore di caratteri, stringa
Valori: 'single' | 'double' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'ASCII'
Predefinito: 'uint8'

Questo parametro definisce il formato dei dati stringa ricevuti. È possibile utilizzare i seguenti specificatori di conversione o una loro combinazione.

Nota

Se generi codice C/C++ utilizzando Simulink Coder, puoi utilizzare un solo specificatore di conversione.

Tipo di campo numericoSpecificatore di conversioneDettagli

Numero intero con segno

%d

Base 10

%i

I valori nei dati determinano la base:

  • Il sistema di numerazione predefinito è in base 10.

  • Se le cifre iniziali sono 0x o 0X, i valori sono esadecimali (base 16).

  • Se la cifra iniziale è 0, i valori sono ottali (base 8).

%ld o %li

Valori a 64 bit, base 10, 8 o 16

Numero intero senza segno

%u

Base 10

%o

Base 8 (ottale)

%x

Base 16 (esadecimale)

%lu, %lo, %lx

Valori a 64 bit, base 10, 8 o 16

Numero in virgola mobile

%f

I campi a virgola mobile possono contenere uno qualsiasi dei seguenti valori (senza distinzione tra maiuscole e minuscole): Inf, -Inf, NaN o -NaN.

%e

%g

Uso programmatico

Parametro Blocco: ASCIIFormatting
Tipo: vettore di caratteri, stringa
Valori: '%d' | '%i' | '%ld' | '%li' | '%u' | %o' | '%x' | '%lu' | '%lo' | '%lx' | '%f' | '%e' | '%g'
Predefinito: '%f'

Dipendenze

Per abilitare questo parametro, impostare Source Data type su ASCII.

Selezionando questo parametro, è possibile specificare il terminator che indica la fine del blocco di dati. La simulazione considera tutti i dati che precedono il terminator come un nuovo blocco di dati. I dati del terminator non vengono inviati alla porta di output. Questo terminator deve corrispondere al terminator presente nei dati che si stanno leggendo dalla macchina remota.

Se si seleziona Custom Terminator, è possibile specificare un valore di terminator personalizzato.

Uso programmatico

Parametro Blocco: Terminator
Tipo: vettore di caratteri, stringa
Valori: 'CR' | 'LF' | 'CR/LF' | 'LF/CR' | 'Custom terminator'
Predefinito: 'LF'

Dipendenze

Per abilitare questo parametro, impostare Source Data type su ASCII.

Terminator personalizzato che indica la fine del blocco di dati. La simulazione considera tutti i dati che precedono il terminator come un nuovo blocco di dati. I dati del terminator non vengono inviati alla porta di output.

L'array numerico specificato in questo parametro è la rappresentazione intera uint8 dei corrispondenti caratteri ASCII. La forma esatta di questo parametro dipende dal tipo di carattere ASCII.

Tipo di carattere ASCIIEsempio di carattere ASCIIComando MATLABValore del parametro
Carattere di controllo (sequenza di escape)"LF" ("\n")uint8(sprintf('\n'))[10]
Carattere speciale"#"uint8('#')[35]
Numerico"81"uint8('81')[56 49]
Alfabeto"End"uint8('End')[69 110 100]

È possibile specificare questo parametro anche utilizzando la rappresentazione esadecimale dei caratteri ASCII.

Uso programmatico

Parametro Blocco: CustomTerminator
Tipo: vettore di caratteri, stringa
Valori: array di interi
Predefinito: '10'

Dipendenze

Per abilitare questo parametro, impostare Terminator su Custom terminator.

Ordine sequenziale con cui i byte vengono disposti in valori numerici più grandi. Se l'ordine dei byte è little-endian, il primo byte viene organizzato nel primo indirizzo di memoria del pacchetto TCP/IP ricevuto. Se l'ordine dei byte è big-endian, l'ultimo byte viene organizzato nel primo indirizzo di memoria del pacchetto TCP/IP ricevuto.

Prima di ricevere i dati, configura l'ordine dei byte in modo che corrisponda al valore appropriato per la tua macchina remota. Consulta la documentazione del tuo strumento per informazioni sull'ordine in cui vengono memorizzati i byte.

Uso programmatico

Parametro Blocco: ByteOrder
Tipo: vettore di caratteri, stringa
Valori: 'little-endian' | 'big-endian'
Predefinito: 'big-endian'

Questo parametro fa sì che la simulazione attenda mentre il blocco riceve i dati. Quando sono disponibili nuovi dati, la simulazione riprende dal passo temporale successivo. Deseleziona la casella di controllo se non desideri che l'operazione di lettura provochi un'attesa nella simulazione.

Se si abilita la modalità di blocco, la simulazione attende che i dati richiesti diventino disponibili. Ad ogni intervallo di tempo, il modello attende per un periodo pari al tempo specificato dal parametro Timeout. Se i dati non vengono ricevuti entro questo tempo, il blocco restituisce il valore 0.

Se non si abilita la modalità di blocco, la simulazione viene eseguita in modo continuo e il blocco ha due porte di output, Status e Data. La porta Data contiene il set di dati richiesto ad ogni intervallo di tempo. La porta Status contiene 0 o 1 a seconda che abbia ricevuto nuovi dati nell'intervallo di tempo specificato.

Per ulteriori informazioni, consultare Enable Blocking Mode in Receive and Send Blocks.

Uso programmatico

Parametro Blocco: EnableBlockingMode
Tipo: vettore di caratteri, stringa
Valori: 'on' | 'off'
Predefinito: 'on'

Quantità di tempo in secondi che il modello attende per i dati durante ogni fase della simulazione. Questo valore è relativo al tempo reale, ovvero al tempo misurato dall'orologio a muro.

Uso programmatico

Parametro Blocco: Timeout
Tipo: vettore di caratteri, stringa
Valori: scalare positivo
Predefinito: '10'

Dipendenze

Per abilitare questo parametro, impostare Enable blocking mode su on.

Tempo di campionamento del blocco durante la simulazione. Questa è la velocità con cui il blocco viene eseguito durante la simulazione. Per ulteriori informazioni, consultare Temporizzazione nei modelli di interfaccia hardware.

Uso programmatico

Parametro Blocco: SampleTime
Tipo: vettore di caratteri, stringa
Valori: numerici positivi
Predefinito: '0.01'

Funzionalità estese

espandi tutto

Cronologia versioni

Introdotto in R2007b

Vedi anche