Универсальный код продукта - Universal Product Code

Штрих-код UPC

Универсальный код продукта ( UPC , избыточно : UPC код ) является символизмом штриха , который широко используется во всем мире для отслеживания торговых пунктов в магазинах.

UPC (технически относится к UPC-A) состоит из 12 цифровых цифр, которые однозначно присваиваются каждой торговой единице. Наряду со связанным штрих-кодом EAN , UPC - это штрих-код, который в основном используется для сканирования товаров в местах продажи в соответствии со спецификациями GS1 . Структуры данных UPC являются компонентом номеров GTIN и соответствуют глобальной спецификации GS1, которая основана на международных стандартах. Но некоторые розничные продавцы (одежда, мебель) не используют систему GS1 (скорее, другие символы штрих-кода или системы нумерации товаров). С другой стороны, некоторые розничные торговцы используют символы штрих-кода EAN / UPC, но без использования GTIN (только для продуктов, продаваемых в их собственных магазинах).

Исследования показывают, что внедрение и распространение UPC стимулировало инновации и способствовало росту международных розничных цепочек поставок.

История

Уоллес Флинт в 1932 году предложил автоматизированную систему кассовых сборов с использованием перфокарт . Бернард Сильвер и Норман Джозеф Вудленд , аспирант Технологического института Дрекселя (ныне Университет Дрекселя) , разработали код типа «яблочко» и подали заявку на патент в 1949 году.

В 1960-х и начале 1970-х годов железные дороги в Северной Америке экспериментировали с многоцветными штрих-кодами для отслеживания железнодорожных вагонов , но в конечном итоге от этой системы отказались и заменили на систему на основе радио, называемую автоматической идентификацией оборудования (AEI) .

В 1973 году группа торговых ассоциаций из продуктовой отрасли сформировала Совет по унифицированному кодексу продуктов (UPCC), который с помощью консультантов Ларри Рассела и Тома Уилсона из McKinsey & Company определили числовой формат, который лег в основу унифицированного продукта. Код. Технологические фирмы, включая Charegon, IBM , Litton-Zellweger, Pitney Bowes-Alpex, Plessey-Anker, RCA , Scanner Inc., Singer и Dymo Industries / Data General, выдвинули в совет альтернативные предложения по представлению символов. Комитет по отбору символов в конце концов решил реализовать предложение IBM, разработанное Джорджем Дж. Лаурером , но с небольшими изменениями шрифта в удобочитаемой области.

Первым товаром с UPC-маркировкой, который когда-либо сканировали на кассе, была упаковка из 10 штук (50 палочек) жевательной резинки Wrigley's Juicy Fruit , купленная в супермаркете Marsh в Трое, штат Огайо , в 8:01 утра 26 июня 1974 года. . NCR кассовый аппарат зазвонил до 67 центов. В тележке для покупок также были другие товары со штрих-кодом, но жевательная резинка была первой, которую забрали на кассе. Факсимиле пакета камеди пошли на дисплее на Smithsonian Institution «s американской истории музея в Вашингтоне, округ Колумбия

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

Предложение IBM

Примерно в конце 1969 года IBM из Research Triangle Park (RTP) в Северной Каролине поручила Джорджу Лауреру определить, как сделать сканер и этикетку для супермаркета. В конце 1970 года Херд Баумейстер представил уравнения для расчета символов на дюйм, достижимых с помощью двух штрих-кодов IBM, Delta A и Delta B. В феврале 1971 года Баумейстер присоединился к Laurer.

