Штриховой код (англ. barcode)

Решил я слегка автоматизировать себе работу и заказал для этого сканер штрих-кодов. Но так как мне нужен был сканер, умеющий читать двумерные коды (например, QR-коды), то дешевые сканеры, к сожалению, отсеялись сразу. И выбрал подешевле из умеющих 2D у продавца с хорошим рейтингом.
Коротко - нормально:) Подробнее - небольшой обзор под катом.
Много фото без спойлеров!

Во-первых, я хочу сразу извиниться за качество фотографий - обзор делал на работе, фотографировал телефоном. И за бардак на столе - все другие столы заняты, а этот разгребать слишком долго:)

Первое, на что хочу обратить внимание - это срок доставки - 10 дней. 10 дней! С даты заказа - 11 января - до даты получения - 21 января… 13-го он был сдан в Китае на почту, 18-го проходил таможню, а 21-го уже лежал в моем отделении почты. Историческое событие, блин, - от таможни до получения всего 3 дня.

Пришел он в стандартном сером пакете, в котором лежала обернутая одним слоем пупырки непрезентабельная коробка:


Комплектность тоже весьма аскетична - сам сканер, кабель, диск и скрепка для отключения кабеля от сканера:


Характеристики со страницы продавца:
Разрешение сенсора: 960*640
Способен читать:
1D:

  • EAN- 8
  • EAN-13
  • UPC-A
  • UPC-E
  • Code 39
  • Code 93
  • Code 128
  • EAN128
  • Codebar
  • industrial 2 of 5
  • Interleave 2 of 5
  • Matrix 2 of 5
  • postal code
  • и т.д..
2D:
  • PDF417
  • Chinese-Sensible Code
  • и т.д.
Подсветка: яркий светодиод, инфракрасный светодиод
Скорость: 230 /сек
Интерфейс: USB2.0
Покрытие техники: Gold-Plated
Уровень оптики: V-V1 (Aerial Cameras)
Индикаторы: зуммер и двухцветный индикатор: красный - питание, синий - распознавание успешно
Условия эксплуатации:
Падения: допустимо свободное падение с 2 м 300 раз (?)
Защита: IP54
Температура эксплуатации: от -20 до +55 градусов
Температура хранения: от -40 до 65 градусов
Влажность эксплуатации: 5% - 95% без конденсации
Влажность хранения: 5% - 95% без конденсации
Уровень освещенности: 0-120000LUX
Физические параметры:
Вес: нетто 157 грамм, брутто 349 грамм
Размеры: упаковка 190mm×115mm×80mm
Электрические параметры:
Рабочее напряжение: 5V
Потребляемый ток: 280mA
Мощность: 1.4W
Стандарт безопасности: EN60950-1
EMC: EN55022 EN55024

Сканер подключается к компьютеру через USB. Со стороны подключения кабеля к сканеру 10-контактный разъем RJ50 (10P10C):






Этот разъем защелкивается внутри ручки сканера и чтобы его вынуть нужно вставить скрепку или зубочистку в отверстие сбоку ручки и надавить. Во вставленном состоянии производит впечатление монолитной конструкции:


Работа сканера основана не на сканировании лазерным лучом, а на фотографировании и распознавании штрих-кодов на полученных изображениях. По тех. данным продавца он это делает 200 раз в секунду, но по его работе как-то не слишком похоже на то:) Скорее ближе к 2-10 раз, так как сканирование занимает примерно от 0.1 до 0.5 секунды, в зависимости от условий и типа кода.
Вот его «морда»:






Посередине - объективчик матрицы, справа светодиод подсветки, слева линца «прицельного» лазера.

Сам сканер стандартно небольшой, в руке лежит довольно удобно:



Длина провода 198 см включая разъемы. Провод довольно толстый, но мягкий.

При подключении определяется компьютером как HID-клавиатура, не требуя никаких драйверов. Как только сканер распознает какой-либо штрих-код он отправляет компьютеру текстовую последовательность, распознанную в коде. В конце последовательности может добавлять Tab, Enter или и то и другое. Эта и несколько других настроек осуществляется через распознавание сервисных штрих-кодов из мануала.
При необходимости можно переключить его в режим виртуального COM-порта (так же сервисным штрих-кодом), но этот режим я не пробовал, мне он без надобности. Для этого режима нужно будет установить драйвера.

