F_VN_ReadBarcodeRoiExp
Detect and interpret a 1d barcode within the provided image. For best performance, the code should be horizontally aligned and in the image center. (expert function)
Syntax
Definition:
FUNCTION F_VN_ReadBarcodeRoiExp : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipDecodedData : Reference To ITcVnContainer;
eBarcodeType : ETcVnBarcodeType;
eSearchDirection : ETcVnBarcodeSearchDirection;
ipContour : Reference To ITcVnContainer;
nMaxScans : DINT;
hrPrev : HRESULT;
END_VAR
VAR_OUTPUT
fAngleDeg : REAL;
END_VARInputs
|
Name |
Type |
Description |
|---|---|---|
|
ipSrcImage |
Source image (USINT, 1 channel) | |
|
ipDecodedData |
Reference To ITcVnContainer |
Returns the decoded data (ContainerType_String_SINT) |
|
eBarcodeType |
Type of the barcode (supported: CODE39, CODE128, EAN8, EAN13, ITF, UPCA, UPCE) | |
|
eSearchDirection |
Barcode search direction (BSD_ANY first tries horizontal, then vertical) | |
|
ipContour |
Reference To ITcVnContainer |
Returns 4 approximate code corner points, including the quiet zone. The width is accurate, but the actual height is not measured for performance reasons. Instead, it is statically set to 10% of the width, centered around the scan line that was decoded. (optional, set to 0 if not required; ContainerType_Vector_TcVnPoint2_DINT) |
|
nMaxScans |
DINT |
Maximum number of scan lines that are evaluated to find the barcode. The scan always starts at the image center and then alternates up- and downwards with increasing distance, using steps of (ipSrcImage height / nMaxScans). |
|
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 approximate clockwise rotation angle in degree |
Weiterführende Informationen
Die Funktion F_VN_ReadBarcodeRoiExp ist die Expert-Variante von F_VN_ReadBarcodeRoi. Sie enthält zusätzliche Parameter.
Parameter
Eingangsbild
Das Eingangsbild ipSrcImage muss ein 1-kanaliges Bild mit Element-Typ USINT (8-Bit) sein. Der Code muss sich horizontal oder vertikal ausgerichtet in der Bildmitte befinden.
Gelesene Daten
Die aus dem Code gelesenen Daten werden als String in dem Container ipDecodedData zurückgegeben. Der Container ist dabei vom Typ ContainerType_String_SINT. Wurde der Code erfolgreich gefunden und decodiert kann der Inhalt über die Funktion F_VN_ExportContainer_String in einen String exportiert werden.
hr := F_VN_ExportContainer_String(ipDecodedData, sText, nMaxLength, hr);Barcode-Typ
Der Parameter eBarcodeType definiert den Barcode-Typ, der gelesen werden soll. Es kann nur ein Barcode-Typ pro Funktionsaufruf übergeben werden. Die folgenden Barcode-Typen aus dem Enum ETcVnBarcodeType werden unterstützt:
TCVN_BT_CODE39TCVN_BT_CODE128TCVN_BT_EAN8TCVN_BT_EAN13TCVN_BT_ITFTCVN_BT_UPCATCVN_BT_UPCE
Suchrichtung
Über eSearchDirection kann die Suchrichtung vorgegeben werden:
- Bei
TCVN_BSD_ANYwird zunächst in horizontaler Richtung und anschließend in vertikaler Richtung gesucht. - Bei
TCVN_BSD_HORIZONTALwird nur in horizontaler Richtung gesucht. - Bei
TCVN_BSD_VERTICALwird nur in vertikaler Richtung gesucht.
Position des Codes
Der Parameter ipContour gibt die Code-Eckpunkte, einschließlich der Ruhezone, als vier Konturpunkte vom Typ ContainerType_Vector_TcVnPoint2_DINT zurück. Die Position basiert auf der ersten Scanlinie, die dekodiert werden konnte. Die Höhe wird statisch auf 10% der Breite und zentriert um die Scanlinie gesetzt. 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.
Maximale Anzahl von Scanlinien
Mit nMaxScans wird die maximale Anzahl von Scanlinien festgelegt, die zum Auffinden des Barcodes ausgewertet werden. Der Scan beginnt immer in der Bildmitte und wechselt dann mit zunehmender Entfernung in Schritten von ipSrcImage height / nMaxScans nach oben und unten.
Drehwinkel (Rückgabewert)
Der Rückgabewert fAngleDeg gibt den Drehwinkel im Uhrzeigersinn in 90°-Schritten zurück.
Verwandte Funktionen
Required License
TC3 Vision Code Reading
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 |