В середине 1971 года Уильям «Билл» Крауз изобрел новый штрих-код под названием Дельта С. Он достиг в четыре раза больше символов на дюйм, чем Дельта Б. Дельта В сравнивала ширину штрихов с шириной промежутка и битами кода. Это было чрезвычайно чувствительно к растеканию чернил, когда слишком много чернил или давление приводили к растеканию обоих краев полосы наружу, а слишком мало - к их усадке. Что еще хуже, так как промежутки между брусками сжимаются, и наоборот. Delta C добилась более высокой производительности за счет использования только ведущих или задних кромок, на которые не повлияло равномерное распределение чернил. Код обеспечивает лучшую производительность, когда он имеет определенный набор символов с фиксированным опорным расстоянием, охватывающим большую часть или предпочтительно весь символ. В августе 1971 года Кроуз присоединился к разработке сканеров. По прошествии нескольких месяцев они не достигли прогресса. Им было известно о метке RCA «бычий глаз», которую можно было сканировать с помощью простого прямолинейного лазерного сканера, но читаемая этикетка была слишком большой. Хотя Litton Industries предложила разрезать символ «бычий глаз» пополам, чтобы уменьшить площадь, он все еще был слишком большим и создавал те же проблемы печати мазков чернил, что и символ RCA. Избыточность и возможность проверки были полностью удалены. Им также было известно о многих предложениях со всего мира, ни одно из которых не было осуществимо.

Этикетка UPC с общей характеристикой предложений Baumeister

Весной 1972 года Баумейстер объявил о прорыве. Он предложил этикетку с полосами, которые были немного длиннее, чем расстояние по всем полосам, которое необходимо было прочитать за один проход. Эту этикетку можно было сканировать с помощью простого X-сканера, лишь немного более сложного, чем лазерный сканер с прямой линией. На следующий день Баумейстер предположил, что, если этикетку разделить на две половины, длину полосы можно будет сократить почти вдвое. Эти два предложения уменьшили зону попадания в яблочко на одну треть, а затем на одну шестую. Изображение справа показывает этикетку, предложенную Баумейстером. Он не стал указывать какой-либо конкретный штрих-код, поскольку это было хорошо понятно. За исключением штрих-кодирования и десятизначного знака, сегодня его предложение - этикетка UPC. Вскоре после этого Баумейстер перешел в другое направление RTP.

Лаурер приступил к определению деталей лейбла и написанию предложения. NJ Woodland был назначен планировщиком проекта и помог Лауреру в написании его предложения.

Первая попытка Лаурера со штрих-кодом использовала Delta B. Полученный размер этикетки был примерно шесть на три дюйма, что было слишком большим. Крауз предложил Лауреру использовать его штрих-код Delta C и предоставил копию своего патента, в котором был образец набора буквенно-цифровых символов и правил для создания алфавитов другого размера. Это уменьшило размер этикетки примерно до 1,5 x 0,9 дюйма. Позже Лаурер попросил Крауса помочь в том, как сканер обнаруживает этикетку. Вместе они определили защитные полосы и определение того, как определять этикетку. Защитные планки также обеспечивали идентификацию для распознавания половинной метки и обучающие планки для пороговых цепей сканера. У Лаурера было полное определение лейбла, и он приступил к написанию своего предложения.

Раньше Кроуз придумал простую палочку, которую носили как кольцо и браслет. Он решил разработать эту палочку, чтобы продемонстрировать этикетку.

1 декабря 1972 года IBM представила предложение Лаурера Комитету супермаркетов в Рочестере, штат Миннесота , месте, где IBM будет разрабатывать сканер. Во время презентации Крауз провел лабораторную демонстрацию, на которой он читал UPC-подобные этикетки с помощью своей кольцевой палочки. Помимо обычных этикеток, он читал большую двухстраничную этикетку в буклете предложения. Затем он перешел на страницу с фотографиями помеченных предметов, стоящих на столе. Этикетки были маленькими и дефектными из-за разрешения напечатанной фотографии, но палочка считывала многие из них. Эта демонстрация показала надежность чистого кода Delta C. Предложение было принято.

Месяц спустя, 1 января 1973 года, Крауз вернулся в группу IBM Advanced Technology, а Лаурер остался с полной ответственностью за лейбл.

Dymo Industries , производители портативных печатающих устройств, настаивали на том, чтобы код был независимым от символов, чтобы портативные печатающие устройства могли производить штрих-код в магазине, если товары не имеют штрих-кода от производителей. Предложение Даймо было принято IBM и включено в последнее предложение IBM.

