SOCKET_OPEN

L'istruzione SOCKET_OPEN apre la connessione per l'indirizzo di destinazione specificato per le connessioni Transmission Control Protocol (TCP). Per le connessioni User Datagram Protocol (UDP), associa un indirizzo IP di destinazione e il numero di porta al socket specificato.
Dettagli operazioni:
  • Per le connessioni User Datagram Protocol (UDP) che usano
    SOCKET_OPEN
    , l'indirizzo IP e il numero di porta non sono obbligatori ogni volta che i dati vengono inviati.
  • Per le connessioni UDP che non usano
    SOCKET_OPEN
    , è necessario specificare l'indirizzo di destinazione ogni volta che
    SOCKET_WRITE
    viene usato per inviare i dati.
  • Se si utilizza
    SOCKET_READ
    , oltre a ricevere i dati, viene restituito l'indirizzo del mittente. L'indirizzo dei mittenti può essere usato per inviare una risposta usando
    SOCKET_WRITE
    .
  • Potrebbe essere restituita un'operazione
    SOCKET_OPEN
    prima del timeout senza creare una connessione Transmission Control Protocol (TCP). Se si verifica questa condizione, significa che il dispositivo di destinazione è in esecuzione ma non è in ascolto delle connessioni sul numero di porta specificato.
    SOCKET_OPEN
    restituisce un errore prima del timeout.
  • 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_OPEN
SOCKET_OPEN
Parametri SOCKET_OPEN
Parametro
Tipo di parametro
Tipo di dati
Descrizione
Execute
Ingresso
BOOL
Abilitazione del blocco istruzione.
  • TRUE: quando viene rilevato un fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata.
  • FALSE: nessun fronte di salita rilevato.
Instance
Ingresso
UDINT
Copiare dal Socket Handler restituito da un blocco funzione SOCKET_CREATE.
Timeout
Ingresso
UDINT
Timeout per il blocco funzione SOCKET_OPEN.
Il blocco funzione restituisce un errore se il valore di timeout è inferiore al valore minimo.
Intervallo timeout: 1000-1.800.000 millisecondi
Impostare Timeout su 0 per utilizzare il valore predefinito 10.000 (10 secondi).
DestAddr
Ingresso
L'indirizzo della connessione di destinazione.
È necessario indicare una connessione tra l'indirizzo IP e il numero di porta dell'host remoto.
I seguenti indirizzi IP non sono supportati per DestAddr:
  • Indirizzo IP automatico
  • Indirizzo Loopback
  • 0.0.0.0
  • Indirizzo di trasmissione (supportato solo per TCP), indirizzi di eccezione:
  • Indirizzo multicast Class D (224.x.x.x)
  • Indirizzo di collegamento locale (169.254.x.x)
Esempio per indirizzo IP 192.168.2.100 e Porta 12000:
  • DestAddr.IPAddress[0]=192
  • DestAddr.IPAddress[1]=168
  • DestAddr.IPAddress[2]=2
  • DestAddr.IPAddress[3]=100
  • DestAddr.Port = 12000
EnUDPRxFilter
Ingresso
BOOL
Per il socket UDP, se vengono usati SOCKET_OPEN e Abilita EnUDPRxFilter, non è necessario ogni volta un filtro del pacchetto per l'indirizzo IP specifico e il numero di porta per leggere i dati.
  • Viene creato un socket UDP con apertura. DestAddr come IP 192.168.1.157/Porta 161. Abilita EnUDPRxFilter, esegue Socket_Read.
  • Quando il controllore riceve dati da DestAddr (192.168.1.157 / 161), Socket_Read completa l'operazione correttamente. Se il controllore riceve dati da un altro IP o un'altra Porta, socket_Read ignora tale pacchetto e attende il pacchetto DestAddr.
EnUDPRxFilter disattivato:
  • Eseguire SOCKET_READ. Il controllore riceve dati sulla porta UDP di configurazione, SOCKET_READ completa l'operazione.
  • L'applicazione controlla se il pacchetto in entrata arriva dal dispositivo previsto.
  • L'applicazione gestisce i filtri in base all'UDPAddr del parametro di output SOCKET_READ.
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.

Esempi di SOCKET_OPEN

Esempio di diagramma a blocchi funzionali SOCKET_OPEN
Esempio di Diagramma a blocchi funzione SOCKET_OPEN
Esempio di diagramma ladder SOCKET_OPEN
Esempio di Diagramma Ladder SOCKET_OPEN
Esempio di testo strutturato SOCKET_OPEN
Esempio di Testo strutturato SOCKET_OPEN
Risultati - TCP
Risultati - TCP
Risultati - UDP
Risultati - UDP
Fornire un feedback
Hai domande o feedback su questa documentazione? invia il tuo feedback qui.
Normal