Gestione SMS con modem EGX81-W
Home › Forum › Soluzioni di comunicazione cellulare › Telit › Gestione SMS con modem EGX81-W
- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 1 settimana, 5 giorni fa da
Sergio Bertana.
-
AutorePost
-
Aprile 1, 2025 alle 8:31 am #81111
Anonimo
InattivoDevo utilizzare un modem EGX81-W connesso ad un Vs sistema SlimLine per la ricezione e l’invio di mesaggi SMS.
Stò provando il programma di esempio ST_ModemCoreSerial presente nell aFB ModemCore, ma non ho mai l’uscita MOk attiva.
Cosa posso avere sbagliato?
Aprile 1, 2025 alle 8:33 am #81113Sergio Bertana
Amministratore del forumIl modem Telit EGX81-W a differenza dei modelli precedenti non ha l’auto baudrate, di default la comunicazione è settata a 115200, n, 8, 1. Quindi devi modificare il programma definendo il corretto baudrate (Ho corretto l’esempio portando da 9600 a 115200 il settaggio del baudrate). Ricordati di disabilitare il PIN sulla SIM.
Il modem inoltre non trasmette se il segnale CTS è basso, quindi occorre utilizzare il corretto cavo di connessione al modulo SlimLine, consiglio l’adattatore modem CBL055 ed il cavo di estensione CBL057. Tramite questi accessori il segnale DTR in uscita dal modulo CPU viene connesso sia al DTR (Pin 4) che al CTS (Pin 7) del modem.
Per individuare i problemi consiglio di attivare lo spionaggio e di verificare i risultati nella console di spionaggio. Ecco i risultati:
08:43:39.271687|ModemCore:Lg|Wait again:14 (S) 08:43:44.273058|ModemCore:Lg|Wait again:9 (S) 08:43:49.273750|ModemCore:Lg|Wait again:4 (S) 08:43:54.262965|ModemCore:Lg|----------------------------------------------[Modem power on]- 08:44:04.264664|ModemCore:Tx|AT[0D] 08:44:04.370939|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:04.372770|ModemCore:Tx|AT[0D] 08:44:04.478925|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:04.482193|ModemCore:Tx|AT&F[0D] 08:44:04.612816|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:04.614626|ModemCore:Tx|ATE0[0D] 08:44:04.721050|ModemCore:Rx|ATE0[0D][0D][0A]OK[0D][0A] 08:44:04.723145|ModemCore:Tx|AT+CMEE=2[0D] 08:44:04.828856|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:04.830659|ModemCore:Tx|ATV1[0D] 08:44:04.936732|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:04.938732|ModemCore:Tx|ATX3[0D] 08:44:05.044667|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:05.046470|ModemCore:Tx|AT&D2[0D] 08:44:05.152692|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:05.154843|ModemCore:Tx|AT+CNMI=0,0,0,0,1[0D] 08:44:05.276665|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:05.278483|ModemCore:Tx|AT+CMGF=1[0D] 08:44:05.384800|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:05.386806|ModemCore:Tx|AT+CSMS=0[0D] 08:44:05.500182|ModemCore:Rx|[0D][0A]+CSMS: 1,1,0[0D][0A][0D][0A]OK[0D][0A] 08:44:05.502472|ModemCore:Tx|AT+CPMS="SM","SM","SM"[0D] 08:44:05.616033|ModemCore:Rx|[0D][0A]+CPMS: 0,50,0,50,0,50[0D][0A][0D][0A]OK[0D][0A] 08:44:05.617653|ModemCore:Lg|-------------------------------------------------[Modem check]- 08:44:05.620538|ModemCore:Tx|AT[0D] 08:44:05.725870|ModemCore:Rx|[0D][0A]OK[0D][0A] 08:44:05.729313|ModemCore:Tx|AT+CSQ[0D] 08:44:05.842675|ModemCore:Rx|[0D][0A]+CSQ: 21,99[0D][0A][0D][0A]OK[0D][0A] 08:44:05.846344|ModemCore:Tx|AT+CREG?[0D] 08:44:05.953668|ModemCore:Rx|[0D][0A]+CREG: 0,1[0D][0A][0D][0A]OK[0D][0A] 08:44:05.957201|ModemCore:Tx|AT+COPS?[0D] 08:44:06.073693|ModemCore:Rx|[0D][0A]+COPS: 0,0,"WINDTRE",3[0D][0A][0D][0A]OK[0D][0A] 08:44:21.073883|ModemSMSReceive:Lg|---------------------------------[Check SMS received messages]- 08:44:21.077098|ModemCore:Tx|AT+CMGR=0[0D] 08:44:21.187832|ModemCore:Rx|[0D][0A]OK[0D][0A]
Giugno 3, 2026 alle 12:31 pm #85714seval_elettrica
PartecipanteAnche noi, per la gestione degli SMS, utilizziamo il modem EGX81-W connesso alla SlimLine MPS056B320 (prima utilizzavamo MPS050Bxxx). L’invio e la ricezione degli SMS funziona correttamente, ma avremmo bisogno di una precisazione su MOk.
Abbiamo sviluppato una funzione che, qualora MOk risultasse uguale a FALSE, farebbe partire un timer di 3 minuti (valore variabile) al termine del quale, se nel frattempo non ci sono state variazioni con ritorno di MOk = TRUE, il PLC agisce togliendo alimentazione al modem, lo lascia spento per 30 secondi, lo riavvia, attende 40 secondi, infine inizializza di nuovo la libreria del modem.
Ora, considerando la Vs pagina “MOk (BOOL) Modem correttamente inizializzato e funzionante “, vorremo comprendere meglio, quali possano essere le cause di un MOk = FALSE, dal momento che l’inizializzazione è avvenuta correttamente, il modem risulta funzionante e comunica correttamente, ma all’improvviso viene rilasciato FALSE, seguito da quanto sopra descritto.
Per maggior precisione, la domanda è sorta dopo l’installazione di alcuni impianti in aree con rete GSM scarsa e/o instabile, in questi casi, avendo un contatore dei riavvi del modem, abbiamo riscontrato centinaia di riavvi giornalieri, quindi crediamo che il FALSE possa derivare anche da una mancanza di rete GSM (il modem di fatto non riesce ad allacciarsi alla rete) e pertanto potrebbe essere utile allungare la durata del timer, con lo scopo di attendere un ritorno autonomo di TRUE prima dello scadere del timer.
Giugno 5, 2026 alle 8:17 am #85769Sergio Bertana
Amministratore del forumEcco come il FB ModemCore gestisce il modem:
- Su abilitazione dopo l’attesa definita in TPower viene attivato Power e sono inviati i comandi di inizializzazione al modem. AT+CSQ controlla il livello del segnale, AT+CREG controlla la connessione alla rete, AT+COPS acquisisce l’operatore al termine si attiva MOk.
- Ogni tempo definito in TCheck sono inviati i comandi AT+CSQ controlla il livello del segnale, AT+CREG controlla la connessione alla rete, AT+COPS acquisisce l’operatore. In caso di errore sulla esecuzione comandi si disattiva MOk.
- Alla ricezione di un RING viene incrementato il valore in Rings acquisito il CLIP del chiamante che è ritornato in CLIPNumber.In caso di errore sulla esecuzione comandi si disattiva MOk.
Al FB ModemCore si collegano i FB ModemPhoneRing, ModemSMSReceive e ModemSMSSend che gestiscono le relative operazioni. Se in uno dei FB collegati si verifica un errore si disattiva MOk. Quindi MOk si disattiva su condizione di errore nella esecuzione dei comandi inviati al modem.
Tutte le operazioni che gestisci nel tuo programma in realtà sono già gestite dal FB ModemCore, basta utilizzare l’uscita Power per comandare l’alimentazione del modem. L’esecuzione ogni tempo definito in TCheck del controllo modem garantisce che sia operativo e connesso alla rete. Il fatto che MOk si disattivi è sicuramente legato ad un errore nella esecuzione di qualche comando modem. Per capire meglio il problema può essere utile attivare lo spionaggio e verificare quale comando và in errore.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.