Do Projektu iAutomatyka dołączyli:

Publikacja zgłoszona do 🎁 Konkursu iAutomatyka
https://iautomatyka.pl/wp-content/uploads/2019/11/node-red-iautomatyka.jpg

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


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.



/ Kategoria: , , , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!

Zapoznałem się i akceptuję klauzulę informacyjną.



.

NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

>KLIKNIJ<

KONKURS IAUTOMATYKA GRUDZIEŃ 2021

KONKURS IAUTOMATYKA GRUDZIEŃ 2021

>KLIKNIJ<

Finansowanie projektów automatyzacji i robotyzacji, cz. 1

Finansowanie projektów automatyzacji i robotyzacji, cz. 1

>KLIKNIJ<

Czujniki indukcyjne – Działanie, budowa, podłączenie, zastosowanie

Czujniki indukcyjne – Działanie, budowa, podłączenie, zastosowanie

>KLIKNIJ<

Liderzy robotyzacji

Liderzy robotyzacji

>KLIKNIJ<

Wspólne typy danych używane w sterownikach Mitsubishi

Wspólne typy danych używane w sterownikach Mitsubishi

>KLIKNIJ<

RENEX Group podsumowuje Targi Productronica

RENEX Group podsumowuje Targi Productronica

>KLIKNIJ<

Aplikacja VEGA Tools dla łatwiejszego i szybszego dostępu do wartości pomiarowych

Aplikacja VEGA Tools dla łatwiejszego i szybszego dostępu do wartości pomiarowych

>KLIKNIJ<

Pomiary energii i mocy nigdy nie były tak proste!

Pomiary energii i mocy nigdy nie były tak proste!

>KLIKNIJ<

Timery i liczniki używane w sterownikach Mitsubishi

Timery i liczniki używane w sterownikach Mitsubishi

>KLIKNIJ<

Większe bezpieczeństwo procesów produkcyjnych z Heartbeat Technology

Większe bezpieczeństwo procesów produkcyjnych z Heartbeat Technology

>KLIKNIJ<

Maszyna się rozpędza! Tworzymy kurs podstaw automatyki z Pilz

Maszyna się rozpędza! Tworzymy kurs podstaw automatyki z Pilz

>KLIKNIJ<

Logistyka zakładowa w standardzie I4.0: System ActiveShuttle z zaawansowaną interakcją jest teraz bardziej bezpieczny elastyczny

Logistyka zakładowa w standardzie I4.0: System ActiveShuttle z zaawansowaną interakcją jest teraz bardziej bezpieczny elastyczny

>KLIKNIJ<

Bulkscan® bezkontaktowy pomiar przepływu materiałów sypkich

Bulkscan® bezkontaktowy pomiar przepływu materiałów sypkich

>KLIKNIJ<

OMRON prezentuje wizję fabryki przyszłości w zmodernizowanym Centrum Automatyki w Barcelonie

OMRON prezentuje wizję fabryki przyszłości w zmodernizowanym Centrum Automatyki w Barcelonie

>KLIKNIJ<

Nowa seria interfejsów sygnałowych RN Series – niezawodne zasilanie i separacja obwodów pomiarowych

Nowa seria interfejsów sygnałowych RN Series – niezawodne zasilanie i separacja obwodów pomiarowych

>KLIKNIJ<

Przemysł-segmenty #LAPP

Przemysł-segmenty #LAPP

>KLIKNIJ<

Zobacz relacje z Warsaw Industry Week 2021 z firmą Finder

Zobacz relacje z Warsaw Industry Week 2021 z firmą Finder

>KLIKNIJ<

System sztucznego naśnieżania oparty na urządzeniach firmy akYtec

System sztucznego naśnieżania oparty na urządzeniach firmy akYtec

>KLIKNIJ<

Grupa RENEX na Productronice

Grupa RENEX na Productronice

>KLIKNIJ<

Nowości YAMAHA na Productronice

Nowości YAMAHA na Productronice

Reklama



MOŻESZ SIĘ TYM ZAINTERESOWAĆ

  • Monitorowanie obciążenia i rozdział potencjałów w jednym kompletnym rozwiązaniu To innowacyjny system dystrybucji napięcia 24 V DC zapewniający monitorowanie obciążenia i dystrybucję potencjałów w jednym kompletnym rozwiązaniu. Bezawaryjna ...
  • ÖLFLEX® CLASSIC 110 – elastyczny przewód sterowniczy do różnych zastosowań, w płaszczu z PVC, aprobata VDE, odporność na oleje, 300/500 V, również do YSLY lub YY CPR: informacje pod adresem www.lapppolska.pl Certyfikat zgodności VDE z...
  • EPSITRON®ECO & COMPACT Power OSZCZĘDNOŚĆ KOSZTÓW Zasilacze EPSITRON® ECO i COMPACT Power to nie tylko oszczędność przy zakupie, ale również niższe koszty dzięki łatwej obsłudze oraz braku konieczności serwisowania. Są one doskonałym roz...
  • PR200 to uniwersalne i łatwe w obsłudze urządzenie zaprojektowane w plastikowej obudowie do montażu na szynie DIN jako alternatywa dla PLC. Przekaźnik jest dostępny w kilku wersjach dla napięcia stałego i przemiennego. Jest wyposażony w cyf...
  • Seria FX-100 Czujniki z serii FX-100 to najlepsze rozwiązanie pod względem stosunku jakości do ceny. Wyposażone są w funkcje szybkiego uczenia, co pozwala użytkownikom w szybki i prosty sposób przystosować czujnik do pracy z nieskomplikowan...
  • 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...