Было решено, что две половины этикетки должны иметь разный набор цифровых символов. Набор символов Laurer, полученный из патента Delta C, использовал семь печатаемых приращений или единиц, где должны были быть напечатаны две полосы и два пробела. Это дало двадцать комбинаций символов, но были две пары, которые при чтении по правилам Delta C давали один и тот же код для пары. Поскольку восемнадцати символов было недостаточно, Лаурер попытался добавить одну единицу к набору символов. Это дало двадцать шесть символов Delta C, которые могли предоставить два набора десятичных символов, но это также добавило четырнадцать процентов к ширине метки и, следовательно, к высоте. Это будет 30-процентное увеличение площади или метка 1,7 "x1,03". Лаурер считал это неприемлемым. Он вернулся к исходному набору символов с двадцатью символами, но четыре из них были двумя парами с одинаковым чтением Delta C. Он решил использовать их все. Чтобы различать пары, он измерял ширину полосы в каждой из пар, чтобы отличить их друг от друга. Для каждой пары эти полоски будут шириной в одну или две единицы. Лаурер не применял уравнения Баумейстера к этому множеству. Он чувствовал, что всего лишь одно измерение ширины штанги не было бы слишком серьезным. Как оказалось, для увеличения площади более чем вдвое потребовалось бы увеличение ширины и высоты более чем на пятьдесят процентов. Позже Лаурер признал, что эти четыре символа в каждом наборе ответственны за большинство ошибок чтения сканера.

Дэвиду Савиру, математику, было поручено доказать, что символ можно напечатать и он будет соответствовать требованиям надежности, и, скорее всего, он не знал об уравнениях Баумейстера. Он и Лаурер добавили еще две цифры к десяти для исправления и обнаружения ошибок . Затем они решили добавить четность / нечетность к количеству единиц, заполненных полосами с каждой стороны. Четность / нечетность - это метод, используемый для обнаружения любого нечетного числа битовых ошибок в битовом потоке. Они решили использовать нечетное на одной половине и четное на другой. Это дало бы дополнительную информацию о том, какая половина билета читается. Это означало, что каждая полоса должна считываться точно, чтобы обеспечить хорошее считывание. Это также означало, что каждое пространство также будет известно. Требование точного считывания каждой разрядной ширины в основном сводило на нет преимущество Delta C, за исключением эталонного измерения Delta C. Только странный набор символов и размер метки остаются тенью кода Delta C. Размер все еще был рассчитан для чистой Delta C. Если бы размер этикетки был правильно пересчитан с учетом требуемых размеров полосы, этикетка была бы слишком большой, чтобы быть приемлемой.

Машиностроение и проектирование электронных схем обычно требуют проектирования наихудшего случая с использованием известных допусков. Многие инженеры, работающие со штрих-кодами, не имели опыта работы с такими вещами и использовали несколько интуитивно понятные методы. Это было причиной плохой работы кода Delta B и, скорее всего, отказа сканера «бычьего глаза» RCA.

В следующей таблице показаны рабочие этикетки, доступные в начале 1970-х годов, с указанием их размеров.

Тип ярлыка Размеры этикетки Площадь
Бычий глаз с азбукой Морзе Большой Большой
Бычий глаз с дельтой B Диаметр 12,0 дюймов (300 мм) 113,10 дюйма 2 (729,7 см 2 )
Бычий глаз с дельтой А Диаметр 9,0 дюйма (230 мм) 63,62 дюйма 2 (410,5 см 2 )
Баумейстер 1-й с Дельтой B 6,0 дюймов × 5,8 дюйма (150 мм × 150 мм) 34,80 дюйма 2 (224,5 см 2 )
Баумейстер 2 тайма с Дельтой В 6,0 дюйма × 3,0 дюйма (152 мм × 76 мм) 18,00 дюймов 2 (116,1 см 2 )
Баумейстер 2 тайма с Дельтой А 4,5 дюйма × 2,3 дюйма (114 мм × 58 мм) 10,35 дюйма 2 (66,8 см 2 )
Баумейстер с Delta C 1,5 дюйма × 0,9 дюйма (38 мм × 23 мм) 1,35 дюйма 2 (8,7 см 2 )

