SOCKET_READ
L'istruzione SOCKET_READ legge i dati su un socket e restituisce il numero di byte specificato. Per Transmission Control Protocol (TCP), restituisce fino al numero di byte richiesti quando si ricevono dati. Per User Datagram Protocol (UDP), verrà completato quando un datagram è disponibile.
Dettagli operazione:
Il seguente comportamento SOCKET_READ può influenzare le comunicazioni esistenti inclusa la comunicazione non-socket:
- Se l'operazione SOCKET_READ non viene eseguita in sincronia con il dispositivo remoto, il controllore continua a fare in modo che il dispositivo remoto riceva pacchetti fino a quando non si verifica una delle seguenti condizioni:
- Viene eseguita l'istruzione SOCKET_READ.
- Il timeout del Socket scade.
- Viene ricevuta l'istruzione RST da un dispositivo remoto.
- Viene eseguita l'istruzione SOCKET_DELETE o SOCKET_DELETEALL.
- L'utente esegue una Modifica in modalità esecuzione che elimina tutte le istanze Socket create.
- Il controllore passa dalla modalità esecuzione alla modalità programmazione e tutte le istanze Socket create vengono eliminate.
- Il controllore passa dalla modalità esecuzione alla modalità programmazione e le informazioni sul contatore di diagnostica del socket e sul contatore di ogni Socket vengono cancellate.
- Se il valore del parametro Length o Offset viene modificato mentre l'operazione SOCKET_READ è in corso (BUSY = True), si verifica un errore e il pacchetto ricevuto viene ignorato.
- L'istruzione SOCKET_READ può restituire meno byte di quelli richiesti. RxLength contiene il numero di byte di dati ricevuti. Scrivere programmi per controllare RxLength e generare richieste di lettura aggiuntive per ricevere un intero messaggio dell'applicazione.
- Nella modalità Modifica in modalità Run, la modifica a un ingresso SOCKET_READ durante il funzionamento nello stato OCCUPATO genera un errore e il pacchetto ricevuto viene ignorato.
- Le uscite vengono aggiornate in modo asincrono dalla scansione del programma.
Lingue supportate: Diagramma a blocchi funzione, Diagramma Ladder, Testo strutturato.
Questa istruzione vale per i controllori L20E, L50E e L70E.
SOCKET_READ

Parametro | Tipo di parametro | Tipo di dati | Descrizione |
|---|---|---|---|
Execute | Ingresso | BOOL | Abilitazione istruzioni.
|
Instance | Ingresso | UDINT | Copiare dal Socket Handler restituito da un'istruzione SOCKET_CREATE o SOCKET_ACCEPT.
|
Timeout | Ingresso | UDINT | Timeout per SOCKET_READ. Il blocco istruzione restituisce un errore se il valore di timeout è inferiore al valore minimo. Intervallo timeout: 1000-86.400.000 millisecondi. Impostare Timeout su 0 per utilizzare il valore predefinito 10000 (10 secondi). |
Length | Ingresso | UINT | Definisce il numero di byte da leggere. Controllare RxLength per il numero effettivo di byte letti. SOCKET_READ può restituire meno byte di quelli richiesti. Supporta fino a 256 byte. |
Offset | Ingresso | UNIT | Offset nell'array di Dati. Avviare la lettura dei dati letti da questa posizione. |
Data | Uscita | USINT[1..1] | Un array usato per memorizzare i dati letti da SOCKET_READ.
L'output viene aggiornato in modo sincrono alla scansione del programma. |
Done | Uscita | BOOL | Indica se l'operazione è stata completata.
L'output viene aggiornato in modo sincrono alla scansione del programma. |
Busy | Uscita | BOOL |
L'output viene aggiornato in modo sincrono alla scansione del programma. |
Error | Uscita | BOOL | Indica che si è verificato un errore.
L'output viene aggiornato in modo sincrono alla scansione del programma. |
Status | Uscita | SOCK_STATUS | Stato definito utilizzando il Tipo di dati SOCK_STATUS che contiene le informazioni ErrorID, SubErrorID e StatusBits. L'output viene aggiornato in modo sincrono alla scansione del programma. |
RxLength | Uscita | UNIT | Contiene il numero di byte di dati ricevuti. |
UDPAddr | Uscita | L'indirizzo del dispositivo che invia i dati User Datagram Protocol (UDP). L'esempio definisce un UDPAddr di 192.168.2.100 e Porta 12000: UDPAddr.IPAddress[0]=192 UDPAddr.IPAddress[1]=168 UDPAddr.IPAddress[2]=2 UDPAddr.IPAddress[3]=100 UDPAddr.Port = 12000 Per Transmission Control Protocol (TCP), questa struttura non viene usata e conterrà tutti zero. La connessione TCP trasmette le informazioni di indirizzo remoto. |
Esempi di SOCKET_READ
Esempio di diagramma a blocchi funzionali SOCKET_READ

Esempio di diagramma ladder SOCKET_READ

Esempio di testo strutturato SOCKET_READ

Risultati - TCP

Risultati - UDP

Fornire un feedback