Questo blocco funzione esegue controllo se un indirizzo IP è raggiungibile, viene eseguito l'invio del comando Ping al sistema e se si ottiene risposta viene attivato Done.

La variabile Refresh ritorna la percentuale di tempo trascorsa dall'ultima esecuzione del comando Ping sul sistema. Raggiunto il 50% del tempo circa 25 Secondi viene eseguito un nuovo comando Ping.

Function block
CODESYS: Non disponibile
LogicLab: eLLabXUnified12Lib

Enable (BOOL) Abilitazione blocco funzione, attivandolo viene eseguito un ping ogni 25 Sec.

Address (@STRING) Definizione indirizzo IP o URL su cui eseguire il ping.

Length (UINT) Lunghezza in bytes del frame di ping inviato.

Delay (REAL) Tempo di attesa su attivazione Done (S).

Done (BOOL) Si attiva al termine della esecuzione comando e rimane attiva fino alla disabilitazione di Enable.

Ok (BOOL) Attivo se indirizzo IP è raggiungibile (Risposta da Ping).

Fault (BOOL) Attivo per un loop se errore esecuzione comando.

Time (REAL) Tempo di esecuzione ping (S).

Errori

In caso di errore eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.

Esempi

Come utilizzare gli esempi.
Viene eseguito un ping verso l'IP di Google "8.8.8.8" e se il ping si conclude correttamente si attiva IsReachable. Mantenendo attivo il comando Enable, il ping viene continuamente ripetuto e controllato ogni circa 25 secondi. Se si desidera conoscere l'indirizzo IP di un URL occorre utilizzare il FB DNSRequest.

LogicLab (Ptp114)
PROGRAM ST_SysPing
VAR
    Ping : SysPing; (* Ping command *)
    IsReachable : BOOL; (* The IP is reachable *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysPing"
// *****************************************************************************
// It's executed a ping on the defined IP address (i.e Google).
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // EXECUTE PING
    // -------------------------------------------------------------------------
	// Execute ping to Google.

	Ping.Address:=ADR('8.8.8.8'); //Address to ping
	Ping.Length:=32; //Frame length
	Ping.Delay:=5.0; //Delay (S)
	Ping(Enable:=NOT(Ping.Done)); //Ping command

	// Manage the reachable flag.

	IF (Ping.Ok) THEN IsReachable:=TRUE; END_IF;
	IF (Ping.Fault) THEN IsReachable:=FALSE; END_IF;

// [End of file]

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 17 Agosto 2020