Jump to content



Αποστολή / Λήψη SMS δεδομένων


novice

Recommended Posts

Καλησπέρα,

Θέλουμε μέσω εφαρμογής SCADA, χωρίς τη χρήση PLC, να διαβάζουμε δεδομένα από GSM Modem.

Aλλά και το ανάποδο: να στέλνουμε δεδομένα από το SCADA με χρήση κάποιων πεδίων και πλήκτρων στο GSM Modem.

Υπάρχουν ιδέες και παραδείγματα που έχουν υλοποιήσει παρόμοιες εφαρμογές;

Link to comment
Share on other sites

Βασικά αυτό που χρειάζεσαι είναι ένα gsm modem που να υποστηρίζει AT commands και ένα τρόπο να συνδέσεις το modem με το scada... τα modem αυτά κοστίζουν γύρω στα 100€...

Πριν φτάσεις στο hardware, παίζουν διάφορα σενάρια με το σημαντικότερο το τι πρωτόκολλο υποστηρίζει το modem για τα sms... το ένα, που είναι και το εύκολο, είναι το απλό ascii με το οποίο απλά στέλνεις και λαμβάνεις sms με τις στάνταρ εντολές (AT+CMGS και AT+CMGR) και τα δεδομένα είναι απλοί ascii χαρακτήρες των 7-bit... Όταν όμως θες να στείλεις ελληνικούς χαρακτήρες, τότε χρειάζεσαι unicode και utf-8, το οποίο σημαίνει ότι χρειάζεσαι το pdu format του sms, το οποίο πρέπει να το υποστηρίζει και το modem (όλα όσα ξέρω το υποστηρίζουν)... Το πρόβλημα με το pdu είναι ότι θέλει παραπάνω επεξεργασία, γιατί τα δεδομένα που παίρνεις είναι της μορφής δεκαεξαδικών και επίσης αν έχεις γυρισμένο το modem σε pdu, τότε τα sms με αγγλικούς μόνο χαρακτήρες χρησιμοποιούν το 7bit encoding του sms, το οποίο είναι δύστροπο μέχρι αηδίας για να το κάνεις encode-decode... Τέλος οι 160 χαρακτήρες/sms ισχύουν μόνο για 7bit encoding (septets), ενώ για 8-bit (octets) είναι οι μισοί (το utf-8 είναι 2 bytes ανά χαρακτήρα)...

Αυτά είναι τα σημαντικά, τα οποία θα συναντήσεις μπροστά σου, όσων αφορά τα sms...

Τώρα για την εφαρμογή, ο ένας τρόπος είναι να χρησιμοποιήσεις κάποιον μC (κατασκευή που θα κάνεις ο ίδιος), ο οποίος θα κάνει το gateway ανάμεσα στο scada και το modem και ο οποίος θα buff-άρει τα δεδομένα και από τις δυο πλευρές και ο άλλος είναι να βρεις ένα έτοιμο gateway που να συνεργάζεται με το scada σου (αν υπάρχει - που θα είναι και πανάκριβο)... επίσης μπορείς να χρησιμοποιήσεις και έναν υπολογιστή ο οποίος με κάποιο λογισμικό, μαζεύει τα δεδομένα από το scada και λειτουργεί ως gateway με ένα συνδεδεμένο το gsm modem σε μια com του...

Από τα παραπάνω, δεν θα έκανα τίποτα... το sms κοστίζει, αργεί και μπορεί να χαθεί... το GPRS είναι καλύτερη λύση, πιο φθηνή, έχεις την ασφάλεια του tcp, μπορείς να αφήνεις πάντα το socket ανοιχτό με ελάχιστο κόστος και να μένεις πάντα attached στο gprs, η κάλυψη είναι πανελλαδική και μπορείς να μεταφέρεις μεγάλο όγκο δεδομένων σε πραγματικό χρόνο... Γενικά με το GPRS είσαι πολύ πιο ευέλικτος και χειρίζεσαι πρωτόκολλα τα οποία είναι ψωμοτύρι και στους υπολογιστές... Σχεδόν όλα τα gsm modem υποστηρίζουν GPRS/3G...

