SysPing, execute a ping

Home / Knowledge Base / Manualistica / Programmazione IEC 61131-3 / Gestione networking / SysPing, execute a ping

Questo blocco funzione esegue controllo se un indirizzo IP è raggiungibile tramite l'invio del comando ping al sistema. Attivando Enable viene inviato il comando di ping ed al termine si attiva Done che rimane attivo fino alla disabilitazione di Enable questo permette esecuzione in cascata dei FBs. Se si ottiene risposta viene attivato per un loop Ok, in caso contrario Fault.

La variabile Length permette  di impostare la lunghezza del pacchetto di ping inviato, nella variabile Time viene ritornato il tempo necessario a completare il comando.

Function block
CODESYS: Non disponibile
LogicLab: eLLabXUnified12Lib

Enable (BOOL) Abilitazione blocco funzione, attivandolo viene eseguito il comando di ping.

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 ?