F_VN_ReadQRCode
Detect and interpret a QR code within the provided image. Can be canceled by Watchdog.
Syntax
Definition:
FUNCTION F_VN_ReadQRCode : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipDecodedData : Reference To ITcVnContainer;
hrPrev : HRESULT;
END_VAR
Inputs
Name |
Type |
Description |
---|---|---|
ipSrcImage |
Source image (USINT elements, 1 channel or 3 channel (3 channel input is expected to be RGB and internally converted to Gray)) | |
ipDecodedData |
Reference To ITcVnContainer |
Returns the decoded code (ContainerType_Vector_String_SINT) |
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
Weiterführende Informationen
Der QR-Code (Quick-Response-Code) nach IEC 18004 ist ein 2D-Code, welcher in Deutschland besonders im Bereich des Mobile Tagging verbreitet ist. Durch die Möglichkeit Kanji/Kana-Zeichen zu codieren, hat sich der QR-Code im asiatischen Raum auch in der Industrie etabliert.
Die Funktion F_VN_ReadQRCode kann diesen Codetyp im Bild erkennen und dekodieren. Dabei wird von einem Code pro Bild ausgegangen.
QR-Code Aufbau
1. | Positionsmarkierungen | |
2. | Ausrichtungsmarkierung | |
3. | Synchronisationsreihen | |
4. | Versionsinformationen | |
5. | Datenformat | |
6. | Datenfeld | |
7. |
| Ruhezone, mind. 4 Zellen breit |
Störungen / Beschädigungen können eine Detektion und Dekodierung verhindern.
Codesuche
Die Funktion F_VN_ReadQRCode sucht von oben links nach unten rechts zeilenweise nach einem QR 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. |
16#001 | S_FALSE | Die Funktion wurde erfolgreich ausgeführt. |
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.59 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |