Vai al contenuto

ModemPhoneRing, esegue chiamata telefonica

Vai all indice del manuale di programmazione

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.

Immagine FB ModemPhoneRing

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]
Was this article helpful?