F_VN_ReadDataMatrixCode

F_VN_ReadDataMatrixCode 1:

Detect and interpret a data matrix code (ECC200) within the provided image.
Can return partial results when canceled by Watchdog.

Syntax

Definition:

FUNCTION F_VN_ReadDataMatrixCode : HRESULT
VAR_INPUT
    ipSrcImage    : ITcVnImage;
    ipDecodedData : Reference To ITcVnContainer;
    hrPrev        : HRESULT;
END_VAR

F_VN_ReadDataMatrixCode 2: Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

Source image (USINT elements, 1 or 3 channels)

ipDecodedData

Reference To ITcVnContainer

Returns the decoded code (ContainerType_Vector_String_SINT)

hrPrev

HRESULT

HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.)

F_VN_ReadDataMatrixCode 3: Return value

HRESULT

Weiterführende Informationen

Der Data Matrix Barcode nach IEC 16022 ist ein 2D-Code, der es ermöglicht, viele Daten auf kleinstem Raum zu speichern. Dadurch wird dieser oft zur Bauteil- und Produktmarkierung verwendet.

Die Funktion F_VN_ReadDataMatrixCode kann nur ECC 200 Codetypen im Bild erkennen und dekodieren. Dabei wird von einem Code pro Bild ausgegangen. Sollen mehrere Data Matrix Codes in einem Bild erkannt und dekodiert werden ist die Funktion F_VN_ReadDataMatrixCodeExp zu verwenden.

Data Matrix Code Aufbau

Der Data Matrix Code setzt sich aus Rechtecken bzw. Punkten zusammen, aus denen sich ein quadratisches oder rechteckiges Symbol zusammensetzt, das sich wiederum in drei Bereiche aufteilen lässt:

F_VN_ReadDataMatrixCode 4:
  1. Finder Pattern
    Das durchgezogene L (Solid-Line Locator) dient zur Auffindung und Ausrichtung des Codes, während sich aus den abwechselnd hellen und dunklen Zellen (Pattern-Line Locator) die Zellgröße und Zellanordnung bestimmen lässt.
  2. Datenbereich
    Umrandet vom Finder Pattern befindet sich der Datenbereich.
  3. Ruhezone
    Die Ruhezone ist ein mind. 1,5 Zellen breiter Bereich um das Finder Pattern herum in der Hintergrundfarbe des Codes.

Störungen / Beschädigungen im Finder Pattern oder in der Ruhezone können eine Detektion des Codes verhindern.

Fehlerkorrektur

Die Data Matrix Code Version ECC 200 (ECC = Error Correction Code) hat sich aufgrund der besseren Fehlerkorrektur durchgesetzt. Neben den eigentlichen Daten sind diese redundant entsprechend des Reed-Solomon-Codes codiert im Code enthalten. Data Matrix Codes dieser Version können von der Funktion dekodiert werden und bei Beschädigung kann eine Fehlerkorrektur durchgeführt werden.

Codesuche

Die Funktion F_VN_ReadDataMatrixCode sucht ausgehend von der mittleren Bildzeile nach einem Data Matrix Code im Bild.

Daten aus Container lesen

Wurde der Code erfolgreich gefunden und decodiert, wird der Codeinhalt im Container ipDecodedData zurückgegeben und kann über die Funktion F_VN_ExportSubContainer_String in einen String exportiert werden.

hr := F_VN_ExportSubContainer_String( ipDecodedData, 0, sText, nMaxLength, hr);

HRESULT

Wie alle TwinCAT Vision API-Funktionen gibt auch diese Funktion ein HRESULT zurück, um anzugeben, ob die Ausführung erfolgreich war oder fehlgeschlagen ist. Im Erfolgsfall kann bei der nachfolgenden Ergebnisbehandlung zwischen folgenden Success-Codes unterschieden werden. Um zwischen diesen Fällen zu unterscheiden, kann die HRESULT-Variable direkt mit S_OK oder S_FALSE verglichen werden.

Code

Name

Beschreibung

16#000

S_OK

Die Funktion wurde erfolgreich ausgeführt.
Die angegebene Anzahl an Codes wurde im Bild gefunden.

16#001

S_FALSE

Die Funktion wurde erfolgreich ausgeführt.
Es wurden weniger Codes als angegeben im Bild gefunden.

16#256

S_WATCHDOGTIMEOUT

Die Funktion wurde vom Watchdog abgebrochen.

Beispiele

Verwandte Funktionen

Required License

TC3 Vision Code Reading

System Requirements

Development environment

Target platform

PLC libraries to include

TwinCAT V3.1. 4024.44 or later

PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU

Tc3_Vision