Dziś jest czwartek, 22 sierpień 2019 r.
Energoelektronika.pl na stronach Facebook REKLAMA MAPA SERWISU KONTAKT
Strona główna Załóż konto Artykuły branżowe Katalog firm Seminaria FAQ Kalendarium Słownik Oferta
Wyszukaj
1USD 3.9337 +0.32% 1EUR 4.366 +0.34% 1GBP 4.7784 +0.34%
Zaloguj się
Login (adres e-mail):
Haslo:
  Rejestracja
  Zapomniałem hasła
Reklama

Aktualności
Nowy cykl szkoleń praktycznych związanych z programowaniem sterowników marki Siemens
więcej
Przed nami 32. edycja targów ENERGETAB 2019
więcej
Siemensa buduje fabrykę dla Przemysłu 4.0 w Polsce
więcej
32 edycja targów Energetab 2019 juz za cztery tygodnie
więcej

Zobacz archiwum

Kalendarium
11 wrzesień 2019
72 edycja Seminarium dla Służb Utrzymania Ruchu 
więcej
17 wrzesień 2019
ENERGETAB - największe w Polsce targi energetyki i elektrotechniki 
więcej
Newsletter
Jeżeli chcesz otrzymywać aktualne informacje o wydarzeniach w branży.
Podaj e-mail do subskrypcji:


Aktualności

iMod - Nowa funkcjonalność: dwukierunkowa komunikacja SMS cz.11

22 sierpień 2012.

Moduł telemetryczny iMod ma możliwość wyposażenia go w modem GSM/GPRS/EDGE Class 10 pracujący w trzech zakresach (900/1800/1900 MHz). Modemy te sprawdzają się idealnie w instalacjach, gdzie informacje zebrane przez urządzenie przesyłane są na dalekie odległości.

Jedną z podstawowych funkcjonalności modemów tego typu jest możliwość wysyłania oraz odbierania SMS-ów. Moduł telemetryczny iMod zapewnia pełną, dwukierunkową komunikację z użytkownikami oraz innymi urządzeniami.


Dwukierunkowa komunikacja SMS

Wbudowany mechanizm bramki SMS, pozwala na wysłanie wiadomości o dowolnej treści, bez ograniczeń. Treść SMS-a może zawierać aktualną wartością parametrów modbusowych, bądź wcześniej zdefiniowaną, w pełni konfigurowalną wiadomość tekstową. Dodatkowo istniej możliwość rozbudowy bramki SMS o reakcję na otrzymane wiadomości za pomocą prostych skryptów shell-owych, co pozwala na zarządzanie maszynami i instalacjami z telefonu komórkowego.

Wysyłka sms-ów na zdarzenie z platformy iMod


Wysyłka SMS-ów na zdarzenie z platformy iMod

1. Konfiguracja kanału powiadomień.

Wysłanie SMS-a z iModa na zdarzenie jest bardzo proste ? wystarczy w odpowiedni sposób skonfigurować plik MainConfig.xml. Aby to zrobić, należy zdefiniować kanał powiadamiań ? message-channel według przykładu poniżej

  1. <message-channel channel-name=?SMS_sender?>
  2.       <protocol name=?SMS?/>
  3.       <recipient>"48123456789"</recipient>
  4.       <recipient>"48987654321"</recipient>
  5. </message-channel>

W kanale powiadomień SMS można definiować dowolną liczbę odbiorców, ważne, aby zwrócić uwagę na numer kierunkowy kraju, do którego zostanie wysłany SMS. Oczywiście iMod nie ma ograniczeń również co do zdefiniowania ilości kanałów, tak więc użytkownik uzyskuje możliwość zdefiniowana kilku grup odbiorców.

2. Konfiguracja treści komunikatu.

Drugim krokiem jest zdefiniowanie treści komunikatu. Dokonuje się tego według przykładu poniżej:

  1. <message id=?Message_1&#8243;>
  2.       <![CDATA[
  3.             "SMS from iMod"
  4.       ]]>
  5. </message>

Treść komunikatu może być statyczna tak jak powyżej, może być również dynamiczna wykorzystując makra:

  • REG_NAME[id] ? nazwa parametru o danym id
  • REG_VALUE[id] ? aktualna wartość parametru o danym id
  • REG_UNIT[id] ? symbol jednostki parametru o danym id
  • REG_LABEL[id] ? etykieta parametru o danym id

 

3. Konfiguracja parametru.

Trzecim krokiem jest odpowiednie zdefiniowanie parametru oraz zdarzenia, po którym zostanie wysłany SMS. Istnieje możliwość zdefiniowania 4-ech typów zdarzenia:

  • OnChange ? Zdarzenie generowane gdy wartość pomiędzy odczytami przekroczyła zadaną histerezę
  • NoChange ? Zdarzenie generowane gdy wartość pomiędzy odczytami parametru nie zwiększyła się o zadaną histerezę
  • HiAlarm - Zdarzenie generowane gdy wartość parametru przekroczy ustawiony próg
  • LoAlarm - Zdarzenie generowane gdy wartość parametru spadnie poniżej zadanego progu
  1. <parameter>
  2.       <id>100</id>
  3.       <source-channel channel-name="NPE" parameter-id="DI1"/>
  4.       <access-channel channel-name="modbus_S1" parameter-id="100" />
  5.        <event type="OnChange">
  6.              <message-channel channel-name="SMS_sender"/>
  7.              <message-id>"Message_1"</message-id>
  8.        </event>
  9. </parameter>

