Wideo: konsola administracyjna Habr. Pozwala regulować karmę, oceniać i blokować użytkowników.
TL; DR: W tym artykule postaram się stworzyć komiksowy panel sterowania Habr wykorzystując środowisko programistyczne interfejsu przemysłowego Webaccess/HMI Designer oraz terminal WebOP.
Interfejs człowiek-maszyna (HMI) to zestaw systemów umożliwiających interakcję człowieka ze sterowanymi maszynami. Zazwyczaj termin ten jest stosowany do systemów przemysłowych, które mają operatora i panel sterowania.
WebOP — autonomiczny terminal przemysłowy do tworzenia interfejsów człowiek-maszyna. Służy do tworzenia paneli sterowania produkcją, systemów monitoringu, sterowni, sterowników inteligentnego domu itp. Obsługuje bezpośrednie połączenie z urządzeniami przemysłowymi i może pracować w ramach systemu SCADA.
Terminal WebOP - sprzęt
Terminal WebOP to komputer małej mocy, oparty na procesorze ARM, w jednej obudowie z monitorem i ekranem dotykowym, przeznaczony do uruchamiania programu z interfejsem graficznym utworzonym w HMI Designer. W zależności od modelu terminale posiadają na pokładzie różne interfejsy przemysłowe: RS-232/422/485, magistralę CAN do podłączenia do systemów samochodowych, port USB Host do podłączenia dodatkowych urządzeń peryferyjnych, port USB Client do podłączenia terminala do komputera, audio wejście i wyjście audio, czytnik kart MicroSD do pamięci nieulotnej i transferu ustawień.
Urządzenia są pozycjonowane jako budżetowy zamiennik komputerów typu all-in-one, do zadań, które nie wymagają wydajnych procesorów i zasobów pełnoprawnego komputera stacjonarnego. WebOP może pracować jako samodzielny terminal do sterowania i wprowadzania/wyprowadzania danych, w połączeniu z innymi WebOPami lub jako część systemu SCADA.
Terminal WebOP może łączyć się bezpośrednio z urządzeniami przemysłowymi
Chłodzenie pasywne i ochrona IP66
Ze względu na niskie odprowadzanie ciepła, niektóre modele WebOP zostały zaprojektowane całkowicie bez aktywnego chłodzenia powietrzem. Pozwala to na montaż urządzeń w miejscach wrażliwych na poziom hałasu oraz ogranicza ilość przedostającego się kurzu do wnętrza obudowy.
Panel przedni wykonany jest bez szczelin i łączeń, posiada stopień ochrony IP66 i umożliwia bezpośrednie wnikanie wody pod ciśnieniem.
Panel tylny terminala WOP-3100T
Pamięć nieulotna
Aby zapobiec utracie danych, WebOP posiada 128 KB pamięci nieulotnej, z którą można pracować w taki sam sposób, jak z pamięcią RAM. Może przechowywać odczyty liczników i inne krytyczne dane. W przypadku awarii zasilania dane zostaną zapisane i przywrócone po ponownym uruchomieniu.
Zdalna aktualizacja
Program działający na terminalu można aktualizować zdalnie poprzez sieć Ethernet lub poprzez interfejsy szeregowe RS-232/485. Upraszcza to konserwację, ponieważ eliminuje potrzebę odwiedzania wszystkich terminali w celu aktualizacji oprogramowania.
Modele WebOP
Środowisko programistyczne WebAccess/HMI Designer
Po wyjęciu z pudełka terminal WebOP to po prostu komputer ARM o niskim poborze mocy, na którym można uruchomić dowolne oprogramowanie, ale cały sens tego rozwiązania polega na zastrzeżonym środowisku programistycznym interfejsu przemysłowego WebAcess/HMI. System składa się z dwóch elementów:
- Projektant HMI — środowisko do tworzenia interfejsów i logiki programowania. Działa w systemie Windows na komputerze programisty. Ostateczny program jest kompilowany do jednego pliku i przesyłany do terminala w celu wykonania w czasie wykonywania. Program jest dostępny w języku rosyjskim.
- Czas działania HMI — środowisko wykonawcze do uruchamiania skompilowanego programu na terminalu końcowym. Może pracować nie tylko na terminalach WebOP, ale także na Advantech UNO, MIC i zwykłych komputerach stacjonarnych. Istnieją wersje uruchomieniowe dla systemów Linux, Windows, Windows CE.
Witaj świecie - tworzenie projektu
Zacznijmy tworzyć interfejs testowy dla naszego panelu sterowania Habr. Uruchomię program na terminalu
Tworzenie nowego projektu i wybór architektury
Wybór protokołu komunikacyjnego, poprzez który skompilowany program zostanie załadowany do WebOP. Na tym etapie możesz wybrać interfejs szeregowy lub określić adres IP terminala.
Interfejs tworzenia projektów. Po lewej stronie znajduje się schemat drzewa elementów przyszłego programu. Na razie interesuje nas tylko pozycja Ekrany, są to bezpośrednio ekrany z elementami interfejsu graficznego, które będą wyświetlane na terminalu.
Najpierw utwórzmy dwa ekrany z tekstem „Hello World” i możliwością przełączania się między nimi za pomocą przycisków. W tym celu dodamy nowy ekran, Ekran #2, a na każdym ekranie dodamy element tekstowy i dwa przyciski do przełączania pomiędzy ekranami (Przyciski Ekranowe). Skonfigurujmy każdy przycisk, aby przejść do następnego ekranu.
Interfejs do ustawiania przycisku do przełączania między ekranami
Program Hello World jest gotowy, teraz możesz go skompilować i uruchomić. Na etapie kompilacji mogą pojawić się błędy w przypadku błędnie podanych zmiennych lub adresów. Każdy błąd jest uważany za krytyczny; program zostanie skompilowany tylko wtedy, gdy nie będzie żadnych błędów.
Środowisko zapewnia możliwość symulacji terminala, dzięki czemu można lokalnie debugować program na komputerze. Istnieją dwa rodzaje symulacji:
- Symulacja online — wykorzystane zostaną wszystkie zewnętrzne źródła danych określone w programie. Mogą to być USO lub urządzenia podłączone poprzez interfejsy szeregowe lub Modbus TCP.
- Symulacja offline — symulacja bez użycia urządzeń zewnętrznych.
Choć nie dysponujemy danymi zewnętrznymi, korzystamy z symulacji offline, po uprzednim skompilowaniu programu. Ostateczny program będzie znajdować się w folderze projektu, pod nazwą NazwaProjektu_NazwaProgramu.px3
Programem uruchomionym w symulacji można sterować za pomocą kursora myszy w taki sam sposób, jak na ekranie dotykowym terminala WebOP. Widzimy, że wszystko działa zgodnie z założeniami. Świetnie.
Aby pobrać program na terminal fizyczny, wystarczy kliknąć przycisk Pobierz. Ponieważ jednak nie skonfigurowałem połączenia terminala ze środowiskiem programistycznym, możesz po prostu przenieść plik za pomocą napędu flash USB lub karty pamięci MicroSD.
Interfejs programu jest intuicyjny, nie będę omawiał każdego bloku graficznego. Tworzenie tła, kształtów i tekstu będzie jasne dla każdego, kto korzystał z programów podobnych do Worda. Do stworzenia interfejsu graficznego nie jest wymagana umiejętność programowania, wszystkie elementy dodawane są poprzez przeciągnięcie myszką na formularz.
Praca z pamięcią
Skoro już wiemy jak tworzyć elementy graficzne, nauczmy się pracować z treścią dynamiczną i językiem skryptowym. Stwórzmy wykres słupkowy prezentujący dane ze zmiennej U $ 100. W ustawieniach wykresu wybierz typ danych: 16-bitowa liczba całkowita oraz zakres wartości wykresu: od 0 do 10.
Program umożliwia pisanie skryptów w trzech językach: VBScript, JavaScript oraz w języku własnym. Skorzystam z trzeciej opcji, ponieważ są na nią przykłady w dokumentacji i automatyczna pomoc dotycząca składni bezpośrednio w edytorze.
Dodajmy nowe makro:
Napiszmy prosty kod, aby stopniowo zmieniać dane w zmiennej, którą można śledzić na wykresie. Do zmiennej dodamy 10 i zresetujemy ją do zera, gdy będzie większa niż 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Aby wykonać skrypt w pętli, ustaw go w ustawieniach Konfiguracji ogólnej jako Makro główne, z interwałem wykonania 250ms.
Skompilujmy i uruchommy program w symulatorze:
Na tym etapie nauczyliśmy się manipulować danymi w pamięci i wyświetlać je wizualnie. To już wystarczy, aby stworzyć prosty system monitorowania, odbierający dane z urządzeń zewnętrznych (czujniki, sterowniki) i zapisując je w pamięci. W HMI Designer dostępne są różne bloki wyświetlania danych: w postaci okrągłych tarcz ze strzałkami, różnych wykresów i wykresów. Korzystając ze skryptów JavaScript, możesz pobierać dane ze źródeł zewnętrznych za pośrednictwem protokołu HTTP.
Panel sterowania Habr
Wykorzystując nabyte umiejętności wykonamy komiksowy interfejs dla konsoli administracyjnej Habr.
Nasz pilot powinien móc:
- Przełącz profile użytkowników
- Przechowuj karmę i dane ocen
- Zmień wartości karmy i oceny za pomocą suwaków
- Po kliknięciu przycisku „zablokuj” profil powinien zostać oznaczony jako zbanowany, a awatar powinien zmienić się na przekreślony
Każdy profil wyświetlimy na osobnej stronie, dlatego utworzymy stronę dla każdego profilu. Będziemy przechowywać karmę i ocenę w zmiennych lokalnych w pamięci, która zostanie zainicjowana za pomocą makra konfiguracyjnego po uruchomieniu programu.
Dostosowywanie karmy i oceny
Do regulacji karmy użyjemy suwaka (Slide Switch). Jako adres zapisu podajemy zmienną zainicjalizowaną w Makro Konfiguracyjnym. Ograniczmy zakres wartości suwaka od 0 do 1500. Teraz, gdy suwak się przesunie, nowe dane zostaną zapisane do pamięci. W takim przypadku początkowy stan suwaka będzie odpowiadał wartościom zmiennej w pamięci.
Aby wyświetlić wartości liczbowe karmy i oceny, użyjemy elementu wyświetlania numerycznego. Zasada jego działania jest podobna do schematu z przykładowego programu „Hello World”, po prostu wskazujemy adres zmiennej w polu Adres monitora.
Przycisk zakazu
Przycisk „ban” jest realizowany za pomocą elementu przełącznika. Zasada przechowywania danych jest podobna do powyższych przykładów. W ustawieniach możesz wybrać inny tekst, kolor lub obraz, w zależności od stanu przycisku.
Po naciśnięciu przycisku awatar powinien być przekreślony na czerwono. Można to łatwo wdrożyć za pomocą bloku Picture Display. Umożliwia określenie wielu obrazów powiązanych ze stanem przycisku przełącznika. W tym celu blok otrzymuje ten sam adres co blok z przyciskiem i liczbę stanów. Podobnie ustawia się obrazek z tabliczkami znamionowymi pod awatarem.
wniosek
Ogólnie rzecz biorąc, produkt mi się podobał. Wcześniej miałem doświadczenie w korzystaniu z tabletu z Androidem do podobnych zadań, jednak opracowanie dla niego interfejsu jest znacznie trudniejsze, a API przeglądarki nie pozwalają na pełny dostęp do urządzeń peryferyjnych. Jeden terminal WebOP może zastąpić połączenie tabletu z systemem Android, komputera i kontrolera.
HMI Designer, pomimo swojej archaicznej konstrukcji, jest dość zaawansowany. Bez specjalnych umiejętności programowania możesz szybko naszkicować działający interfejs. W artykule nie omówiono wszystkich bloków graficznych, których jest mnóstwo: animowane rury, cylindry, wykresy, przełączniki. Obsługuje wiele popularnych sterowników przemysłowych od razu po wyjęciu z pudełka i zawiera złącza baz danych.
referencje
Można pobrać środowisko programistyczne WebAccess/HMI Designer i Runtime
→
Źródło: www.habr.com