Matrox Design Assistant: efektywne tworzenie aplikacji wizyjnych

Rys. 1. Składowe kompletnego projektu tworzonego w Design Assistant X

Matrox Design Assistant (DA X) to zintegrowane środowisko deweloperskie (IDE) do pracy pod systemem Microsoft® Windows®, w którym aplikacje wizyjne tworzy się poprzez konstruowanie intuicyjnych schematów blokowych, zamiast pisania tradycyjnego kodu programu. Oprócz budowania schematów blokowych środowisko umożliwia użytkownikom projektowanie graficznych interfejsów operatora dla docelowej aplikacji, w oparciu o format standardowy dla stron internetowych. Ponieważ Matrox Design Assistant jest niezależny od sprzętu, umożliwia integratorowi systemu zastosowanie dowolnego komputera z kamerami GigE Vision® lub USB3 Vision® i w ten sposób pozwala właściwie dobrać wymaganą moc procesora do konkretnego zadania. W DA X można pracować z kilkoma kamerami w jednym projekcie lub uruchomić równolegle kilka niezależnych od siebie projektów, wykorzystujących pojedyncze kamery. To narzędzie także świetnie nadaje się do oprogramowania przemysłowych komputerów wizyjnych Matrox (4Sight EV6) oraz kamer inteligentnych (Iris GTR). W ten sposób daje użytkownikowi swobodę doboru platformy idealnie dopasowanej do dowolnego projektu wizyjnego.

Matrox Design Assistant – główne cechy, możliwości i komponenty środowiska:

  • Efektywne tworzenie aplikacji wizyjnych za pomocą schematów blokowych, a nie pisania kodu;
  • Elastyczny dobór optymalnej platformy sprzętowej – od kamer inteligentnych przez przemysłowe komputery wizyjne do dowolnych komputerów z kamerami GigE Vision i USB3 Vision;
  • Sprawdzone algorytmy do lokalizacji i analizy komponentów obrazu oraz ich pomiarów, odczytu, weryfikacji itp.;
  • Tworzenie logiki aplikacji i interfejsu operatora w tym samym programie;
  • Kompatybilność ze skanerami 3D;
  • Użycie wspólnych bibliotek niezależnie od platformy sprzętowej, co daje spójne wyniki dla kamer inteligentnych, procesorów wizyjnych i zwykłych komputerów przemysłowych dowolnego producenta;
  • Praca z kilkoma kamerami w jednym projekcie lub uruchomienie kilku projektów niezależnie i równocześnie;
  • Maksymalizacja efektywności pracy nad aplikacją poprzez natychmiastowe udostępnianie programiście wyników analizy z kolejnych kroków algorytmu;
  • Kontekstowy ‘help’, ułatwiający kodowanie;
  • Prosta wymiana informacji z innymi elementami automatyki systemu poprzez cyfrowe I/O Matrox albo RS-232 i Ethernet (TCP/IP, EtherNet/IP™3, Modbus®, Profinet®, a także natywne protokoły do komunikacji z robotami);
  • Możliwość tworzenia własnych kroków i rozbudowy standardowej funkcjonalności DA X;
  • Dostępność szkoleń online i prowadzonych przez instruktora;
  • Ochrona projektów za pomocą narzędzia „Project Change Validator”.

Projektowanie aplikacji

Schemat blokowy i wygląd interfejsu operatora są ustalane w środowisku Matrox Design Assistant, uruchomionym na komputerze działającym pod 64-bitowym systemem Windows. Projektant składa schemat blokowy z kroków, których paleta jest dostarczana przez bibliotekę programu, dodając je kolejno i konfigurując w interaktywnych oknach.

Dostępne kroki zawierają procedury do analizy i przetwarzania obrazów (filtracja, rozpoznawanie kształtów i wzorców, pomiary, odczytywanie kodów, tekstu itp.), komunikacji ze światem zewnętrznym (protokoły), sterowania wykonaniem schematu (bloki decyzyjne typu if-else, pętle itd.) oraz wejścia i wyjścia (DIO, np. prosta komunikacja z PLC czy sterowanie oświetlaczami). Decyzje są podejmowane w kroku „warunkowym”, dla którego warunek logiczny jest również konfigurowany interaktywnie. Wyniki analizy i przetwarzania obrazu są pokazywane natychmiast po skonfigurowaniu kroku, aby umożliwić dostrojenie ich parametrów. Kontekstowy ‘help’ pomaga w użyciu każdego z dostępnych elementów schematu. Czytelność dla schematów bardziej rozbudowanych jest ułatwiona przez możliwość grupowania akcji w „pod-schematy”, co daje hierarchiczną i przejrzystą strukturę programu.

