Sterowniki WAGO obsługują protokół komunikacyjny o nazwie „Network Variables” i wykorzystują go do wymiany danych pomiędzy sobą. Jednakże dzięki temu, że protokół jest opisany można stworzyć własną aplikację i wymieniać dane ze sterownikiem. Tak powstał pomysł napisania serwera, który z jednej strony będzie komunikował się ze sterownikami WAGO oraz utrzymywał u siebie część logiki działania systemu, a z drugiej strony umożliwiał połączenie się graficznych aplikacji mobilnych i stacjonarnych, które udostępniają końcowemu użytkownikowi przyjazny interfejs graficzny do sterowania budynkiem.
„CuteWAGO” składa się z serwera na platformie Linux, bazującego na popularnej platformie mikrokomputerów Cubieboard2, oraz aplikacji graficznych na tablet, telefon, komputer działających na systemach Android, iOS, Windows, Linux. Ponieważ aplikacje umieszczane w sklepach typu AppStore, Google Play, muszą obsługiwać więcej niż jedną instalację, zależało mi, aby cała część graficzna oraz konfiguracja dla danej instalacji była trzymana po stronie serwera, a aplikacja przy pierwszym połączeniu (tzw. inicjalizacji) pobierała sobie grafikę oraz inne dane specyficzne dla danej instalacji.
Chciałem również dać użytkownikowi możliwość konfigurowania i modyfikowania zdarzeń typu funkcje okresowe, logiczne, sceny świetlne, temperatura itp. wprost z aplikacji graficznych, już po wdrożeniu systemu, tak aby ich zmiana nie wymagała żadnej interwencji ze strony osoby technicznej. Ważne było również intuicyjne sterowanie systemem, dlatego wszystkie elementy sterowalne są rozmieszczone na planie budynku lub piętra. Plany są przygotowywane przez grafika pod konkretną instalację i uzupełniane ikonami z zasobów aplikacji konfiguracyjnej. Całość tworzy miły dla oka obraz, który pozwala szybko zorientować się w stanie całego budynku.
Przyjemną stroną integracji z WAGO jest to, że część sprzętową, na przykład protokoły komunikacji z urządzeniami zostawiam po stronie sterownika WAGO. Jeśli dana instalacja ma oświetlenie typu RGB, to aplikacja umożliwia stworzenie programu do płynnej zmiany kolorów, na przykład reklamy. Następnie serwer wysyła jedynie informacje, który kanał RGB jaką wartość ma osiągnąć w określonym przedziale czasu. Dalej już WAGO komunikuje się z częścią urządzeń po protokole DMX, a gdzie indziej wykorzystując Modbus. Ponieważ program na sterownik WAGO może być pisany pod konkretną instalację, pozwala to również obsłużyć wiele aspektów specyficznych dla tej instalacji. Np. trzeba wyłączyć zasilacze RGB, aby nie pracowały jałowo, kiedy reklama jest wyłączona. Sterownik wyłączy je, jeśli wszystkie kanały RGB otrzymają wartość zero.
Kolejny krok to korzystanie z danych dostępnych w innych, zewnętrznych systemach. Na przykład system alarmowy z rozmieszczonymi czujnikami otwarcia okna. Stosując gotową bibliotekę WAGO, można skomunikować się z centralą tego systemu. Informację o stanie czujników otwarcia okna można następnie wykorzystać w programach kontroli temperatury: otwarte okno – wyłącz ogrzewanie w pokoju. Rozwiązań jest wiele. Myślę, że połączenie możliwości WAGO w zakresie komunikacji i sterowania z aplikacją graficzną napisaną w C++ oferuje końcowemu użytkownikowi proste w użyciu i graficznie bogate narzędzie do sterowania i wizualizacji.
Marek Floriańczyk, FMCode.pl