Штрих-код EAN-13 является самым распространенным среди линейных символик. С помощью этой системы знаков можно закодировать только 12 цифр. При использовании EAN-13 запрещено кодирование букв и спецсимволов.
Последняя 13 цифра является контрольным символом и рассчитывается автоматически исходя из первых 12 цифр, введенных пользователем.
Линейные символики позволяют кодировать небольшой объем информации (до 20-30 символов - обычно цифр) с помощью несложных штрих-кодов, читаемых недорогими сканерами.
Какие цифры кодируются для дисконтных карт?
Первые три цифры в штрих-коде EAN-13 обозначают региональный код разных стран. Например, 460 – 469 - это Россия.
Для пластиковых карт зарезервирован специализированный диапазон с 200 по 299, не присвоенный ни одной стране.
Если отклониться от данного диапазона, то при использовании карт может произойти случайное пересечение с товаром.
Внешний вид штрих-кода EAN-13
На рисунке, расположенном ниже, размещен пример штрих-кода с номером 2150000000017, где 7 - контрольная цифра.
вы можете проверить
|
EAN-13 С ПОДПИСАННЫМ НОМЕРОМПод штрих-кодом полностью отображен закодированный номер. Введите 12 цифр: Нажмите ввод |
EAN-13 С ЧАСТИЧНО ПОДПИСАННЫМ НОМЕРОМПод штрих-кодом полностью отображена часть закодированного номера. Введите 12 цифр: Нажмите ввод Отображать цифр справа: |
|
EAN-13 БЕЗ ПОДПИСАННОГО НОМЕРАНомер под штрих-кодом скрыт. Введите 12 цифр: Нажмите ввод |
Как рассчитывается контрольный символ?
Штрих-код EAN-13 является линейным. Значение цифр, закодированных в полосках продублировано в нижней части штрихового кода (13 знаков с учетом контрольного символа).
Для примера рассмотрим расчет контрольной суммы для штрих-кода под номером 215000000001Х, где Х - контрольная сумма.
Как уже упоминалось выше, в данном коде используется 12 цифр. Последний, 13 знак, является контрольным. Проведем расчет 13 знака:
- Сначала сложим все цифры, стоящие на четных местах: 1+0+0+0+0+0+1=2
- Полученную сумму умножим на три: 2х3=6
- Далее сложим цифры, стоящие на нечетных местах:2+5+0+0+0+0=7
- Затем сложим полученные цифры в пункта 2 и 3: 6+7=13
- Отбрасываем десятки, получим 3
- Наконец, из 10 вычитаем число из п.5 и получаем контрольную сумму: 10-3=7
Штрихкод стандарта EAN 13 является наиболее известным штрихкодом в Европе, который используется в супермаркетах и других предприятиях розничной торговли для основной идентификации продукции. Это европейский эквивалент штрихкода стандарта UPC-A в Соединенных Штатах. Хотя аббревиатура EAN расшифровывается как Европейский номер товара, в настоящее время код носит техническое название Международный номер товара и также используется за пределами Европы.
Спецификации: Как следует из названия, штрих-коды стандарта EAN 13 хранят в общей сложности 13 цифр, в отличие от кодов стандарта UPC-A, которые содержат 12. Первые две цифры являются префиксом GS1, который определяет страну происхождения продукта. Следующий пятизначный номер компании определяет марку, а последующие пять цифр — сам продукт. Далее находится контрольный знак, который обеспечивает точность кода. В заключение расположен символ «>», определяющий «белое поле», которое означает конец штрихкода.
Преимущества: Штрихкод стандарта EAN 13 является популярным, распознаваемым и полезным для проведения общих повседневных розничных операций, поскольку может считываться любым считывателем штрихкодов. Контрольный знак также помогает обеспечить точность данных в случае их ввода ручным способом. Для получения конкретного одноразрядного результата цифры в штрихкоде математически комбинируются определенным способом. Если контрольный знак не соответствует такому результату, код введен неправильно..
Недостатки: Ограничение по количеству символов в штрихкоде стандарта EAN 13 уменьшает его возможности использования. Хотя данный стандарт кодирования подходит для общего использования в супермаркетах, его нельзя применить для определения более сложных элементов.
Штрих-код производителя - это последовательность черных и белых полос, представляющая некоторую информацию в виде, удобном для считывания техническими средствами. Информация, содержащаяся в коде может быть напечатана в читаемом виде под кодом (расшифровка). Штриховые коды используются в торговле, складском учете, библиотечном деле, охранных системах, почтовом деле, сборочном производстве, обработка документов. В мировой практике торговли принято использование штрихкодов символики EAN для маркировки товаров. В соответствии с принятым порядком, производитель товара наносит на него штриховой код, формируемый с использованием данных о стране местонахождения производителя и кода производителя. Код производителя присваивается региональным отделением международной организации EAN International. Такой порядок регистрации позволяет исключить возможность появления двух различных товаров с одинаковыми кодами.
Существуют различные способы кодирования информации, называемые (штрихкодовыми кодировками или символиками). Различают линейные и двухмерные символики штрихкодов.
Линейными (обычными) в отличие от двухмерных называются штрихкоды, читаемые в одном направлении (по горизонтали). Наиболее распространненые линейные символики: EAN, UPC, Code39, Code128, Codabar, Interleaved 2 of 5. Линейные символики позоволяют кодировать небольшой объем информации (до 20-30 символов - обычно цифр) с помощью несложных штрихкодов, читаемых недорогими сканерами. Пример кода символики EAN-13:
Двухмерными называются символики, разработанные для кодирования большого объема информации (до нескольких страниц текста). Двухмерный штрих-код считывается при помощи специального сканера двухмерных кодов и позволяет быстро и безошибочно вводить большой объем информации. Расшифровка такого кода проводится в двух измерениях (по горизонтали и по вертикали). Datamatrix, Data Glyph, Aztec.
Штриховой код можно наносить при производстве упаковки (типографским способом) или использовать самоклеящиеся этикетки, которые печатаются с использованием специальных принтеров.
Расшифровка штрих-кода производителя
C помощью штрихового кода зашифрована информация о некоторых наиболее существенных параметрах продукции. Наиболее распространены американский универсальный товарный штрих-код UPC и Европейская система кодирования EAN. Наиболее распространенны EAN/UCC товарные номера EAN-13, EAN-8, UPC-A, UPC-E и 14-разрядный код транспортной упаковки ITF-14. Так же существует 128 разрядная система UCC/EAN-128. Согласно той или иной системе, каждому виду изделия присваивается свой номер, состоящий чаще всего из 13 цифр (EAN-13).
Возьмем, к примеру, цифровой код: 4820024700016. Первые две цифры (482) означают страну происхождения (изготовителя или продавца) продукта, следующие 4 или 5 в зависимости от длинны кода страны (0024) - предприятие-изготовитель, еще пять (70001) - наименование товара, его потребительские свойства, размеры, массу, цвет. Последняя цифра (6) контрольная, используемая для проверки правильности считывания штрихов сканером.
Штрих-код EAN-13
Для "кода товара":
1. цифра: наименование товара,
2. цифра: потребительские свойства,
3. цифра: размеры, масса,
4. цифра: ингредиенты,
5. цифра: цвет.
Пример вычисления контрольной цифры для определения подлинности товара
1. Сложить цифры, стоящие на четных местах: 8+0+2+7+0+1=18
2. Полученную сумму умножить на 3: 18x3=54
3. Сложить цифры, стоящие на нечетных местах, без контрольной цифры: 4+2+0+4+0+0=10
4. Сложить числа, указанные в пунктах 2 и 3: 54+10=64
5. Отбросить десятки: получим 4
6. Из 10 вычесть полученное в пункте 5: 10-4=6
Если полученная после расчета цифра не совпадает с контрольной цифрой в штрих-коде, это значит, что товар произведен незаконно.
Таблица соответствия штрих-кода производителя стран мира
Штрих-код производителя |
Организация EAN |
|
США и Канада |
UCC (U.S.A. & Canada) |
|
Внутренний штрих-код предприятия |
||
GENCOD-EAN France |
||
Болгария |
||
Словения |
||
Хорватия |
||
Босния и Герцеговина |
EAN-BIH (Bosnia-Herzegovina) |
|
Германия |
||
Distribution Code Center - DCC (Japan) |
||
UNISCAN / EAN RUSSIA (Russian Federation) |
||
EAN Eesti (Estonia) |
||
Азербайджан |
||
Узбекистан |
||
Шри-Ланка |
||
Филиппины |
PANC (Philippines) |
|
Беларусь |
||
Казахстан |
||
HKANA (Hong Kong) |
||
Великобритания |
||
HELLCAN - EAN HELLAS (Greece) |
||
Македония |
EAN-MAC (FYR Macedonia) |
|
Ирландия |
||
Бельгия, Люксембург |
ICODIF/EAN Belgium.Luxembourg |
|
Португалия |
CODIPOR (Portugal) |
|
Исландия |
||
Южная Африка |
EAN South Africa |
|
Маврикий |
||
EAN Maroc (Marocco) |
||
TUNICODE (Tunisia) |
||
Иордания |
||
Саудовская Аравия |
EAN Saudi Arabia |
|
Объединенные Арабские Эмираты |
||
Финляндия |
||
Article Numbering Centre of China - ANCC (China) |
||
Норвегия |
EAN Norge (Norway) |
|
Israeli Bar Code Association - EAN Israel |
||
Гватемала |
||
Сальвадор |
||
Гондурас |
||
Никарагуа |
||
Коста-Рика |
||
Доминиканская Республика |
EAN Republica Dominicana |
|
Венесуэла |
||
Швейцария |
EAN (Schweiz, Suisse, Svizzera) |
|
Колумбия |
||
Аргентина |
CODIGO - EAN Argentina |
|
Парагвай |
||
Бразилия |
||
Camera de Comercio de la Republica de Cuba (Cuba) |
||
Словакия |
||
Югославия |
EAN YU (Yugoslavia) |
|
Северная Корея |
EAN DPR Korea (North Korea) |
|
Union of Chambers of Commerce of Turkey (Turkey) |
||
Нидерланды |
EAN Nederland (Netherlands) |
|
Южная Корея |
EAN Korea (South Korea) |
|
Сингапур |
SANC (Singapore) |
|
Индонезия |
||
Австралия |
||
Новая Зеландия |
||
Малайзия |
Malaysian Article Numbering Council (MANC). |
|
960-969 |
Великобритания (для EAN-8) |
|
Периодические издания ISSN |
||
Книжные издания ISBN |
||
Музыкальные издания ISMN |
||
Возвратные квитанции |
||
Валютные купоны |
||
ИСХОДНЫЕ МАТЕРИАЛЫ:
1) Иеромонах Лука, монах Продром, насельники афонского монастыря Григориат. "Штриховой код и число 666". Исследование третье (23.6.1997). Обитель преподобного Григория. 23 июня 1997 года. Использованы приведенные в работе описания штрих-кода EAN-13 и описания способов его обработки сканерами.
2) Устные высказывания двух независимых инженеров-программистов, работавших в разное время со сканерами штрих-кодов, о способе представления и передачи кодов от сканера к компьютеру.
ТЕРМИНОЛОГИЯ:
Код
- штрих-код EAN-13.
Штрих-символ
- 2 штриха различной (в общем случае) толщины, посредством которых графически представляется любая цифра в коде.
Ограждающие штрихи
- (Guard Bars, Guard Patterns) - выступающие штриховые символы в начале, середине и конце этикеток кода.
LGP
- Left Guard Pattern - левый ограждающий штрих.
CGP
- Center Guard Pattern - центральный ограждающий штрих.
RGP
- Right Guard Pattern - правый ограждающий штрих.
Сканер
- устройство для считывания штрих-кода с этикеток и передачи его в компьютер (кассовый аппарат или банкомат).
РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЙ:
Основная предпосылка к соображению о наличии закодированного числа 666 в штрих-коде EAN-13 (далее: код) - наличие визуального сходства изображения числа 6 и изображений ограждающих штрихов этого кода. Для проверки этого сходства было произведено теоретическое сравнение графического и внутреннего представления, а также способов обработки сканером числа 6 и ограждающих штрихов кода.
1.1
Размеры изображений числа 6 и ограждающих штрихов.
Чтобы представить графически (в виде штрихов) любое число в коде, в том числе 6, используеся штрих-символ - вертикальная полоска, состоящая, в свою очередь, из 7 более мелких полосок, так называемых модулей, каждый из которых может быть черным или белым. Для представления ограждающих штрихов применяются полоски из меньшего (и различного) числа модулей:
для LGP и RGP - полоски из 3 модулей,
для CGP - полоска из 5 модулей.
На следующем рисунке изображена этикетка кода с пояснениями по количеству используемых модулей:
1.2
Изображение числа 6 и ограждающих штрихов.
Для представления любого числа в коде используется 3 множества штрих-символов: Set A, Set B, Set C, т.е. каждое число на этикетке кода представляется одним из 3-х возможых вариантов. Для изображения числа в Правой части этикетки всегда используется Set C. В Левой части используется Set A или Set B в соответствие с Таблицей 1 в зависимости от первого числа штрих-кода N, находящегося на этикетке слева от LGP.
Левая часть этикетки кода | И Т О Г О | |||||||
Значение числа N | 1-я цифра | 2-я цифра | 3-я цифра | 4-я цифра | 5-я цифра | 6-я цифра | Кол-во Set A | Кол-во Set B |
0 | A | A | A | A | A | A | 6 | 0 |
1 | A | A | B | A | B | B | 3 | 3 |
2 | A | A | B | B | A | B | 3 | 3 |
3 | A | A | B | B | B | A | 3 | 3 |
4 | A | B | A | A | B | B | 3 | 3 |
5 | A | B | B | A | A | B | 3 | 3 |
6 | A | B | B | B | A | A | 3 | 3 |
7 | A | B | A | B | A | B | 3 | 3 |
8 | A | B | A | B | B | A | 3 | 3 |
9 | A | B | B | A | B | A | 3 | 3 |
И Т О Г О | 33 | 27 | ||||||
Процентное соотношение (50% занимает Set C) | 27,5 | 22,5 |
Число N для каждой цифры из Левой части этикетки определяет символом какого множества (Set A или Set B) будет представлена эта цифра. Например, если в крайней левой позиции этикетки (т.е. слева от LGP) стоит 2 (N=2), то 1-я и 2-я цифры представлены штрих-символами Set A, 3-я и 4-я - Set B, 5-я - Set A, 6-я - Set B.
Таким образом, после подсчёта всех вариантов представления любой цифры, в т.ч. и 6, из таблицы становится понятно: если взять все возможные сочетания цифр на этикетке кода (т.е. все возможные варианты этикеток), то 27,5% всех "шестёрок" будут представлены штрих-символами из множества Set A, 22,5% - Set B и 50% - Set C.
Число 6 во множествах Set A,B и C и ограждающие штрихи изображаются следующими способами:
Рис 3. Графическое представление числа 6 в Set A, Set B, Set C
и ограждающих штрихов кода EAN-13.
Из рисунка ясно видно, что изображения ограждающих штрихов совпадают визуально с изображениями числа 6 только в Set B и Set C, что составляет 50%+22,5%=72,5 %, в остальных 27,5% (Set A) эти изображения визуально не совпадают.
2. Внутреннее представление в сканере.Любой штрих-символ этикетки кода преобразуется сканером в двоичную последовательность нулей и единиц (0 и 1), в которой каждому чёрному модулю соответстует 1, белому - 0. В соответствие с рис.3 двоичные представления изображений следующие:
6(Set A) - 0101111;
6(Set B) - 0000101;
6(Set C) - 1010000;
LGP, RGP - 101;
CGP - 01010;.
Эти последовательности нельзя рассматривать как двоичные числа, а лишь как двоичные изображения (картинки из 0-ей и 1-ц). B процессоре и памяти сканера эти изображения представляются в 8-разрядном двоичном виде путём дополнения слева нулями до 8 разрядов. Таким образом, получаем:
6(Set A) - 00101111; 6(Set B) - 00000101; 6(Set C) - 01010000; LGP, RGP - 00000101; CGP - 00001010;.
Ясно, что совпадают только внутренние представления изображения LGP/RGP с внутренним представлением изображения числа 6(Set B), что составляет 22,5% от всех возможных шестёрок в коде (см. ). Внутренние представления LGP/RGP не совпадают с внутренним представлением CGP, а внутреннее представление CGP не совпадает с какими-либо 6-ми.
К сожалению, в ИСХОДНЫХ МАТЕРИАЛАХ нет явного описания 8-разрядного представления числа 6(Set C) - 01010000 2 , это представление выведено на основе общих правил представления информации в процессоре и памяти. Поэтому оно может оказаться неверным, если именно для числа 6(Set C) в конструкции сканера сделано какое-либо исключение, что представляется практически невероятным. Во всяком случае, это представление легко проверить по каким-либо другим источникам.
3. Алгоритм обработки и распознавания символа сканером.В ИСХОДНЫХ МАТЕРИАЛАХ подробно описан алгоритм Техника "расстояния ширины" (width distance), который выдает одинаковое для числа 6(Set B,C) и для LGP/RGP соотношение 3:2:1. Теоретическое применение данного алгоритма для распознавания CGP позволяет сдалать вывод:
для CGP возможно получение соотношения 4:3:2:1, которое отличается от 3:2:1 для LGP/RGP и даёт при расшифровке согласно описанию этого алгоритма (в двоичном виде):
00001111
-00000111
+00000011
-00000001
---------
00001010 2
- это как раз внутреннее представление CGP, что и подтверждает правильность соотношения 4:3:2:1.
4. Момент идентификации штрихового символа именно как числа 6.
Сканер передаёт результаты своей работы компьютеру, к которому подключается по клавиатурному входу вместе с клавиатурой (см. рис.4) в точке (*). Такое подключение делается для обеспечения возможности вводить код с этикетки вручную, просто набирая цифры кода на клавиатуре. Клавиатура передаёт в компьютер порядковые номера нажатых клавиш. Поскольку сканер и клавиатура подключены к компьютеру в общей точке (*), сканер "вынужден" также передавать в компьютер порядковые номера клавиш, которые надо было бы нажать на клавиатуре, чтобы получить на экране последовательность чисел с этикетки штрих-кода.
Рис 4. Путь информации от штрих-символа цифры 6 (Set A)
до двоичного представления 6 в компьютере.
Движение информации происходит следующим образом (на рис.4 оно показано на примере штрих-символа цифры 6(Set A)). Любой штрих-символ этикетки кода преобразуется сканером в двоичную последовательность нулей и единиц (0 и 1), в которой каждому чёрному модулю соответстует 1, белому - 0 (см. ). Затем для всех двоичных последовательностей, соответсвующих цифрам кода, определяются порядковые номера клавиш, которые необходимо было бы нажать для получения этих цифр (для цифры 6 - клавиша № 77), и передаются в компьютер. Таким образом, ограждающие штрихи в компьютер не передаются, они там не нужны по двум причинам:
1) Ограждающие штрихи выполняют свою служебную функцию выделения правой и левой части этикетки кода лишь на этапе получения в сканере двоичных последовательностей, и далее не нужны.
2) При ручном вводе штрих-кода на клавиатуре набираются только цифры кода, и, соответственно, передаются в компьютер порядковые номера нажатых цифровых (0-9) клавиш без всяких ограждающих штрихов. Поскольку сканер подключен к клавиатурному входу, он "вынужден" передавать также порядковые номера только цифровых клавиш.
И только внутри компьютера происходит преобразование № клавиши в цифру.
В нашем примере по № клавиши 77 компьютер определяет, что введена была цифра 6.
Таким образом, в сканере отсутствует числовое представление числа 6 (двоичное число 00000110), а присутствует только представление изображения числа 6 (см. настоящей Справки). Числовое представление числа 6 появляется только в компьютере, где ограждающие штрихи в каком-либо виде вообще отсутствуют.
5. О сходстве штрихового изображения числа 6 и ограждающих штрихов.
Данный пункт является вследствие недостатка информации предположением, основанным скорее даже не на логике, а на здравом смысле.
5.1 Использование 2-х полосок единичной ширины с единичным белым промежутком для ограждающих штрихов.Эта пригодность выражается в том, что для настройки сканера на считывание удобно получить следующую единичную серию импульсов от изображения:
- единичный чёрный импульс;
- единичный белый импульс;
- единичный чёрный импульс,
которая будет использоваться как эталон длительности импульсов при последующем считывании.
Изображения числа 6(Set B,C) получаются путём инвертирования (каждый чёрный модуль переходит в белый и наоборот) и последующего зеркального отображения исходного изображения числа 6(Set A). Вероятно, сначала было разработано изображения числа 6(Set A), а уже из него автоматически получились изображения числа 6(Set B) и 6(Set C), которые и соответствуют двум тонким полосам. К сожалению, пока не удалось найти информацию о том, насколько необходимо было изначальное изображение числа 6(Set A) именно в таком виде.
ВЫВОДЫ:
Чтобы было возможно сделать вывод о том, что с математической точки зрения ограждающие штрихи представляют собой три шестерки (666), необходимо выполнение 2-х условий:
- Все три ограждающих штриха должны совпадать между собой.
- Изображения ограждающих штрихов должны совпадать с изображением цифры 6.
- При наличии визуального сходства, имеет место только непрямое совпадение ограждающих штрихов между собой, т.к. на уровне внутреннего представления и на уровне результатов применения алгоритма распознавания ограждающие штрихи LGP/RGP не совпадают с центральным штрихом CGP.
- Имеет место также непрямое совпадение изображений ограждающих штрихов и цифры 6, т.к. при наличии 3-х вариантов изображения цифры 6, различных в Set A, Set B и Set C, в представлении Set A цифра 6 вообще не совпадает с ограждающими штрихами, в Set C не совпадает на уровне внутреннего представления в сканере, и только в Set B (22,5% от всех возможных вариантов изображения цифры 6) присутствует полное совпадение изображений ограждающих штрихов и цифры 6.
При проведении данного исследования применялся односторонний подход к анализу информации - чисто математический. Однако известно, что число 666 как имя зверя - число символическое, не имеющее уже математического смысла. Следовательно, и рассматривать его надо символически, как состоящее из символов 6. Шестерки, таким образом, теряют свой математический смысл и также становятся символами. Что же остается от 3-х вариантов представления цифры 6? - Ничего, т.к. можно символ инвертировать - обратить (преобразование по вертикали), можно зеркально отобразить (по горизонтали) - он останется тем же символом - 6.
Такая же ситуация и с различием левого/правого ограждающих штрихов LGP/RGP и центрального штриха CGP. Добавление белых полосок слева (или даже справа) не меняет значения символа. Таким образом, изображения ограждающих штрихов и шестерок совпадают символически, и, следовательно, штрих-код EAN-13 содержит число 666.