Parametrem o ID 100 jest dioda wejście cyfrowe DI1. Zdarzenie zostało zdefiniowane w ten sposób, aby na zmianę stanu wejścia cyfrowego, został wykorzystany kanał SMS_sender do wysłania wiadomości SMS o treści zapisanej w Message_1.

Reakcja platformy iMod na komunikat SMS


Reakcje platformy iMod na komunikat SMS

iMod posiada możliwość reagowania na SMS-y przychodzące. W tym celu należy wykorzystać odpowiednio skonfigurowany plik MainConfig.xml oraz prosty skrypt shell-owy. Skrypt wyłącza diodę USER LED w momencie, kiedy na urządzenie zostanie wysłany SMS o treści USER_LED=0 oraz załącza w momencie gdy w treści wiadomości SMS będzie znajdować się zapis USER_LED=1.

  1. Konfiguracja kanału źródłowego oraz parametru User Led

W pliku MainConfig.xml należy dodać source-channel, który umożliwi dostęp do zasobów sprzętowych.

  1. <source-channel name="NPE_io">
  2.     <protocol name="HARDWARE"/>
  3.     <gap>0</gap>
  4.     <cycle>5</cycle>
  5. </source-channel>

Należy również odpowiednio zdefiniować parametr określający diodę User Led w celu przypisania jej adres modbusowy 100.

  1. <parameter>
  2.     <id>100</id>
  3.     <source-channel channel-name="NPE_io" parameter-id="USER_LED"/>
  4.     <access-channel channel-name="Modbus_S1" parameter-id="100"/>
  5. </parameter>
  1. Przygotowanie skryptu Shell'owego

Kolejnym krokiem jest przygotowanie skryptu shell-owego powodującego zmianę wartości diody w zależności od treści SMS-a.


Schemat blokowy przedstawiający logikę skryptu shell'owego

W pierwszej kolejności skrypt sprawdza ilość plików znajdujących się w katalogu /tmp/sms/incoming/, odczekuje 5 sekund i sprawdza ponownie ile znajduje się w nim plików. Jeśli ilość plików wzrosła, oznacza to że w międzyczasie NPE odebrał wiadomość SMS. Warunek ten jest opisany w dalszej części skryptu. W tej sytuacji skrypt odszukuje ostatnio zmodyfikowany plik i oznacza go jako parametr $C.

Kolejnym krokiem jest sprawdzenie treści odebranego SMS-a. W skrypcie powyżej, stan parametru diody User Led może przyjąć wartość 1 lub 0 w zależności od zapisu jaki znajduje się wiadomości SMS.

Jeżeli w treści SMS-a widnieje zapis USER_LED=0, za pomocą aplikacji modmas zostaje zmieniona wartość parametru modbusowego o id 100 na stan 0. Parametr ten według wcześniejszej konfiguracji, przypisany jest do diody User Led, co powoduje, że dioda zgaśnie. Jeśli w treści SMS-a istnieje ciąg znaków USER_LED=1, dioda User Led zostanie załączona. W przypadku innej treści wiadomości, na konsoli zostanie wyświetlona informacja SMS message is wrong.

  1. #!/bin/sh
  2. A=`ls -1A /tmp/sms/incoming/ | wc -l`
  3. echo $A
  4. sleep 120
  5. B=`ls -1A /tmp/sms/incoming/ | wc -l`
  6. echo $B
  7.  
  8. if [ $B -gt $A ]; then
  9.     echo "NPE received a SMS"
  10.     cd /tmp/sms/incoming/
  11.     C=`ls -t1 | head -n1`
  12.     echo $C
  13. if [ `grep -i 'USER_LED=0' $C` ]; then
  14.     D=`modmas write:100:0`
  15.     echo "User Led turned OFF"
  16. elif [ `grep -i 'USER_LED=1' $C` ]; then
  17.     E=`modmas write:100:1`
  18.     echo "User Led turned ON"
  19. else
  20.     echo "SMS message is wrong"
  21. fi
  22. elif [ $B -le $A ]; then
  23.     echo "NPE not received a SMS"
  24. fi
  1. Uruchomienie skryptu Shell'owego
  1. <source-channel name="SCRIPT">
  2.     <protocol name="SCRIPT"/>
  3.     <port>?/mnt/nand-user?</port>
  4.     <property name="timeout" value="10000"/>
  5.     <gap>0</gap>
  6.     <cycle>10</cycle>
  7. </source-channel>

W definicja kanału skryptowego została podana ścieżka w którym znajduje się plik skryptu oraz odstępy czasu co jaki skrypt będzie wykonywany. Dla tego przypadku czas ten wynosi 10 s.

Należy również stworzyć wirtualny parametr, który będzie wywoływał skrypt.

  1. <parameter>
  2.     <id>"999"</id>
  3.     <description>"Skrypt SMS"</description>
  4.     <source-channel channel-name="SCRIPT" parameter-id="skrypt_sms.sh"/>
  5. </parameter>

Wykorzystanie skryptów znajduje szerokie zastosowanie. Dwukierunkowa komunikacja SMS wprowadza możliwość nie tylko zdalnego kontrolowania pracy instalacji automatyki, ale również sterowania zasobami przy pomocy krótkich wiadomości tekstowych SMS wysyłanych z telefonu.

 Zobacz urządzenia z serii iMod



Źródło: A2s
O nas  ::  Regulamin  ::  Polityka prywatności (Cookies)  ::  Reklama  ::  Mapa stron  ::  FAQ  ::  Kontakt
Ciekawe linki: www.klimatyzacja.pl  |  www.strony.energoelektronika.pl  |  promienniki podczerwieni
Copyright © Energoelektronika.pl