Jak wysłać wiadomość SMS przez sterownik PLC Astraada One z wykorzystaniem routera Teltonika?
Kontakt w sprawie artykułu: Natalia Kazykalewicz - 2022-12-19

Z tego artykułu dowiesz się:
- jak skonfigurować router Teltonika i sterownik Astraada One do wysyłania wiadomości SMS,
- jakie parametry powinna mieć taka wiadomość SMS.
Gdy nadzorujemy zakład produkcyjny, chcielibyśmy móc kontrolować dziejące się tam rzeczy 24 godziny na dobę i 7 dni w tygodniu. Nie da się jednak być w wielu miejscach w jednym momencie. Z pomocą przychodzi nam zautomatyzowany system IIoT, składający się z routera Teltonika i sterownika PLC Astraada One. Dzięki niemu o każdej sytuacji alarmowej będziemy poinformowani poprzez wiadomość SMS wysłaną na nasz numer telefonu.
Konfiguracja routera Teltonika
W tym przykładzie wykorzystano router RUTX 11, jednak dla wszystkich routerów rodziny Teltonika konfiguracja jest jednakowa.
Należy zacząć od dobrej praktyki i wykonać podstawową konfigurację, która została przedstawiona w artykule Podstawowa konfiguracja routera dla sieci przemysłowej – dostęp do Internetu, publiczny IP, LAN, WiFi, resetowanie routera, DDNS.
Następnie konfigurujemy POST/GET bramki SMS. Aby to zrobić, przechodzimy do zakładki SERVICES -> MOBILE UTILITIES -> SMS GATEWAY i kolejno wykonujemy następujące czynności:
- ustawienie Enable na On,
- wpisanie nazwy użytkownika (User name) i hasła (Password).

Należy pamiętać, że aby wysłać wiadomość SMS przez sterownik na numer telefonu użytkownika, router musi być podłączony do sieci GSM.
Konfiguracja sterownika Astraada One
Sterownik musi być w tej samej podsieci, co router, aby mogły się „widzieć”. Ponieważ nasz router ma adres IP 192.168.0.1/24, należy w ustawić adres sterownika na 192.168.0.X, gdzie X jest dowolną liczbą od 1 do 254 z uwagi na maskę sieci. Nasz sterownik ma adres IP 192.168.0.14.

Następnie należy przejść do zaprogramowania sterownika.
Wykorzystujemy środowisko narzędziowe Codedys, które można pobrać bezpłatnie ze strony firmy ASTOR.
Będziemy wykorzystywać bibliotekę HTTP Client, z której przede wszystkim będziemy korzystać.
Dostępna jest ona pod linkiem: https://forge.codesys.com/prj/codesys-example/http-client-exa/home/Home/.
Wiadomość SMS będziemy wysyłać na podany numer telefonu poprzez zapytanie HTTP POST/GET do routera. Router Teltonika obsługuje wiele zapytań HTTP – my korzystamy konkretnie z zapytania Send mobile message to a single numer.

Ma ono postać:
http://192.168.0.1/cgi-bin/sms_send?username=uzytkownik&password=XXXX&number=0048AAABBBCCC&text= textmessage
gdzie:
- 192.168.0.1 to IP routera,
- uzytkownik to nazwa użytkownika ustawiona wcześniej w SMS POST/GET SETTING,
- XXXX to hasło ustawione wcześniej w SMS POST/GET SETTING,
- 0048AAABBBCCC to numer telefonu (00 jest stałe, a 48 to prefiks krajowy),
- textmessage to tekst wysyłanej wiadomości SMS.
Numer telefonu i tekst wiadomości chcemy móc zmieniać podczas działania programu. Dlatego w utworzonym w projekcie POU wykorzystamy do tego następujące bloczki:
- FIND,
- LEN,
- REPLACE.
Znajdujemy w podanym wyżej ciągu URL ciąg numeru telefonu 'AAABBBCCC’ i zamieniamy go na nasz numer telefonu, który jest przechowywany w zmiennej numer. Następnie w tym ciągu już z naszym numerem telefonu robimy to samo z tekstem wiadomości SMS: znajdujemy ciąg 'textmessage’ i zamieniamy go na naszą wiadomości, która przechowywana jest w zmiennej tekst.

Kod aplikacji wygląda następująco:

W ostatnim kroku przechodzimy do zaimplementowania bloku z biblioteki HTTP Client, który będzie wysyłał zapytanie HTTP.
W zmiennej sURL mamy nasz cały ciąg HTTP GET już w poprawnym numerem telefonu i wiadomością. Za pomocą zmiany zmiennej on (z TRUE na FALSE) wysyłamy zapytanie HTTP. W zmiennej httpo możemy podejrzeć wysyłany przez nas ciąg znaków.

Gotowy blok wygląda w taki sposób:
