W oparciu o jQuery, Phonegap i wtyczkę do jQuery napisałem prostą aplikację dla urządzeń z systemem Android. Po wprowadzeniu kilku podstawowych informacji konfiguracyjnych umożliwia ona zmienianie wartości zmiennych oraz odczytywanie stanów wejść i wyjść. Jej celem jest pokazanie, jak proste może być kontrolowanie PLC przez małą aplikację zbudowaną w oparciu o technologię open source.
Przy pierwszym uruchomieniu zostaniecie poproszeni o zmodyfikowanie podstawowych danych dotyczących komunikacji ze sterownikiem:
Przed przystąpieniem do testów sprawdźcie, czy urządzenie, na którym uruchamiana jest aplikacja jest w tej samej sieci, co sterownik PLC.
Przyciski 'Tap Button' służyć mogą do sterowania oświetleniem. Jako 'Name' podać należy nazwę do wyświetlania, np. 'Salon'. Jako 'Read' wpisać należy adres wyjścia sterującego danym obwodem oświetlenia, np. 'QX0.0'. W polu 'Write' wpisać należy adres zmiennej, wykorzystywanej do sterowania danym blokiem funkcyjnym, np 'MB0'.
Po stronie PLC, w definicji zmiennych (przykładowo):
VAR VARIABLE1 AT %MB0 : BOOL; LIGHT1 : Fb_LatchingRelay; (*z biblioteki Building_common.lib*) END_VAR
Gdzie ‘MB0’ jest adresem, pod którym będziemy się komunikować z VARIABLE1.
W części programowej PLC_PRG umieszczam jeden blok funkcyjny do sterowania np. światłem:
LIGHT1(xSwitch:= IN1 OR VARIABLE1); OUT1:=LIGHT1.xActuator;
Gdzie IN1 to wejście binarne (np. przycisk), a OUT1 wyjście binarne sterujące danym obwodem. OUT1 otrzymuje adres QX0.0 - do skonfigurowania w Resources/PLC Configuration.
Przycisk 'Read Temp' służy do odczytywania temperatury z wejść analogowych. Pole 'Write' jest nieaktywne. W polu 'read' należy podać adres wejścia analogowego, np 'IW0'.
Przycisk 'Read Value' służy do odczytywania stanów dowolnego wejścia, wyjścia lub adresu. Pole 'Write' jest nieaktywne. W polu 'read' należy podać adres odczytywanego wejścia/wyjścia/zmiennej, np. "QX0.0", "IW0", "MB0".
Po zakończeniu konfiguracji (przycisk 'SAVE') aplikacja zacznie co 5 sekund odczytywać wszystkie adresy 'Read' i aktualizować stany/wartości przycisków/pól. W przypadku 'Tab Button' zmieniany będzie kolor przycisku (zółty dla QX0.0=1, czarny dla QX0.0=0). W przypadku pola 'Read Temp', odczytana wartość z adresów IW..., podzielona zostanie przez 10 i na końcu dodany będzie symbol jednostki. W przypadku pola 'Read Value', wartośc odczytana z adresu 'Read' zostanie wyświetlona bez modyfikacji.
Jeśli macie pytania, uwagi, sugestie, piszcie na forum.