Link to comment
Share on other sites

  • 4 weeks later...

Καλημέρα και ευχαριστώ για την αναλυτικότατη απάντηση,

όσον αφορά το modem προμηθευτήκαμε από τη wavecom & όσον αφορά τη σύνδεση με το scada θα μιλήσω με την τεχνική υποστήριξη για να με κατευθύνουν.

Επειδή από το Google δεν έβγαλα άκρη, έχεις συνατήσει ποτέ το σφάλμα που επισυνάπτω;

post-16584-1416074745,1837_thumb.jpg

Link to comment
Share on other sites

Αυτό το σφάλμα κατά πάσα πιθανότητα προέκυψε αφού είχες συνδέσει το modem στην συσκευή σου και σημαίνει ότι η συσκευή προσπάθησε να σετάρει το modem σε gprs class που δεν υποστηρίζει, οπότε σου επιστρέφει το μέγιστη class που είναι B, δηλαδή GPRS και όχι 3G...

Γι' αυτό θα πρέπει να έρθεις σε επικοινωνία με τον κατασκευαστή του SCADA και να τον ρωτήσετε πως μπορείτε να το σετάρετε έτσι ώστε να μην προσπαθεί να συνδεθεί με 3G...

εδιτ:

επίσης στα class B δεν μπορείς να χρησιμοποιήσεις ταυτόχρονα (SMS, GSM) και GPRS, αλλά μόνο το ένα από τα δυο κάθε φορά... ίσως το SCADA προσπαθεί να χειριστεί κάποιο Modem με class C που μπορεί, αλλά και πάλι θα το διευκρινήσεις με τον κατασκευαστή...

Τέλος μπορεί να το κάνει και επίτηδες, ώστε να δει το class του modem, αλλά αυτό είναι ανορθόδοξο...

Link to comment
Share on other sites

Υποθέτω ότι εννοείς με τον προμηθευτή του modem, γιατί δε το έχω συνδέσει ακόμα με το SCADA.

Το μόνο που έχω κάνει είναι να συνδέσω το modem μέσω της θύρας com και κατόπιν να κάνω αυτό το δοκιμαστικό με το Hyperterminal.

Το modem έχει δύο εξόδους: μία που γράφει GPRS και μία που γράφει gsm. Kαι υπάρχει και μία κεραία με δύο ακροδέκτες που βυσματώνει στις εξόδους.

Aυτό που παρατήρησα είναι το εξής: Το led παραμένει σταθερά αναμένο μόνο όταν ο GPS ακροδέκτης είναι συνδεδεμένος.

Όταν είναι ο GPRS ή και δύο, το led αναβοσβήνει

Link to comment
Share on other sites

Συνήθως τα gsm modem έχουν ένα πράσινο led το οποίο παραμένει αναμμένο όση ώρα το modem προσπαθεί να γίνει subscribe στον provider... δηλαδή αν βγάλεις από μέσα την SIM θα πρέπει να μένει για πάντα αναμμένο ανεξάρτητα από τι ρύθμιση έχεις κάνει...

Όταν γίνει subscribe στην κυψέλη, τότε αρχίζει να αναβοσβήνει με περίοδο 500-1000ms... μάλλον αυτό εννοείς... τώρα γιατί στην μια περίπτωση σου κάνει το ένα και στην άλλη το άλλο, θα πρέπει να δεις το manual...

Δεν κατάλαβα τι εννοείς για την κεραία... Η κεραία είναι μια και για το gsm και για το gprs... οι έξοδοι που λες τι είναι...? d-sub9, pin-headers, τι ακριβώς...?

Link to comment
Share on other sites

όταν έβγάλα τη SIM, το Led ήταν μόνιμα αναμμένο όπως είπες...

