Vai al contenuto

Una soluzione per l’invio di SMS multipli

Home Forum Programmazione IEC 61131 (LogicLab) Una soluzione per l’invio di SMS multipli

Taggato: 

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Autore
    Post
  • #35428
    Anonimo
    Inattivo

    Sono giorni che cerco di realizzare un blocco funzione che permetta l’invio di più messaggi a più destinatari. Quello che desidero ottenere è poter inviare messaggi diversi a più numeri di telefono. In pratica in un sistema di controllo desidero che su condizioni di allarme vengano allertati via SMS le persone preposte alla manutenzione.

    Ho fatto diversi tentativi utilizzando la libreria eModemLib ma non riesco ad ottenere il funzionamento, avete dei suggerimenti ?

    #37819
    Sergio Bertana
    Amministratore del forum

    Utilizzando più istanze del blocco funzione ModemSMSSend_v2 è possibile inviare più messaggi SMS a più numeri così come indicato nel Manuale programmazione IEC61131-3.  Naturalmente se i messaggi da inviare sono molti e se i numeri a cui mandarli sono molti il numero di istanze della FB necessarie all’invio crescono e quindi come giustamente suggerisci è preferibile costruire una FB apposita.

    Ecco un progetto in cui la FB MultipleSMS permette di inviare fino a 32 messaggi a fino 32 numeri (Stampa e Download programma). I messaggi ed i numeri di telefono sono passati tramite l’indirizzo di un array di puntatori Messages e PhNumbers,  in questo modo si ottimizza l’occupazione di memoria in quanto è possibile dimensionare l’array a piacere ed i messaggi come i numeri di telefono sono stringhe salvate in memoria codice.

    Le variabili DWORD MsgSelector e PNrSelector, permettono di inviare solo i messaggi il cui relativo bit è attivo ai numeri di telefono il cui relativo bit è attivo. In questo modo prima di attivare il comando Send è possibile agendo su queste due variabile definire quali messaggi inviare ed a che numeri inviarli.

    Attivando Send viene eseguito l’invio dei messaggi, terminato il quali si attiva Done, per effettuare un nuovo invio occorre disattivare Send e poi riattivarlo.

    #50279
    nettunio
    Partecipante

    Buonasera! sono nuovo per il forum è premetto che mi sono affacciato da poco al mondo dei PLC.

    Dovendo utilizzare il  blocco funzione ModemSMSSend_v2 in configurazione multi SMS mi sono imbattuto durante una ricerca sul forum in un suo programma dove è presente una  FB MultipleSMS datata 2013. Dopo averlo caricato su Logiclab mi compare un errore di compilazione con  i seguenti errori:

    ModemPhoneCall_v1(102) – warning S1314: Valore duplicato nella definizione del CASE
    ModemSMSSend_v2(153) – warning S1314: Valore duplicato nella definizione del CASE

    #50303
    Sergio Bertana
    Amministratore del forum

    Si in effetti ho provato a compilare il vecchio progetto e vi erano i due errori che tu lamenti. Così essendo un vecchissimo progetto ho pensato di aggiornarlo utilizzando la nuova versione della libreria eLLabModemLib_F100.

    Ho riscritto il programma principale in FBD, ma non ho provato il progetto, lascio a te il compito di testarlo ed eventualmente dirmi se hai problemi, ti lascio il progetto MultipleSMS_v1 per il download.

     

    #50353
    nettunio
    Partecipante

    Intanto ti ringrazio per la tempestiva risposta, l’esempio editato da te funziona perfettamente. implementata nel mio programma ha composto i pochi numeri inseriti inviando i relativi messaggi assegnati.

    La mia intenzione è quella di collegarne almeno 2 duplicando la FB pensi che possa funzionare ?

    #50375
    Sergio Bertana
    Amministratore del forum

    Non capisco il perchè della necessità di duplicare la FB , se ti servono più numeri o più messaggi basta aggiungerli alla FB.

    L’FB può inviare fino a 32 messaggi diversi, basta definirli nell’array Message settando il relativo bit nella variabile MsgSelector.

        MsgSelector:=16#00000007; (* Message selector *)
        Message[0]:=ADR('Messaggio 0');
        Message[1]:=ADR('Messaggio 1');
        Message[2]:=ADR('Messaggio 2');

    Ogni messaggio può essere inviato fino a 32 numeri diversi, basta definirli nell’array PhoneNr settando il relativo bit nella variabile PNrSelector

        PNrSelector:=16#00000003; (* Phone number selector *)
        PhoneNr[0]:=ADR('+39123456789');
        PhoneNr[1]:=ADR('+39123456789');

    Se hai esigenze diverse nel progetto c’è il codice sorgente della FB basta modificarla per adattarla alle tue esigenze.

    #62468
    GABRIELEGALLI
    Partecipante

    Qualche tempo fa ho utilizzato il modulo MultipleSMS perfettamente funzionante. Purtroppo oggi rispolverando un progetto non trovo più la libreria relativa allora chiamata eMultiSMS (composta da eLEN, VBit Test, il Function Block MultipleSMS e il programma STartUP).

    E’ possibile farmelo avere?

    #62471
    Sergio Bertana
    Amministratore del forum

    Basta scaricare il programma MultipleSMS_v1 che trovi un paio di post prima di questo…

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Devi essere connesso per rispondere a questo topic.