Partnerzy portalu iAutomatyka.pl

ZOSTAŃ PARTNEREM PORTALU

Firma Johnson Controls to światowy lider w zakresie zróżnicowanych technologii i przemysłu świadczący usługi dla klientów w ponad 150 krajach. 170 000 naszych pracowników tworzy wysokiej jakości produkty, usługi i rozwiązania umożliwiające optymalizację wydajności energetycznej oraz obsługowej budynków.

Korporacja Mitsubishi Electric, posiadająca 90 lat doświadczenia w zakresie dostarczania niezawodnych, wysokiej jakości innowacyjnych produktów w dziedzinie automatyki przemysłowej, produkcji, marketingu i sprzedaży urządzeń elektrycznych i elektronicznych. Programowalne sterowniki PLC, rozwiązania napędowe, roboty przemysłowe, panele dotykowe, wycinarki laserowe i sterownie CNC firmy Mitsubishi Electric zaliczają się do produktów najwydajniejszych na rynku i gwarantują sukcesy firmy już od ponad 30 lat.

WAGO jest producentem urządzeń automatyki przemysłowej i budynkowej oraz systemów połączeń dla elektrotechniki i elektroniki. Powstanie w 1951 roku firmy WAGO było wyrazem przekonania o słuszności obranego kierunku i stworzyło podwaliny pod dalszy rozwój technologii. Z czasem stała się ona standardem na całym świecie i teraz nie sposób wyobrazić sobie nowoczesnej instalacji elektrycznej czy systemu automatycznego sterowania bez wyrobów WAGO.

Eaton Electric jest producentem najwyższej jakości automatyki przemysłowej, aparatury sygnalizacyjnej, łączeniowej, zabezpieczającej i instalacyjnej oraz systemów rozdziału energii niskiego napięcia. Międzynarodowe nagrody oraz certyfikaty są dowodem, iż produkty Eaton Electric odpowiadają najnowszym standardom bezpieczeństwa i wymaganiom jakości. Wszystkie nasze wyroby gwarantują długoletnie działanie.

Exact matches only
Szukaj w tytule
Search in content
Szukaj postów i artykułów
Search in pages
Szukaj w katalogu firm

Krótki tutorial kamery wizyjnej Keyence IV-Navigator 1/3


Krótki tutorial kamery wizyjnej Keyence IV-Navigator 1/3
673 wyświetleń

W ostatnim poście przedstawiłem sprzęt i ogólne obiekty naszego projektu inspekcji wizyjnej. Tym razem zajrzymy do oprogramowania IV-Navigator wydanego przez firmę Keyence. Inspekcję wizyjną będziemy tworzyć na wersji R3.00.40. IV-Navigator to intuicyjne narzędzie do programowania kamer wizyjnych. Programowanie odbywa się „krok po kroku”, co znacznie ułatwia obsługę oprogramowania i kamer. Nie jestem specjalistą ani szkoleniowcem. Postaram się jednak pokrótce przedstawić podstawowe funkcje oprogramowania.

Zapraszam również do pozostałych części naszego poradnika:


Część 0. Stanowisko wizyjne Keyence

Część 1. Krótki tutorial kamery wizyjnej Keyence IV-Navigator 

Część 2. Krótki tutorial kamery wizyjnej Keyence IV-Navigator

Część 3. Krótki tutorial kamery wizyjnej Keyence IV-Navigator


Zadanie

Zaprojektować inspekcję wizyjną dla dwóch obiektów. Dla każdego obiektu zaprogramować wyzwalanie ręczne przyciskiem START i automatyczne o częstotliwości 2Hz. Przełączanie pomiędzy obiektami i trybami pracy zrealizować na dwóch bistabilnych przełącznikach – „WARIANT” oraz „M/A”. Prawidłowe wykrycie obiektu (OK) ma być sygnalizowane zapaleniem się zielonej lampki. Wykrycie nieprawidłowe (NOK) zapaleniem się lampki czerwonej. Czas świecenia lampki to 500ms. Wykrywanie dwóch obiektów ma się odbywać przy pomocy dwóch różnych metod wykrywania.