Это предполагает получение такой же информации и надежной читабельности.

Сочинение

Каждый штрих-код UPC-A состоит из сканируемой полосы черных полос и пробелов над последовательностью из 12 числовых цифр. Нет буквы , символы или другие материалы любого рода могут появляться на штрих - код UPC-A. Между 12-значным числом и полосой черных полос и пробелов существует взаимно однозначное соответствие, т.е. есть только один способ визуально представить каждое 12-значное число и есть только один способ представить каждую полосу черных полос. и пробелы в цифрах.

Сканируемая область каждого штрих-кода UPC-A соответствует шаблону S L LLLLLMRRRRR R E, где S (начало), M (середина) и E (конец) защитные шаблоны представлены одинаково на каждом штрих-коде UPC-A, а L Разделы (слева) и R (справа) вместе представляют 12 цифровых цифр, которые делают каждый UPC-A уникальным. Первая цифра L указывает конкретную систему счисления, которая будет использоваться следующими цифрами. Последняя цифра R - это контрольная цифра для обнаружения ошибок , которая позволяет обнаруживать некоторые ошибки при сканировании или ручном вводе. Защитные шаблоны разделяют две группы по шесть цифровых цифр и устанавливают время.

UPC-A UPC-E
UPC-A.png UPC-E.png

UPC-A 042100005264 эквивалентен UPC-E 425261 с шаблоном четности "EOEEOO", который определяется системой счисления 0 UPC-A и контрольной цифрой 4 UPC-A.

Форматирование

Штрих-коды UPC-A могут быть напечатаны с разной плотностью для соответствия различным процессам печати и сканирования. Существенный размерный параметр называется x-размерностью (ширина единичного элемента модуля). Ширина каждой полосы (пробела) определяется путем умножения размера x и ширины модуля (1, 2, 3 или 4 единицы) каждой полосы (пробела). Поскольку каждый защитный узор состоит из двух полосок, а каждая из 12 цифр штрих-кода UPC-A состоит из двух полосок и двух пробелов, все штрих-коды UPC-A состоят точно из (3 × 2) + (12 × 2) = 30 столбцы, из которых 6 представляют собой защитные шаблоны, а 24 - числовые цифры.

Размер x для UPC-A при номинальном размере составляет 0,33 мм (0,013 дюйма). Номинальная высота символа для UPC-A составляет 25,9 мм (1,02 дюйма). Полосы, образующие защитные узоры S (начало), M (середина) и E (конец), расширяются вниз в 5-кратном размере по оси x, в результате чего номинальная высота символа составляет 27,55 мм (1,08 дюйма). Это также относится к полосы первой и последней числовой цифры штрих-кода UPC-A. UPC-A может быть уменьшен или увеличен от 80% до 200%.

На каждой стороне сканируемой области штрих-кода UPC-A должна присутствовать тихая зона шириной, по крайней мере, в 9 раз превышающей размер x. Для номера GTIN-12, закодированного в штрих-коде UPC-A, первая и последняя цифры интерпретации, удобочитаемой человеком , всегда помещаются за пределами символа, чтобы указать зоны молчания, которые необходимы для правильной работы сканеров штрих-кода UPC.

Кодирование

Штрих-код UPC-A визуально представлен полосами штрихов и пробелов, которые кодируют 12-значное число UPC-A. Каждая цифра представлена ​​уникальным рисунком из 2 полосок и 2 пробелов. Полосы и пробелы имеют переменную ширину, то есть ширину 1, 2, 3 или 4 модуля. Общая ширина цифры всегда составляет 7 модулей; следовательно, для 12-значного номера UPC-A требуется всего 7 × 12 = 84 модуля.

