Do Projektu iAutomatyka dołączyli:

Publikacja zgłoszona do 🎁 Konkursu iAutomatyka

LabVIEW – środowisko do programowania sterowników i szybkiego przetwarzania danych


LabVIEW, a właściwie Laboratory Virtual Instruments Engineering Workbench, jest graficznym środowiskiem programistycznym opracowanym przez National Instruments ułatwiającym inżynierom tworzenie aplikacji testowych, pomiarowych oraz do sterowania automatycznego procesami przemysłowymi. Największymi zaletami tego środowiska jest bardzo duża możliwość integracji z wszelkiego rodzaju sprzętem pomiarowym oraz przemysłowym, pełne pakiety zaawansowanych bibliotek inżynierskich oraz graficzne podejście do programowania pozwalające na szybkie tworzenie aplikacji w sposób intuicyjny w środowiskach inżynierskich, naukowych oraz akademickich. Program w LabVIEW tworzony jest w oparciu o diagramy przepływu informacji i schematy blokowe, które ułatwiają analizę funkcjonalności, co w naturalny sposób wspiera także tworzenie równoległych procesów. Dodatkowo oferuje ono także pakiet graficznych interfejsów użytkownika do sterowania aplikacją, prezentacji danych w postaci kontrolek, wskaźników, wykresów. Zawiera także jednakowy interfejs do programowania sprzętu pomiarowego i konfigurowalnych sterowników PLC firmy National Instruments.

Sterowniki serii CompactRIO

Seria sterowników CompactRIO, w skrócie cRIO, nie jest typową serią standardowych sterowników przemysłowych. Są to rekonfiguracyjne platformy sprzętowe wyposażone w procesorową jednostkę obliczeniową, na której pracuje system czasu rzeczywistego oparty o Linuxa oraz układ FPGA (ang. Field Programmable Gate Array), pozwalający na akwizycję i przetwarzanie dużych ilości danych z sensorów z wysoką częstotliwością (kilka rzędów wyższą niż w standardowym sterowniku przemysłowym). Przetwarzanie to odbywa się w sposób równoległy bez udziału procesora. Oba te moduły mogą być programowane bezpośrednio z poziomu LabVIEW w niemal identyczny sposób jak programy na komputer PC. Dodatkowo sterowniki mogą zostać wyposażone w bardziej lub mniej standardowe interfejsy wejściowo-wyjściowe.

Do wstępnej konfiguracji sterownika, testach komunikacji oraz wgrywania lub aktualizacji odpowiedniego firmware’u, ustawiania adresów IP wykorzystuje się program NI MAX widoczny na zrzucie ekranu poniżej.

Dostęp do zmiennych wejściowo-wyjściowych w LabVIEW odbywa się w sposób intuicyjny i polega na połączeniu zmiennych powiązanych z fizycznymi interfejsami w pętli synchronizowanej z cyklem sterownika. Przykładowy program realizujący proste operacje jest widoczny na grafice poniżej.

Specjalistyczne pakiety w LabVIEW

Do większości potrzebnych aplikacji nie trzeba wynajdywać na nowo koła, wystarczy skorzystać z pełnego pakietu specjalistycznych bibliotek w LabVIEW. W szczególności typowych zastosowań można wyróżnić pakiety wspierające przetwarzanie sygnałów (filtry cyfrowe, transformata Fouriera), narzędzia wspierające identyfikację procesów, układy sterowania, w tym regulatory PID, obliczenia z zakresu robotyki, pakiety do wszelkich obliczeń numerycznych oraz algorytmów z wizji komputerowej. Są dostępne także biblioteki ułatwiające komunikację ze sprzętem, tworzenie automatycznych raportów pomiarowych, a także dostęp do bazy danych. Pakiety w LabVIEW instalowane są z poziomu NI Package Manager, z którego screen widoczny jest poniżej.


Połączenie między programami na sterowniku i PC.

LabVIEW daje możliwość rozdzielenia programów pomiędzy te, które będą się wykonywały na sterowniku i te, które będą wykonywane na komputerze podczas uruchomienia programu. Jest to niezwykle wygodne, gdy weźmiemy pod uwagę fakt, że niektóre procesy nie muszą być wykonywane z każdym cyklem sterownika –  w ten sposób możemy odciążyć sterownik, a także lepiej zapanować nad kodem poprzez bezproblemową synchronizację podprogramów. Na sterowniku powinny znaleźć się programy przetwarzające stany wejść i wyjść (przypisanie sygnałów we/wy do zmiennych, filtrowanie, skalowanie). Program wykonujący się na komputerze może mieć inny czas cyklu, w nim powinien się znaleźć nasz główny algorytm, a także końcowe wyświetlanie wyników na wykresach, czy logika panelu użytkownika. Synchronizacja obu programów nie sprawia żadnych trudności, nawet w przypadku dużych różnic między czasem cyklu obu programów.