Po zainstalowaniu uruchamiamy oprogramowanie. Naszym oczom ukaże się okno startowe wyboru trybu połączenia. Direct Connection to bezpośrednie połączenie z kamerą/kamerami. Network Connection to tryb łączenia w sieci złożonej z wielu urządzeń. Opcja „Open file” służy do symulowania działania kamery.

Wybieramy opcję „Direct Connection”.

Wybieramy kartę sieciową, za pomocą której chcemy się połączyć z kamerą (do której jest podłączona). Następnie klikamy w przycisk „Connect”.

Po chwili zobaczymy okno główne programu:

Jest to podstawowy układ okna w narzędziu IV-Navigator. Główna część okna to aktualne/ostatnie pobrane zdjęcie za pomocą kamery. Nie mamy w tej chwili pobranego zdjęcia referencyjnego, stąd komunikat „No Master Image”. Na samej górze mamy klasyczny windowsowy pasek narzędzi. Poniżej przełącznik dwóch trybów naszej pracy z kamerą. Tryb „Run” to tryb pracy. W tym trybie kamera wykonuje programy inspekcji wizyjnych, pobiera informacje o wejściach i steruje wyjściami. W tym trybie nie możemy dokonywać istotnych zmian parametrów programu ani kamery. Tryb „Program” to tryb programowania. W tym trybie wprowadzamy wszelkie zmiany programowe i konfiguracyjne. Lekko na prawo mamy rozwijaną listę programów, których maksymalna ilość to 32. Na chwilę obecną nie mamy jeszcze żadnego programu. Dalej na prawo mamy historię pobieranych obrazów, opcje konfiguracyjne wejść/wyjść oraz opcje zaawansowane. Opcje po prawej stronie okna to opcje konfiguracji i tworzenia programów. „Sensor Setup” służy do tworzenia nowego programu od podstaw. „Limit adjustment” to dostrajanie parametrów granicznych gotowego już programu (tzw. suwaki – omówimy to w dalszej części poradnika). Ostatnia opcja to ustawienia automatyczna. Dodam, że nie używałem nigdy tej opcji, więc nic o niej nie powiem. Zanim utworzymy nowy program zobaczmy opcje konfiguracyjne wejść/wyjść. Klikamy opcję „I/O Settings”.

W nowym oknie możemy konfigurować funkcje poszczególnych wejść cyfrowych kamery. Konfiguracja jest całkowicie swobodna i dowolna. Kolory przewodów stanowią dodatkowe uproszczenie konfiguracji i podłączenia. W naszym projekcie pod IN1 (różowy) podłączymy zewnętrzny trigger w postaci zielonego przycisku START. IN3 (niebieski) to resetowanie błędu. IN2 (żółty) i IN4 (fioletowy) to bity wyboru programu.

Wybór programu

Wybieranie programu podczas pracy realizowane jest za pomocą pięciu wejść cyfrowych w tzw. postaci binarnej. Oznacza to, że kolejne bity wejściowe (0 lub 1) determinuje numer programu w naszej postaci dziesiętnej.

Przykład:

Bity wej.       4       3      2      1      0                    Numer programu:

Liczba           2^4  2^3  2^2  2^1  2^0

Wartości A   0       0      0      0       0                  0

Wartości B   1       1      1      1       1                 16+8+4+2+1=31

Wartości C   0       0      1      0       1                 4+1=5

Wartości D   1       0      0      1       0                 16+2=18

Na początku może się to niektórym wydawać trudne i niezrozumiałe. Z drugiej strony automatyk powinien orientować się w systemie binarnym co najmniej bardzo dobrze. W naszym projekcie korzystamy z bitów 0 i 1, będziemy więc operować na programach o numerach 0-1-2-3 (dwa obiekty po dwa tryby pracy).

Kolejna zakładka to konfiguracja wyjść i trybu zadziałania wyjścia (sygnał ciągły lub impuls). Możemy tutaj ustawić czas trwania impulsu wyjściowego i opóźnienie jego załączenia, jeśli jest taka potrzeba.

