Skip to main content

Wysyłanie SMS z PLC to najprostszy i najbardziej niezawodny kanał alarmowy w obiektach bez operatora — przepompowniach, chłodniach, halach bez Wi-Fi. W tym filmie pokazuję kompletny stack: Finder Opta + bramka GSM Inventia MT-121 + wyspa I/O Weintek, spięte Modbusem TCP, z kodem ST w CODESYS — z logiką antyspam i filtrem czasowym TON, żeby nie zalewać kierownika SMS-ami w nocy.

Po co wysyłanie SMS z PLC zamiast HMI lub chmury?

SMS z sterownika to nie gadżet — działa tam, gdzie nie ma Wi-Fi, VPN ani nikogo, kto patrzyłby na panel HMI. Operator GSM ma większą dostępność niż lokalny internet, a SMS dociera do telefonu w 2-3 sekundy. Typowe scenariusze: pływak alarmowy w przepompowni (przekroczenie 95% napełnienia → SMS do serwisu), termostat w chłodni (przekroczenie temperatury → SMS po 5 minutach z TON), otwarcie drzwi do hali poza godzinami pracy, spadek ciśnienia w instalacji.

Architektura w trzech zdaniach

Finder Opta (sterownik PLC oparty na Arduino Portenta, programowany w CODESYS) pełni rolę Modbus TCP Master. Po Modbusie odpytuje dwa Slave’y: wyspę I/O Weintek (dodatkowe wejścia/wyjścia binarne — pływaki, krańcówki, lampki) oraz Inventia MT-121 — polską bramkę GSM z modemem, slotem SIM i anteną na magnes. Logika alarmowa siedzi w PLC, a MT-121 wysyła SMS-y na podstawie stanu swoich wyjść Q skonfigurowanych w MT Managerze.

Jeśli dopiero zaczynasz z tą platformą, zobacz: wejścia i wyjścia analogowe w sterowniku Finder Opta oraz pełne wprowadzenie do Modbus – protokół komunikacyjny i jego zastosowania.

Architektura systemu wysyłania SMS z PLC: Finder Opta, wyspa I/O Weintek i Modbus TCP
Architektura systemu: Finder Opta (Modbus TCP Master) odpytuje wyspę Weintek i bramkę Inventia MT-121.
Stanowisko z Finder Opta, wyspą Weintek, bramką GSM Inventia MT-121 i przyciskami
Panel testowy: Finder Opta, wyspa I/O Weintek, bramka GSM Inventia MT-121 oraz przyciski i switch Ethernet.
Bramka GSM Inventia MT-121 z modemem, slotem SIM i diodami GSM i SIGNAL
Bramka GSM Inventia MT-121: wejścia binarne i analogowe, port Ethernet oraz diody statusu GSM i SIGNAL.

Antyspam przy wysyłaniu SMS z PLC: jeden SMS na jedno zdarzenie

Klasyczna pułapka wysyłania SMS z PLC: bez zabezpieczenia system wyśle setki SMS-ów, gdy pływak oscyluje wokół progu. Rozwiązanie to flaga „już wysłałem” — reset dopiero, gdy wartość wraca do normy.

PROGRAM Przepompownia
VAR
   xPlywak_Alarm    : BOOL;  // próg 95% napełnienia
   xSMS_Krytyczny   : BOOL;  // wyjście do MT-121
   xWyslano_Kryt    : BOOL;  // anty-spam
END_VAR

IF xPlywak_Alarm AND NOT xWyslano_Kryt THEN
   xSMS_Krytyczny := TRUE;
   xWyslano_Kryt  := TRUE;
END_IF

IF NOT xPlywak_Alarm THEN
   xSMS_Krytyczny := FALSE;
   xWyslano_Kryt  := FALSE;
END_IF

Wyjście xSMS_Krytyczny mapujesz w Modbus Slave Channel MT-121 na konkretny rejestr Q (np. Q1). W MT Managerze definiujesz regułę: „gdy Q1 = 1 → wyślij SMS o treści X do listy numerów”.