Połączenie między programami na sterowniku i komputerze umożliwiają aliasy, czyli połączenie między zmiennymi na komputerze, a sterowniku.

Na powyższym zrzucie ekranu jest pokazany projekt zawierający różne biblioteki zmiennych – część z nich jest na sterowniku, natomiast reszta na komputerze. Każda zmienna może być połączona z inną za pomocą aliasu, zasada działania jest bardzo prosta, stan, który zostanie przypisany do zmiennej w programie na sterowniku jest przekazywany do zmiennej w programie na komputerze (jest aktualizowany zgodnie z czasem cyklu sterownika), dzięki temu możemy używać zmiennych ze sterownika na komputerze, działa to w obie strony, lecz należy pamiętać o różnych czasach cyklu. Poniższy zrzut ekranu pokazuje okno właściwości zmiennej, dla której możemy włączyć aliasing.

Podczas tworzenia naszego projektu natknęliśmy się na ciekawą sytuację  – na początku wykorzystywaliśmy LabVIEW w wersji 2018, na tej wersji zostały utworzone zmienne, następnie wykorzystaliśmy aliasy, by je połączyć. Program na sterownik oraz program na komputer zostały stworzone w wersji LabVIEW 2019 i podczas testów na obiekcie rzeczywistym  wartości nie były przekazywane prawidłowo pomiędzy sterownikiem, a komputerem. Ponowne utworzenie i połączenie zmiennych wyeliminowało problem. Nie jest to reguła, ale używanie różnych wersji LabVIEW może powodować konflikty w programie i warto o tym pamiętać.

Programowanie w LabVIEW

Początki programowania w LabVIEW mogą wydawać się ciężkie, miłośnicy języka drabinkowego nie będą zbyt zadowoleni, ale spokojnie, interface jest bardzo przejrzysty, w zakładce help jest bardzo dokładnie wyjaśniony opis każdego elementu, który możemy wykorzystać, a internet jest pełen poradników i wiedzy, która na początku na pewno nam się przyda. Przede wszystkim należy zrozumieć ideę działania programów pisanych w LabVIEW, aby wykonywały się cyklicznie musimy stworzyć pętlę o zadanym czasie cyklu, w której będzie się znajdował cały program.


Następnie ogranicza nas już tylko nasza wyobraźnia i umiejętności programisty. Mamy do dyspozycji całą masę bibliotek i bloczków funkcyjnych. Początkowo musimy się zapoznać z podstawowymi elementami, które będą nam potrzebne, czyli typy danych i struktury, następnie możemy je przetwarzać za pomocą elementów programu:

Jak widać na zamieszczonych zrzutach ekranu mamy do dyspozycji mnóstwo różnych typów danych (numeryczne, boolowskie, łańcuchowe), a także struktur (pętle while, case, formula node itd.) Całość dopełniają tzw. klastry, czyli paczki zmiennych, które mogą być przekazywane między podprogramami. Mamy oczywiście do dyspozycji różne typy tablic i innych elementów, które ułatwiają programowanie. Przyciski, zmienne i wszelkie części programu są ze sobą łączone za pomocą “nitek”, jest to bardzo intuicyjne, ale należy bardzo uważać, bo łatwo można się pogubić i wprowadzić nieporządek w kodzie. W dalszej części artykułu będą opisane sposoby na zapanowanie nad bałaganem.

Bardzo przydatną rzeczą jest możliwość zagnieżdżania instrukcji z innych programów np. Matlab, jest to alternatywa dla osób, które wolą standardowe programowanie, ale również również poszerzenie funkcjonalności. Zostanie to przybliżone w dalszej części artykułu.

Front Panel

Front panel to bardzo ciekawe rozwiązanie, można z niego zrobić panel operatorski, miejsce do podglądu zmiennych, czy zadawania pewnych wartości. Wszelkie zmienne, czy przyciski, które tworzymy w programie są automatycznie dodawane na panel, nie musimy więc na koniec dodawać przycisków, czy tabel z wartościami i łączyć ze zmiennymi, dlatego jest to bardzo wygodne. Możliwości programowania czy ustawień takiego panelu są bardzo rozbudowane, natomiast przygotowanie podstawowego układu z kilkoma wykresami i przyciskami (przykład na zrzucie ekranu) nie powinno sprawić nikomu problemu, sposób tworzenia paneli jest bardzo intuicyjny.

