Auf dieser Seite werden Cookies verwendet. Details und Hinweise zu den Einstellungen sind in unseren Datenschutzregeln.
Der weitere Gebrauch von unser Webseite, ohne Änderung der Einstellungen, bedeutet das Einverständnis mit diesen Regeln.

Akzeptieren (Notiz ausblenden)
POL ENG GER 中文

Datenflussprogrammierung

Wichtig: Adaptive Vision Studio setzt beim Benutzer keinerlei Erfahrung in Low-Level-Programmierung voraus. Es ist allerdings ein hoch spezialisiertes Werkzeug für professionelle Ingenieure und eine voll entwickelte Programmiersprache. Sie werden seine 4 Begriffe verstehen müssen: Daten, Filter, Verbindungen und Makrofilter.

Daten

Adaptive Vision Studio ist eine Datenverarbeitungsumgebung, Daten sind also einer ihrer zentralen Begriffe. Der wichtigste Fakt, der verstanden werden sollte, ist die Unterscheidung zwischen Typen (z.B. Point2D) und Werten (z.B. die Koordinaten (15.7, 4.1)). Typen definieren das Protokoll und führen die Programmerstellung, wohingegen Werte während der Programmausführung erscheinen und die Information repräsentieren, die verarbeitet wird.

Adaptive Vision Studio unterstützt auch Arrays, d.h. Datensammlungen variabler Größe von Datenelementen, die zusammen verarbeitet werden können. Für jeden Datentyp gibt es einen entsprechenden Array-Typ. Zum Beispiel, so wie 4 ein Wert des Integer-Typs ist, so ist die Sammlung {1, 5, 4} ein Wert des IntegerArray-Typs. Verschachtelte Arrays sind auch möglich.

Filter

Filter sind die grundlegenden Datenverarbeitungselemente in der Datenflussprogrammierung. In einer typischen Machine Vision-Anwendung gibt es am Anfang einen Bildaufnahmefilter, gefolgt von einer Abfolge von Filtern, die Bilder erst in Regionen, Konturen und geometrische Primitive und danach in Endergebnisse wie Pass/Fail-Anzeige verwandeln.

Ein Filter hat normalerweise mehrere Eingänge und einen oder mehrere Ausgänge. Jeder hat einen spezifischen Typ (z.B. Image, Point2D usw.). Verbindungen können nur zwischen Ports mit kompatiblen Typen erstellt werden. Werte von unverbundenen Eingängen können im Eigenschaftenfenster (das auch graphische Editoren zum bequemen Editieren geometrischer Daten anbietet) eingestellt werden. Wenn ein Filter aufgerufen wird, können seine Ausgangsdaten in Vorschaufenstern angezeigt und analysiert werden.

Verbindungen

Verbindungen übertragen Daten zwischen Filtern. Sie spielen auch eine wichtige Rolle bei der Kapselung der Komplexität, die typisch für Low-Level- Programmierkonstrukte, wie Schleifen oder Bedingungen, ist. Verschiedene Verbindungstypen unterstützen: grundlegenden Datenfluss , automatische Konvertierungen , For-Each-Verarbeitung und bedingte Verarbeitung . Die gute Nachricht ist, dass Verbindungstypen automatisch auf der "do what I mean"-Basis gefolgert werden.

Makrofilter

Makrofilter sind wiederverwendbare Unterprogramme mit ihren eigenen Eingängen und Ausgängen. Sobald ein Makrofilter erstellt wird, erscheint er im Projekt-Explorer-Fenster und kann dann auf genau dieselbe Art und Weise wie ein normaler Filter durch Drag & Drop verwendet werden.

Die meisten Makrofilter (genannt Step-Makrofilter) sind Sammlungen einiger Filter, die dabei helfen, das Programm übersichtlich und organisiert zu halten. Andere Makrofilter können jedoch verschachtelte Datenverarbeitungsschleifen erstellen (Task-Makrofilter) oder Programmausführung in einige klar definierte bedingte Pfade richten (Variante-Step-Makrofilter). Diese Konstrukte bilden eine elegante Struktur, auf der man Datenflussprogramme von beliebiger Komplexität erstellen kann.

Daten und ihre Typen sind sehr ähnlich denen, die in C++ verwendet werden. Wir haben auch einen generischen Sammlungstyp – Array, der sehr ähnlich wie std::vector ist. Filter und Makrofilter sind Gegenstücke von Funktionen. Allerdings haben sie anstatt eines einzelnen Rückgabewertes oftmals einige Ausgangsparameter. Verbindungen entsprechen Variablen, die nicht genannt werden müssen. Andererseits werden Schleifen und Bedingungen in Adaptive Vision Studio anders als in C++ – Schleifen werden durch Array-Verbindungen und Task-Makrofilter realisiert, während Bedingungen durch bedingte Verbindungen und Task-Makrofilter realisiert werden.