Do Projektu iAutomatyka dołączyli:

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.



Utworzono: / Kategoria: , , , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!



PRZECZYTAJ RÓWNIEŻ



NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



POLECANE FIRMY I PRODUKTY
  • Rozwiązania wizyjne nadają się idealnie do zautomatyzowanych zadań kontrolnych i pomiarowych. Kamery wizyjne 2D i 3D firmy SICK sprawdzają się w ogromnej ilości aplikacji, polegających na pomiarze, lokalizacji, kontroli i identyfikacji. Nas...
  • Przeznaczony do pracy na wolnym powietrzu EMC / ekranowany Zakres zastosowania Budowa instalacji przemysłowychBudowa maszynTechnika grzewcza i klimatyzacyjnaElektrownie Dla przemiennika częstotliwości zasilającego 3 – fazowe silniki A...
  • 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...
  • 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 ...
  • Selektor napędów Panasonic umożliwia przeglądanie napędów z serii MINAS, wyszukiwanie ich w prosty sposób, a nawet porównywanie ze sobą. Dzięki wyszukiwaniu po słowach kluczowych i przy użyciu funkcji filtrowania, potrzeba zaledwie sekund a...
  • 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...