Что лежит на диске - не знаю, так как у меня нет привода CD-ROM:) Вместо этого я просто нашел в инете вроде бы как производителя этого сканера (Yoko). И хотя на его сайте такой модели нет, зато есть брат-близнец, драйвера и руководство от которого я и скачал. Подошло и то и другое. Ссылку приложил в конце обзора.

Распознавание осуществляется только по нажатию кнопки, автоматического режима я не смог от него добиться. Включающий его сервисный штрих-код сканером не принимается. Впрочем, мне этот режим и не нужен:)

Подсветка довольно яркая. На фоне подсвечиваемого белым светом участка видно «прицельную» полосу, которой производитель рекомендует целиться в код. Вот «бимшот» на лист А4 с расстояния примерно 10 см:



Хорошо видна красноватая прицельная полоса. Впрочем, сканер распознает штрих-коды и выходящие за пределы этой полосы, но не слишком далеко. Подсвечивается гораздо бОльшая площадь, чем видно сенсору.

Как только сканер распознал штрих-код подсветка отключается и для следующего распознавания нужно отпустить и опять нажать кнопку. Если он не смог ничего распознать в течении примерно 10 секунд, подсветка отключается и сканер перестает пытаться что-то увидеть пока кнопка не будет нажата повторно.
Индикатор сверху горит постоянно синим и подмигивает красным в момент успешного распознавания. Одновременно с этим пикает зуммер. Звук высокий, довольно громкий, но не пронзительный, после тридцатого сканирования не возникнет желания разбить его об стену:)

Люблю разбирать все, что не разбирал раньше, а сканеры я еще не разбирал:)

Разборка

Корпус состоит из двух частей - верхняя крышка и все остальное. Держится все вместе на трех шурупах:






Открутив их и сняв крышку, увидим маленькую платку и блок сенсора:






Все это прикручено к текстолитовой пластинке, которая в свою очередь прикручена к корпусу. Китайцы - известные экономисты, и тут это видно - что плата управления, что текстолитовая плластинка имеют всего по два крепления вместо четырех. Сэкономили два болтика со стоечками и два шурупа…
Отключаем короткий шлейф, откручиваем плату от пластины и пластину от корпуса. В рукояти есть еще одна плата. Ее и кнопку держит металлическая скоба:



Откручиваем ее, вынимаем все:






На плате из рукоятки только кнопка, разъем и небольшая обвязка зуммера:






На управляющей плате 4 чипа, как и было обещано в описании продавца (Four-chip Dealing Technology Exclusively) :) Маркировка какая-то непонятная, скорее всего это специализированный заказной чип, память и что-нибудь еще:) Интересного ничего нет, так что собираем обратно:)


Настройки в мануале не так чтобы очень многочислены, но для базовой работы должно хватить:
- переключение в режим виртуального COM-порта и обратно в режим HID-клавиатуры
- отключение распознавания сервисных кодов (кроме кода обратного включения)
- сброс на заводские настройки
- сохранение и восстановление одних пользовательских настроек
- включение и выключение режима автоматического распознавания (этот сканер эти коды не принимает)
- включение и отключение режима чтения кодов с экрана смартфона или компьютера (в этом режиме сканер при поиске кода периодически выключает и включает подсветку - выключает чтобы не было отблесков на экране, включает чтобы можно было сканировать и бумажные штрих-коды)
- включение и выключение режима фокуса (я не понял что это и для чего оно)
- настройка суффикса - передаваемого в компьютер дополнения после самого кода, можно включить добавление табуляции, или перевода строки, или того и другого, или отключить все

Ну и самое главное - что этот сканер может распознать.
У меня давно уже установлена программа Bartender - отличная штука для работы с этикетками, которая знает кучу видов штрих-кодов - 67 штук, умеет их печатать и выводить на экран в конструкторе. Этой программой я и испытывал сканер, выводя на экран разные типы штрих-кодов и пытаясь их отсканировать.


Сканер сумел распознать 31 тип. Под спойлером их изображения и названия.

Распознаваемые штрих-коды

2D-Pharmacode:

Aztec Code:

Circular Code 39


Circular Code 93


Circular Code 128


Codabar (NW-7)

Codablock F


Code 32 (Italian pharmacode)


Data Matrix

Deutche Post Identcode


Deutche Post Leitcode

EAN/JAN-8

EAN/JAN-13


GS1 Composite


GS1 Databar (RSS)


GS1 DataMatrix

GS1 QR Code

Industrial 2-of-5

Interleaved 2-of-5


ITF-14


Matrix 2-of-5


OPC (Optical Product Code, VCA)

PDF417

QR Code

Standard 2-of-5 (ITA)


UPC-A

UPC-E


Все коды считывались прямо с монитора.

Достоинства:
- цена:) В офлайне они гораздо, гораздо дороже, в разы…
- больше не знаю, т.к. не работал до этого со сканерами:)

Есть недостатки:
- кнопка слишком мягкая и срабатывает в самом начале хода, мне это не очень нравится
- плохо распознает на блестящих поверхностях, хотя если сканировать чуть под углом, то нормально
- не настраивается автоматическое распознавание, хотя это не всем и нужно
- распознает не все 67 типов кодов:)))

Итог: нормальный сканер, распознает уверенно и довольно быстро, стоит недорого.

ЗЫ: работать планирую с такими этикетками:


В комментарих возник вопрос как этот сканер справляется с выделением одного из многих тесно расположенных кодов. Выкладываю видео тест-драйва:)
1. Линейный штрих-код (Code 128), размер штрих-кодов 29х13 мм, промежуток между ними - 10 мм по горизонтали и 8 мм по вертикали:

2. 2D штрих-код (PDF417), размер штрих-кодов 33х7мм, промежуток между ними - 6.5 мм по горизонтали и 2.5 мм по вертикали:

3. 2D штрих-код (QR Code), размер штрих-кодов 13.5х13.5 мм, промежуток между ними - 2 мм по горизонтали и 2 мм по вертикали:

Планирую купить +16 Добавить в избранное Обзор понравился +33 +55

Штриховой код — это последовательность черных и белых полос, представляющая некоторую информацию в виде, удобном для считывания техническими средствами.

Потребность кодировать больше информации на меньшем пространстве привела к разработке, стандартизации и росту использования двумерных(2D ) штриховых кодов. Двухмерные штрих-коды разработаны для кодирования большого объёма информации. проводится в двух измерениях(по горизонтали и по вертикали). Таким образом, двухмерный код, содержащий в себе не только идентификатор, но и некий набор описывающих объект реквизитов является своего рода« портативной базой данных», что позволяет обходиться без внешней базы данных, значительно расширяя сферу применения технологии штрихового кодирования. В настоящее время наиболее распространён вид двухмерного штрих-кода Aztec. В каждом символе можно выделить область мишени и область данных. Мишень представляет собой набор концентрических квадратов и служит для определения геометрического центра символа в процессе его декодирования. Существуют два основных формата символа Aztec Code:«Compact »(Компактный) символ с мишенью из двух квадратов и«Full -Range»(Полный) символ с мишенью из трех квадратов.

Там, где традиционные одномерные(1 D) штриховые коды наиболее часто работают как <номерной знак> в качестве ссылки на информацию, хранящуюся в базе данных, 2D коды выполняют те же функции, занимая в то же время гораздо меньше места, или работают непосредственно как самостоятельные базы данных, тем самым обеспечивая полную мобильность промаркированных изделий. На сегодняшний день удобство и функциональность двумерных символик сыграли значительную роль в их стандартизации, а области применения продолжают непрерывно расширяться.

Тип Stacked linear (линейный штрих-код) увеличивает информацию, которую способен хранить штрих код за счет расположения одномерных штрих кодов один над другим. Штрих коды типа Code 16K , Codablock и Code 49 — это самые ранние представители семейства двухмерных штрих кодов. Эти штрих-коды предусматривают среднюю емкость информации(до 144 символов), однако они уступают некоторым последним двухмерным штрих кодам по плотности информации и в том, что они не могут обеспечить коррекцию ошибок. Коррекция ошибок позволяла бы операторам правильно считывать даже минимально поврежденные штрих-коды.

