How to / Komunikacja przemysłowa

Routery Advantech - Jak odczytać stan wejścia analogowego w skrypcie

14.04.2021 Producent: Advantech Zastosowanie: Zakłady przemysłowe, Energetyka, Woda i ścieki, Gaz i Paliwa
Wizerunek autora
Przemysław Strzała Inne artykuły tego autora
Routery Advantech - Jak odczytać stan wejścia analogowego w skrypcie

Jak odczytać stan wejścia analogowego w skrypcie?

Odczyt stanu wejść analogowych może być realizowany poprzez własne skrypty. W takim wypadku dużo łatwiej wprowadzać pewne zależności powodujące na przykład wysyłanie komunikatów cyfrowych po przekroczeniu pewnego poziomu wejść analogowych. Poniżej przykład odczytu zmiennych analogowych.

Można wykorzystać do tego celu zmienną:

VAL1=`/usr/bin/io get an1`

Po czym dołożyć pewien warunek wyświetlający komunikat w zależności od poziomu wejścia:

VAL=`/usr/bin/io get an1`
 if [ $VAL -gt 500 ]; then
    echo="Value is "$VAL
 else
    echo="Value is less then 500"
 fi

Odczyt wejścia może być również realizowany bezpośrednio w instrukcji warunkowej:

if [ `/usr/bin/io get an1` -gt 500 ]; then
    echo="Value is "$VAL
else
    echo="Value is less then 500"
fi

 

Poniżej skrypt powodujący wysłanie SMSa w momencie, gdy wejście an1 lub an2 przekroczą ustalony w zmiennych próg:

#!/bin/sh
 
PHONE=+48500123456
an1thrshold=500
an2thrshold=500
an1txt="Aktivace an1"
an2txt="Aktivace an2"
OLD1=0
OLD2=0
 
while true
do
 
 VAL1=`/usr/bin/io get an1`
 if [ $VAL1 -gt $an1thrshold ]; then
    POMVAL1=1
 else
    POMVAL1=0  
 fi
 if [ "$POMVAL1" != "$OLD1" ]; then
   [ "$POMVAL1" = "1" ] && gsmsms $PHONE "$an1txt"
   OLD1=$POMVAL1
 fi
 
 VAL2=`/usr/bin/io get an2`
 if [ $VAL2 -gt $an2thrshold ]; then
    POMVAL2=1
 else
    POMVAL2=0  
 fi
 if [ "$POMVAL2" != "$OLD2" ]; then
   [ "$POMVAL2" = "1" ] && gsmsms $PHONE "$an2txt"
   OLD2=$POMVAL2
 fi
 
 sleep 1
 
done
EOF

Opis tworzenia i wgrywania tego typu skryptów znajduje się w poradniku „Metody tworzenia własnych skryptów”.