Το modem είναι όπως αυτό που επισυνάπτω, μόνο που έχει 2 εξόδους

Η κεραία είναι κοινή και για το gsm και για το gprs και ανάλογα σε ποιες εξόδους είναι συνδεδεμένη έχει και την αντίστοιχη συμπεριφορά που σου έλεγα

Από την wavecom μου λένε να μιλήσω με τον αντιπρόσωπο της Ελλάδας (radel) και από την radel είναι αρκετά ακριβοθώρητοι.

Επομένως, αν είχες κάποια άλλη ιδέα θα βοηθούσε

Link to comment
Share on other sites

Δεν βλέπω κάποια εικόνα με το modem (αν έχεις επισυνάψει κάτι)...

Με την SIM μέσα, την κεραία συνδεδεμένη και κλειστό το modem, συνέδεσε το modem με τον υπολογιστή, άνοιξε το hyperterminal στην σωστή com και baud rate και δώσε τροφοδοσία...

κάνε μου copy-paste ότι σου βγάλει μέχρι να σταματήσει για 10-15 δευτερόλεπτα να βγάζει μηνύματα... (κανονικά πρέπει να σταματήσει στο +wind: 4, που σημαίνει ότι έχει γίνει subscribe στο δίκτυο)...

Μετά δώσε τα εξής:

[B]ate0[/B] <enter>
[B]at+cmgf=1[/B] <enter>
[B]at+cmgs="+306969123456"[/B] <enter>
[I]εδώ θα πρέπει να δεις το input για το sms ">" και γράφεις...:[/I]
[B]test sms[/B] <ctrl+z>

αντί 6969123456 βάζεις τον αριθμό του κινητού σου και αφού πατήσεις ctr+z θα πρέπει να πάρεις απάντηση

+CMGS: <num>

όπου <num> ένα index που χρησιμοποιεί εσωτερικά το modem για τα απεσταλμένα sms...

Κάν' το και πες μου

Link to comment
Share on other sites

Σου επισυνάπτω την εικόνα.

όταν κάνω τη διαδικασία που μου λές, η απόκριση του Η/Υ ειναι εξαιρετικά αργή και επανέρχεται μόνο όταν σταματήσω το Hyperterminal.

Το hyperterminal βεβαία δείχνει ότι είναι connected και ότι ο χρόνος περνάει, χωρίς να βγάζει μηνύματα

όταν έχω δώσει πρώτα τροφοδοσία και μετά ανοίγω το Hyperterminal, δεν υπάρχει κάποιο θέμα

όταν δίνω την εντολή ate0 (όπως και οποιαδήποτε εντολή), το αποτέλεσμα είναι : +CGEV: ME CLASS "B"

post-16584-1416074761,9979_thumb.jpg

Link to comment
Share on other sites

Αυτό είναι το κλασσικό fasttrack... Αυτό το αγόρασες μόνος σου ή το είχε η συσκευή...?

1. Θα πρέπει να έχεις βγάλει το pin από την κάρτα SIM

2. Αν το είχες κάνει ήδη, τότε βάλε μέσα την δική σου SIM (που ξέρεις σίγουρα ότι δουλεύει σωστά), αφού πρώτα έχεις βγάλει το Pin σου, έτσι ώστε να μην στο ζητάει στην αρχή...

Επανέλαβε τις προηγούμενες εντολές και την διαδικασία με το power μετά την σύνδεση, αφού έχεις πρώτα βγάλει το hardware flow control από το hyperterminal...

Αν σου κάνει πάλι τα ίδια και το modem δεν είναι μέρος της συσκευής, αλλά το αγόρασες εξτρά ο ίδιος., κανε το παρακάτω...

Συνδέσου με τον τρόπο που μπορείς να του μιλήσεις (όπως τον περιγράφεις, δηλαδή πρώτα boot και μετά συνδέεις την σειριακή) και δώσε τα παρακάτω

