Serwer monitorujący
Do postawienia serwera z interfejsem webowym, statystykami, CCTV i innymi bajerami potrzebowałem odpowieniej maszyny. Wybór padł na:
- Obudowa: CFI-A8989TG mini-ITX 150W
- Płyta główna: Intel D510MO Atom Mini ITX
- do tego oczywiście pamięć i dysk
Serwerek stanął w bezpiecznym miejscu. Na serwerze Debian, apache, mysql, cacti
System zarządzania
Ponieważ dostępne na rynku SCADA są w 99,9% softem pod windowsa długo kręciłem się w miejscu po czym uznałem, że pora napisać coś co będzie spełniać moje oczekiwania w 100%. Rozpocząłem pisanie własnego softu opartego głównie o PHP i jQuery.
Software działa LIVE. Server odpytuje sterownik PLC kilka razy na sekundę o aktualny stan i przechowuje te dane w bazie. W momencie otwarcia strony www z skryptem, strona zaczyna co sekundę odpytywać serwer o stan sterownika i systemu. Dzięki temu całość działa płytnnie przez sieć i opóźnienia są prawie niezauważalne.
Software pokazuje stan kontrolek. Można je kliknąć co powoduje wysłanie rozkazu do sterownika (np. zgaszenie światła).
Statystyki z działania sterownika PLC
Rozwiązanie z którego skorzystałem to CACTI. Trzeba mu niestety poświęcić niemało czasu na zrozumienie i konfigurację.
Przykładowo: W sterowniku liczone są impulsy pochodzące z licznika energii i zapisywane w rejestrze.
Cacti wywołuje skrypt, który wywołuje proste narzędzie czytające określony rejestr sterownika PLC.
Cacti rysuje z tego ładne diagramy. Dzięki temu można monitorować każdy aspekt pracy inteligentnego domu.
1. Konfigracja CACTI
Podaję link do struktur ktróe stworzyłem i wyeksportowałem z CACTI:
Powinny stworzyć struktury umoliwiające czytanie rejestrów z PLC przez SKRYPT
2. Skrypt
Skrypt jest prosty - wywołuje narzędzie poolmb (łatwe do znalezienia w sieci narzędzie pod linuxa czytające po MODBUS), obrabia odpowiedź i ją wyświetla. Ten skrypt jest uruchamiany przez cacti.