Do Projektu iAutomatyka dołączyli:

Publikacja zgłoszona do 🎁 Konkursu iAutomatyka

Darmowa i ładna SCADA? Niemożliwe? Sprawdź Node-RED!

1876 wyświetleń, autor: Przemysław Krupiarz.

Prawie wszystkie projekty z jakimi się spotykamy w automatyce wymagają interfejsu człowiek-maszyna (ang. HMI), jednakże czasami napotykamy na projekt gdzie zamontowanie takiego panelu wiąże się przekroczeniem budżetu – co wtedy? Wtedy możemy sięgnąć po rozwiązania open-source! Informatycy dawno zrozumieli, że lenistwo to pierwszorzędna cecha rozwoju i zamiast konkurować ze sobą w narzędziach zaczęli konkurować w produktach – większość aplikacji web’owych opiera się o rozwiązania typu FOSS – free open source software (darmowe otwarte oprogramowanie). Wspólnie rozwijają i wspólnie wykorzystują dostępne biblioteki i inne tego typu rozwiązania – i tak docieramy do Node-RED.

Node-RED

Node-RED to środowisko oparte o zrozumiały przez przeglądarki język – javascript oraz środowisko node.js (js = skrót od javascript), które odpowiada za obsługę ze strony serwera. Node-RED można uruchomić na Windowsie, Linuxie, Raspberry PI, a także w chmurze – dodatkowa zaleta to możliwość uruchomienia w kontenerze, tzn. w niezależnym wirtualnym środowisku, dzięki czemu na jednym systemie równolegle może pracować wiele procesów NodeRED, a więc i wiele wizualizacji.

Wyobraźmy sobie! Jeden komputer, a do tego kilkanaście wyświetlaczy dotykowych zamiast wielu drogich paneli HMI, bajka.

Do czego można wykorzystać Node-RED?

  • Urządzenia typu IoT;
  • Inteligentne domy;
  • Wizualizacja procesów / stanu maszyn;

Wielu z Was może zastanawiać się nad stabilnością Node-RED, jednakże nie ma się o co martwić. Node.js to silnik przetestowany w bojach aplikacji internetowych, a sam Node-RED to interfejs który generuje kod w javascript. Cytując wikipedie:

Wiele firm i korporacji aktywnie korzysta z Node.js. Są to m.in. Groupon, IBM, LinkedIn, Microsoft, Netflix, PayPal, Walmart, Uber, czy Yahoo!.

Jak możemy to wykorzystać? Pokażę przykład sterowania falownikiem przez sterownik S7-1200. Zanim rozpoczniemy pracę nad wizualizacją przygotujmy sobie program w TIA Portal.

S7-1200 PLCSIM

Aby każdy, mając w domu komputer, mógł przetestować prezentowane rozwiązanie – napisałem program symulujący pracę falownika, dzięki czemu wystarczy uruchomić symulator PLCSIM w TIA Portal. Po kolei – tworzymy nowy projekt, dodajemy sterownik z rodziny S7-1200 (tutaj 1214C DC/DC/DC), przechodzimy do konfiguracji i zaznaczamy opcję:

Uruchamiamy symulator PLCSIM, wgrywamy program oraz konfigurację sprzętową, łączymy się z symulatorem i resztę zmian będziemy wgrywać „online”. Teraz tworzymy Datablock do wymiany danych z wizualizacją, po raz kolejny musimy zaznaczyć ważną opcję:

Ostatnim krokiem jest dodanie Function Block’a odpowiadającego za symulację pracy falownika:

Program widoczny powyżej obserwuje również LifeBit, czyli cyklicznie przełączany bit, który przesyła do sterownika wizualizacja, jeżeli nie zmienia się przez zbyt długi czas to praca naszego falownika zostanie zatrzymana – nie będą spełnione zezwolenia pracy.

TIA Portal na ten moment możemy zminimalizować, ostatnim krokiem związanym z PLC jest jeszcze uruchomienie programu NetToPLCsimktóry pozwala na łączenie się symulatora ze światem zewnętrznym. Program należy po uruchomieniu skonfigurować jak niżej, uwaga: adres ip 192.168.8.163 to był adres mojego komputera więc może się różnić, natomiast adres 192.168.0.1 to adres symulatora PLCSIM. Ostatnią opcją jest Rack/Slot które dla sterowników z rodziny S7-1200/1500 jest 0/1:

Po co właściwie NetToPLCsim? Uruchamiałem TIA Portal oraz Node-RED na osobnych systemach, co wymagało otwarcia symulatora PLC na świat.