Trzecia zakładka to bardzo prosty i przydatny symulator/wizualizacja wejść i wyjść. Możemy wygodnie podglądać stan wejść i ręcznie załączać wyjścia kamery. Funkcje wyjść będziemy ustawiać przy okazji tworzenia programów inspekcji.

Wróćmy do głównego okna. Z rozwijanej listy programów wybieramy program nr 0. Następnie wciskamy przycisk „Sensor Setup”. Przystępujemy do stworzenia naszego pierwszego programu.

Czas start

W tym miejscu domyślnie ustawiony jest trigger wewnętrzny co 200ms. Natychmiast więc otrzymamy zdjęcia wykrywanego obiektu. Pierwszy program napiszemy dla triggera zewnętrznego, przełączmy się więc na opcję „External Trigger”. Wykrywana linijka jest półprzezroczysta i błyszcząca. Nie jest to idealny obiekt na start, ale spróbujemy coś z tego wyciągnąć. Pierwszy krok tworzenia programu to opcje pobierania obrazu – wyzwalacz, jasność, ostrość i obszar inspekcji. Przejdźmy do opcji drugiej, czyli janość/gamma.

Mamy tu do wyboru opcję strojenia automatycznego lub ręcznego z wyborem trybów jasności (Normal, HDR, High Gain). Wybór ręczny to oczywiście metoda prób i błędów aż do osiągnięcia pożądanego rezultatu.

Wybierzmy teraz opcję automatycznego ustawienia jasności.

Obraz w tle to rezultat ustawienia automatycznego. Wybrałem jednak opcję automatyczną drugi raz. Skoro jasność mamy ustawioną przejdźmy do ostrości.

Ostrość jest tutaj tożsama z odległością kamery do wykrywanego obiektu. Opcja automatyczna zwyczajnie określi tę wielkość. Ręczne ustawienie wartości za dużej lub za małej spowoduje, że obraz będzie rozmyty.

Czoło kamery znajduje się ok. 15cm od powierzchni deski do krojenia i taka odległość została automatycznie ustawiona przez kamerę.

Ostatnia opcja to ustawienie obszaru, który będzie badany podczas inspekcji. Opcja ta będzie dostępna również przy konfigurowaniu metod wykrywania pikseli. Tym razem ją pominę. Przechodzimy do kroku drugiego, czyli poboru zdjęcia referencyjnego.

Zdjęcie referencyjne to główne, idealne zdjęcie, do którego będą porównywane kolejne obrazy. Zdjęcie referencyjne musi być więc jak najlepszej jakości. Klikamy opcję „Register Live image as master”.

Następnie „Register the image”.

Zdjęcie referencyjne zostało utworzone. Krok trzeci to wybór i nałożenie odpowiednich metod inspekcji.

Na jednym zdjęciu możemy użyć kilku metod wykrywania pikseli w celu optymalizacji naszego procesu i zwiększenia odporności na błędy i czynniki losowe. Pierwsza metoda to Outline, czyli wykrywanie krawędzi.

Area to wykrywanie pola o odpowiednim kolorze. Mamy kamerę czarno-białą, będziemy więc wybierać tylko odpowiedni odcień z gamy czarno-białej.

Ostatnia opcja to Position Adjustment. Nie jest to opcja stricte inspekcyjna, lecz służąca do wykrywania obrazu „w ogóle”. Umożliwia również swobodną rotację obiektu. Dwie metody wykrywania obiektu zostają uruchomione dopiero po pozytywnym wykryciu detalu przez tę opcję. W kamerach różnych producentów opcja ta może mieć różne nazwy, np. w kamerach Sick Inspector jest to „Object Locator”. Tę opcję wybieramy w pierwszej kolejności.

Po prawej stronie ukarze nam się panel konfiguracji narzędzia. Wygląda on podobnie dla każdej metody inspekcyjnej. Na górze mamy do wyboru wybór kształtu obszaru działania narzędzia (koło, prostokąt) oraz kształt obszaru wyszukiwania pikseli. Chcę, by wykrycie obiektu mogło być możliwe na całym obszarze zdjęcia, zaznaczę więc opcję Entire (całość).