Bardzo wygodną opcją jest skalowanie – pozwala na dopasowanie wielkości ikon, przycisków i innych elementów panelu do okna, w którym jest aktualnie prezentowany.

Na panelu możemy też zaimplementować trochę bardziej zaawansowane rozwiązania, jak na przykład tablicę zmiennych o dynamicznym rozmiarze.

By zadbać o estetykę możemy ustalać rozmiar elementów panelu z dokładnością co do piksela.

Zazwyczaj najlepiej jest dopasować panel do rozdzielczości komputera, na którym ostatecznie będzie wyświetlany.

Matlab i C w LabVIEW

Ciekawą funkcją LabVIEW jest możliwość dodania skryptu z programu Matlab, oczywiście jego funkcjonalność jest ograniczona, ale pozwala to na prostszą implementację pewnych funkcjonalności. By połączyć LabVIEW z Matlabem potrzebujemy oficjalnej licencji Matlaba w wersji 6.5 lub wyższej, więcej informacji można oczywiście na oficjalnych stronach National Instruments. Poniżej został przedstawiony przykładowy skrypt, który możemy zaimplementować w LabVIEW.

Dodatkowo można także implementować fragmenty kodu w postaci bloków programu, którego składnia jest bardzo zbliżona do języka C. Nie wymaga to żadnej dodatkowej licencji i zdecydowanie pomaga zapisywać bardziej skomplikowane fragmenty kodu zawierające np. równania. Przykładowy skrypt widoczny jest poniżej.

Symulacje układów sterowania

Środowisko LabVIEW wraz z pakietem Real Time Module pozwala na implementację symulatorów znanych obiektów procesowych. Abstrahując od konieczności zebrania sporej ilości danych z eksperymentów identyfikacyjnych lub wymaganego aparatu matematycznego potrzebnego do wyprowadzenia opisu układu w postaci równań różniczkowych, jeżeli jesteśmy już na etapie posiadania dobrego modelu matematycznego, możemy stworzyć symulator, który będzie połączony z faktycznym programem na sterowniku lub komputerze pozwalając na strojenie regulatorów lub instruktaż operatorów. Do implementacji takiego symulatora należy w sposób numeryczny rozwiązywać równania różniczkowe za pomocą np. metody Eulera z danym krokiem obliczeniowym. Najłatwiej do tego celu wykorzystać wcześniej wspomnianą możliwość tworzenia skryptów w języku C.


W ramach projektu na Politechnice Śląskiej na podstawie modelu matematycznego, którego autorem jest dr Krzysztof Stebel został zaimplementowany symulator układu do badań wytrzymałościowych materiałów konstrukcyjnych. Posłużył on do wstępnych testów bez ryzyka uszkodzenia stanowiska w przypadku błędów oprogramowania, lub źle dobranych parametrów układu regulacji. Symulator wraz z wymianą danych do głównego programu prezentuje się następująco:

Zrzut ekranu poniżej przedstawia przykładową implementację pojedynczej iteracji rozwiązania równania różniczkowego w symulatorze.

Utrzymanie porządku w labVIEW

Gdy dojdziemy do etapu, w którym nasz program stanie się bardziej rozbudowany zauważymy z pewnością, że ciężko o utrzymanie porządku z uwagi na plątaninę nitek, które łączą poszczególne części algorytmu. Dobrą praktyką jest zamykanie poszczególnych funkcji w tzw. subVI. Działa to podobnie do zwykłych funkcji w programowaniu, które są wywoływane w określonych częściach kodu, tutaj natomiast są to bloki funkcyjne, które łączymy z odpowiednimi zmiennymi i dzięki temu główna pętla programu staje się bardziej przejrzysta i łatwiejsza do zrozumienia.

A teraz wyobraźmy sobie, że zamiast zgrabnego bloczka z programem znalazłoby się w tym miejscu wszystko to, co jest wewnątrz niego:

Robi się niepotrzebny bałagan, dlatego warto sobie upraszczać życie i stosować bloczki funkcyjne.

Minusy LabVIEW przy programowaniu sterowników PLC

