Стандарт штрихкода Code 128 существенно отличается от таких широко распространённых стандартов штрихового кода, как, например, EAN. Отличия заключаются, прежде всего, в возможности кодирования не только цифр, но и букв латинского алфавита, а также специальных символов. Кроме того, цифровой код в формате Code 128 становится очень компактным, что достигается за счёт «двойной упаковки» данных, когда две цифры записываются в один шаблон штрихкода. Буквенные символы кодируются обычным — «одиночным» — способом, что делает буквенный код в формате Code 128 вдвое длиннее цифрового.
Штриховой код Code 128 включает в себя 107 символов, из которых 103 символа данных, 3 стартовых и 1 остановочный (стоп) символ. Для кодирования всех 128 символов ASCII предусмотрено три комплекта символов штрихового кода Code 128 — A, B и C, которые могут использоваться внутри одного штрихкода.
Технические требования к символике штрихового кода Code 128, показатели символики, кодирование знаков данных, размеры, алгоритмы декодирования, параметры применения и строки-префиксы и идентификатора символики в России регламентируются ГОСТ 30743-2001 (ИСО/МЭК 15417—2000) (Заменен на ГОСТ ISO/IEC 15417-2013) «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Code 128 (Код 128)».
Структура штрихкода Code 128 достаточно проста. Штрихкод состоит из шести зон:
Символы штрихового кода Code 128 состоят из трёх штрихов и трёх промежутков. Штрихи и промежутки имеют модульное построение. Ширина каждого штриха и промежутка составляет от 1 до 4 модулей (1 модуль = 0,33 мм). Ширина знака равна 11 модулям. Остановочный (стоп) знак состоит из тринадцати модулей и имеет четыре штриха и три промежутка.
Существует 107 шаблонов (patterns), каждый из которых кодируется 11 модулями, включающими 3 полоски (slim bars) и 3 промежутка (spaces). Исключение — стоп-шаблон [STOP] имеет 4 полоски и кодируется 13 модулями.
Каждый шаблон декодируется по таблице, для некоторых шаблонов определены управляющие воздействия, определяющие режим декодирования.
Один из трех стартовых шаблонов [START-A] (#103), [START-B] (#104) или [START-C] (#105) ограничивает код слева и определяет таблицу декодирования (A, B или C). Шаблон [STOP] (#106) ограничивает код справа. Перед шаблоном [STOP] идет шаблон контрольной суммы. Слева и справа от штрихкода должно быть свободное пространство (Quiet zone) шириной по крайней мере в 10 модулей.
Шаблон [SHIFT] (#98 в таблицах A и B) позволяет переключаться между таблицами A и B. Шаблоны [Code C] (#99 в таблицах A и B), [Code B] (#100 в таблицах A и C) и [Code A] (#101 в таблицах B и C) управляют непосредственным включением соответствующей таблицы декодирования.
Функциональные шаблоны [FNC1]-[FNC4] не определены.
Контрольная сумма занимает один шаблон и должна быть добавлена перед шаблоном [STOP]. Шаги для расчета контрольной цифры таковы:
1. Начальное значение = значению шаблона [START] (103, 104 или 105).
2. Для каждого следующего шаблона в сообщении (исключая [STOP]): взять его номер в таблице кодировки, умножить его на свою позицию (позиция первого шаблона после [START] равна 1). Результат добавить к контрольной сумме.
3. Контрольной суммой будет считаться остаток от деления результата на 103.
Значением (value) шаблона считается его порядковый номер в таблице (считаем с нуля).[1]
Линейные |
|
---|---|
Двумерные |
|
Другие |
|
Связанные статьи |