штрих код считывает белые полоски
Штрих-коды. Как они устроены? Часть 1
Несмотря на то что над унификацией штрих-кодов работали серьезные ученые и инженеры, полной их унификации добиться не удалось. Уж слишком широкой оказалась область применения этих малышей.
Соответственно, сильно отличаются алгоритмы превращения алфавитно-цифровой информации в последовательность черных и белых полос, которые называются штрихами и наносятся на различные поверхности. Сканируя эти штрихи специальным прибором, можно впоследствии считывать закодированную информацию в виде, удобном для дальнейшей обработки компьютерными системами.
Алгоритм превращения алфавитно-цифровой информации в последовательность штрихов называется «символогией» («symbology»). Если погуглить это слово совместно с названием той или другой штрих-кодовой системы, можно разобраться в принципах кодирования данной системы. Или не разобраться. Потому что симвология некоторых штрих-кодовых систем совсем не элементарна, Ватсон. Примеры различных кодировок штрих-кодов
Фото: Марк Блау, личный архив
Примером штрих-кодовой кодировки с достаточно сложной символогией является система кодирования, которая называется EAN-13. Это очень распространенная система. Именно ее коды мы видим на всех продуктах, которые покупаем в магазинах. Именно благодаря EAN-13 резко сократилось время обслуживания клиентов на кассах расчета. Поэтому тем, кто хочет понять, как из цифр получаются штриховые метки и как эти метки потом превращаются в цифровые сигналы, стоит немного поломать голову и разобраться с устройством именно этой системы кодирования информации.
Для начала рассмотрим, как устроена штрих-кодовая метка. Собственно код размещается в пространстве, которое слева и справа окаймляют так называемые ограждающие штрих-кодовые полосы (guard bars). Эти полосы содержат штрихи единичной ширины, два темных и один светлый между ними. Если темные штрихи обозначать цифрой 1, а светлые — цифрой 0, то ограждающие полосы будут иметь код 101. Ограждающие полосы служат для синхронизации работы сканера, поэтому их иногда называют старт-стоповыми полосами (start and stop sentinel). Штрих-кодовая метка
Фото: Марк Блау, личный архив
Штрихи единичной толщины, темные или светлые, называются модулями. Каждая цифра штрих-кода кодируется 7 модулями. Всего код EAN-13 состоит из 12 цифр. Общее число модулей, используемых для записи 12 цифр, равно 12×7=84.
Пространство, занятое самим штрих-кодом, делится на две группы — левую и правую, по 6 цифр в каждой. Эти группы разделяются специальной средней разделительной полосой, которая состоит из 5 штрихов — трех светлых и двух темных (код 01010). Средняя разделительная полоса, также как и ограждающие полосы, является управляющим элементом. Управляющие элементы содержат 11 модулей. Таким образом, суммарная ширина штрих-кода всегда равна 95 модулям.
Чем меньше ширина модуля, тем компактнее штрих-код. С другой стороны, слишком тонкий штрих трудно четко напечатать и трудно без ошибок прочесть. Стандартная ширина модуля, обеспечивающая наилучшее считывание при минимальном размере, имеет значение 0.33 мм. Таким образом, ширина полосы штрих-кода обычно равна 0.33×95=31.35 мм.
Все не управляющие элементы штрих-кода EAN-13 — закодированные цифры. Обычно эти цифры распечатывают под штрих-кодом или над ним. Эта информация предназначена для оператора-человека, который, в отличие от сканера, лихо считывать штрих-коды не может. Зато он может вручную ввести требуемый код, если сканер по какой-то причине сбоит.
Каждая цифра кодируется 7 модулями темного или светлого цвета или, что-то же самое, 7 двоичными разрядами. Пробелов между штрихами нет. Поэтому несколько рядом стоящих темных или светлых штрихов сливаются в более толстые штрихи того или иного цвета. Система кодировки сделана так, чтобы каждая цифра изображалась только 4 утолщенными штрихами. Благодаря этому вся метка штрих-кода будет состоять из 29 светлых и 30 тёмных штрихов, включая штрихи ограждающих полос и средней разделительной полосы.
Разделительная полоса — хорошее название. Сразу возникает ассоциация с шоссе, где по одну сторону от разделительной полосы машины движутся в одну сторону, а по другую — в противоположную. Так вот, главный сюрприз кодовой системы EAN-13 — это то, что цифры в левой части штрих-кода и в правой его части кодируются по-разному. Эти кодировки называются, соответственно, L-кодом и R-кодом. Кодировки системы EAN-13
Фото: Марк Блау, личный архив
Для каждой кодируемой цифры L-код является фотографически негативным исполнением R-кода. Там, где у L-кода стоит 0, в R-коде стоит 1. Если суммировать L-код и R-код, получится число, состоящее из семи единиц. Все L-коды начинаются с 0, в то время как все R-коды начинаются с 1. Кроме того, сумма единиц в L-коде всегда нечетная, а в R-коде — всегда четная. Код должен читаться как в прямом, так и в перевернутом виде
Фото: Марк Блау, личный архив
Почему нельзя было обойтись одной кодировкой? Потому что на практике часто приходится сканировать штрих-код, перевернутый «вверх тормашками». Как при этом определить, в каком положении находится читаемый штрих-код — в прямом или в перевернутом? Схема сканера определяет это довольно просто. Если первая из прочтенных групп (левая) начинается с 0, а вторая с 1, то штрих-код при чтении находился в прямом положении. Если же первая группа начинается с 1, а вторая с 0, произошло чтение штрих-кода, повернутого на 180 градусов. В первом случае расшифровка происходит с помощью таблицы прямой кодировки, а во втором — с помощью таблицы обратной кодировки, коды в которой являются зеркальным отражением кодов таблицы прямой кодировки.
Что же получается? В символогии штрих-кода EAN-13 одна цифра должна кодироваться четырьмя способами: L-код и R-код — для прямого чтения, и для чтения обратного — еще одна пара, тоже состоящая из L-кода и R-кода? Как говорила (правда, по другому поводу) юная Гюльчатай из «Белого солнца пустыни», тяжело. В самом деле, нелегко. Но необходимо.
Штрих код считывает белые полоски
Некоторые комбинации цветов могут влиять на считываемость. Ошибки сканирования не только снижают эффективность розничных, логистических и производственных процессов. Они также могут привести к высоким затратам на корректировку и разорвать цепочку поставок. Вот почему в дополнение к нашим 6 советам по улучшению качества штрих-кода, мы предложим вам еще несколько рекомендаций!
Оптимальное решение: черные штрихи на белом фоне
Сканеры штрих-кодов требуют определенного контраста между полосками штрих-кода и фоном, чтобы датчики могли оптимально обнаруживать и оценивать отраженный свет. Различие в отражении между светлыми и темными элементами называется сигналом контрастности печати (Print Contract Signal). Если вы не хотите рисковать со считываемостью штрих-кода, убедитесь, что данный параметр не ниже 80%.
Черно-белый цвет обеспечивает наивысший контраст. Поэтому это наиболее надежное и распространенное сочетание для промышленной маркировки, например, для печати штрих-кодов. Обычно штрих-код печатается принтером этикеток, термотрансферным или струйным принтером.
Удачные сочетания цветов для штрих-кода
Правило довольно легкое: всегда наносить темные цвета на светлый фон. Например, следующие цвета хорошо сочетаются друг с другом:
Плохие сочетания цветов для штрих-кода
Белый штрихкод на темном фоне
Может ли штрих-код иметь белые полосы? Нет! Нельзя инвертировать (перевести в противоположное состояние) цвета штрих-кода. Если фон темный и его никак нельзя изменить, не используя этикетку, то есть одна уловка: вместо печати черных полос просто напечатайте пробелы белым цветом!
Светлый штрихкод на светлом фоне или темный штрихкод на темном фоне
Светлые полосы на светлом фоне или темные полосы на темном фоне не будут давать считывания штрихкода, поскольку контраста между цветами будет недостаточным для сканеров.
Красный штрихкод на белом фоне
Обычные сканеры штрих-кодов используют красный свет или инфракрасный свет. Эти цвета сильно отражаются на красных поверхностях, поэтому интерпретируются как белые. Если фон также светлый, то контраста недостаточно. Даже оттенки с высоким содержанием красного (например, розовый или оранжевый) также не подходят для светлого фона.
Черный штрихкод на зеленом или синем фоне
Как цвет, противоположный красному, зеленый также имеет недостаток для штрих-кода: поскольку зеленый «поглощает» красный свет сканера, он интерпретируется как черный. Бирюзовые и синие тона тоже плохо сочетаются с темными штрих-кодами.
Металлические цвета штрихкода
Металлические цвета и бликующие поверхности проблематичны для считывания, потому что они могут слишком сильно отражать свет.
Фон с рисунком или прозрачная поверхность
Вы уже догадались: фон c рисунком не подходит для штрих-кодов. То же самое относится к прозрачным поверхностям, которые позволяют темному содержимому просвечивать через упаковку и тем самым ухудшать контраст.
Возможная альтернатива: data matrix код
Data matrix коды представляют собой двумерные штрихкоды и обладают несколькими преимуществами. Поскольку для большинства 2D-сканеров достаточно контраста всего в 20%, они допускают больше фоновых цветов. Кроме того, они требуют меньшего пространства, и поэтому могут быть еще более незаметно интегрированы в дизайн упаковки.
Проверка качества штрих-кода и соблюдение требований
При формировании штрихкодов нужно учитывать ряд факторов. В некоторых случаях законодательство или требования потребителя определяют правила маркировки продуктов. Неправильная маркировка может даже привести к отзывам продукции. Поэтому все штрихкоды, используемые в цепочке поставок, должны быть тщательно проверены на качество в соответствии с определенными стандартами. Многие производители устанавливают соответствующие системы верификации на своих производственных линиях.
Принципы чтения штрихкодов
Классификация сканеров штрих-кода по принципу метода считывания:
CCD-сканеры штрихкода используют фотодетекторы, подобно используемым в электронных камерах, и позволяют получить изображение штрих кода без физического перемещения сканера вдоль штрих кода, что, естественно, снижает вероятность ошибок.
Весь штрих код подсвечивается рядом светодиодов и сенсор CCD «захватывает изображение» штрих кода приблизительно 100 раз в секунду. В общем, сканеры CCD, должны быть расположены в 1-2 сантиметрах от штрих кода, однако в отличие от «палочных» сканеров, нет износа штрих кода. Наиболее часто применяются в розничной торговле, где тип и размер штрих кода точно определен. Обычно, штрих коды большие, чем ширина ряда светодиодов, не могут быть прочитаны, поэтому требуется выбирать необходимый размер сканера.
Существуют сканеры CCD с большей глубиной поля сканирования (обычно до 10 см). Однако, они значительно дороже, поэтому проще подумать о ручных лазерных сканерах. Обратите внимание на энергопотребление сканера, когда Вы рассчитываете подключать его к переносному компьютеру.
Не имеющие движущихся частей, этот тип сканеров чрезвычайно надежен и обеспечивают быстрое считывание. Они являются великолепным первоначальным решением.
Сканеры, часто изготавливаемые в форме пистолета, испускают сканирующий лазерный луч, когда нажимается крючок. Обычно в качестве источника света, используется лазерный диод. Луч отражается от штрих кода и через систему линз попадает на фотодетектор. Двигающееся подстроечное зеркало, используется для сканирования на постоянной скорости. Этот процесс повторяется около 33 раз в секунду. При помощи этого метода, штрих коды могут быть считаны с расстояния и размер штрих кода не критичен, по сравнению с CCD сканерами. Применяются диоды видимого и инфракрасного света.
Типичное максимальное расстояние для лазерного сканера от 30 до 90 см, хотя существуют сканеры, которые могут считывать с расстояния свыше 10 метров. Однако, чем больше расстояние, тем большим должен быть штрих код и лучшим контраст печати. Для очень удаленного сканирования, должны использоваться специальные отражающие материалы. При росте расстояния сканирования, адекватно растет и цена сканера. На практике, расстояние сканирования ограничено размером (или разрешением) штрих кода. Представьте, чем меньше напечатанный текст, тем ближе должны Вы поднести его к глазам, чтобы прочитать. В не зависимости от максимального расстояния считывания, сканер сможет считать только небольшой штрих код на близком расстоянии. Для ориентирования: штрих код EAN13 стандартного размера, может быть считан любым лазерным сканером с максимального расстояния около 30 см. В технической литературе можно найти диаграмму «поля сканирования» соотносящую размер штрих кода с рабочим расстоянием сканера.
Лазеры часто используются в приложениях, когда штрих код труднодоступен, или в фиксированной позиции, например, на контрольных пунктах предприятий, выпускающих крупногабаритные грузы, которые слишком громоздкие, для близкого расположения рядом со сканером. Особенно, здесь подходят беспроводные лазерные сканеры, использующие коротковолновые радиочастоты вместо кабеля.
Этот метод имеет только светодиодный источник света и датчик, чтобы захватить отражение. Для считывания штрихкода необходимо самостоятельно перемещать луч по штрихкоду.
Механизм прост, что делает этот метод недорогим.
Что означает штрих-код: полосы и контрольные цифры
Штрих-коды сегодня встречаются практически на всех товарах в официальных торговых точках. Но не все знают, что они нужны не только для «прохождения» покупки через кассу. Штрих-коды содержат зашифрованные данные для проверки качества продукта. Путем нехитрых вычислений можно узнать — законно ли произведен товар и из какой страны прибыл.
Штрих-коду уже 44 года. З апреля 1973 года компания IBM официально представила свою разработку UPC – один из самых распространенных линейных символик штрихового кода. С тех пор эта дата и считается днем рождения штрих-кода, а его родителями принято считать Бернарда Силвера и Норманна Джозефа Вудленда.
Штриховой код (штрих-код) называют одним из самых передовых и полезных изобретений XX века, которое положило начало автоматизации процесса учёта и отпуска товаров, а значит, улучшило и ускорило процесс обслуживания покупателя.
Полосы со смыслом
Предпосылки возникновения штрих-кода возникли еще в 30-е годы ХХ века, а активно стали использовать кодирование потребительского товара, особенно в розничной сети, после 50-х годов, рассказала завкафедрой бизнеса в сфере услуг НГУЭУ Лариса Нюренбергер.
Как говорится в справке Роспотребнадзора, сегодня штрих-код — это наносимая на упаковку в виде штрихов закодированная информация, считываемая при помощи специальных устройств. C помощью штрихового кода кодируют информацию о некоторых наиболее существенных параметрах продукции. Наиболее распространены американский Универсальный товарный код UPC и Европейская система кодирования EAN. Согласно той или иной системе, каждому виду изделия присваивается свой номер, состоящий чаще всего из 13 цифр.
«На сегодняшний день штрих-код — не просто последовательность черно-белых полос, есть двухмерные, которые представляют собой матрицу с закодированными позициями. Недавно компания Microsoft разработала цветные штрих-коды», — добавила Нюренбергер.
По ее словам, продавцу при обилии продукции штрих-код дает возможность моментального учета и контроля за движением товаров. А потребитель в каждой из систем кодирования может почерпнуть информацию, которая ему необходима: страна-производитель, материал, из которого изготовлен товар, другие параметры продукции. Права потребителей: скупой платит дважды
«Для грамотных потребителей возможность рассчитать контрольную цифру штрих-кода проблем не составляет, существует специальный алгоритм. Если высчитанная контрольная цифра совпадает с последней цифрой кода, это значит, что он произведен законно и определённого качества. Если результат расчетов отличается от контрольной цифры — товар произведен незаконно, есть сомнения в его качестве», — сказала эксперт.
По данным Роспотребнадзора, код страны присваивается Международной ассоциацией EAN. Он никогда не состоит из одной цифры. Нередко на товаре можно увидеть надпись, например, «Сделано в Голландии», а код, нанесенный на этикетку, этой стране не соответствует. Тут причин может быть несколько.
«Первая: фирма была зарегистрирована и получила код не в своей стране, а в той, куда направлен основной экспорт ее продукции. Вторая: товар был изготовлен на дочернем предприятии. Третья: возможно, товар был изготовлен в одной стране, но по лицензии фирмы из другой страны. И, наконец, четвертая, когда учредителями предприятия становятся несколько фирм из различных государств», — отмечается на сайте ведомства.
Штрих код считывает белые полоски
I. Немного истории появления штрихкода
II. Технические подробности технологии штрихового кодирования
III. Штрихкод EAN-13 и таблицы соответствия цифр
IV. Пример прочтения штрихкода EAN-13 вручную
I.Немного истории появления штрихкода
Классическая история об изобретении штрихового кодирования, озвученная в американском духе, выглядит следующим образом. Дело было в 50-х годах. После окончания Массачусетского технологического института будущий изобретатель штрихкода Дэвид Коллинз поступил работать на Пенсильванскую железную дорогу, где ему была поручена сортировка вагонов: их надо было пересчитывать, выяснять номера, в общем, дело это было довольно нудное. Тогда и пришла идея светить прожекторами на вагоны и считывать с помощью фотодатчиков специальный код, состоящий из красных и синих полос, которые изобретатель предложил расположить на стенке вагона в прямоугольнике длиной до полуметра. Испытания показали, что сканирующее устройство способно верно читать коды даже при скорости движения вагона около 100 км/час. Достигнутый успех подтолкнул изобретателя к дальнейшему совершенствованию. В 1968 году он перешел от прожекторов, требовавших изрядного расхода энергии, к жестко сфокусированному лазерному лучу. Размеры сканирующей установки резко сократились, меньше стала и сама кодовая маркировка. Это натолкнуло Коллинза на мысль, что придуманный штриховой код можно использовать не только на железной дороге. Вспомнив, как 14-летним мальчиком подрабатывал по выходным на складе супермаркета, он решил использовать методику штрихкового кодирования для учёта идентификационных номеров товаров. Так постепенно и появился привычный штрихкод.
Прогрессивная для своего времени технология учёта вагонов вскоре стала применяться и для учёта товаров, причём оказалась настолько удобной, что стала мировым стандартом. С технической точки зрения разработанный в 60-х годах морально устарел в конце 70-х. Развитие компьютерной техники стремительно расширяло возможности методов кодирования, и если бы вместо «вагонной логики» для учёта товаров стали бы применять чуть-чуть улучшенный стандарт, то в тех же самых полосках разместилось бы не менее 16 цифр. Но поскольку устройства для штрихкодов были уже разработаны и запущены в производство, было выгоднее продвигать то, что есть, а не заниматься улучшениями самого кода.
II. Технические подробности технологии штрихового кодирования
Поскольку вагоны могли ехать в прямую и обратную сторону, то вагонный штрихкод был разработан таким образом, чтобы одной и той же простейшей логикой его можно было бы читать и справа налево, и слева направо а также определять в какую именно сторону проехал вагон. Разумеется, для учёта товаров эти хитрости не нужны. Электронный сканер без труда может прочитать полоску штрихкода и развернуть её в обратную сторону внутри своей собственной памяти.
Как же происходит чтение штрихкода, если считывающему устройству неизвестны ни скорость, ни направление его движения? Фотодатчик выдаёт лишь нули и единицы, а в качестве синхронизации можно лишь отмерять промежутки времени, за которые происходит смена показаний фотодатчика. Каким же образом занести информацию в полоски, чтобы читать их можно было бы несмотря на отсутствие иной синхронизации, кроме отсчёта времени?
Задача усложняется ещё и тем, что необходимо нейтрализовать помехи:
1) нестабильная скорость. Начальная и конечная скорость движения сканера с точки зрения техники могут заметно различаться.
2) возможны отклонения в самом изображении штрихкода (например, из-за «расползания» типографской краски).
Понятно, что при таком выравнивании штрихкода по «окнам» плотность информации в итоге будет тем меньше, чем более узким будет выбрано «окно синхронизации». И наоборот, чем шире будет «окно синхронизации», тем больше информации можно будет закодировать, тем большей будет ёмкость штрихкода.
По методике AC (верхний вариант) размещается 16 цифр, длинный маркер в начале и признак конца в конце. Кроме того стандарт подразумевает возможность записи любого количества цифр, а декодировать его проще. Если ещё увеличить «ширину окна», до 16 точек, тогда на той же площади легко размещаются 24 цифры.
Штрихкод EAN-13 вмещает только 13 цифр, компьютеру декодировать его сложнее, наращивать его невозможно. Однако, именно этот стандарт сделался общемировым, именно его нам следует рассматривать.
III. Штрихкод EAN-13 и таблицы соответствия цифр
Согласно теории, которую мы рассмотрели выше, нетрудно подсчитать, что при методике кодировки EAN-13 (ширина окна равна 7 логических модулей) объём информации в каждом окне составляет одну десятичную цифру плюс один «лишний бит» (назовём этот «лишний бит» условно как «o/i»).
Благодаря такой низкой ёмкости штрихкод EAN-13 обладает важным достоинством: его легко раскодировать вручную, вообще без компьютера, пользуясь таблицами соответствия цифр и полосок.
Самая первая цифра штрихкода (нулевое знакоместо) кодируется вот как. В зависимости от того, из какой кодовой таблицы (i или o) используются цифры в соответствующих местах штрихкода, получается некоторая i/o комбинация. Ниже преведена таблица этих сочетаний. В соответствующих местах стоит либо «i», либо «o», что соответствует тому, какая кодовая таблица в этом месте используется.
Первая колонка в таблице и есть «выносная цифра». Она определяется комбинацией бита i/o в позициях 2,3,4,5,6,7. В позиции E размещается цифра контрольной суммы штрихкода, для желающих вот алгоритм её рассчёта:
IV. Пример прочтения штрихкода EAN-13 вручную
А теперь давайте в качестве примера прочитаем штрихкод, руководствуясь таблицами соответствия.
Каждая цифра штрихкода представляет собой две тёмные полосы, для наглядности на рисунке эти пары обведены белыми кружочками.
Современное описание стандарта EAN-13 не предполагает трактовку «разделительных линий» в начале, середине и конце штрихкода как цифры «6». Тем не менее, справедливости ради следует отметить, что стандарт EAN-13 создавался для декодирования простейшей электроникой, а вовсе не микропроцесорной техникой или компьютерами. Электроника декодирует штрихкод по простейшим правилам, технически она не способна отличать «разделительные линии» от цифр «6». При чтении штрихкода EAN-13 в памяти устройства в том месте, где изображены «разделительные линий», читаются именно цифры «6» (которые позже отбрасываются).
Следует понимать, что малейшее усложнение алгоритма декодирования означает удорожание конструкции, изготовленной на простейших электронных компонентах. Разработчики стремились максимально упростить схему, именно поэтому в качестве «разделительных линий» выбрали одну из цифр. Это могла бы быть любая другая цифра. Разработчики стремились максимально упростить алгоритм декодирования чтобы уменьшить себестоимость дешифратора, и это вполне естественно не только для экономных американцев, но и вообще для всех людей, умеющих считать деньги.
Тема: #31304
Сообщение: #1495834
15.08.05 15:39
Ответ на #1495625 | Павлюк Ирина Владимировна православный христианин | Не показывать | Удалить | Исправить |Ответить |
Смотрю вокруг и вижу.
|
|
|
|
|
|
|
|
|