W zakładce Extended Functions mamy opcję rotacji pola wyszukiwania w zakresie 0 – 180 stopni oraz funkcję Margin, rozszerzającą tolerancję o kilka stopni. Linijka będzie kładziona pod różnym kątem, zaznaczę więc 180 stopni oraz Margin ON. Wróćmy do pierwszej karty.

Czas ustalić kształt naszego Object Locatora. Chcę, by twarz była wykrywana „po oczach” i taki obszar zaznaczmy. Mamy możliwość zwiększenia lub zmniejszenia czułości wykrywania krawędzi. Niektóre piksele i obszary zdjęcia mogą okazać się przy tym zbędne. Możemy je usunąć za pomocą opcji Remove Outline.

Narzędzie działa w sposób bardzo podobny jak gąbka w systemowym narzędziu Paint. Usuwamy obszary, które nas nie interesują. Interesują mnie tylko wewnętrzne krawędzie naszych oczu.

Kolejny krok to sprawdzenie wszystkich ustawień w trybie „na żywo”. W tym celu klikamy przycisk Live Adjustment.

W tym trybie trigger jest aktywny, w zależności od wcześniejszego ustawienia (wewnętrzny-zewnętrzny). Możemy tutaj zasymulować poprawność działania oraz odporność na błędy (tolerancję). Na powyższym zdjęciu widzimy, że częściowo zasłonione, oczy nadal są bardzo dobrze widoczne.

Zasłonione oczy nie są już wykrywane, co w zależności od naszych potrzeb może być pożądane. Obecne ustawienie działa prawidłowo. Możemy wyjść do poprzedniego okna i wybrać jedną z metod inspekcji.

W tym wariancie będziemy korzystać z metody Outline. Wybieramy ją w sposób identyczny, jak wcześniej Position Adjustment.

Jak widzimy, konfiguracja konkretnych metod inspekcji wygląda niemal identycznie i w analogiczny jak wcześniej sposób, ustawiamy interesujące nas opcje.

Wstępny wygląd naszej metody inspekcyjnej Outline. Po pozytywnym wykryciu oczu, program poszukuje pikseli krawędzi w rejonie ust. Możemy przetestować naszą inspekcję w trybie Live Adjustment.

Oczy nie zostają wykryte. Obserwujemy teraz narzędzie Outline, nie widzimy więc stopnia wykrycia pikseli oczu. Narzędzie Outline nie zostaje uruchomione.

Teraz oczy są widoczne, częściowo zakryte usta nie zostają pozytywnie zaobserwowane.

Pod takim kątem i przy takim świetle usta są widoczne za słabo mimo braku zakłóceń mechanicznych. Możemy zmniejszyć granicę pozytywnej inspekcji.

Na chwilę obecną wszystko działa prawidłowo. Oczywiście możemy w przyszłości zmienić tolerancję w zależności od potrzeby.

Ostatni krok to konfiguracja wyjść cyfrowych kamery. Tak samo jak w przypadku wejść, jest ona całkowicie dowolna. Na puszce mamy zamontowane lampki OK i NOK. W naszym przypadku podłączymy je do wyjść „Total Status” (przewód czarny) oraz „Tot.StatusNG” – przewód biały. Czarny przewód podłączymy więc do lampki OK, biały do NOK.

Druga zakładka to Extended Functions. Możemy tutaj łączyć wyniki poszczególnych inspekcji w bramki logiczne AND i OR oraz ich wersje zanegowane. Na chwilę tworzenia tego tutoriala nigdy nie używałem tych funkcji. Postaram się jednak wypróbować je w wolnym czasie i napisać o nich kilka słów w ostatniej części poradnika.

Wstępna konfiguracja naszego programu jest ukończona. Możemy zakończyć programowanie wciskając przycisk Complete.

Gratulacje!

Napisaliśmy nasz pierwszy program. Za chwilę obejrzymy go w pełnej okazałości w trybie Run. Zanim przejdziemy do trybu Run, możemy przetestować ręczną regulację suwaków i wizualizację wyników w funkcji Limit Adjustment. Wciskamy więc przycisk o tej samej nazwie.