at+cfun=1 <enter>
[I]περιμένεις 3-4 δευτερόλεπτα[/I]
at+wopen=0 <enter>
at+wopen=3 <enter>
at+wopen=4 <enter>

Οι τελευταίες εντολές, θα σβήσουν από την flash του modem κάποιο application, το οποίο μπορεί να υπάρχει "ξεχασμένο" στην flash... αν ισχύει αυτό, τότε δεν το πήρες καινούργιο, αλλά από δεύτερο χέρι...

Link to comment
Share on other sites

Καλημέρα,

Τι ακριβώς εννοείς όταν λες αν το είχε η συσκευή; υπάρχει περίπτωση η κεραία να αγοράστηκε ξεχωριστά από το modem; Ρωτάω για να ξέρω τι ακριβώς να διευκρινίσω με τον προιστάμενο μου από τον οποίο το πήρα

Δοκίμασα και με τη δική μου SIM και κάνει πάλι τα ίδια.

Αφού έδωσα και την τελευταία εντολή (at+wopen=4 <enter>)

έδωσα και την εντολή ate0 <enter> (τα αποτελέσματα φαίνονται στην αριστερή περιοχή)

Μετά δεν ήταν δυνατό να δώσω άλλες εντολές. Το ίδιο έγινε για οποιδήποτε συνδυασμό baud rate & με/χωρίς hardware.

Δίνω εκ νέου τροφοδοσία και ξαναδίνω τις εντολές, όπου τώρα στις 2 τελευταίες εντολές επιστρέφει "error" (δεξιά οθόνη)

Σε κάθε περίπτωση δε σταματάει στο +wind: 4, όπως μου είχες πει αρχικά

post-16584-1416074764,976_thumb.jpg

Link to comment
Share on other sites

Ωραία μια χαρά φαίνεται...

Για να σταματήσει στο wind 4, θα πρέπει να δώσεις

at+wind=255

ώστε να μην σου στέλνει indications για τα πάντα και σε flood-άρει... μετά κανονικά θα πρέπει να το θυμάται...

Επίσης το ate0, μπορείς να το παραλήψεις... είναι εντολή για να κλείνει το echo στην σειριακή επικοινωνία, το οποίο συνήθως δημιουργεί πρόβλημα, ειδικά σε εφαρμογές που κάποιος controller χειρίζεται το modem (και συνήθως είναι και η πρώτη εντολή που στέλνει ο controller, έτσι ώστε να δοκιμάσει και το κανάλι επικοινωνίας, αλλά και να κλείσει το echo, που θα του δημιουργεί πρόβλημα)...

Το error στα wopen:3,4 είναι φυσιολογικό (και καλό) γιατί σημαίνει ότι δεν τρέχει κάποια custom εφαρμογή, αλλά δουλεύει σαν κανονικό modem...

Το error στο wind: 11 έχει να κάνει με το checksum του phonebook της SIM, το οποίο δεν σε νοιάζει και το αγνοείς (κατά πάσα πιθανότητα έχει utf το κινητό σου)...

Όπως σου είπα με αυτά που βλέπω πρέπει να μπορείς τουλάχιστον να στείλεις sms... χωρίς να κλείσεις το echo (δηλαδή χωρίς την ate0)


[B]at+cmgf=1[/B] <enter>
[B]at+cmgs="+306969123456"[/B]<enter> (εδώ θα βάλεις τον αριθμό του κινητού που θες να στείλεις το μήνυμα)
[B]sms test[/B] <ctrl+z>

όπως και πριν... δεν θα πρέπει να σου βγάλει error και θα το κάνεις αφού πρώτα δεις το wind: 4... το <ctrl+z> σημαίνει ότι πατάς το ctrl και ενώ το έχεις πατημένο πατάς μετά το z... στα άλλα απλά enter... το κειμενο του sms το γράφεις αφού πρώτα σου βγάλει το ">"...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.