Skip to main content

Beispiel: OpenCV

Produkt: CODESYS Development System

Dieses Beispiel zeigt eine Python-Implementierung von opencv, einer freien Bibliothek von Programmierfunktionen. Mit dieser Bibliothek wird ein Bild ausgewertet und die Informationen werden über Shared Memory an CODESYS übertragen.

Beschreibung

In diesem Beispiel wird ein Bild mit Hilfe von Python und der freien Bibliothek von Programmierfunktionen opencv ausgewertet. Es sind verschiedenfarbige Kreise im Bild enthalten. Die blauen Kreise werden gefiltert und die Koordinaten der Konturen werden in einen String geschrieben. Der String wird mit einem String des aktuellen Zeitstempels kombiniert. Dieser String wird in ein Byte-Array übertragen und im Shared Memory abgelegt.

Für eine bestimmte Zeit ist das Shared Memory geöffnet (in diesem Fall 60 Sekunden), um CODESYS das Lesen der Daten zu ermöglichen. In CODESYS wird der Shared-Memory-Puffer gelesen und das Byte-Array wieder in einen String übertragen.

Nach der Übergabe an den String befinden sich die Koordinaten von vier Konturen und der Zeitstempel im String. Eine weitere vorbereitete Möglichkeit ist die Auswertung eines Videostreams, die Konturen sind in diesem Fall auf fünf begrenzt, um keinen Überlauf zu erhalten.

Weitere Informationen

Vorbereitungen:

  • Öffnen Sie in CODESYS das Projekt OpenCV_Example2.project

  • Installieren Sie Python 3.8 oder höher

  • Installieren Sie opencv: Befehlszeile: pip install opencv-python

Verzeichnis für die Ordner:

  • Das Python-Projekt und das Beispielbild sollten sich im selben Ordner befinden.

  • Benennen Sie den Shared Memory in CODESYS genauso wie in Python (Standard MySharedMemory).

  • Legen Sie die gleiche Größe fest für den Shared Memory in CODESYS sowie in Python (Standardwert 100).

  • Stellen Sie im Python-Projekt die Zeit für das Öffnen des Shared Memory ein (Standard 60 Sekunden).

Vorgehensweise:

  • Starten Sie CODESYS und verbinden Sie sich mit dem lokalen Steuerung CODESYS Control Win. Melden Sie sich an und starten Sie die Steuerung.

  • Im Monitoring zeigt die String-Variable PLC_PRG.strRead den Wert "".

  • Führen Sie das Python-Skript aus -> Im Monitoring zeigt der String vier Koordinaten und einen Zeitstempel.

Weitere Funktionalitäten:

  • Die wichtigsten Funktionen von opencv können Sie auf der Website https://opencv.org/ nachlesen.

  • Für weitere Funktionen muss eventuell der Puffer des Shared Memory vergrößert werden.

Systemvoraussetzungen und Einschränkungen

Programmiersystem

CODESYS Development System Version 3.5.16.0 oder höher

Laufzeitsystem

CODESYS Control Win Version 3.5.16.0

Zusatzkomponenten

-

Hinweis

_example_icon.png DOWNLOAD Projekt