Konfiguracja Inventia MT-121 jako Modbus TCP Slave w CODESYS na Finder Opta
Inventia MT-121 dodana w CODESYS jako Modbus TCP Slave (IP 192.168.0.16, port 502).
Wybór funkcji Modbus w CODESYS: Read Discrete Inputs i Write Multiple Coils
Modbus Slave Channel w CODESYS: dobór funkcji, np. Read Discrete Inputs (FC2) i Write Multiple Coils (FC15).

Filtr czasowy: chłodnia z TON 5 minut

Termostat zwiera styk przy przekroczeniu temperatury, ale krótkie otwarcie drzwi daje chwilowy skok — nie chcesz wtedy SMS-a. TON z 5-minutowym opóźnieniem rozwiązuje sprawę:

VAR
   xTermostatAlarm   : BOOL;
   tonAlarm          : TON;
   xSMS_Chlodnia     : BOOL;
   xWyslano_Chlodnia : BOOL;
END_VAR

tonAlarm(IN := xTermostatAlarm, PT := T#5M);

IF tonAlarm.Q AND NOT xWyslano_Chlodnia THEN
   xSMS_Chlodnia      := TRUE;
   xWyslano_Chlodnia  := TRUE;
END_IF

IF NOT xTermostatAlarm THEN
   xSMS_Chlodnia      := FALSE;
   xWyslano_Chlodnia  := FALSE;
END_IF

Tak wygląda to w praktyce: po wciśnięciu przycisku w online monitoringu CODESYS bit wysyłki przechodzi w stan TRUE, a Inventia MT-121 wysyła SMS-a.

Online monitoring w CODESYS: wciśnięcie przycisku ustawia bit wysyłki SMS z PLC
Test na żywo: po wciśnięciu przycisku bit xQ1_Send_SMS przechodzi w TRUE i MT-121 wysyła SMS.

Trzy pułapki, na które zwróć uwagę

  • Auto Reconnect w Modbus Master — bez tego po pierwszym restarcie switcha komunikacja nie wraca sama, wysyłanie SMS z PLC zatrzyma się bezgłośnie.
  • Offset adresowania — MT-121 i Weintek numerują rejestry od 1, CODESYS od 0. Zawsze porównuj manual z online monitoring.
  • Słaby zasięg GSM w szafie w piwnicy — antena magnesowa na elemencie metalowym pomaga, ale przy systemach krytycznych dawaj antenę zewnętrzną na dachu.
Opcja Auto reconnect w kanale Modbus TCP Master w CODESYS na Finder Opta
Włączony Auto reconnect w Modbus TCP Master: bez tego komunikacja nie wraca sama po restarcie switcha.
Mapa rejestrów Modbus w instrukcji Inventia MT-121 z adresowaniem wejść binarnych
Mapa rejestrów z manuala MT-121: stąd odczytujesz adresy i pilnujesz offsetu (urządzenia liczą od 1, CODESYS od 0).

FAQ

Czy MT-121 można zastąpić innym modemem GSM?

Tak — Teltonika RUT, Advantech WISE, Satel: każde urządzenie z Modbus TCP i modułem GSM zadziała przy wysyłaniu SMS z PLC. Inventia ma plus za polski manual i wsparcie lokalne.

Karta SIM pre-paid czy M2M?

Pre-paid wystarczy do testów. Przy systemach krytycznych dawaj M2M z dedykowanym APN — nie wygasa, jest tańsza przy dużym wolumenie SMS-ów, operator daje priorytet w sieci.

Czy wysyłanie SMS z PLC jest bezpieczne?

Modbus TCP nie ma szyfrowania — trzymaj tę sieć w odseparowanym VLAN-ie szafy. SMS-y idą czystym tekstem przez GSM, więc nie wysyłaj nimi danych poufnych — tylko alarmy i statusy.


Chcesz opanować wysyłanie SMS z PLC w CODESYS i budować takie systemy telemetryczne samodzielnie? Sprawdź nasz kurs komunikacji w automatyce — ćwiczymy komunikację Modbus, logikę alarmową i integrację z modemami GSM na prawdziwym sprzęcie.

O autorze

Maciej Kurantowicz

Author Maciej Kurantowicz

Automatyk i programista, CEO & Founder w ControlByte

Więcej postów tego autora Maciej Kurantowicz