F_VN_ReadDataMatrixCodeRoiExp
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 | 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 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 |
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:
- Bildvorverarbeitung:
TCVN_DMO_BINARY_INPUT
TCVN_DMO_GLOBAL_THRESHOLD
- Gittererkennung:
TCVN_DMO_BINARY_GRID
TCVN_DMO_STATIC_GRID
- 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 |