Полный UPC-A имеет ширину 95 модулей: 84 модуля для цифр (секции L и R) в сочетании с 11 модулями для шаблонов защиты S (начало), M (середина) и E (конец). Шаблоны защиты S (начало) и E (конец) имеют ширину 3 модуля и используют штрих-пробел шаблона , где каждая полоса и пробел имеют ширину в один модуль. Шаблон защиты M (средний) имеет ширину 5 модулей и использует шаблон пробел-пробел-пробел-пробел , где каждая полоса и пробел также имеют ширину в один модуль. Кроме того, для символа UPC-A требуется тихая зона (дополнительное пространство шириной 9 модулей) перед S (начало) и после шаблона защиты E (конец).

Таблица кодирования штрих-кода UPC-A S L LLLLLMRRRRR R E
Тихая
зона
S
(начало)
L
(левая цифра)
M
(средний)
R
(правая цифра)
E
(конец)
Тихая
зона
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-A Q.svg UPC-A S.svg UPC-A L0.svg UPC-A L1.svg UPC-A L2.svg UPC-A L3.svg UPC-A L4.svg UPC-A L5.svg UPC-A L6.svg UPC-A L7.svg UPC-A L8.svg UPC-A L9.svg UPC-A M.svg UPC-A R0.svg UPC-A R1.svg UPC-A R2.svg UPC-A R3.svg UPC-A R4.svg UPC-A R5.svg UPC-A R6.svg UPC-A R7.svg UPC-A R8.svg UPC-A R9.svg UPC-A S.svg UPC-A Q.svg

Цифры левой стороны UPC-A (цифры слева от шаблона защиты M (среднего)) имеют нечетную четность, что означает, что общая ширина черных полос является нечетным количеством модулей. Напротив, цифры в правой части имеют четность. Следовательно, сканер UPC может определить, сканирует ли он символ слева направо или справа налево (символ перевернут). Увидев защитный узор S (начало) или E (конец) (они одинаковы, штрих-пробел-бар , в каком бы направлении они ни читались), сканер сначала увидит цифры нечетной четности, если сканировать слева направо, или даже цифры четности при сканировании справа налево. Обладая информацией о четности / направлении, перевернутый символ не сбивает сканер с толку. Столкнувшись с перевернутым символом, сканер может просто проигнорировать его (многие сканеры чередуют сканирование слева направо и справа налево, поэтому они будут читать символ при следующем проходе) или распознают цифры и помещают их. в правильном порядке. В кодировке цифр есть еще одно свойство. Цифры в правой части являются оптическими инверсиями цифр в левой части, т. Е. Черные полосы превращаются в белые пробелы и наоборот. Например, левая часть «4» - это пробел × 1 - полоса × 1 - пробел × 3 - полоса × 2 , в то время как правая часть «4» - это полоса × 1 - пробел × 1 - полоса × 3 - пространство × 2 .

Нумерация

Количество штрих-кодов UPC-A и UPC-E ограничено стандартами, используемыми для их создания.

UPC-A: (10 возможных значений на левую цифру ^ 6 левых цифр) × (10 возможных значений на правую цифру ^ 5 правых цифр) = 100000000000.
UPC-E: (10 возможных значений на цифру ^ 6 цифр) × (2 возможных шаблона четности на номер UPC-E) = 2 000 000.

Цифра системы счисления

Ниже приводится описание всех возможных систем счисления с соответствующей 12-значной схемой нумерации UPC-A L LLLLLRRRRR R , где L обозначает цифру системы счисления, а R - контрольную цифру.

0–1, 6–9
Для большинства продуктов. Цифры LLLLL - это код производителя (присвоенный местной организацией GS1 ), а цифры RRRRR - это код продукта.
2
Зарезервировано для местного использования (магазин / склад) для товаров, продаваемых с переменным весом. Позиции с переменным весом, такие как мясо, свежие фрукты или овощи, получают в магазине номер позиции, если они там упакованы. В этом случае LLLLL - это номер позиции, а RRRRR - это либо вес, либо цена, причем первый R определяет, какой (0 для веса).
3
Лекарства по номеру Национального Кодекса Лекарств (NDC). Фармацевтические компании в США используют 10 средних цифр UPC в качестве своего номера NDC. Хотя , как правило , только более-счетчик лекарства проверяются в момент продажи, НДЦ на основе УКТ используются отпускаемых по рецепту упаковок лекарственных средств и хирургических продуктов , и в этом случае, обычно называются UPN коды.
4
Зарезервировано для местного использования (магазин / склад), часто для карт постоянного клиента или купонов магазина.
5
Купоны . Цифры LLLLL - это код производителя, первые три RRR - это семейный код (установленный производителем), а следующие два RRR - это код купона, который определяет размер скидки. Эти купоны можно удвоить или утроить.

