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
SOCKET_READ
Parametri SOCKET_READ
Parametro
Tipo di parametro
Tipo di dati
Descrizione
Execute
Ingresso
BOOL
Abilitazione istruzioni.
  • TRUE: quando viene rilevato un fronte di salita, avvia l'istruzione, ammesso che l'ultima operazione sia stata completata.
  • FALSE: non avvia l'istruzione.
Instance
Ingresso
UDINT
Copiare dal Socket Handler restituito da un'istruzione SOCKET_CREATE o SOCKET_ACCEPT.
  • Per i tipi di socket client TCP e UDP, copiare il Socket Handler restituito da un'istruzione SOCKET_CREATE.
  • Per il tipo Socket server TCP, copiare il Socket Handler restituito da un'istruzione 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.
  • La dimensione dell'array di dati deve essere >= (Offset + Length).
  • Il vettore di dati può essere maggiore di Length del socket letto.
L'output viene aggiornato in modo sincrono alla scansione del programma.
Done
Uscita
BOOL
Indica se l'operazione è stata completata.
  • TRUE: Operazione completata correttamente.
  • FALSE: l'operazione è in corso oppure è stato generato un errore.
L'output viene aggiornato in modo sincrono alla scansione del programma.
Busy
Uscita
BOOL
  • TRUE: l'operazione non è terminata.
  • FALSE: l'operazione è terminata.
L'output viene aggiornato in modo sincrono alla scansione del programma.
Error
Uscita
BOOL
Indica che si è verificato un errore.
  • TRUE: È stato rilevato un errore.
  • FALSE: Nessun 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 a blocchi funzione SOCKET_READ
Esempio di diagramma ladder SOCKET_READ
Esempio di Diagramma Ladder SOCKET_READ
Esempio di testo strutturato SOCKET_READ
Esempio di Testo strutturato SOCKET_READ
Risultati - TCP
Risultati - TCP
Risultati - UDP
Risultati - UDP
Fornire un feedback
Hai domande o feedback su questa documentazione? invia il tuo feedback qui.
Normal