Библиотека · Как найти причину
Почему код не читается и что проверить первым
Коротко
Сохраните с одного поста неудачный и удачный кадр, записав выдержку, усиление, фокус, скорость и настройки декодера — программы распознавания кода. Меняйте за тест что-то одно, остальное оставляйте прежним. Размытие вдоль движения — признак смаза: код сдвинулся за время выдержки. Если код резкий, целиком в кадре, но не читается, смотрите декодер, заданный предел времени распознавания и передачу результата. Остановка линии сужает поиск, но причину не доказывает.
В каком порядке проверять
Начните с проверки изображения, затем переходите к настройкам декодера.
- Кадр и свободная зона. Если поисковый шаблон (фигура, по которой декодер находит 2D-код) или край штрихкода касается границы области поиска, код мог обрезаться. Расширьте область, чтобы в неё вошла свободная зона — чистое поле вокруг кода. Её ширину считают в модулях — самых мелких ячейках или штрихах кода. Коду Data Matrix нужен один модуль с каждой стороны, QR Code — четыре (GS1, DENSO WAVE). GS1-128 — по десять слева и справа (GS1). Для остальных кодов проверьте требования их спецификаций.
- Пиксели на модуль. Разделите ширину кода в пикселях на число модулей. Basler Data Matrix Code Reader требует не меньше 3 пикселей на модуль в версии Starter и 6–20 в Basic (документация производителя). Сверьтесь с цифрой своего декодера. Наш начальный ориентир 3–5 пикселей на модуль — практическое правило, выведенное из таких пределов, а не стандарт. Если пикселей мало, сузьте поле зрения (видимый камерой участок) или возьмите камеру с большим разрешением. Затем проверьте, что код помещается целиком.
- Смаз и фокус. Полоса размытия в одну сторону — признак смаза. Сократите выдержку при постоянном свете или импульс, если он ярче окружающего света. Яркость верните более сильным постоянным светом или синхронизированным импульсом. Усиление поднимает и сигнал, и шум, света не добавляет и смаз не убирает (рекомендация производителя). Проверьте яркость, шум и контраст краёв модулей. Нечёткие края без полосы — признак расфокусировки, особенно если читаются только детали номинальной высоты. Наведите резкость на плоскость кода и проверьте обе крайние высоты на остановленной линии. Оценка глубины резкости даёт ориентировочный диапазон расстояний для модели тонкой линзы с допустимым кружком размытия в два пикселя. Контраст краёв кода нужно проверить на кадре.
- Блики и освещение. Пересвеченное пятно, которое смещается при смене угла лампы или камеры, — признак блика. Оставьте выдержку прежней и меняйте только угол света или поляризацию. Блестящий металл может выглядеть чёрным и сужать видимую свободную зону (рекомендация производителя). На прямой маркировке, когда код нанесён на саму деталь, пробуйте одну схему света за раз. Сравните контраст точек и фона в таком порядке: рассеянный свет со всех сторон, тёмное поле под скользящим углом, коаксиальный свет вдоль оси объектива, поляризованный против бликов. Условия оценки класса таких меток задаёт ISO/IEC 29158:2025.
- Сам код. Царапины, пропуски, выцветшая краска, разбитые точки и повреждённый синхронизирующий шаблон (чередующиеся ячейки, задающие сетку Data Matrix) — физические дефекты. Настройками их не исправить. Впрочем, Cognex ReadIDMax допускает повреждённую свободную зону, поисковый или синхронизирующий шаблон (документация производителя). Прежде чем менять настройки декодера, сравните с заведомо хорошим кодом при той же оптике.
- Наклон и кривизна. Если отказы зависят от наклона, поворота или кривизны, а не от скорости или высоты, поставьте код перпендикулярно оси камеры. Затем возвращайте рабочее положение по шагам.
- Настройки декодера. Сначала включите ожидаемый тип кода. Потом проверяйте только опцию под наблюдаемый отказ. Полярность — для светлого кода на тёмном фоне, режим повреждений — для повреждённых меток. Режим перспективы или сетки — для искажённых кодов. Число результатов — если возвращается только первый код, предел времени распознавания — если декодирование обрывается рано. После каждого изменения прогоните тот же сохранённый кадр. Названия опций у производителей разные.
Почему код читается на остановленной линии и отказывает на ходу
Допустим, по ширине поля зрения 160 мм приходится 2448 пикселей. Модуль кода 0,30 мм, скорость линии 1200 мм/с, выдержка 100 мкс. Получается 15,3 пикселя на миллиметр, и модуль занимает 4,6 пикселя (рассчитано). За 100 мкс код сдвигается на 0,12 мм (1,8 пикселя) — 40 % модуля. Поэтому даже код в пределах ориентира 3–5 пикселей может отказывать на ходу. При допустимом смазе в 1 пиксель (допущение) расчётный предел выдержки — около 54,5 мкс.
Рассчитать для своего случая
Страница инструмента подбирает реальный объектив, поэтому её цифры отличаются: поле 160,5 × 134,2 мм и предел 55 мкс. При минимальной выдержке 50 мкс она показывает расчётный смаз 1,00 пикселя. Поля для выдержки 100 мкс там нет. Умножьте скорость в мм/с на выдержку в секундах и число пикселей на миллиметр. Для 100 мкс подставьте 100 × 10⁻⁶ с.
Частые ошибки
- Уверенное чтение — ещё не класс качества. Класс ставит калиброванный верификатор — прибор для оценки качества кода по стандарту: ISO/IEC 15415:2024 для 2D-кодов или ISO/IEC 29158:2025 для прямой маркировки.
- В паспорте MV-ID7080EM-35F-WHA V3.0 указаны скорость конвейера 2,5 м/с и частота строк 15 кГц. Ни то, ни другое не скорость декодирования. Число декодирований в секунду измеряйте на своих кодах.
- Пороги 2,5; 3 и 6 пикселей на модуль относятся к конкретным продуктам и версиям. Берите цифру своего декодера.
Чего эти проверки не доказывают
- Порядок проверок и схем света — практика, а не стандарт.
- Предел 54,5 мкс верен при постоянном свете или импульсе ярче окружающего света. Как согласовать импульс с выдержкой — в статье о выдержке и смазе.
- Наибольший угол падения 40° у Cognex ReadIDMax — совет по установке, а не предел декодирования (документация производителя).
Следующий шаг
Пришлите неудачный кадр, его настройки и артикул считывателя. Подтвердим по паспорту этой версии дальность чтения, поле зрения и скорость.
Источники
- MVisionPro engineering calculator and Hikrobot catalog records (datasheet fields); calculations, the tool page and the public API were verified on 2026-09-19
- ISO/IEC 16022:2024 (Data Matrix symbology): https://www.iso.org/standard/80926.html (checked 2026-09-19)
- ISO/IEC 18004:2024 (QR Code symbology): https://www.iso.org/standard/83389.html (checked 2026-09-19)
- ISO/IEC 15417:2007 with Amendment 1:2026 (Code 128): https://www.iso.org/standard/43896.html, https://www.iso.org/standard/87124.html (checked 2026-09-19)
- ISO/IEC 15415:2024 (2D symbol print quality, measurement and grading): https://www.iso.org/standard/76876.html (checked 2026-09-19)
- ISO/IEC 29158:2025 (direct part mark quality, modifies the ISO/IEC 15415 method): https://www.iso.org/standard/87123.html (checked 2026-09-19)
- GS1 2D in retail implementation guidance (quiet zones: 1X Data Matrix, 4X QR Code): https://ref.gs1.org/guidelines/2d-in-retail/ (checked 2026-09-19)
- GS1 DataMatrix guideline (quiet zone one X-dimension on each of four sides): https://ref.gs1.org/guidelines/datamatrix/ (checked 2026-09-19)
- GS1 General Specifications 21.0.1 (GS1-128 quiet zone 10X left and right): https://ref.gs1.org/standards/genspecs/21.0.1/ (checked 2026-09-19)
- DENSO WAVE, QR Code margin of four modules on all sides: https://www.qrcode.com/en/howto/code.html (checked 2026-09-19)
- Basler Data Matrix Code Reader vTool, module size by software version: Starter at least 3 px/module, Basic 6-20 px/module: https://docs.baslerweb.com/data-matrix-code-reader-vtool (checked 2026-09-19)
- Cognex DataMan 503 scan map, 1.2 px/module 1D and 2.5 px/module 2D for that reader and lens configuration: https://docs.cognex.com/dmst_577SR5/web/EN/Fixed_Mount_Manual/Content/Topics/FMREF/DataMan503/DataMan503ScanMap25mmLens.htm (checked 2026-09-19)
- Cognex ReadIDMax reference, 40 degrees angle of incidence and 5 pixels/cell for that tool, plus symbology group, polarity, grid, damage, checksum, result count and timeout settings: https://docs.cognex.com/is_632/web/EN/ise/Content/Reference/ReadIDMax.htm (checked 2026-09-19)
- Basler, optimizing image quality: gain amplifies signal and noise together: https://docs.baslerweb.com/optimizing-image-quality (checked 2026-09-19)
- Cognex AcquireImage, exposure and gain controls: https://docs.cognex.com/isvidi_140/web/EN/Help_ISViDi/Content/Topics/Spreadsheet/VisionTools/AcquireImage.htm (checked 2026-09-19)
- KEYENCE code reader read-error FAQ: metal reflection interpreted as black makes the apparent quiet zone too narrow: https://www.keyence.com/ss/products/auto_id/codereader/code_verification/faq-read-error.jsp (checked 2026-09-19)
- Cognex, preventing no-reads with barcode testing, reader versus verifier: https://www.cognex.com/en-ca/blogs/barcode-verification/prevent-no-reads-with-barcode-testing (checked 2026-09-19)
Похожие материалы
Как подготовлен материал
Материал подготовлен MVisionPro по указанным источникам и с помощью расчётного ядра MVisionPro. Физический тест указан только там, где он действительно проводился. Как мы готовим материалы.
Статус проверки: Проверено. Обновлено 2026-10-07.