Расчет контрольной цифры

UPC включает контрольную цифру для обнаружения типичных ошибок ввода данных. Например, коды UPC-A выбирают контрольную цифру, чтобы удовлетворить уравнение контрольной цифры :

Если введенный код не удовлетворяет уравнению, то это недействительный код UPC-A.

Контрольная цифра UPC-A может быть рассчитана следующим образом:

  1. Суммируйте цифры в позициях с нечетными номерами (первая, третья, пятая, ..., одиннадцатая).
  2. Умножьте результат на 3.
  3. Добавьте к результату сумму цифр на позициях с четными номерами (вторая, четвертая, шестая, ..., десятая).
  4. Найти результата по модулю 10 (то есть остаток, при делении на 10) и назовем его М .
  5. Если M равно нулю, то контрольная цифра равна 0; в противном случае контрольная цифра 10 - M .

Например, в штрих-коде UPC-A «03600029145 x 12 », где x 12 - неизвестная контрольная цифра, x 12 может быть рассчитано следующим образом:

  1. Суммируйте нечетные цифры (0 + 6 + 0 + 2 + 1 + 5 = 14).
  2. Умножьте результат на 3 (14 × 3 = 42).
  3. Сложите четные цифры (42 + (3 + 0 + 0 + 9 + 4) = 58).
  4. Найдите результат по модулю 10 (58 по модулю 10 = 8 = M ).
  5. Если M не равно 0, вычтите M из 10 ( 10 - M = 10-8 = 2 ).

Таким образом, контрольная цифра x 12 равна 2.

Уравнение контрольной цифры выбрано так, чтобы иметь разумные свойства обнаружения ошибок (см. Алгоритм Луна ).

  • UPC-A может обнаруживать 100% однозначных ошибок.
    Ошибка в одной цифре означает, что неверна ровно одна цифра. Пусть разница по модулю 10 ошибочной цифры и правильной цифры равна d . Значение d не может быть нулевым, потому что это означает, что цифры одинаковые, но d может быть любым другим значением в {1, 2, 3, 4, 5, 6, 7, 8, 9}. Если цифра ошибки находится в нечетной позиции (вес 1), левая часть уравнения контрольной цифры изменяется на d, и эквивалентность больше не равна нулю. Если цифра ошибки находится в четной позиции (вес 3), тогда левая часть изменяется на 3 d , но это изменение также ненулевое по модулю 10, поэтому уравнение контрольной цифры не выполняется.
  • UPC-A может обнаруживать около 89% ошибок транспонирования. В частности, если и только если разница между двумя соседними цифрами равна 5, UPC-A не может обнаружить их транспозицию.
    1. Если две соседние цифры транспонированы, то одна из цифр a будет взвешена на 1, а другая цифра b = a + d будет взвешена на 3, где d - это разница между двумя цифрами. Если бы цифры были в правильном порядке, они бы вносили свой вклад
      слева от уравнения с контрольной цифрой. В транспонированном порядке они вносят вклад
      .
      в LHS. Вычитание двух вкладов дает, насколько они изменяют LHS:
      Ошибка будет обнаружена, пока модульное изменение не равно нулю; если 2d ≡ 0 по модулю 10, то изменение не будет обнаружено. Следовательно, только тогда, когда различие символов d 5 , ошибка не будет обнаружена (когда d 0 вырожденная «перестановка» не является ошибкой).
    2. Затем посчитайте, как часто транспозиция имеет расстояние d, равное 5.