Сложенные или стековые символики(также известные как многорядные символики) были логическим продолжением линейных кодов. Фундаментальная концепция заключалась в том, чтобы взять чрезмерно длинный символ такого кода, порезать его на сегменты и сложить их один над другим. Для того чтобы сегменты могли корректно считываться стандартным линейным сканером, к ним были добавлены специальные средства идентификации каждого сегмента и его положения. При этом первоначальное сообщение могло быть достоверно реконструировано независимо от последовательности сканирования сегментов.

«Code 49» и«Code 16K» были первыми стековыми символиками, разработанными на основе набора знаков«Code 39» и«Code 128» соответственно, а вслед за ними, с 1990 года, начал использоваться код«PDF417 ». Его главной особенностью стала возможность математического обнаружения и коррекции ошибок, что чрезвычайно увеличило емкость данных и надежность считывания сканером, даже если символ был частично поврежден.

«PDF417 » кодирует полный набор знаков ASCII с максимальной емкостью около 2000 знаков на 25 кв.см. В европейской разработке — символике«Coda -block F» — используется стандарт на«Code128 » для кодирования, печати и считывающего оборудования, чтобы иметь возможность создавать многорядные символы. Требуется специальное декодирующее программное обеспечение, чтобы реконструировать сообщение, но пользователю предлагается простой способ перехода от существующего«Code 128» к 20 кодированию.

Термин матричный код (Matrix code ) обозначяет двухмерный штрих код, основанный на расположении черных элементов внутри матрицы. Каждый элемент черного цвета имеет одинаковый размер, а позиция элемента кодирует данные.

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

Матричные символики предложили более высокую плотность записи данных, чем стековые коды, где-то примерно между 3:1 и 4:1. Матричный код составляется из темных и светлых ячеек, которые могут быть квадратными(большинство современных матричных кодов), шестиугольными(Maxicode ) или круглыми(как в точечном коде) по форме. Данные кодируются в двоичной форме(обычно темная ячейка = двоичной 1; светлая ячейка = двоичному 0), а схема декодирования использует технологии обнаружения и коррекции ошибки для создания избыточности. Различные символики отличаются по способу конвертирования данных в двоичную форму, по специфической форме расположения потока двоичных данных в символе, по используемым алгоритмам обнаружения и коррекции ошибки, по форме ячеек и, наконец, по« шаблону поиска». Он фиксирует положение ячеек и разработан таким образом, чтобы дать возможность обрабатывающему программному обеспечению быстро распознать и сориентировать символ в поле зрения сканера.
При существующей технологии сканирования все матричные символики требуют использования сканеров, регистрирующих изображение с помощью ССD-матрицы, Это связано с тем, что значение ячейки зависит не только от её цвета, но также и от положения её в горизонтальном и вертикальном рядах. Матричные коды масштабируются, и их теоретическая информационная емкость в 1 бит на ячейку дает им большую плотность данных, чем у стековых кодов. Например, символ«Data Matrix» с размером ячейки(X размер) в 10 mil(0 .25 мм) может закодировать максимум 2000 знаков, занимая около 8 кв.см., по сравнению с 25 кв.см. для тех же данных у символа«PDF417 » с тем же самым Х размером.

Разновидностью матричных кодов является группа кодов, известных как точечные коды. Они состоят из групп круглых точек, отделенных друг от друга свободным пространством. Эти коды менее эффективны с точки зрения плотности, чем матричные коды, но пригодны для применений, где используются перфорированные карты, или перенос данных на носитель по трафаретам.

Немного подробнее об одном из наиболее успешно используемых двумерных кодов — о«PDF417 ».
Эта двумерная, стековая символика была разработана и введена в повсеместное использование в 1990 году компанией Symbol Technologies и стандартизирована AIM в 1994 году.«PDF417 » поддерживается всеми основными производителями принтеров и сканеров. PDF — это аббревиатура от Portable Data File(портативный файл данных). Каждый знак закодирован с использованием 4 штрихов и 4 пробелов, используя в итоге 17 модулей, вследствие чего появилось название«PDF417 ». Он кодирует до 1850 буквенно-цифровых или 2710 цифровых знаков. Высокая емкость данных позволяет кодировать всю необходимую информацию о человеке, продукте, документе или упаковке.
Cимволику«PDF417 » рекомендуется использовать в транспортной и автомобильной промышленностях на транспортных этикетках и таможенных документах.