LabVIEW posiada wiele funkcjonalności, które ułatwiają życie, ma mnóstwo bibliotek do obsługi urządzeń i na pewno wielu osobom się spodoba. Nie można jednak zapominać, że jak wszystko ma też swoje bolączki. Nowym użytkownikom ciężko będzie zrozumieć sposób działania i sposób programowania w LabVIEW, trzeba się przyzwyczaić do pewnych rzeczy, dla mnie bardzo trudno było na początku znaleźć sposób na utrzymanie porządku w programie z uwagi na połączenia między zmiennymi, a funkcjami. Wraz z rozwojem programu stawało się ich po prostu zbyt dużo, o czym wspomniałem w poprzednich punktach. Należy więc się uzbroić w cierpliwość, szukać poradników i czytać dokumentację. Baza wiedzy jest ogromna. Kolejnym minusem jest to, że podczas pracy z tym programem można się natknąć na błędy w działaniu oprogramowania, problemy z niekompatybilnością urządzeń, czy nietypowe zachowania programu. Zdarzało nam się zauważyć, że program nie działa tak jak powinien i niekoniecznie była to wina napisanego przez nas algorytmu, a przykładowo wersji labVIEW. Szczególnie należy uważać przy przejściu między wersjami np. 2018/2019, w naszym przypadku spowodowało to kilka problemów. Nagrywanie programu na sterownik i uruchomienie go również odbiega od standardowych sterowników PLC, w tym przypadku na sterowniku może znajdować się wiele programów, ale działają tylko te, które aktualnie są uruchomione. Warto tutaj wspomnieć, że czasem zdarzało się, że przy nagrywaniu zawartości programu na sterownik biblioteki zmiennych należało nagrać jeszcze raz, bo sterownik ich zwyczajnie nie widział.

Debuggowanie w LabVIEW

Znajdowanie błędów w prostych programach w LabVIEW jest stosunkowo proste dzięki trybowi “żarówki”, która pokazuje w sposób graficzny podgląd przepływu informacji na żywo. Dzięki temu użytkownik może w płynny sposób obserwować jakie wartości przepływają przez programowe “kabelki” i śledzić w którym miejscu występują niepożądane operacje. Tryb ten przedstawiony jest na gifie poniżej.

Dodatkowo można też wykorzystywać standardowe opcje w postaci wykonywania programu krok po kroku, dzięki czemu po każdej operacji będzie się on zatrzymywał w celu dokładniejszego przyjrzenia się wartościom. Zdecydowanie w prostych aplikacjach znajdowanie błędów będzie proste, natomiast w przypadku mocno rozbudowanych i zaniedbanych aplikacji tryb “żarówki” może wprowadzać zbyt wiele niemożliwego do ogarnięcia chaosu.

Podsumowanie

LabVIEW jest środowiskiem, które zdecydowanie ułatwia szybkie tworzenie prostych aplikacji kontrolno-pomiarowych wraz z interfejsami analogicznymi do typu SCADA. Jego współdzielony sposób programowania zarówno do sprzętu jak i do interfejsów użytkownika na komputerze jest zdecydowanie bardzo dobrym podejściem, od którego mogłyby się uczyć pozostałe firmy tworzące sterowniki przemysłowe. Ze względu na cenę sprzętu jest on używany w szczególności podczas badań laboratoryjnych, natomiast w przypadku wymogów zastosowań o dużych częstotliwościach próbkowania, gdzie tradycyjne sterowniki przemysłowe nie dają rady, cRIO zdecydowanie może zająć ich miejsce. Utrzymanie kodu w LabVIEW oraz budowa rozbudowanych programów może trochę odpychać, natomiast przy zachowywaniu odpowiednich praktyk również i to nie powinno sprawiać problemów.

Autorzy artykułu: Szymon Burkowicz, Krzysztof Łukomski

Artykuł został nagrodzony w Konkursie iAutomatyka – edycja Luty 2020. Nagrodę Zestaw narzędzi + gadżety dostarcza ambasador konkursu, firma MULTIPROJEKT.


13 lutego 2020 / 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<

Nowe roboty w ofercie YAMAHA

Nowe roboty w ofercie YAMAHA

>KLIKNIJ<

SILNIK WIELOTŁOKOWO OSIOWY O ZMIENNEJ CHŁONNOŚCI A1OVER SERIA 52

SILNIK WIELOTŁOKOWO OSIOWY O ZMIENNEJ CHŁONNOŚCI A1OVER SERIA 52

>KLIKNIJ<

Fabryka Przyszłości – rozwijaj się dzięki technologii

Fabryka Przyszłości – rozwijaj się dzięki technologii

>KLIKNIJ<

