Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

TCP/IP Receive

Ricevere dati tramite rete TCP/IP dalla macchina remota specificata

  • TCP/IP Receive block

Librerie:
Instrument Control Toolbox

Descrizione

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

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

Questo blocco utilizza un buffer FIFO (First In, First Out) per ricevere i dati. A ogni passo temporale, 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'uso della modalità Accelerator Simulink® e Rapid Accelerator. 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 di Simulink.

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

Nuovo stato dei dati disponibili, restituito come 1 (true) o 0 (false) logico. Se questa porta restituisce 1, sono disponibili nuovi dati da leggere.

Dipendenze

Per abilitare questa porta, deseleziona 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

Block Parameter: Host
Tipo: vettore di caratteri, stringa

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

Uso programmatico

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

Fare clic su questo pulsante per verificare se la connessione all'indirizzo remoto e alla porta 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 terminatore.

Uso programmatico

Block Parameter: 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 dell'indirizzo remoto. Non è possibile utilizzare questo parametro per modificare il tipo di dati all'indirizzo remoto.

Uso programmatico

Block Parameter: 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 combinazione di essi.

Nota

Se si genera codice C/C++ utilizzando Simulink Coder, è possibile utilizzare un solo specificatore di conversione.

Tipo di campo numericoSpecificatore di conversioneDettagli

Intero, con segno

%d

Base 10

%i

I valori nei dati determinano la base:

  • Il valore predefinito è 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

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 in virgola mobile possono contenere uno qualsiasi dei seguenti valori (senza distinzione tra maiuscole e minuscole): Inf, -Inf, NaN o -NaN.

%e

%g

Uso programmatico

Block Parameter: 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 .

Se questo parametro è selezionato, è possibile specificare il terminatore che indica la fine del blocco dati. La simulazione considera tutti i dati presenti prima del terminatore come un nuovo blocco di dati. I dati del terminatore non vengono inviati alla porta di uscita. Questo terminatore deve corrispondere al terminatore dei dati che stai leggendo dal tuo computer remoto.

Se selezioni Custom Terminator, puoi specificare il tuo valore di terminatore.

Uso programmatico

Block Parameter: 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 .

Terminatore personalizzato che indica la fine del blocco dati. La simulazione considera tutti i dati presenti prima del terminatore come un nuovo blocco di dati. I dati del terminatore non vengono inviati alla porta di uscita.

L'array numerico specificato in questo parametro è la rappresentazione intera uint8 dei caratteri ASCII corrispondenti. 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

Block Parameter: CustomTerminator
Tipo: vettore di caratteri, stringa
Valori: matrice di numeri interi
Predefinito: '10'

Dipendenze

Per abilitare questo parametro, impostare Terminator su Custom terminator .

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

Prima di ricevere i dati, configurare l'ordine dei byte in modo che corrisponda al valore appropriato per la macchina remota. Per informazioni sull'ordine in cui vengono memorizzati i byte, fare riferimento alla documentazione dello strumento.

Uso programmatico

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

Questo parametro imposta la simulazione in attesa mentre il blocco riceve i dati. Quando sono disponibili nuovi dati, la simulazione prosegue dal passo temporale successivo. Deselezionare la casella di controllo se non si desidera che l'operazione di lettura provochi l'attesa della simulazione.

Se si attiva la modalità di blocco, la simulazione attende che i dati richiesti siano disponibili. A ogni passo temporale, il modello attende fino al tempo specificato dal parametro Timeout. Se i dati non vengono ricevuti entro questo intervallo di tempo, il blocco restituisce il valore 0 .

Se non si abilita la modalità di blocco, la simulazione viene eseguita ininterrottamente e il blocco ha due porte di uscita, Status e Data. La porta Data contiene il set di dati richiesto a ogni passo temporale. La porta Status contiene 0 o 1 a seconda che abbia ricevuto nuovi dati nel dato intervallo di tempo.

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

Uso programmatico

Block Parameter: EnableBlockingMode
Tipo: vettore di caratteri, stringa
Valori: 'on' | 'off'
Predefinito: 'on'

Quantità di tempo in secondi per cui il modello attende i dati durante ogni fase di simulazione. Questo valore è relativo al tempo reale o "tempo reale".

Uso programmatico

Block Parameter: 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, vedere Timing in Hardware Interface Models .

Uso programmatico

Block Parameter: SampleTime
Tipo: vettore di caratteri, stringa
Valori: numerico positivo
Predefinito: '0.01'

Funzionalità estese

espandi tutto

Cronologia versioni

Introdotto in R2007b

Vedi anche