Image Acquisition

Diese Gruppe enthält Funktionsblöcke zur Bildaufnahme mit Vision-Geräten (GigE Vision Kamera und File Source Objekte).

Funktionsblöcke

Allgemeines

Die Funktionsblöcke in dieser Gruppe stellen einen Proxy für die Image Provider TcCOM-Objekte dar. Dementsprechend müssen Sie nicht zyklisch aufgerufen werden. Stattdessen wird das TcCOM-Objekt über die Methoden des Funktionsblocks gesteuert.

Zustandsautomat

Alle Funktionsblöcke zur Bildaufnahme beinhalten einen Zustandsautomaten, um den Zustand des repräsentierten Geräts zu verwalten. Im Wesentlichen muss ein Funktionsblock in den ACQUIRING Zustand gebracht werden, um Bilder kontinuierlich zu empfangen. Der INITIAL Zustand stellt den Ausgangspunkt nach einem Neustart oder Reset dar, von dem aus das INITIALIZING angestoßen werden kann. Ab dem OPENED-Zustand ist der Kommunikationskanal zu dem Gerät geöffnet, um z.B. Registerwerte auslesen oder schreiben zu können.

Image Acquisition 1:

Alle Zustände werden durch das Enum ETcVnCameraState repräsentiert und sind folgend erklärt:

Hauptzustände

Die Hauptzustände sind stationäre Zustände. Sie stellen im Wesentlichen dar, ob Verbindung zu einem Vision-Geräte besteht (OPENED) und ob das Gerät Bilder aufnimmt (ACQUIRING) sowie ob es einen Fehler bei der Verbindung mit dem Gerät gibt (ERROR). Zwischen diesen Zuständen können Sie mit den Methoden der FBs wechseln. Im Regelfall erfolgt der Übergang zwischen zwei Hauptzuständen nicht sofort, sondern über mindestens einen Zyklus. In dieser Zwischenzeit ist das Vision-Gerät in einem Zwischenzustand.

Zustand

Beschreibung

ERROR

Fehlerzustand, aus dem jedes Gerät nur durch Aufruf der Methode Reset reaktiviert werden kann.

INITIAL

Initialer Zustand jedes Geräts.

INITIALIZED

Ähnlich wie INITIAL, wobei die Kamera manuell initialisiert wurde (z.B. mit Force-IP und den Initialization Commands)

OPENED

Es besteht eine Verbindung zur Kamera, einzelne Bilder können getriggert werden und Kameraregister können gelesen und beschrieben werden.

Dieser Zustand kann mit der Methode StartAcquisition übersprungen werden.

ACQUIRING

Gerät befindet sich im Aufnahmezustand und sendet je nach Einstellung des Geräts Bilder.

Zwischenzustände

Die Zwischenzustände sind nötig, da die meisten Aktionen nicht sofort fertiggestellt werden können (z. B. die Bildaufnahme). Wenn sich die Funktionsblöcke in einem dieser Zwischenzustände befinden, muss die entsprechende Methode erneut aufgerufen werden, um den Übergang in den jeweiligen Hauptzustand zu vervollständigen.

Zustand

Beschreibung

INITIALIZING

INITIAL > INITIALIZED

OPENING

INITIAL > OPENED und INITIALIZED > OPENED

STARTACQUISITION

OPENED > ACQUIRING.

STOPACQUISITION

ACQUIRING > OPENED

RESETTINGFEATURES

OPENED > OPENED

TRIGGERING

OPENED > OPENED und ACQUIRING > ACQUIRING

CLOSING

OPENED > INITIALIZED

Image Acquisition 2:

Methoden müssen in Zwischenzuständen aufgerufen werden!

Eine jeweilige Methode für Zustandsübergänge muss auch in den Zwischenzuständen aufgerufen werden. Erst wenn nach einem entsprechenden Methodenaufruf ein stationärer Zustand mit der Methode GetState festgestellt wird, ist der Zustandsübergang vollständig abgeschlossen und die Methode muss nicht mehr aufgerufen werden. Ein einmaliges Antriggern einer Methode und darauffolgendes Warten führt nicht zu dem gewünschten Zustandsübergang.

Ein Zustandsautomat in der SPS kann dann entweder mit einer CASE … OF Struktur oder mit einer IF … ELSIF … -Struktur implementiert werden.

Beispiele