Projekt w Node-RED

Po zainstalowaniu Node-RED zgodnie z instrukcją na stronie nodered.org należy dodać bibliotekę s7comm (node-red-contrib-s7comm), biblioteka ta jest niezbędna do komunikacji pomiędzy Node-RED, a sterownikiem. Kolejną biblioteką którą należy dodać jest dashboard (node-red-dashboard), dzięki której łatwo opracujemy ładny interfejs, taki jak poniżej:

Jak to osiągnąć? Należy uruchomić proces Node-RED, a następnie w przeglądarce wpisać localhost:1880. Znajdziemy się na stronie naszego serwera Node-RED, gdzie możemy edytować i wdrażać program (nazywany tutaj flow). Program znajdujący się poniżej działa w następujący sposób:

  1. Cyklicznie odczytuje dane ze sterownika – memory_clock oraz statusy z DB_NodeRED. W przypadku wykrycia błędu połączenia lub nawiązania połączenia ze sterownikiem, informuje nas monitem w prawym górnym rogu ekranu.
  2. Cyklicznie wysyła LifeBit ciągle zmieniając stan z 0 na 1 i z 1 na 0.
  3. Jednorazowo po starcie odczytuje aktualne dane rozkazów z DB_NodeRED i zapisuje ich stan do kontrolek wizualizacji.
  4. Po każdej zmianie stanu kontrolek (rozkazów) wysyłane są dane do sterownika, jest to komunikacja acykliczna.

Widać również bloki funkcyjne, są niezbędne, ponieważ Node-RED operuje na obiektach, gdzie podstawowym obiektem jest msg, który zawiera payload z danymi, a dane pobierane przez s7comm zawierają payload który sam jest obiektem! Więc musimy z niego wyciągnąć interesujące nas dane, a dokładnie wartość zmiennej, która kryje się w msg.payload.value[0]. Czyli! Po odczycie przepisujemy msg.payload = msg.payload.value[0], natomiast przed zapisem w sterowniku odwracamy ten proces. Uwaga! Funkcje zawierają opisy – int/float/bool ponieważ po odczycie oprócz przepisania w odpowiednie miejsce musimy również ustalić typ zmiennej.

Tak przygotowaną wizualizację możemy uruchomić również na smartfonie! Automatycznie jest ona przekształcana w wersję mobile:

Kod powyższego flow, a także kod na sterownik Siemensa znajdziecie w Klubie Automatyka.

Skorzystanie z Node-RED może być dla automatyków zderzeniem z całkowicie inną filozofią programowania, sam się z tym spotkałem. Przede wszystkim program nie wykonuje się cyklicznie dopóki mu tego nie wskażemy, wszystko co się dzieje poza tym jest oparte o reakcje na zdarzenie, a więc wciśnięcie przycisku, czy przesunięcie suwaka. Jakie jeszcze są możliwości Node-RED? Ogromne. Łączenie z bazami danych SQL, komunikacja po protokołach jak MQTT czy OPC UA, zapis/odczyt plików, właściwie wszystko do czego zdolny jest Node.js, a tego jest sporo. Osobiście nie wróżę powodzenia tego w „poważnym przemyśle”, ale w aplikacjach domowych lub prostych urządzeniach, gdzie przestoje nie kosztują więcej niż maszyna – jak najbardziej! Otwiera to wiele możliwości stworzenia inteligentnej maszyny w oparciu o tani i prosty sterownik oraz Node-RED.

Poniżej załączam również filmik, będący nagraniem z ekranu smartfona podczas zabawy z gotową wizualizacjo-symulacją!

 

Artykuł został nagrodzony w Konkursie iAutomatyka – edycja Listopad 2019

Nagrodę Voucher na szkolenie + kubek termiczny + zestaw gadżetów

dostarcza ambasador konkursu, firma Mitsubishi Electric.

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!

Zapoznałem się i akceptuję klauzulę informacyjną.
30 listopada 2019 / Kategoria: , , , ,

Reklama

NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

>KLIKNIJ<

Dyrektywa Ecodesign – od 1 lipca 2020r.

Dyrektywa Ecodesign – od 1 lipca 2020r.

>KLIKNIJ<

Cobot – co to właściwie jest?

Cobot – co to właściwie jest?

>KLIKNIJ<

Mają link do innowacyjnego biznesu

Mają link do innowacyjnego biznesu

>KLIKNIJ<

Napęd elektryczny na Wielkich Jeziorach

Napęd elektryczny na Wielkich Jeziorach

>KLIKNIJ<