В автомобильной промышленности Volvo Car Corporation использует этот код в процессах проверки автомобильных электрических систем в конце сборочной линии. А компания Thomson Consumer Electronics использует «PDF417 » на своих заводах для маркировки отгрузочных документов, и считает его одним из экономически выгодных кодов.
В электронном обмене данными (EDI ), «PDF417 » может использоваться для кодирования информации транспортной декларации в транзакциях предварительного уведомления об отправке груза (ASN ). Даже если груз прибудет до транзакции электронного обмена данных, вся информация о нем содержится в символе. «PDF417 » может кодировать даже бинарные данные, поэтому им возможно кодировать все, что можно оцифровывать, включая цветные фотографии и отпечатки пальцев.
«PDF417 » также используется для идентификации личности. В США некоторые штаты выпускают водительские права с закодированной на обратной стороне подробной информацией о водителе. На Западе эта символика применяется в здравоохранении для идентификации пациента и обработки претензий по страховкам. Некоторые страны, включая Бахрейн и Филиппины, используют «PDF417 » на регистрационных карточках избирателей. В России «PDF417 » используется на специальных акцизных марках для алкогольной продукции, как персональные носители информации, для автоматизации работы книжных издательств и маркировки мелкой продукции.

Просим прощения у наших читателей, но даже в такой области как современное торговое оборудование есть предметы и темы, в разговоре о которых невозможно обойтись без компьютерной терминологии. Нет другого выхода, кроме как привыкать и осваиваться в этом новом языке, на котором нам всем, похоже, придется чем дальше, тем больше изъясняться и объясняться друг с другом, если мы хотим находиться в той цивилизации, которую сами же создаем. Насколько это было возможно, некоторые термины в этой публикации мы снабдили поясняющими переводами и разъяснениями в скобках.

