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.



Utworzono: / Kategoria: , , , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!




.
NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



MOŻESZ SIĘ TYM ZAINTERESOWAĆ
  • EPLAN Electric P8 oferuje nieograniczone możliwości planowania projektu, tworzenia dokumentacji oraz zarządzania projektami automatyki. Zautomatyzowane tworzenie szczegółowych raportów opartych na schematach okablowania jest integralnym ele...
  • Czterokrotnie szybsze widzenie maszynowe HALCON 20.11. i 4-rdzeniowy procesor zwiększają produktywność maszyn B&R radykalnie przyspieszyło wykonywanie wszystkich typów aplikacji systemu wizyjnego. Nowy 4-rdzeniowy procesor i kompilator ...
  • Nowe modułowe sterowniki programowalne PLC firmy Eaton umożliwiają producentom maszyn i systemów opracowywanie nowoczesnych koncepcji automatyki, zwłaszcza w połączeniu z systemem XN300 I/O i panelem dotykowym XV300. Modułowy sterownik zape...
  • Szybki i bezpieczny dostęp do maszyn i fabryk Usługa u-link gwarantuje szybki i bezpieczny dostęp do maszyn i fabryk, co ułatwia zdalne utrzymanie ruchu, jednocześnie pozwalając na wydajne zarządzanie zakładami produkcyjnymi i stacjami klie...
  • 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...
  • SICK oferuje całą gamę elektronicznych przetworników pomiarowych ciśnienia i presostatów, które ze względu na inteligentne i wszechstronne możliwości konfiguracji dają się optymalnie dopasować do indywidualnych wymagań klienta. W typowy dla...