Jak zgrać dane z panelu HMI Weintek na pendrive?

Jak zgrać dane z panelu HMI Weintek na pendrive?

>KLIKNIJ<

NEED – polski przekaźnik programowalny

NEED – polski przekaźnik programowalny

>KLIKNIJ<

Jak powstają PRZENOŚNIKI I TRANSPORTERY przemysłowe? – Fabryki w Polsce

Jak powstają PRZENOŚNIKI I TRANSPORTERY przemysłowe? – Fabryki w Polsce

>KLIKNIJ<

DWI Motion – Dawid Wróblewski | Twój ekspert w dziedzinie napędów

DWI Motion – Dawid Wróblewski | Twój ekspert w dziedzinie napędów

>KLIKNIJ<

[Nagranie] Live o czujnikach w automatyce przemysłowej

[Nagranie] Live o czujnikach w automatyce przemysłowej

>KLIKNIJ<

Nowy CSO w B&R

Nowy CSO w B&R

>KLIKNIJ<

Wszystko o HMI (Human-Machine Interface), co automatyk powinien wiedzieć

Wszystko o HMI (Human-Machine Interface), co automatyk powinien wiedzieć

>KLIKNIJ<

Pompa osiowo-tłokowa A17F(N)O serii 10

Pompa osiowo-tłokowa A17F(N)O serii 10

>KLIKNIJ<

Jak powstają NOWOCZESNE OGRODZENIA? Fabryki w Polsce

Jak powstają NOWOCZESNE OGRODZENIA? Fabryki w Polsce

>KLIKNIJ<

Silnik 3 fazowy – przekaźnik nadzorczy jako strażnik silnika

Silnik 3 fazowy – przekaźnik nadzorczy jako strażnik silnika

>KLIKNIJ<

Przed nami fala przemysłowych innowacji

Przed nami fala przemysłowych innowacji

>KLIKNIJ<

Precyzja i doskonała organizacja, czyli Rittal dla linii pakujących CPS Case Packaging System

Precyzja i doskonała organizacja, czyli Rittal dla linii pakujących CPS Case Packaging System

>KLIKNIJ<

Lenze Polska Sp. z o.o.

Lenze Polska Sp. z o.o.

>KLIKNIJ<

Prosta automatyzacja z chwytakiem Co-act EGH SCHUNK

Prosta automatyzacja z chwytakiem Co-act EGH SCHUNK

>KLIKNIJ<

PLC i bazy SQL – prosta integracja

PLC i bazy SQL – prosta integracja

>KLIKNIJ<

Autonomiczny robot mobilny – co to jest?

Autonomiczny robot mobilny – co to jest?





MOŻESZ SIĘ TYM ZAINTERESOWAĆ

  • Urządzenia XV300 wyposażone są w przemysłowe wyświetlacze wysokiej rozdzielczości z technologią wielodotyku. To, w połączeniu z precyzyjnym i intuicyjnym interfejsem użytkownika, umożliwia operatorom pracę od zaraz. Dodatkowo te wysoko wyda...
  • Sterowniki  z serii SIMATIC S7-1200 oferują szeroki zakres funkcjonalności i zintegrowane wejścia/wyjścia zamknięte w kompaktowej obudowie. Są doskonałym narzędziem do realizacji standardowych projektów i zadań automatyki, a jednostki S7-12...
  • Przy użyciu flexROOM® można szybko i łatwo realizować automatykę budynkową na potrzeby biur i budynków administracyjnych, zgodną z obowiązującymi normami i efektywną energetycznie. flexROOM® to szeroki wachlarz rozwiązań dla automatyki budy...
  • Seria EX-Z Czujniki z serii EX-Z to jedne z najmniejszych urządzeń tego typu na świecie. Najcieńszy model posiada grubość jedynie 3 mm co zostało osiągnięte przez zastosowanie nowych półprzewodników i dzięki temu wyeliminowanie przewodów. B...
  • Ekonomiczne monitorowanie i sterowanie, teraz także dzięki panelom 2 generacji. Dzięki odpowiedniemu doborowi funkcji HMI, panele Basic 2 generacji stanowią doskonałe rozwiązanie przy produkcji maszyn lub w małych aplikacjach przemysłowych....
  • SIR6W, to nowa seria przekaźników interfejsowych przeznaczonych do separacji wejść/wyjść w aplikacjach PLC oraz do wielu różnych aplikacji jako elementy pośredniczące i wykonawcze. • SIR6W, to przekaźniki o niewielkich wymiarach 88,6 x 6,2 ...