Двухмерные штрих-коды (далее: 2D, англ. "2 dimention"s") являются последними разработками в области штрихового кодирования. Имя 2D используется для описания любого штрих-кода, который кодирует информацию, полагаясь не только на вертикальные штрихи и пропуски. Существует два вида 2D кодов: stacked liner и matrix. "Stacked liners-коды обычно увеличивают информацию хранимую в штрих-коде, располагая штрих-коды один над другим. Штрих-коды Code 16K, Codablock и Code 49 - ранние представители этого семейства. Эти штрих-коды предполагают разумную плотность и среднюю емкость информации (до 144 символов), но уступают некоторым последним 2D штрих-кодам в том, что они не обеспечивают коррекцию ошибок, которая позволяла бы правильно считывать даже частично поврежденные штрих-коды.

Основная причина возникновения новых технологий в этой области состоит в том, что потребитель желает помещать и хранить на этикетках все большее количество информации. Его больше не устраивают традиционные одномерные штрих-коды, которые содержат обычно до 32 символов. Эти штрих-коды часто называют "license plates", так как информация, хранящаяся в таких кодах, лишь ключ или отсылка к внешней базе данных, сам же код не несет исчерпывающей информации о товаре. Такая технология получила в свое время повсеместное распространение. Тем временем разработчики autolD-решений (по-русски: самоидентификационных) с неизбежностью пришли к идее 2D кодов, так как постоянно возрастало требование хранить все большее количество информации на все меньших площадях.

2D штрих-коды представляют собой, по существу, портативные информационные файлы большой плотности и емкости, и обеспечивают доступ к большим объемам информации без отсылок к внешней базе данных. То есть, технология 2D штрих-кодироваия позволяет хранить всю необходимую информацию в самом штрих-коде. 2D штрих-коды имеют преимущественно матричную форму и не используют для кодирования информации традиционные штрихи/пробелы. Вместо стандартной технологии определения ширины штриха/ матричные штрих-коды используют on/off дизайн (т.е. "да-нет" или "единица-ноль") для кодирования информации. Существует множество разновидностей 2D штрих-кодов (например, PDF417, MaxiCode, Dotamatrix).

PDF417

PDF417 - "stacked linear" - технология, разработанная компанией Symbol Technologies. Данный штрих-код способен хранить чрезвычайно большое количество информации (до 25000 символов), имеет большую плотность и обеспечивает хорошую коррекцию ошибок. PDF417 позволяет декодировать двоичный код, что означает, что в таком штрих-коде может быть закодирована фотография, отпечатки пальцев или любой другой вид данных. Этот штрих-код идеально подходит для применения в идентификационных картах, для маркировки перевозимых товаров, для EDI и т.д.

MAXICODE

Maxicode - разработка компании United Parcel Service. Созданный для нужд сортировки товара, этот штрих-код легко сканируется и, что немаловажно, может наноситься на криволинейные поверхности. Он легко распознается по шестиугольным элементам, составляющим его основу. DATAMATRIX Учитывая возросшие требования к емкости штрих-кодов, фирма ID Matrix of Clearwater (Флорида) разработала специфика-цию кода Datamatrix. Этот код полностью отвечает этим требованиям и обеспечивает также коррекцию ошибок. Он может наноситься не только на этикетки малого размера, но и собственно на товар, если он имеет для этого достаточную плотность.

ПЕЧАТЬ 2D штрих-кодов

Большинство выпускаемых сего-дня принтеров способны печатать как в режиме прямой термопечати (Direct Transfer), так и в режиме термотрансферной печати (Thermal Transfer). При прямой термопечати изображение наносится на специальные термоэтикетки. Следует иметь однако в виду, что этот вид печати не отличается стойкостью. Изображение может сильно потерять в качестве уже через неделю под воздействием прямых солнечных лучей, и даже еще скорее, если вблизи будут находиться лампы дневного света. Термотрансферная печать осуществляется на обычные бумажные или любые другие этикетки, для этого используются сменные картриджи со специальной термопленкой. Как правило, этикетки, полученные при помощи термо-трансферной печати, отличаются хорошим качеством и существенно менее восприимчивы к воздействию влаги и солнечных лучей. Практически все современные принтеры, позволяющие печатать обычные штрих-коды, способны печатать также и двухмерные штрих-коды.

КОНВЕЙЕРНОЕ СКАНИРОВАНИЕ

Первые модели 2D сканеров разрабатывались, в частности, для нужд скоростного сканирования на конвейере. Конвейерная лента может двигаться со скоростью до 500 футов в секунду (ок. 150 м), и без такой техники не обходится сегодня ни один крупный склад или дистрибьюторский центр. 2D сканеры способны сканировать сотни упаковок без снижения скорости их транспортировки на конвейере. Системы скоростного сканирования предлагает компания Computer Identics/RVSI.

УСТРОЙСТВА ДЛЯ ЧТЕНИЯ ДВУХМЕРНЫХ ШТРИХ-КОДОВ

Считыватели 2D штрих-кодов, в отличие от обыкновенных сканеров штрих-кода, сначала улавливают их изображение, затем анализируют полученную картинку, и лишь затем извлекают из нее и декодируют штрих-код. Устройства, применяющие анализ видеоизображения, необходимы для эффективного считывания матричных кодов, однако могут читать и обычные штрих-коды. Технология анализа видеоизображения открывает возможности для чтения подписей, оптического распознавания символов и т.п.

РУЧНЫЕ СКАНЕРЫ

Некоторые поставщики комплектуют свои устройства для ручного сканирования системой анализа видеоизображения. Одна из таких компаний - Welch Allyn предлагает своим клиентам устройство IMAGETEAM 4400, которое читает как MaxiCode, так и обычные штрих-коды и имеет дополнительную поддержку кодов PDF417 и Datamatrix.

ЗАКЛЮЧЕНИЕ

Как мы видим, 2D штрих-кодирование позволяет существенно расширить сферу применения штрих-кодов. Например, использовать их в идентификационных картах, наносить на медицинские препараты и повсюду, где требуются очень маленькие этикетки, и т.д. Благодаря большому объему информации, содержащейся в штрих-коде, описанная технология находит все более широкое применение в промышленности и там, где обыкновенные штрих-коды больше не отвечают возросшим требованиям к полноте предоставляемой информации. Совершенно очевидно, что спрос на такую технологию и соответствующее оборудование будет расти.