Skip to Content

Osadzanie zewnętrznych interfejsów HMI

Wiele maszyn przemysłowych udostępnia własny HMI (Human-Machine Interface) przez lokalny serwer webowy. Ten przewodnik pokazuje, jak udostępnić te interfejsy HMI z poziomu interfejsu IronFlock, używając widgetu Osadź, nginx reverse proxy i tuneli zdalnego dostępu.

Podstawowy przykład: pojedyncza maszyna

Najprostszy przypadek to pojedyncza maszyna CNC (lub PLC, kamera itp.), której serwer webowy HMI jest dostępny z sieci lokalnej urządzenia brzegowego — na przykład pod adresem 192.168.1.50:8080.

1. Skonfiguruj adres maszyny jako parametr aplikacji

Użyj parametru aplikacji, aby umożliwić użytkownikowi konfigurację lokalnego adresu HMI maszyny (np. 192.168.1.50:8080). W ten sposób adres nie jest wpisany na sztywno i może być ustawiony osobno dla każdej instalacji na urządzeniu.

2. Dodaj nginx reverse proxy w kodzie brzegowym

W konfiguracji Docker swojej aplikacji dołącz prosty kontener nginx, który odczytuje skonfigurowany adres maszyny i przekazuje go do stałego portu na urządzeniu brzegowym — na przykład localhost:3000. Kod brzegowy odczytuje parametr aplikacji i odpowiednio konfiguruje nginx.

3. Zdefiniuj stały port w szablonie portów

W swoim szablonie portów zadeklaruj port, na którym nasłuchuje nginx:

# .ironflock/port-template.yml ports: - name: CNC Machine HMI port: 3000 main: false

Port musi być stały (nie przydzielany dynamicznie), ponieważ portów zdalnego dostępu nie można dodawać w czasie wykonywania — są definiowane w czasie wydania i konfigurowane dla każdej instalacji.

Dzięki zadeklarowaniu portu w port-template.yml aplikacja oferuje zdalny dostęp do maszyny CNC. Zainstalowanie aplikacji na urządzeniu produkcyjnym włącza ten tunel. Pozostaje on prywatny — mogą go otworzyć tylko użytkownicy zalogowani do IronFlock, którzy mają dostęp do urządzenia — a użytkownicy z uprawnieniem Sieć mogą go wyłączyć w ustawieniach aplikacji.

Zdalny dostęp jest tu potrzebny, ponieważ użytkownik korzystający z HMI pracuje na swoim lokalnym laptopie, a nie w sieci urządzenia brzegowego. Technologia tuneli IronFlock tworzy bezpieczne połączenie z przeglądarki użytkownika aż do przekazywanego portu urządzenia brzegowego.

4. Dodaj widget Osadź do panelu

W UI Builder dodaj widget Osadź wskazujący na adres tunelu zdalnego dostępu urządzenia na porcie 3000. Oryginalny HMI maszyny CNC pojawia się teraz bezpośrednio w panelu IronFlock.

Ta podstawowa konfiguracja zapewnia zdalny dostęp do HMI pojedynczej maszyny per urządzenie — bez VPN, bez zmian w firewallu.


Zaawansowane: wiele maszyn per urządzenie

Gdy urządzenie brzegowe jest połączone z kilkoma maszynami, możesz rozszerzyć wzorzec, aby obsługiwać wszystkie ich interfejsy HMI przez jeden przekazywany port, używając routingu opartego na ścieżkach.

1. Przechowuj adresy maszyn w tabeli backendu danych

Dodaj tabelę do swojego backendu danych, która śledzi szczegóły każdej maszyny, w tym adres lokalnego serwera webowego i przekierowaną ścieżkę:

# .ironflock/data-template.yml data: tables: - tablename: machines maintainLatestFlagFor: ['machine_id'] columns: - id: tsp dataType: timestamp - id: machine_id dataType: string - id: name dataType: string - id: local_hmi_address dataType: string - id: forwarded_hmi_path dataType: string

2. Routuj wiele maszyn przez nginx

Skonfiguruj nginx tak, aby działał jako reverse proxy dla każdej maszyny na oddzielnej ścieżce pod tym samym stałym portem. Na przykład przekieruj 192.168.1.50:8080 do localhost:3000/cnc1/ i 192.168.1.51:8080 do localhost:3000/cnc2/. Zapisz te przekierowane ścieżki z powrotem w tabeli machines, aby panel wiedział, gdzie znaleźć każdy HMI.

Obowiązuje ten sam stały port i ten sam szablon portów co w podstawowym przykładzie — jeden port obsługuje wszystkie maszyny przez różne ścieżki.

3. Dodaj widgety Osadź z nawigacją opartą na stronach

W UI Builder utwórz oddzielną stronę panelu dla HMI każdej maszyny i na każdej stronie dodaj widget Osadź, który odczytuje forwarded_hmi_path z tabeli machines i używa go jako adresu URL osadzenia.

Aby umożliwić użytkownikom przełączanie między HMI, użyj funkcji Strony i nawigacja. Dodaj widget Nawigacja boczna, który wyświetla wszystkie podłączone maszyny jako pionowe menu paska bocznego. Elementy paska bocznego mogą być generowane dynamicznie z tabeli machines, dzięki czemu nowe maszyny pojawiają się automatycznie. Gdy użytkownik kliknie nazwę maszyny, panel przechodzi do odpowiedniej strony, a widget Osadź na tej stronie ładuje właściwy HMI.

Wynik

Użytkownicy mogą przeglądać wszystkie podłączone maszyny w panelu, wybrać jedną i wchodzić w interakcję z jej oryginalnym HMI bezpośrednio w IronFlock — bez VPN, bez osobnej karty przeglądarki, bez konfiguracji firewalla. Widget Osadź, backend danych i tunel zdalnego dostępu współpracują ze sobą, tworząc spójny i bezpieczny interfejs sterowania całą flotą maszyn.

Last updated on