DBS60I-W – firma SICK prezentuje nowy enkoder dla branży spożywczej z opatentowaną technologią „Deflector Shield”

DBS60I-W – firma SICK prezentuje nowy enkoder dla branży spożywczej z opatentowaną technologią „Deflector Shield”

>KLIKNIJ<

BEYOND – zawsze ponad standard

BEYOND – zawsze ponad standard

>KLIKNIJ<

Sterowanie Węzłem Cieplnym w Rabczańskiej Spółdzielni Mieszkaniowej

Sterowanie Węzłem Cieplnym w Rabczańskiej Spółdzielni Mieszkaniowej

>KLIKNIJ<

Monitoring zużycia mediów w Domach Studenckich Politechniki Wrocławskiej

Monitoring zużycia mediów w Domach Studenckich Politechniki Wrocławskiej

>KLIKNIJ<

Jakie trendy będą wyznaczać kierunki zsieciowanej fabryki jutra?

Jakie trendy będą wyznaczać kierunki zsieciowanej fabryki jutra?

>KLIKNIJ<

SmartRunner Matcher — jeden czujnik, wiele zastosowań

SmartRunner Matcher — jeden czujnik, wiele zastosowań

>KLIKNIJ<

Ocena ryzyka niezbędnym elementem każdej aplikacji wykorzystującej robota współpracującego

Ocena ryzyka niezbędnym elementem każdej aplikacji wykorzystującej robota współpracującego

>KLIKNIJ<

Nowe przetworniki ciśnienia i różnicy ciśnień gotowe na Przemysł 4.0

Nowe przetworniki ciśnienia i różnicy ciśnień gotowe na Przemysł 4.0

>KLIKNIJ<

LKAB Malmberget inwestuje w wydajność głęboko pod ziemią

LKAB Malmberget inwestuje w wydajność głęboko pod ziemią

>KLIKNIJ<

Mikroskopy cyfrowe w branży elektronicznej

Mikroskopy cyfrowe w branży elektronicznej

>KLIKNIJ<

Oszczędzaj energię i tym samym pieniądze!

Oszczędzaj energię i tym samym pieniądze!

>KLIKNIJ<

Mitsubishi rozdaje falowniki, iPada, głośniki i vouchery na szkolenia!!!

Mitsubishi rozdaje falowniki, iPada, głośniki i vouchery na szkolenia!!!

>KLIKNIJ<

Technologia push-in oraz inne usprawnienia ułatwiające pracę z przekaźnikami

Technologia push-in oraz inne usprawnienia ułatwiające pracę z przekaźnikami

>KLIKNIJ<

Sterowniki PFC200 do zarządzania produkcją energii z OZE

Sterowniki PFC200 do zarządzania produkcją energii z OZE

>KLIKNIJ<

Jakie narzędzia znajdziesz w skrzynce automatyka?

Jakie narzędzia znajdziesz w skrzynce automatyka?

>KLIKNIJ<

Zastosowanie modeli uczenia maszynowego może być łatwe, nawet bez wiedzy eksperckiej w zakresie nauki o danych

Zastosowanie modeli uczenia maszynowego może być łatwe, nawet bez wiedzy eksperckiej w zakresie nauki o danych

>KLIKNIJ<

Nowe silniki z wałem drążonym – optymalna równowaga w zakresie momentu obrotowego i prędkości

Nowe silniki z wałem drążonym – optymalna równowaga w zakresie momentu obrotowego i prędkości

Reklama



MOŻESZ SIĘ TYM ZAINTERESOWAĆ

  • To rozwiązanie oparte o technologię LoRaWAN pozwala skutecznie realizować działania ograniczające ryzyko rozprzestrzeniania się wirusa . Możliwość automatycznej kontroli dystansu z jednoczesnym monitoringiem relacji i wstecznym śledzeniem k...
  • Szkolenie dla automatyków, którzy chcą poznać najbardziej nowoczesne narzędzia do programowania systemów sterowania, którzy chcą dowiedzieć się więcej na temat Przemysłu 4.0 i łączenia świata IT ze światem automatyki. Czego nauczysz się na ...
    Czas trwania: 3 dni
    Link: Terminy
  • ROUTER VPN EWON COSY 131 Zapewnia sprawny i prosty w obsłudze zdalny dostęp do dowolnego urządzenia Kompatybilność z najważniejszymi markami i protokołami sterowników PLC (m.in. Siemens, Allen-bradley, Omron…) Szybie zarządzenie roote...
  • 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...
  • 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...