Witamy, Gość. Zaloguj się lub zarejestruj.
Aktualności:
Forum Sterowniki PLC Inteligentny dom > Systemy zarządzania >

Aplikacja do zarządzanie Fatekiem (Android)

Strony: [1]
Drukuj
Autor Wątek: Aplikacja do zarządzanie Fatekiem (Android)  (Przeczytany 4874 razy)
DukeNukem
Full Member
***
Wiadomości: 59


Aplikacja do zarządzanie Fatekiem (Android)
: Grudzień 06, 2014, 08:56:57 am »

Witam Wszystkich! Wieki mnie tu nie było ale wróciłem, a na jak długo to się zobaczy

W głowie urodziła mi się koncepcja napisania aplikacji na androida dla naszego Fateka, w sumie urodziła się dawno ale czasu nigdy nie ma. Pomysł ambitny szczególnie, że nigdy nic pod androida nie napisałem. W skrócie opisze jak to zamierzam wykonać, a mądrzejszych proszę o rady i konstruktywną krytykę.

Pogram na hoście podłączonym do Fateka po RSie (ja mam taką konfigurację), nazwijmy go Server. (zakładam, że będzie to "malutki linuch")

Aplikacja Javy do której będą łączyć się „wszyscy klienci”, początkowo będzie to wspomniana aplikacja na androidzie, później może jakieś WWW. Jeden wątek będzie bez przerwy nasłuchiwał żądań od klientów.
Drugim zadaniem aplikacji będzie komunikacja z Fatekiem, pobieranie wartości rejestrów, ustawianie itp. (tu jakieś kolejkowania i/lub klasa statyczna).
No i tu pojawia już się pierwsze pytanie czy po stronie tego mojego małego serwerka założyć, że część rejestrów, będę przechowywał w jego pamięci tak aby ograniczyć ilość żądań do sterownika? Np. rejestr dot. temperatury? Inne?

Druga aplikacja kliencka na androida, która wykorzystując mechanizm „Java Socket” będzie komunikować się z aplikacją „Server”. Na razie zamierzam się ograniczyć do prostych funkcji: włącz/wyłącz światło, sterowanie roletami, wyświetlanie temperatur, sterowanie rekuperatorem.
I tu mam mały problemik, w którą stronę pójść jeżeli chodzi o w miarę elastyczną konfigurację, czy z automatu założyć że będzie ona znajdować się na jakiejś małej bazie danych po stronie serwer czy może oprzeć się na pliku „java.propertis”? wtedy musiałbym opracować jakiś przyjazny format. Np. coś w stylu

Nazwa=Kuchnia; Salon 1; Salon 2; Gabinet; Łazienka
Rejestr=R1001; R1002; R1003; R1004; R1005

Lub

TMPNazwa1=Kuchnia
TMPRejestr1= R1001
TMPNazwa2= Salon 1
TMPRejestr2= R1002

Podobnie z konfiguracją rolet itd.
Oczywiście pójście w jedno rozwiązanie nie wyklucza drugiego, zawsze będzie można coś dorobić na późniejszym etapie.

Na obecną chwilę po wielkich bojach i udrękach udało mi się poprawnie skomunikować z FATEKiem po RSie. W tym celu skorzystałem z „gotowego” projektu „jmod”, którego przekompilowałem pod odpowiednią wersję RXTXcomm.jar. Następnie napisałem prototypową aplikację, która z czytuje mi  wszystkie wartości temperatur (wcześniej zaczytane z ADY do Fateka). Dodatkowo na androidzie napisałem malutką aplikacyjkę, która łączy się do mojego „Servera” i przesyłam mu żądania „zgaś/zapal” światło w gabinecie. Oczywiście jest to tylko prototyp do przetestowania czy takowe rozwiązanie w ogóle będzie działać, jeszcze nic nie jest konfigurowalne i nic nie jest „ładnie” napisane.

Co myślicie o moim pomyśle?

Pozdrawiam
Oskar


koles
Full Member
***
Wiadomości: 44


Aplikacja do zarządzanie Fatekiem (Android)
#1 : Grudzień 06, 2014, 10:02:43 am »

Przelicz sobie, jak często chcesz odświeżać (odczytywać albo zapisywać) zawartość rejestrów i ile ich masz, potem sprawdź, ile operacji odczytu/zapisu po RS na sekundę jesteś w stanie zrobić. Sporo w dalszych rozważaniach będzie od tego zależeć.

