Библиотека · Как найти причину

Почему код не читается и что проверить первым

Коротко

Сохраните с одного поста неудачный и удачный кадр, записав выдержку, усиление, фокус, скорость и настройки декодера — программы распознавания кода. Меняйте за тест что-то одно, остальное оставляйте прежним. Размытие вдоль движения — признак смаза: код сдвинулся за время выдержки. Если код резкий, целиком в кадре, но не читается, смотрите декодер, заданный предел времени распознавания и передачу результата. Остановка линии сужает поиск, но причину не доказывает.

В каком порядке проверять

Начните с проверки изображения, затем переходите к настройкам декодера.

  1. Кадр и свободная зона. Если поисковый шаблон (фигура, по которой декодер находит 2D-код) или край штрихкода касается границы области поиска, код мог обрезаться. Расширьте область, чтобы в неё вошла свободная зона — чистое поле вокруг кода. Её ширину считают в модулях — самых мелких ячейках или штрихах кода. Коду Data Matrix нужен один модуль с каждой стороны, QR Code — четыре (GS1, DENSO WAVE). GS1-128 — по десять слева и справа (GS1). Для остальных кодов проверьте требования их спецификаций.
  2. Пиксели на модуль. Разделите ширину кода в пикселях на число модулей. Basler Data Matrix Code Reader требует не меньше 3 пикселей на модуль в версии Starter и 6–20 в Basic (документация производителя). Сверьтесь с цифрой своего декодера. Наш начальный ориентир 3–5 пикселей на модуль — практическое правило, выведенное из таких пределов, а не стандарт. Если пикселей мало, сузьте поле зрения (видимый камерой участок) или возьмите камеру с большим разрешением. Затем проверьте, что код помещается целиком.
  3. Смаз и фокус. Полоса размытия в одну сторону — признак смаза. Сократите выдержку при постоянном свете или импульс, если он ярче окружающего света. Яркость верните более сильным постоянным светом или синхронизированным импульсом. Усиление поднимает и сигнал, и шум, света не добавляет и смаз не убирает (рекомендация производителя). Проверьте яркость, шум и контраст краёв модулей. Нечёткие края без полосы — признак расфокусировки, особенно если читаются только детали номинальной высоты. Наведите резкость на плоскость кода и проверьте обе крайние высоты на остановленной линии. Оценка глубины резкости даёт ориентировочный диапазон расстояний для модели тонкой линзы с допустимым кружком размытия в два пикселя. Контраст краёв кода нужно проверить на кадре.
  4. Блики и освещение. Пересвеченное пятно, которое смещается при смене угла лампы или камеры, — признак блика. Оставьте выдержку прежней и меняйте только угол света или поляризацию. Блестящий металл может выглядеть чёрным и сужать видимую свободную зону (рекомендация производителя). На прямой маркировке, когда код нанесён на саму деталь, пробуйте одну схему света за раз. Сравните контраст точек и фона в таком порядке: рассеянный свет со всех сторон, тёмное поле под скользящим углом, коаксиальный свет вдоль оси объектива, поляризованный против бликов. Условия оценки класса таких меток задаёт ISO/IEC 29158:2025.
  5. Сам код. Царапины, пропуски, выцветшая краска, разбитые точки и повреждённый синхронизирующий шаблон (чередующиеся ячейки, задающие сетку Data Matrix) — физические дефекты. Настройками их не исправить. Впрочем, Cognex ReadIDMax допускает повреждённую свободную зону, поисковый или синхронизирующий шаблон (документация производителя). Прежде чем менять настройки декодера, сравните с заведомо хорошим кодом при той же оптике.
  6. Наклон и кривизна. Если отказы зависят от наклона, поворота или кривизны, а не от скорости или высоты, поставьте код перпендикулярно оси камеры. Затем возвращайте рабочее положение по шагам.
  7. Настройки декодера. Сначала включите ожидаемый тип кода. Потом проверяйте только опцию под наблюдаемый отказ. Полярность — для светлого кода на тёмном фоне, режим повреждений — для повреждённых меток. Режим перспективы или сетки — для искажённых кодов. Число результатов — если возвращается только первый код, предел времени распознавания — если декодирование обрывается рано. После каждого изменения прогоните тот же сохранённый кадр. Названия опций у производителей разные.

Почему код читается на остановленной линии и отказывает на ходу

Допустим, по ширине поля зрения 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⁻⁶ с.

Частые ошибки

Чего эти проверки не доказывают

Следующий шаг

Пришлите неудачный кадр, его настройки и артикул считывателя. Подтвердим по паспорту этой версии дальность чтения, поле зрения и скорость.

Источники

Похожие материалы

Как подготовлен материал

Материал подготовлен MVisionPro по указанным источникам и с помощью расчётного ядра MVisionPro. Физический тест указан только там, где он действительно проводился. Как мы готовим материалы.

Статус проверки: Проверено. Обновлено 2026-10-07.