SysGetIpInfos, returns IP infos

  1. Home
  2. Knowledge Base
  3. Manualistica
  4. Programmazione IEC 61131-3
  5. Streams di comunicazione
  6. SysGetIpInfos, returns IP infos

Questo blocco funzione ritorna le informazioni della connessione. Passando in File al blocco funzione un file di tipo TCP o UDP è possibile avere in uscita le informazioni relative.

Function block
CODESYS: Non disponibile
LogicLab: eLLabXUnified12Lib

File (FILEP) File pointer, deve essere di tipo TCP o UDP.

PeerIP (STRING[15]) Stringa di definizione indirizzo IP del peer connesso al file.

PeerPort UINT) Porta del peer connesso al file.

Status (DWORD) Stato connessione (Non gestito).

Esempi

Come utilizzare gli esempi.
Nell'esempio è attivato un server UDP in ascolto sulla porta 3000. Il server accetta massimo 2 connessioni contemporanee, connettendosi in telnet alla porta inviando un carattere se ne riceve l'echo.

LogicLab (Ptp116)
PROGRAM ST_SysGetIpInfos
VAR
    i : INT; (* Auxiliary variable *)
    Fp : FILEP; (* File pointer array *)
    TCPServer : SysTCPServer; (* TCPServer management *)
    IPInfos : SysGetIpInfos; (* IP infos *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysGetIpInfos"
// *****************************************************************************
// A TCP server is instantiated on port 4000 when client connects the client
// informations are returned.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // INITIALIZATION
    // -------------------------------------------------------------------------
    // First program execution loop initializations.

    IF (SysFirstLoop) THEN
        TCPServer.FilesArr:=ADR(Fp); //Files array
        TCPServer.LocalAdd:=ADR('0.0.0.0'); //Local address
        TCPServer.LocalPort:=4000; //Local port
        TCPServer.MaxConn:=1; //Accepted connections
        TCPServer.FlushTm:=50; //Flush time (mS)
        TCPServer.LifeTm:=0; //Life time (S)
        TCPServer.RxSize:=128; //Rx buffer size
        TCPServer.TxSize:=128; //Tx buffer size
    END_IF;

    // Manage the TCP server.

    TCPServer(Enable:=TRUE); //TCPServer management

    // -------------------------------------------------------------------------
    // ECHOES LOOP
    // -------------------------------------------------------------------------
    // Execute the echoes loop on all opened connections.

    IF (SysFIsOpen(Fp)) THEN
        IPInfos(File:=Fp); //Get IP infos
    END_IF;

// [End of file]

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 28 Ottobre 2019