Wizualizacja działania aktualnie działającego programu wygląda dość przyjemnie. Te same suwaki plus dodatkowo wizualizację poszczególnych wyników na wykresie. Będziemy na nim widzieć ilość inspekcji segregowaną według procentu znalezionych pikseli (profesjonalna nazwa to bodajże histogram). Przy pierwszym uruchomieniu programu jeszcze nic nie widzimy. Poniżej kilka zdjęć z inspekcji pod różnymi kątami:

Na koniec wciskamy przycisk Complete. Możemy przejść teraz do trybu Run i poobracać naszą linijką.

Jak na razie działa prawidłowo. Utwórzmy więc drugi, bliźniaczy program, tym razem z triggerem wewnętrzny,.

Tworzymy drugi program

Przechodzimy do trybu Program. Obok rozwijanej listy programów wciskamy przycisk Detail.

Otworzy nam się okno przeglądu programów. Na samej górze znajduje się pozioma lista zapisanych programów. Każdy z nich podpisany jest zdjęciem referencyjnym, co ułatwia orientację przy dużej ilości inspekcji. Poniżej znany nam już widok poglądowy inspekcji i narzędzi. Obok obecnej nazwy programu – PROG_00 widoczny jest przycisk Edit. Kliknijmy go.

W nowym okienku wpisujemy nową nazwę programu, w naszym przypadku LINIJKA_MAN, co przypomina o ręcznym wyzwalaczu. Klikamy przycisk Ok.

Kopiowanie programów odbywa się identycznie, jak kopiowanie czegokolwiek w systemie. Klikamy prawym przyciskiem myszy na ikonie programu LINIJKA_MAN, a następnie na Copy. Wybieramy skąd i dokąd mamy kopiować program.

W naszym przypadku przełącznik trybu pracy M/A podłączony jest do bitu 1 wyboru programu. Po jego przełączeniu kamera wybierze więc automatycznie program zapisany w slocie 02 (2^1=2). Wynika to stąd, że budując stanowisko najpierw podłączyłem elektrykę, a potem konfigurowałem kamerę. Na nasze potrzeby może tak zostać. Wybór pustego programu sygnalizowany jest szybkim zapaleniem i gaszeniem się lampki NOK.

Analogicznie zmieniamy nazwę nowego programu na LINIJKA_AUTO.

Przechodzimy do trybu programowania przyciskiem Sensor Setup. W nowym programie zmieniamy tylko rodzaj triggera – ustawiamy Internal Trigger co 500ms (2Hz). Oznacza to, że jeśli kamera w trybie Run wybierze program LINIJKA_AUTO, przestanie reagować na zielony przycisk, z zacznie samodzielnie „strzelać” co pół sekundy. Możemy od razu przejść do trybu Run i przetestować oba programy wraz z mechanizmem wyboru programu.

To działa!

Wszystko wydaje się śmigać. Uśmiech jest wykrywany, przełączanie trybu pracy Ręczny/Automatyczny działa prawidłowo. Ustawienie inspekcji wizyjnej linijki możemy uznać za zakończoną. W następnej części tutoriala napiszemy programy dla kolejnego wariantu, czyli gitarowej kostki i stopnia zużycia farby na jej powierzchni. Kolejną część postaram się napisać w przyszłym tygodniu.

Miłego dnia!

Ten wpis powstał w ładnym i prostym edytorze. Masz coś interesującego związanego z Automatyką? Utwórz swój wpis!

8 czerwca 2017 / Kategoria: ,
  • Autor: Krzysztof Mazur
  • Stażysta automatyk w dziale Utrzymania Ruchu Maszyn przy Sitech Sp. z o.o. w Polkowicach
  • Więcej wpisów

Wszystko stanie się prostsze po zalogowaniu :)

Przypomnij hasło

Nie masz konta? Zarejestruj się

Forgot your password?

Enter your account data and we will send you a link to reset your password.

Close
z

    Przetwarzamy pliki... jeszcze chwilka…