Nie mam pojęcia, jaka jest wydajność javy na takich konfiguracjach, ale to też bym sprawdził na początek, może inne narzędzie będzie lepiej się nadawać.
Konfiguracja - kwestia gustu, ja bym trzymał w edytowalnym pliku tekstowym.

Jest jeszcze inna droga - użyć jakiejś gotowej aplicaji SCADA i komunikować się po MODBUS/Eth, jest kilka na Androida, niektóre darmowe. Nie znalazłem nic akceptowalnego, ale technika idzie do przodu...

arturs
Sr. Member
****
Wiadomości: 225



Aplikacja do zarządzanie Fatekiem (Android)
#2 : Grudzień 07, 2014, 11:08:20 am »

a po tym RSie w jakim formacie gadasz z fatekiem?
bo jak pisze przedmówca to trochę ogranicza.. oczywiście można kolejkować ale to już rodzi kolejne problemy - priorytety, czasy odświerzania itp. po kolejne - java i android.. może lepiej raspi i www?

DukeNukem
Full Member
***
Wiadomości: 59


Aplikacja do zarządzanie Fatekiem (Android)
#3 : Grudzień 07, 2014, 21:16:01 pm »

To najpierw odniosę się do javy i jej wydajności... no chyba co do tego to raczej nie ma co dyskutować ma swoje wady i zalety ale przecież to jest Fatek, raptem kilka tysięcy rejestrów ile to może zajmować i jak to może chodzić na najgorszym obecnie dostępnym sprzęcie, jakby tego nie napisać i w czym (java/c/itp) to na pewno będzie zpier...dzielać

a co do czytań po RSie to obrazowe wyniki zamieszczam poniżej
Y0-Y255 ~15ms
M0-M2001 ~20ms
R0-R4167 ~275ms

Spodziewam się, że w ciągu sekundy jestem w stanie z czytać wszystko z Fateka, pytanie czy to dużo czy mało Dodam, że nic nie kombinowałem w ustawieniach portów bo się nie znam, a może ktoś coś doradzi? jak czytam wartości dyskretne to w jednym request mogę z czytać wszystkie "M"ki ale jak czytam rejestry "R" to już muszę w pętli po 125szt, bo jak więcej to dostaje "CRC Error in received frame" jest to chyba jakiś TimeOut w klasie którą wykorzystuje "jamod". Nie siedziałem jeszcze nad tym bo nie wiem czy jest sens.

Co do formatu to nie wiem jak pisałem w pierwszym poście korzystam z gotowca "jamod", "nic nie musiałem robić a działa" - czy będzie wystarczający to się okaże na obecną chwilę wszystko co potrzebuję mogę pobrać i mogę ustawić, a pracy mnie to zbytnio nie kosztowało.

"Android i Java" - "prawie wszystko" na adroidzie jest na javie, a co do WWW to będzie ale później, no i wszystko pewnie będzie na raspi.

Pozdrawiam i czekam na jeszcze


koles
Full Member
***
Wiadomości: 44


Aplikacja do zarządzanie Fatekiem (Android)
#4 : Grudzień 08, 2014, 09:49:40 am »

Mam tylko jedną uwagę - jak udostępnisz do zapisu za dużo rejestrów (albo co gorsza wyjścia), to masz duże szanse narobić sobie poważnych kłopotów, choćby przez błąd w programie, jeśli nie przez czyjeś złośliwe działanie. Dotyczy to oczywiście Twojego "serwera". Elastyczność jest fajna, ale nie zaszkodzi sobie zadać pytania, co się stanie jak program pójdzie w maliny i każe np. Fatekowi wyzerować wszystkie rejestry.

Poza tym, powinno działać, powodzenia.
PS Wygląda na to, że mam bardzo podobną konfigurację do Twojej, również jestem na etapie wdrażania sterowania przez WWW / komórkę.

jahu
Sr. Member
****
Wiadomości: 138


Aplikacja do zarządzanie Fatekiem (Android)
#5 : Grudzień 09, 2014, 07:29:38 am »

jak ktoś chce się zmierzyć z napisaniem drivera do komunikacji z FATEK'iem to tutaj jest opis protokołu komunikacyjnego FACON http://www.esea.cz/support/fatek/facon-protocol.pdf Komunikacja może odbywać się po wi-fi (telefon<->PLC) więc serwer może zostać pominięty, chyba że ktoś chce mieć również rejestrację danych historycznych to niestety ale serwer jest wymagany.
« Ostatnia zmiana: Grudzień 09, 2014, 07:35:09 am wysłane przez jahu »

Strony: [1]
Drukuj
Skocz do: