ГОСТ 30743-2001
(ИСО/МЭК 15417-2000)
Группа П85
МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ
АВТОМАТИЧЕСКАЯ ИДЕНТИФИКАЦИЯ
КОДИРОВАНИЕ ШТРИХОВОЕ
Спецификация символики Code 128 (Код 128)
Automatic identification. Bar coding.
Symbology specification Code 128
МКС 35.040
ОКСТУ 4002
Дата введения 2002-01-01
Предисловие
1 РАЗРАБОТАН ЗАО "Фирма ПИЛОТ" совместно с Ассоциацией автоматической идентификации ЮНИСКАН/EAN РОССИЯ/АIМ РОССИЯ в рамках Межгосударственного технического комитета МТК 517 "Автоматическая идентификация"
ВНЕСЕН Госстандартом России
2 ПРИНЯТ Межгосударственным Советом по стандартизации, метрологии и сертификации (протокол N 19 от 24 мая 2001 г.)
За принятие проголосовали:
Наименование государства | Наименование национального органа по стандартизации |
Азербайджанская Республика | Азгосстандарт |
Республика Армения | Армгосстандарт |
Республика Беларусь | Госстандарт Республики Беларусь |
Республика Казахстан | Госстандарт Республики Казахстан |
Кыргызская Республика | Кыргызстандарт |
Республика Молдова | Молдовастандарт |
Российская Федерация | Госстандарт России |
Республика Таджикистан | Таджикстандарт |
Туркменистан | Главгосслужба "Туркменстандартлары" |
Республика Узбекистан | Узгосстандарт |
3 Настоящий стандарт представляет собой аутентичный текст международного стандарта ИСО/МЭК 15417-2000 "Информационная технология - Технологии автоматической идентификации и сбора данных - Спецификация символики штрихового кода - Code 128"), за исключением разделов 2 и 3, примечания к 4.4.1, приложений J, К, L и М, с дополнительными требованиями, отражающими потребности экономики страны
4 Постановлением государственного комитета Российской Федерации по стандартизации и метрологии от 16 августа 2001 г. N 335-ст межгосударственный стандарт ГОСТ 30743-2001 (ИСО/МЭК 15417-2000) введен в действие непосредственно в качестве государственного стандарта Российской Федерации с 1 января 2002 г.
5 ВВЕДЕН ВПЕРВЫЕ
Введение
Введение
Технология штрихового кодирования основана на распознавании закодированных комбинаций штрихов и пробелов определенных размеров. Существует ряд способов кодирования информации в форме штрихового кода, называемых символиками. Code 128 (Код 128) - одна из таких символик. Правила, регламентирующие представление знаков в комбинациях штрихов и пробелов, и другие необходимые показатели каждой символики штрихового кода, называются спецификацией символики.
Производителям оборудования для штрихового кодирования и пользователям технологии штрихового кодирования необходимы общедоступные стандартные спецификации символик штрихового кода для разработки оборудования и программного обеспечения.
1 Область применения
Настоящий стандарт устанавливает технические требования к символике штрихового кода Code 128 (Код 128), показатели символики Code 128, кодирование знаков данных, размеры, алгоритмы декодирования, параметры применения, определяемые пользователями, и строки-префиксы идентификатора символики.
2 Нормативные ссылки
ГОСТ 27463-87 Системы обработки информации. 7-битные кодированные наборы символов
ГОСТ 27465-87 Системы обработки информации. Символы. Классификация
ГОСТ 30721-2000 / ГОСТ Р 51294.3-99 Автоматическая идентификация. Кодирование штриховое. Термины и определения
ГОСТ 34.302.2-91 (ИСО 8859-2-87) Наборы 8-битных однобайтовых кодированных графических символов. Латинский алфавит N 2
3 Термины и определения
В настоящем стандарте применяют термины по ГОСТ 30721.
4 Требования
4.1 Показатели символики
К показателям символики Code 128 относят следующие показатели:
а) набор кодированных знаков:
1) все 128 знаков версии КОИ-7 в соответствии с [1]*, то есть знаки с десятичными значениями от 0 до 127 включительно,
2) знаки версии КОИ-8 с десятичными значениями от 128 до 255 также могут быть закодированы,
3) четыре функциональных знака, не являющихся данными,
4) четыре знака для вызова кодируемого набора знаков,
5) три знака Start (СТАРТ)**,
6) один знак Stop (СТОП)**,
______________
* 7-битный кодированный набор знаков по [1] соответствует набору ссылочной версии КОИ-7НО по ГОСТ 27463, за исключением двух знаков: в позиции 02/04 в [1] используют знак $ (ДЕНЕЖНЫЙ ЗНАК ДОЛЛАРА) (десятичное значение 37) и в позиции 7/14 - знак ~ (ТИЛЬДА) (десятичное значение 111).
** В скобках указано русское обозначение знака согласно приложению L.
b) тип кода - непрерывный;
c) число элементов в знаке символа - шесть, включая три штриха и три пробела, состоящие каждый из одного, двух, трех или четырех модулей по ширине (знак Stop имеет семь элементов, включающих четыре штриха и три пробела);
d) самоконтроль знака - присутствует;
e) длина символа - переменная;
f) двунаправленное декодирование - присутствует;
g) контрольный знак символа - один, обязательный (А.1);
h) плотность знака данных - 11 модулей в знаке символа (5,5 модулей на цифру в кодируемом наборе С);
i) часть символа, не содержащая данных - эквивалентна 35 модулям.
4.2 Структура символа
Символы Code 128 должны включать:
a) начальную свободную зону;
b) знак Start;
c) один или несколько знаков, представляющих данные и специальные знаки;
d) контрольный знак символа;
e) знак Stop;
f) конечную свободную зону.
На рисунке 1 представлен символ Code 128, кодирующий текст "AIM".
Рисунок 1 - Символ Code 128
Рисунок 1 - Символ Code 128
4.3 Значения знаков
В таблице 1 определены все значения знаков Code 128. В графе "Ширина элемента" числа представляют ширину элементов в виде числа модулей или кратного размеру .
4.3.1 Структура знака символа
Сумма модулей в штрихах в любом знаке символа всегда должна быть четной (четный паритет), поэтому сумма модулей в пробелах всегда должна быть нечетной. Эта особенность паритета обеспечивает выполнение самоконтроля знака.
На рисунке 2 приведен знак Start A.
Рисунок 2 - Знак Start А для Code 128
Рисунок 3 - Знак символа для значения 35
|
|
На рисунке 3 приведен знак символа с закодированным значением 35, который представляет знак данных С в кодируемых наборах А или В, или две указанные цифры 35 в кодируемом наборе знаков С.
На рисунке 4 приведен знак Stop.
Рисунок 4 - Знак Stop для Code 128
Рисунок 4 - Знак Stop для Code 128
4.3.2 Кодирование знаков данных
Code 128 имеет три уникальных кодируемых набора знаков данных, приведенных в таблице 1 (наборы А, В и С). Представленные комбинации штрихов и пробелов знаков символов соответствуют знакам данных, приведенным в графах с заголовками "Кодируемый набор А", "Кодируемый набор В" или "Кодируемый набор С". Выбор кодируемого набора зависит от знака Start или использования одного из знаков Code А (Код A), Code В (Код В) или Code С (Код С), или знака Shift (РЕГИСТР). Если символ начинается со знака Start А, то изначально определен кодируемый набор А. Аналогично определяют наборы В и С, когда символ начинается со знака Start В или С соответственно. Кодируемый набор может быть изменен в пределах символа при помощи знаков Code A, Code В и Code С или знака Shift (использование этих специальных знаков в соответствии с 4.3.4.2).
Одни и те же данные могут быть представлены различными символами Code 128 с использованием различных комбинаций знаков Start, знаков кодируемых наборов Code A, Code В и Code С, и знака Shift. Применение не должно устанавливать кодируемый набор для использования. В приложении Е приведены правила, способствующие минимизации длины символа для любых данных. В дополнение к этому декодер должен декодировать символы, содержащие допустимые комбинации знаков Start, Code и Shift, помимо указанных в приложении Е, например символ со знаком Code в конце данных.
Каждому знаку символа соответствует числовое значение, приведенное в таблице 1, которое используют для вычисления контрольного знака символа. Оно может быть также использовано для преобразований в значения КОИ-7 (КОИ-8) и обратно (приложение D).
4.3.3 Кодируемые наборы знаков
4.3.3.1 Кодируемый набор А
Кодируемый набор А включает все стандартные прописные латинские буквы и цифры, специальные графические знаки (знаки пунктуации) и управляющие знаки (т.е. знаки версии КОИ-7 с десятичными значениями от 00 до 95), а также семь специальных знаков.
4.3.3.2 Кодируемый набор В
Кодируемый набор В включает все стандартные прописные и строчные латинские буквы и цифры, специальные графические знаки (знаки пунктуации) (т.е. знаки версии КОИ-7 с десятичными значениями от 32 до 127 включительно), а также семь специальных знаков.
4.3.3.3 Кодируемый набор С
Кодируемый набор С включает множество из 100 цифровых пар от 00 до 99 включительно, а также три специальных знака. Этим достигается парное кодирование числовых данных в одном знаке символа.
4.3.4 Специальные знаки
Последние семь знаков кодируемых наборов А и В (значения знаков от 96 до 102) и последние три знака кодируемого набора С (значения знаков от 100 до 102) - специальные знаки, не являющиеся данными и не имеющие эквивалентов в знаках КОИ-7, предназначены для устройств считывания штрихового кода.
4.3.4.1 Знаки кодируемых наборов (Code) и Shift
Знаки кодируемых наборов (Code) и знак Shift должны использоваться для изменения одного кодируемого набора на другой в пределах символа. Они не должны передаваться декодером.
а) Знаки кодируемых наборов
Знаки Code A, Code В или Code С изменяют ранее определенный кодируемый набор знаков символа с одного на другой набор, определенный знаком Code. Это изменение применяется ко всем знакам, следующим после знака Code до конца символа или до следующего знака Code, или знака Shift.
Таблица 1 - Кодирование знаков для Code 128
Продолжение таблицы 1
Продолжение таблицы 1
Примечания
1 Знак Stop включает 13 модулей в четырех штрихах и трех пробелах. Любой иной знак имеет ширину 11 модулей, начинается со штриха и заканчивается пробелом, включает шесть элементов, ширина каждого из которых изменяется от одного до четырех модулей. Числовые значения в графах, обозначенных Ш и П, представляют соответственно число модулей в каждом штрихе или пробеле в знаках символа.
2 Русские наименования и обозначения вспомогательных, управляющих и специальных графических знаков приведены в приложениии L.
b) Знак Shift
Знак Shift изменяет набор знаков с А на В или с В на А только для одного знака после знака Shift. Знаки, стоящие после измененного знака, должны возвратиться к представлению того набора знаков (А или В), который был определен до знака Shift. Знак Shift не должен применяться для знаков Code и Shift.
4.3.4.2 Функциональные знаки
Функциональные знаки FNC (ФНК) устанавливают команды для устройств считывания штриховых кодов, обеспечивающие специальное функционирование и применение.
a) FNC1 (ФНК1) используют в особых обстоятельствах, определенных в приложении В.
b) FNC2 (ФНК2) (соединение сообщения) передает команду устройству считывания штрихового кода по временному хранению данных символа, содержащего знак FNC2, и их передаче в качестве префикса к данным следующего символа. Это может быть использовано для того, чтобы связать несколько символов между собой перед их передачей. Этот знак может находиться в любом месте символа. Если имеет значение порядок следования, следует обеспечить считывание символов в требуемой последовательности.
c) FNC3 (ФНК3) (инициализация) передает устройству считывания штрихового кода команду на интерпретацию данных символа, содержащего знак FNC3, в качестве инструкций для инициализации или перепрограммирования устройства считывания штрихового кода. Данные такого символа не должны передаваться устройством считывания штрихового кода. Этот знак может находиться в любом месте символа.
d) FNC4 (ФНК4) используют для представления версии набора КОИ-8 (десятичные значения знаков от 128 до 255) в соответствии с [2] или иным документом. Если используют одиночный знак FNC4, то к десятичному значению следующего знака данных версии КОИ-7 в символе следует добавить 128. Знак Shift может следовать за знаком FNC4 в том случае, если необходимо изменить набор знаков для последующего знака данных. Последующие знаки данных возвращаются к стандартному набору версии КОИ-7. Если используют два последовательных знака FNC4, то ко всем десятичным значениям последующих знаков данных версии КОИ-7 добавляют 128 до тех пор, пока не встретятся следующие сдвоенные знаки FNC4 или не будет достигнут конец символа. В такой последовательности кодирования версии КОИ-8 для возврата к стандартному кодированию КОИ-7 только для одного последующего знака данных устанавливается один знак FNC4. Знаки Shift и Code в такой последовательности должны иметь типовое действие. По умолчанию знаки версии КОИ-8 с десятичными значениями от 128 до 255 соответствуют [2], как представлено в приложении F, однако нормативные документы, регламентирующие применение, могут устанавливать альтернативные наборы знаков для байтов с десятичными значениями от 128 до 255*.
_____________
* Рекомендации по кодированию сообщений с буквами кирилловского алфавита содержатся в приложении К.
4.3.4.3 Знаки Start и Stop
Знаки Start А, В и С определяют соответствующий кодируемый набор знаков для начального использования в символе.
Знак Stop одинаков для всех кодируемых наборов знаков.
Знаки Start и Stop не должны передаваться декодером.
4.3.5 Контрольный знак символа
Контрольный знак символа должен присутствовать в символе как последний знак символа перед знаком Stop. Алгоритм его вычисления определен в приложении A (A.I). Контрольный знак символа не указывается в визуальном представлении и не должен передаваться декодером.
4.4 Требования к размерам
Символы Code 128 должны соответствовать размерам, приведенным в 4.4.1 и 4.4.2.
4.4.1 Минимальная ширина модуля ()
Этот размер должен определяться нормативным документом по применению в зависимости от возможностей оборудования для производства и считывания символов и в соответствии с общими требованиями применения.
Значение должно быть постоянным для всего символа.
Примечание - Минимальный размер не установлен в [3] и должен определяться в рамках конкретного применения. В ранее опубликованных спецификациях, например в [4], минимальный размер имел значение 0,191 мм.
4.4.2 Свободная зона
Минимальная ширина свободной зоны (слева и справа от символа Code 128) - 10.
4.5 Рекомендуемый алгоритм декодирования
Системы считывания штрихового кода разработаны таким образом, чтобы благодаря соответствующим алгоритмам можно было считывать несовершенные символы. Для вычисления значения декодируемости, приведенного в [5], используют следующий рекомендуемый алгоритм декодирования, включающий следующие этапы декодирования каждого знака, закодированного в штриховом коде:
1) Рассчитывают восемь размеров ширины* и (рисунок 5).
_____________
* Размер - измеренная ширина знака символа, - измеренная ширина от края элемента до подобного края другого элемента, - измеренная ширина штриха.
Рисунок 5 - Декодирование размеров
Рисунок 5 - Декодирование размеров
2) Преобразуют размеры и в нормализованные значения и , которые представляют суммарную ширину () этих размеров в модулях. Для этих значений использую следующий метод:
при 1,5/112,5/11=2,
при 2,5/113,5/11= 3,
при 3,5/114,5/11 = 4,
при 4,5/115,5/11 = 5,
при 5,5/116,5/11 = 6,
при 6,5/117,5/11= 7.
В противном случае
- знак содержит ошибку.
3) Находят знак в таблице декодирования (таблица 2), используя в качестве ключа значения и .
Таблица 2 - Расстояния между краями для декодирования Code 128 (в модулях)
Значение символа | | |||||||
00 | 3 | 3 | 4 | 4 | 6 | |||
01 | 4 | 4 | 3 | 3 | 6 | |||
02 | 4 | 4 | 4 | 4 | 6 | |||
03 | 3 | 3 | 3 | 4 | 4 | |||
04 | 3 | 3 | 4 | 5 | 4 | |||
05 | 4 | 4 | 3 | 4 | 4 | |||
06 | 3 | 4 | 4 | 3 | 4 | |||
07 | 3 | 4 | 5 | 4 | 4 | |||
08 | 4 | 5 | 4 | 3 | 4 | |||
09 | 4 | 3 | 3 | 3 | 4 | |||
10 | 4 | 3 | 4 | 4 | 4 | |||
11 | 5 | 4 | 3 | 3 | 4 | |||
12 | 2 | 3 | 4 | 5 | 6 | |||
13 | 3 | 4 | 3 | 4 | 6 | |||
14 | 3 | 4 | 4 | 5 | 6 | |||
15 | 2 | 4 | 5 | 4 | 6 | |||
16 | 3 | 5 | 4 | 3 | 6 | |||
17 | 3 | 5 | 5 | 4 | 6 | |||
18 | 4 | 5 | 5 | 3 | 6 | |||
19 | 4 | 3 | 2 | 4 | 6 | |||
20 | 4 | 3 | 3 | 5 | 6 | |||
21 | 3 | 4 | 5 | 3 | 6 | |||
22 | 4 | 5 | 4 | 2 | 6 | |||
23 | 4 | 3 | 3 | 4 | 8 | |||
24 | 4 | 2 | 3 | 4 | 6 | |||
25 | 5 | 3 | 2 | 3 | 6 | |||
26 | 5 | 3 | 3 | 4 | 6 | |||
27 | 4 | 3 | 4 | 3 | 6 | |||
28 | 5 | 4 | 3 | 2 | 6 | |||
29 | 5 | 4 | 4 | 3 | 6 | |||
30 | 3 | 3 | 3 | 3 | 6 | |||
31 | 3 | 3 | 5 | 5 | 6 | |||
32 | 5 | 5 | 3 | 3 | 6 | |||
33 | 2 | 2 | 4 | 5 | 4 | |||
34 | 4 | 4 | 2 | 3 | 4 | |||
35 | 4 | 4 | 4 | 5 | 4 | |||
36 | 2 | 3 | 5 | 4 | 4 | |||
37 | 4 | 5 | 3 | 2 | 4 | |||
38 | 4 | 5 | 5 | 4 | 4 | |||
39 | 3 | 2 | 4 | 4 | 4 | |||
40 | 5 | 4 | 2 | 2 | 4 | |||
41 | 5 | 4 | 4 | 4 | 4 | |||
42 | 2 | 3 | 3 | 4 | 6 | |||
43 | 2 | 3 | 5 | 6 | 6 | |||
44 | 4 | 5 | 3 | 4 | 6 | |||
45 | 2 | 4 | 4 | 3 | 6 | |||
46 | 2 | 4 | 6 | 5 | 6 | |||
47 | 4 | 6 | 4 | 3 | 6 | |||
48 | 4 | 4 | 4 | 3 | 8 | |||
49 | 3 | 2 | 4 | 6 | 6 | |||
50 | 5 | 4 | 2 | 4 | 6 | |||
51 | 3 | 4 | 4 | 2 | 6 | |||
52 | 3 | 4 | 6 | 4 | 6 | |||
53 | 3 | 4 | 4 | 4 | 8 | |||
54 | 4 | 2 | 2 | 3 | 6 | |||
55 | 4 | 2 | 4 | 5 | 6 | |||
56 | 6 | 4 | 2 | 3 | 6 | |||
57 | 4 | 3 | 3 | 2 | 6 | |||
58 | 4 | 3 | 5 | 4 | 6 | |||
59 | 6 | 5 | 3 | 2 | 6 | |||
60 | 4 | 5 | 5 | 2 | 8 | |||
61 | 4 | 3 | 5 | 5 | 4 | |||
62 | 7 | 4 | 2 | 2 | 6 | |||
63 | 2 | 2 | 3 | 4 | 4 | |||
64 | 2 | 2 | 5 | 6 | 4 | |||
65 | 3 | 3 | 2 | 3 | 4 | |||
66 | 3 | 3 | 5 | 6 | 4 | |||
67 | 5 | 5 | 2 | 3 | 4 | |||
68 | 5 | 5 | 3 | 4 | 4 | |||
69 | 2 | 3 | 4 | 3 | 4 | |||
70 | 2 | 3 | 6 | 5 | 4 | |||
71 | 3 | 4 | 3 | 2 | 4 | |||
72 | 3 | 4 | 6 | 5 | 4 | |||
73 | 5 | 6 | 3 | 2 | 4 | |||
74 | 5 | 6 | 4 | 3 | 4 | |||
75 | 6 | 5 | 3 | 3 | 4 | |||
76 | 4 | 3 | 2 | 2 | 4 | |||
77 | 5 | 4 | 4 | 2 | 8 | |||
78 | 6 | 5 | 2 | 2 | 4 | |||
79 | 4 | 7 | 5 | 2 | 6 | |||
80 | 2 | 2 | 3 | 6 | 6 | |||
81 | 3 | 3 | 2 | 5 | 6 | |||
82 | 3 | 3 | 3 | 6 | 6 | |||
83 | 2 | 5 | 6 | 3 | 6 | |||
84 | 3 | 6 | 5 | 2 | 6 | |||
85 | 3 | 6 | 6 | 3 | 6 | |||
86 | 5 | 2 | 3 | 3 | 6 |