Oprócz definicji schematu DA X daje narzędzia do projektowania graficznych interfejsów użytkownika, które są oparte na sieciowym standardzie HTML. W wizualnym edytorze projektant modyfikuje standardowy układ ekranu, korzystając z palety adnotacji (grafiki i tekst), wejść/zadajników (pola tekstowe i numeryczne, przyciski, markery używane na oknie z obrazem itp.), wyjść (wyświetlacze rezultatów – obrazy, pomiary i obliczenia) oraz statusu testu (Pass/Fail itp.). Wyświetlane dane dotyczą zwykle aktualnej klatki, ale możliwe jest także przedstawianie danych historycznych (np. w postaci „filmu” z klatkami).

Może zostać użyty dowolny inny edytor HTML, aby swobodnie modyfikować GUI do potrzeb danego rozwiązania.

Przykład elementów konstrukcji aplikacji wizualizuje rysunek 1.

Dlaczego schemat blokowy?

Schemat blokowy jest powszechnie zrozumiałą metodą opisu wzajemnie zależnych sekwencji operacji następujących w procesie. W szczególności inżynierowie i technicy z działów produkcji mają łatwość rozumienia intuicyjnych i logicznych wizualizacji aplikacji, zapewnianych przez schematy blokowe. Podobnie dla osób zajmujących się systemami pomiarowymi i sekwencjami testowymi, takie przedstawienie funkcjonalności programu jest oczywiste.

Uruchomienie aplikacji na docelowej platformie sprzętowej

Zarówno w trakcie kolejnych etapów rozwoju aplikacji, jak i po zakończeniu projektowania projekt może zostać uruchomiony lokalnie lub może być wysłany na docelowy kontroler/procesor, co pokazuje rysunek 2.

Rys. 2. Platformy uruchomieniowe dla aplikacji wykonanej w Matrox DA X

Szablony

DA X jest instalowany z szeregiem gotowych wzorów (szablonów) aplikacji i samouczków wideo, co ułatwia start dla nowo tworzonych projektów.

Te szablony służą jako prawie w pełni funkcjonalne aplikacje, w których należy jedynie zmodyfikować kilka parametrów konfigurujących kroki, albo są używane jako szkielet bardziej rozbudowanej architektury, jednakże zawsze umożliwiają szybkie uruchomienie i natychmiastowy podgląd wpływu wprowadzanych zmian na otrzymywany rezultat.

Typowe projekty wizyjne, dla których będą dostępne szablony, to:

  • odczytywanie kodów paskowych i 3D,
  • obecność/brak komponentu po montażu, pakowaniu itp.,
  • odczyt nadruków typu dot-matrix,
  • naprowadzanie ramienia robota/manipulatora (pick-and-place) oraz wiele innych.

Przykład ekranu startowego środowiska Matrox Design Assistant X z dostępnymi szablonami pokazuje rysunek 3. Jest to strona „Quick Start” pakietu.

Rys. 3. Ekran startowy z gotowymi szablonami typowych aplikacji

Rozbudowa i modyfikacja DA X

Użytkownicy pakietu mają możliwość rozbudowy jego funkcjonalności za pomocą narzędzia Custom Step SDK, co pozwala tworzyć własne kroki, np. do analizy obrazu czy komunikacji.

Interfejs programisty, podobnie do bibliotek, może być dopasowany do potrzeb każdego dewelopera, przestrzeń robocza aplikacji może zostać przeorganizowana, a nawet rozłożona na wielu monitorach, tak aby jeszcze bardziej podnieść wydajność pracy inżyniera.

Powyższy skrócony opis funkcjonalności pakietu Matrox Design Assistant X (DA X) został wykonany w oparciu o informacje dostępne na stronie producenta: www.matrox.com/imaging/en/products/software/design-assistant-machine-vision-software/


Paweł Hoerner de Roithberg, VP of Development