Functions

Die Bildverarbeitungsalgorithmen sind in Funktionen gekapselt. Komplexere Algorithmen wurden als Funktionsbaustein umgesetzt und sind unter ImageProcessing zu finden.

Aufbau eines Funktionsaufrufs

Funktionen sind wie folgt aufgebaut:

Functions 1:

hr

Statusvariable vom Typ HRESULT. Hiermit kann der Ausführungsstatus jeder Funktion nachvollzogen werden.

Parameter <...>

Funktionsparameter erfüllen im Wesentlichen folgenden Zweck:

  • Eingangsparameter (z. B. Bilder oder Container), die verarbeitet werden sollen.
  • Parameter zur Einstellung des Algorithmus
  • Parameter als Referenz zur Rückgabe der Ergebnisse

Optional parameter <...>

Diese Parameter werden mit Default-Werten initialisiert, daher ist die Angabe optional.

Gruppierung von Funktionen

Alle Funktionen der TwinCAT Vision Bibliothek sind thematisch in die folgenden Gruppen sortiert:

Bilder

Container

Konturen

Vermessung

Code-Lesung

Optische Zeichenerkennung (OCR)

Zeichnen und Text

Machine Learning

Fortgeschrittene Funktionen

Sonstiges

Expert-Funktionen

Zu vielen Funktionen existieren Expert-Varianten. Diese enthalten zusätzliche Parameter und sind in der SPS-Bibliothek durch das Namenssuffix „Exp“ gekennzeichnet. In C++ sind diese zusätzlichen Parameter mit Default-Werten belegt und können beim Aufruf, wenn nicht benötigt, weggelassen werden.

Laufzeitverhalten

Die Ausführungsdauer einiger Bildverarbeitungsalgorithmen hängt neben ihrer Parametrierung auch vom Bildinhalt ab. Sie ist daher nicht deterministisch. Um dennoch zyklisches Echtzeitverhalten zu gewährleisten, können Watchdogs auf diese Funktionen oder Funktionsgruppen angewandt werden, die die Funktionen nach einer vorgegebenen Zeit abbrechen.

WARNUNG

TwinCAT-Absturz bei falscher Verwendung von Funktionen

Bei falscher Verwendung von einigen Funktionen kann es zu Fehlern (und daraus resultierenden TwinCAT-Abstürzen) kommen. Diese werden nicht innerhalb der Funktion abgefangen, da entsprechende Überprüfungen die Ausführungszeit wesentlich verlängern würden. Sie müssen also selbst darauf achten, die Funktionen ordnungsgemäß zu verwenden! Z. B. empfehlen wir, eine Validierung der Eingabeparameter durchzuführen.