Вот таблица d-транспозиций для штрих-кодов UPC-A , где
Таблица d- перемещений для штрих-кодов UPC-A
d
0 1 2 3 4 5 6 7 8 9
1 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9
2 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9
3 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9
4 3 3 3 4 3 5 3 6 3 7 3 8 3 9
5 4 4 4 5 4 6 4 7 4 8 4 9
6 5 5 5 6 5 7 5 8 5 9
7 6 6 6 7 6 8 6 9
8 7 7 7 8 7 9
9 8 8 8 9
10 9 9
Сумма 10 18 16 14 12 10 8 6 4 2
Строка Sum содержит количество d -переносов, поэтому доля необнаруживаемых ошибок транспонирования составляет (без учета транспозиций, где d = 0 ):

Вариации

Технически UPC в его наиболее распространенном использовании относится к UPC-A.

Существуют и другие варианты UPC:

  • UPC-B - это 12-значная версия UPC без контрольной цифры, разработанная для Национального кода лекарств (NDC) и Национального кода товаров, связанных со здоровьем. Он состоит из 11 цифр плюс 1-значный код продукта и редко используется.
  • UPC-C - это 12-значный код с кодом продукта и контрольной цифрой; не в общем пользовании.
  • UPC-D - это код переменной длины (12 или более цифр), где 12-я цифра является контрольной цифрой. Эти версии не используются повсеместно.
  • UPC-E - это 6-значный код, который имеет эквивалент в 12-значном коде UPC-A с системой счисления 0 или 1.
  • UPC-2 - это двузначное дополнение к UPC, используемое для обозначения выпуска журнала или периодического издания.
  • UPC-5 - это 5-значное дополнение к UPC, используемое для указания рекомендованной розничной цены на книги.

UPC-E

Чтобы разрешить использование штрих-кодов UPC на небольших упаковках, где полный 12-значный штрих-код может не поместиться, была разработана версия UPC с подавлением нулей, называемая UPC-E, в которой цифра системы счисления, все нули в конце обозначены производителем. code и все ведущие нули в коде продукта подавляются (опускаются). Эта символика отличается от UPC-A тем, что в ней используется только 6-значный код, не используется шаблон защиты M (средний), а шаблон защиты E (конец) формируется как пробел-штрих-пробел-штрих-пробел , т.е. штрих-код UPC-E следует шаблону SDDDDDDE. Способ, которым 6-значный UPC-E соотносится с 12-значным UPC-A, определяется числовым шаблоном UPC-E и шаблоном четности UPC-E. Он может соответствовать только системе счисления 0 или 1 UPC-A, значение которой вместе с контрольной цифрой UPC-A определяет шаблон четности кодирования UPC-E. Если цифры кода производителя представлены знаком X, а цифры кода продукта - буквами N, тогда:

Последняя цифра UPC-E Цифровой шаблон UPC-E Эквивалент UPC-A
0 XXNNN0 0 или 1 + XX000-00NNN + контрольная цифра
1 XXNNN1 0 или 1 + XX100-00NNN + контрольная цифра
2 XXNNN2 0 или 1 + XX200-00NNN + контрольная цифра
3 XXXNN3 0 или 1 + XXX00-000NN + контрольная цифра
4 XXXXN4 0 или 1 + XXXX0-0000N + контрольная цифра
5 XXXXX5 0 или 1 + XXXXX-00005 + контрольная цифра
6 XXXXX6 0 или 1 + XXXXX-00006 + контрольная цифра
7 XXXXX7 0 или 1 + XXXXX-00007 + контрольная цифра
8 XXXXX8 0 или 1 + XXXXX-00008 + контрольная цифра
9 XXXXX9 0 или 1 + XXXXX-00009 + контрольная цифра

Например, UPC-E 654321 может соответствовать UPC-A 065100004327 или 165100004324, в зависимости от шаблона четности UPC-E закодированных цифр, как описано ниже:

Контрольная
цифра UPC-A
Шаблон четности UPC-E для UPC-A

система счисления 0

Шаблон четности UPC-E для UPC-A

система счисления 1

