F_VN_ReadDataMatrixCodeRoiExp

F_VN_ReadDataMatrixCodeRoiExp 1:

Detect and interpret a data matrix code (ECC200) within the provided image. The code should be in the image center. (expert function)
Can use available TwinCAT Job Tasks for executing parallel code regions.

Syntax

Definition:

FUNCTION F_VN_ReadDataMatrixCodeRoiExp : HRESULT
VAR_INPUT
    ipSrcImage       : ITcVnImage;
    ipDecodedData    : Reference To ITcVnContainer;
    fModuleWidth     : REAL;
    ipContour        : Reference To ITcVnContainer;
    eOptions         : ULINT;
    nRows            : USINT;
    nCols            : USINT;
    bExtensiveSearch : BOOL;
    hrPrev           : HRESULT;
END_VAR
VAR_OUTPUT
    fAngleDeg        : REAL;
END_VAR

 Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

Source image (USINT elements, 1 channel)

ipDecodedData

Reference To ITcVnContainer

Returns the decoded code (ContainerType_String_SINT)

fModuleWidth

REAL

Minimum module width of the code in the image (in pixels). Must be at least 3, preferably 5 - 8.

ipContour

Reference To ITcVnContainer

Returns the contour of the detected code (ContainerType_Vector_TcVnPoint2_DINT; optional, set to 0 if not required)

eOptions

ULINT

Specifies a combination of one or more ETcVnDataMatrixOptions

nRows

USINT

Specifies the number of code module rows, including the finder and clock pattern, excluding the quiet zone (8 - 144; set to 0 to search for any size)

nCols

USINT

Specifies the number of code module columns, including the finder and clock pattern, excluding the quiet zone (10 - 144; set to 0 to search for any size)

bExtensiveSearch

BOOL

If true, tries different approaches if the specified options fail

hrPrev

HRESULT

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

 Outputs

Name

Type

Description

fAngleDeg

REAL

Returns the clockwise rotation angle in degree

 Return value

HRESULT

Required License

TC3 Vision Code Reading

Weiterführende Informationen

Die Funktion F_VN_ReadDataMatrixCodeRoiExp ist die Expert-Variante von F_VN_ReadDataMatrixCodeRoi und enthält zusätzliche Parameter.

ipContour

Der Parameter ipContour gibt die Code-Eckpunkte als vier Konturpunkte vom Typ ContainerType_Vector_TcVnPoint2_DINT zurück. Die Eckpunkte liegen am Rand der äußeren Module. Die Kontur kann z.B. direkt mit F_VN_DrawContours gezeichnet oder mit den Funktionen zur Contour Analysis weiter analysiert werden. Dieser Parameter ist optional und kann auf 0 gesetzt werden, wenn er nicht benötigt wird.

eOptions

Der Parameter eOptions definiert, welche Erkennungsstrategien genutzt werden sollen. Dabei existieren drei Gruppen mit sich gegenseitig ausschließenden Optionen, von denen jeweils nur eine Option pro Gruppe ausgewählt werden kann:

  1. Bildvorverarbeitung:
    • TCVN_DMO_BINARY_INPUT
    • TCVN_DMO_GLOBAL_THRESHOLD
  2. Gittererkennung:
    • TCVN_DMO_BINARY_GRID 
    • TCVN_DMO_STATIC_GRID
  3. Code-Farbmodus:
    • TCVN_DMO_REGULAR_COLOR
    • TCVN_DMO_INVERTED_COLOR

Jede Gruppe kann individuell konfiguriert werden, z. B. TCVN_DMO_GLOBAL_THRESHOLD OR TCVN_DMO_STATIC_GRID OR TCVN_DMO_REGULAR_COLOR. Ungültige Kombinationen wie TCVN_DMO_BINARY_GRID OR TCVN_DMO_STATIC_GRID führen zum Fehler ADS_E_INVALIDPARM.

Die Standardeinstellung TCVN_DMO_DEFAULT verwendet einen adaptiven lokalen Schwellwert, ein dynamisches Gitter (basierend auf einem Graustufenbild) und erkennt beide Farbmodi. Zur Optimierung der Rechenzeit wird empfohlen, immer den Farbmodus explizit anzugeben.

Eine Beschreibung der Erkennungsstrategien finden Sie unter ETcVnDataMatrixOptions.

nRows und nCols

Die Parameter nRows und nCols legen die erwartete Anzahl der Module in vertikaler (Höhe) bzw. horizontaler (Breite) Richtung fest, bezogen auf einen nicht rotierten Code, bei dem sich der Eckpunkt des L-Patterns unten links befindet. Bei der Anzahl sind sowohl das Finder-Pattern als auch das Clock-Pattern des Data Matrix Codes in die Zählung mit einzubeziehen. Es ist zu empfehlen diese Werte immer zu setzen, um die maximal benötigte Rechenzeit zu reduzieren.

bExtensiveSearch

Der Parameter bExtensiveSearch aktiviert eine erweiterte Suchroutine, die bei fehlgeschlagener Erstanalyse automatisch alternative Dekodierungsstrategien anwendet.

System Requirements

Development environment

Target platform

PLC libraries to include

TwinCAT V3.1.4024.59 or later

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

Tc3_Vision