Questo blocco funzione esegue una chiamata telefonica forzando lo squillo del telefono. Lo squillo è utile ad esempio per richiamare l’attenzione dopo l’invio di un messaggio SMS. In alcuni casi casi lo squillo è utilizzato come controllo di heartbeat di un sistema, la sua ricezione una volta al giorno garantisce che il sistema è operativo. Per la gestione del modem si collega al FB ModemCore di cui occorre fornire l’indirizzo di istanza.
Su fronte attivazione ingresso di PRing viene eseguita la chiamata al numero indicato in Number, dopo il tempo definito in RTime la chiamata è terminata.Terminata la chiamata verrà attivata l’uscita Done. Disattivando PRing si resetta Done ed alla riattivazione verrà eseguita una nuova chiamata.
Descrizione
PRing (BOOL) Attivandolo viene eseguita la chiamata telefonica al numero indicato in Number. Disabilitandolo la chiamata viene conclusa.
Modem (@ModemCore) Indirizzo dell’istanza FB ModemCore di gestione modem.
Number (@STRING) Pointer al numero di telefono a cui eseguire l’invio del messaggio.
RTime (TIME) Definizione tempo di ring. Dopo il tempo definito la chimata viene conclusa.
Done (BOOL) Si attiva al termine della chiamata e rimane attiva fino alla disabilitazione di Pring.
Fault (BOOL) Attivo per un loop se errore esecuzione.
Errors (UDINT) Contatore errori esecuzione.

Esempi
Come utilizzare gli esempi.
Nell’esempio attivando da debug PRing verrà eseguita la chimata al numero indicato. Al termine della chiamata resettato PRing.
LogicLab (Ptp118, ST_ModemPhoneRing)
PROGRAM ST_ModemPhoneRing
VAR
PRing : BOOL; (* Phone ring command *)
Sp : SysSerialPort; (* Serial port management *)
Mdm : ModemCore; (* Modem core FB *)
MPRing : ModemPhoneRing; (* Modem phone ring *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_ModemPhoneRing"
// *****************************************************************************
// The program shows how to execute a ring on a phone.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// INITIALIZATIONS
// -------------------------------------------------------------------------
// Program initializations.
IF (SysFirstLoop) THEN
// TCP Client initialization.
Sp.COM:=ADR('COM0'); //COM port definition
Sp.Baudrate:=115200; //Baudrate
Sp.Parity:='N'; //Parity
Sp.DataBits:=8; //Data bits
Sp.StopBits:=1; //Stop bits
Sp.DTRManagement:=DTR_ON; //DTR management
Sp.DTRComplement:=FALSE; //DTR complement
Sp.EchoFlush:=FALSE; //Received echo flush
Sp.DTROnTime:=0; //DTR On time delay (mS)
Sp.DTROffTime:=0; //DTR Off time delay (mS)
Sp.FlushTm:=0; //Flush time (mS)
Sp.RxSize:=0; //Rx buffer size
Sp.TxSize:=0; //Tx buffer size
// FB Modem initialization.
// TPower must be set to the time required to modem powering on.
Mdm.Enable:=TRUE; //Enable
Mdm.SpyOn:=TRUE; //Spy On
Mdm.Type:=MODEM_TYPE#STANDARD; //Modem WLink WL-R220
Mdm.TCheck:=T#30s; //Check time
Mdm.TPower:=T#60s; //Power time
// Phone ring parameters.
MPRing.Modem:=ADR(Mdm); //Modem core
MPRing.Number:=ADR('12345678'); //Phone number
MPRing.RTime:=T#10s; //Ring time
END_IF;
// -------------------------------------------------------------------------
// MODEM CORE MANAGEMENT
// -------------------------------------------------------------------------
// Modem core.management.
Sp(Open:=Mdm.Connect); //Serial port management
Mdm(File:=Sp.File); //Gestione modem core
MPRing(); //Modem phone ring
MPRing.PRing:=PRing; //Phone ring
IF (MPRing.Done) THEN PRing:=FALSE; END_IF;
// [End of file]