0 EEEOOO ОООЭЭ
1 EEOEOO OOEOEE
2 EEOOEO OOEEOE
3 EEOOOE OOEEEO
4 EOEEOO OEOOEE
5 EOOEEO OEEOOE
6 EOOOEE OEEEOO
7 EOEOEO OEOEOE
8 EOEOOE OEOEEO
9 EOOEOE OEEOEO
Таблица кодирования штрих-кода UPC-E SDDDDDDE
S
(начало)
O
(цифра нечетной четности)
E
(четная цифра)
E
(конец)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-E S.svg UPC-E 0ow.svg
3-2-1-1
UPC-E 1ow.svg
2-2-2-1
UPC-E 2ow.svg
2-1-2-2
UPC-E 3ow.svg
1-4-1-1
UPC-E 4ow.svg
1-1-3-2
UPC-E 5ow.svg
1-2-3-1
UPC-E 6ow.svg
1-1-1-4
UPC-E 7ow.svg
1-3-1-2
UPC-E 8ow.svg
1-2-1-3
UPC-E 9ow.svg
3-1-1-2
UPC-E 0ew.svg
1-1-2-3
UPC-E 1ew.svg
1-2-2-2
UPC-E 2ew.svg
2-2-1-2
UPC-E 3ew.svg
1-1-4-1
UPC-E 4ew.svg
2-3-1-1
UPC-E 5ew.svg
1-3-2-1
UPC-E 6ew.svg
4-1-1-1
UPC-E 7ew.svg
2-1-3-1
UPC-E 8ew.svg
3-1-2-1
UPC-E 9ew.svg
2-1-1-3
UPC-E E.svg

UPC-E 654321 с шаблоном четности EOEOEO (UPC-A 065100004327) будет закодирован как

1-1-1 4-1-1-1 1-2-3-1 2-3-1-1 1-4-1-1 2-2-1-2 2-2-2-1 1-1 -1-1-1-1.

Штрих-код будет выглядеть так:

UPC-E-654321.png

EAN-13

EAN-13 был разработан в качестве надмножества из UPC-A, добавив дополнительную цифру в начало каждого номера UPC-A. Это увеличило количество теоретически возможных уникальных значений в десять раз до 1 триллиона. Штрих-коды EAN-13 также указывают на страну, в которой находится компания, продающая продукт (которая может совпадать, а может и не совпадать со страной, в которой производится товар). Это определяется тремя ведущими цифрами кода в соответствии с кодами стран GS1 . Каждый код UPC-A можно легко преобразовать в эквивалентный код EAN-13, добавив к коду UPC-A цифру 0. Контрольная цифра при этом не меняется . Все точки из-продажи в настоящее время системы могут понять , как в равной степени.

EAN-8 - это 8-значный вариант штрих-кода EAN.

Примечания по использованию UPC:

  • В настоящее время в Северной Америке будут приниматься все продукты, отмеченные EAN, в дополнение к тем, которые уже отмечены UPC.
  • Для продуктов с существующим UPC не требуется повторная маркировка EAN.
  • В Северной Америке EAN добавляет на 30% больше кодов, в основном за счет добавления цифр с 10 по 12 к цифрам с 00 по 09 UPC. Это мощный стимул для постепенного отказа от UPC.

Смотрите также

использованная литература

дальнейшее чтение

  • US 3832686 , Билгутай, Ильхан М., «Шрифт штрих-кода», опубликовано 11 мая 1972 г., опубликовано 27 августа 1974 г. 
  • US 3145291 , Brainerd, HB, «Система идентификации», опубликовано 2 июля 1959 г., выдано 18 апреля 1964 г.  Железнодорожный штрих-код.
  • US 3617707 , Shields, Charles B. & Roelif Stapelfeldt, «Автоматическая система идентификации автомобилей», опубликовано 17 августа 1967 г., выпущено 2 ноября 1971 г. 
  • US 3723710 , Крауз, Уильям Г. и Джон Э. Джонс, «Метод и устройство для считывания и декодирования самосинхронизирующегося штрих-кода высокой плотности», опубликовано 28 июня 1971 г., опубликовано 27 марта 1973 г. 

внешние ссылки