Questo blocco funzione esegue l’invio di un messaggio SMS, per la gestione del modem si collega al FB ModemCore di cui occorre fornire l’indirizzo di istanza.
Su fronte attivazione ingresso di Send viene prenotato l’invio del messaggio, non appena sarà possibile il messaggio definito in Text verrà inviato al numero definito in Number. Terminato l’invio verrà attivata l’uscita Done. Disattivando Send si resetta Done ed alla riattivazione verrà inviato un nuovo messagio.
Descrizione
Send (BOOL) Il fronte di attivazione prenota l’invio del messaggio SMS che sarà inviato non appena il modem è libero per l’invio.
Modem (@ModemCore) Indirizzo dell’istanza FB ModemCore di gestione modem.
Number (@STRING) Pointer al numero di telefono a cui eseguire l’invio del messaggio.
Text (@STRING) Pointer testo messaggio da inviare.
Done (BOOL) Si attiva al termine dell’invio del messaggio SMS e rimane attiva fino alla disabilitazione di Send.
Fault (BOOL) Attivo per un loop se errore invio messaggio SMS.
Messages (UDINT) Contatore messaggi inviati.
Errors (UDINT) Contatore errori esecuzione.

Esempi
Come utilizzare gli esempi.
Nell’esempio attivando da debug SMSSend verrano inviati 3 messaggi SMS ai 3 numeri indicati. Al termine dell’invio verrà resettato SMSSend.
LogicLab (Ptp118, ST_ModemSMSSend)
PROGRAM ST_ModemSMSSend
VAR
SMSSend : BOOL; (* SMS send command *)
i : UDINT; (* Auxiliary variable *)
TCPClient : SysTCPClient; (* TCPClient management *)
Mdm : ModemCore; (* Modem core FB *)
SMSTx : ARRAY[0..2] OF ModemSMSSend; (* Modem SMS send *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_ModemSMSSend"
// *****************************************************************************
// The program shows how to send multiple SMS.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// INITIALIZATIONS
// -------------------------------------------------------------------------
// Program initializations.
IF (SysFirstLoop) THEN
// TCP Client initialization.
TCPClient.PeerAdd:=ADR('192.168.0.184'); //Peer address
TCPClient.PeerPort:=1000; //Peer port
TCPClient.LocalAdd:=ADR('0.0.0.0'); //Local address
TCPClient.LocalPort:=0; //Local port
TCPClient.FlushTm:=50; //Flush time (mS)
TCPClient.LifeTm:=60; //Life time (S)
TCPClient.RxSize:=256; //Rx buffer size
TCPClient.TxSize:=256; //Tx buffer size
// FB Modem initialization.
// TCheck must be set to a value less than TCPClient LifeTm.
// TPower must be set to the time required to modem powering on.
Mdm.Enable:=TRUE; //Enable
Mdm.SpyOn:=TRUE; //Spy On
Mdm.AutoHangUp:=TRUE; //Auto hangup
Mdm.Type:=MODEM_TYPE#WLR220; //Modem WLink WL-R220
Mdm.TCheck:=T#30s; //Check time
Mdm.TPower:=T#60s; //Power time
// Set SMS send parameters.
SMSTx[0].Number:=ADR('12345678'); //Phone number
SMSTx[0].Text:=ADR('Message Nr. 1'); //Text to send
SMSTx[1].Number:=ADR('12345678'); //Phone number
SMSTx[1].Text:=ADR('Message Nr. 2'); //Text to send
SMSTx[2].Number:=ADR('12345678'); //Phone number
SMSTx[2].Text:=ADR('Message Nr. 3'); //Text to send
END_IF;
// -------------------------------------------------------------------------
// MODEM CORE MANAGEMENT
// -------------------------------------------------------------------------
// Modem core.management.
TCPClient(Connect:=Mdm.Connect); //TCPClient management
Mdm(File:=TCPClient.File); //Gestione modem core
// SMS send management.
FOR i:=0 TO 2 DO SMSTx[i](Modem:=ADR(Mdm));END_FOR;
SMSTx[0].Send:=SMSSend; //SMS send command
SMSTx[1].Send:=SMSTx[0].Done; //SMS send command
SMSTx[2].Send:=SMSTx[1].Done; //SMS send command
// When all messages are been sent the command is reset.
IF (SMSTx[2].Done) THEN SMSSend:=FALSE; END_IF;
// [End of file]