3 Настоящий стандарт представляет собой аутентичный текст международного стандарта ИСО/МЭК 15417-2000 "Информационная технология - Технологии автоматической идентификации и сбора данных - Спецификация символики штрихового кода - Code 128"), за исключением разделов 2 и 3, примечания к 4.4.1, приложений J, K, L и M, с дополнительными требованиями, отражающими потребности экономики страны
4 Постановлением государственного комитета Российской Федерации по стандартизации и метрологии от 16 августа 2001 г. N 335-ст межгосударственный стандарт ГОСТ 30743-2001 (ИСО/МЭК 15417-2000) введен в действие непосредственно в качестве государственного стандарта Российской Федерации с 1 января 2002 г.
5 ВВЕДЕН ВПЕРВЫЕ
Технология штрихового кодирования основана на распознавании закодированных комбинаций штрихов и пробелов определенных размеров. Существует ряд способов кодирования информации в форме штрихового кода, называемых символиками. Code 128 (Код 128) - одна из таких символик. Правила, регламентирующие представление знаков в комбинациях штрихов и пробелов, и другие необходимые показатели каждой символики штрихового кода, называются спецификацией символики.
Производителям оборудования для штрихового кодирования и пользователям технологии штрихового кодирования необходимы общедоступные стандартные спецификации символик штрихового кода для разработки оборудования и программного обеспечения.
Настоящий стандарт устанавливает технические требования к символике штрихового кода Code 128 (Код 128), показатели символики Code 128, кодирование знаков данных, размеры, алгоритмы декодирования, параметры применения, определяемые пользователями, и строки-префиксы идентификатора символики.
ГОСТ 27463-87 Системы обработки информации. 7-битные кодированные наборы символов
ГОСТ 27465-87 Системы обработки информации. Символы. Классификация
ГОСТ 30721-2000/ГОСТ Р 51294.3-99 Автоматическая идентификация. Кодирование штриховое. Термины и определения
ГОСТ 34.302.2-91 (ИСО 8859-2-87) Наборы 8-битных однобайтовых кодированных графических символов. Латинский алфавит N 2
В настоящем стандарте применяют термины по ГОСТ 30721.
К показателям символики Code 128 относят следующие показатели:
a) набор кодированных знаков:
1) все 128 знаков версии КОИ-7 в соответствии с [1] <*>, то есть знаки с десятичными значениями от 0 до 127 включительно,
--------------------------------
<*> 7-битный кодированный набор знаков по [1] соответствует набору ссылочной версии КОИ-7НО по ГОСТ 27463, за исключением двух знаков: в позиции 02/04 в [1] используют знак $ (ДЕНЕЖНЫЙ ЗНАК ДОЛЛАРА) (десятичное значение 37) и в позиции 7/14 - знак ~ (ТИЛЬДА) (десятичное значение 111).
2) знаки версии КОИ-8 с десятичными значениями от 128 до 255 также могут быть закодированы,
3) четыре функциональных знака, не являющихся данными,
4) четыре знака для вызова кодируемого набора знаков,
5) три знака Start (СТАРТ) <**>,
6) один знак Stop (СТОП) <**>,
--------------------------------
<**> В скобках указано русское обозначение знака согласно приложению L.
b) тип кода - непрерывный;
c) число элементов в знаке символа - шесть, включая три штриха и три пробела, состоящие каждый из одного, двух, трех или четырех модулей по ширине (знак Stop имеет семь элементов, включающих четыре штриха и три пробела);
d) самоконтроль знака - присутствует;
e) длина символа - переменная;
f) двунаправленное декодирование - присутствует;
g) контрольный знак символа - один, обязательный (A.1);
h) плотность знака данных - 11 модулей в знаке символа (5,5 модулей на цифру в кодируемом наборе C);
i) часть символа, не содержащая данных - эквивалентна 35 модулям.
Символы Code 128 должны включать:
a) начальную свободную зону;
b) знак Start;
c) один или несколько знаков, представляющих данные и специальные знаки;
d) контрольный знак символа;
e) знак Stop;
f) конечную свободную зону.
На рисунке 1 представлен символ Code 128, кодирующий текст "AIM".
![]() В таблице 1 определены все значения знаков Code 128. В графе "Ширина элемента" числа представляют ширину элементов в виде числа модулей или кратного размеру X.
Таблица 1
Примечания
1 Знак Stop включает 13 модулей в четырех штрихах и трех пробелах. Любой иной знак имеет ширину 11 модулей, начинается со штриха и заканчивается пробелом, включает шесть элементов, ширина каждого из которых изменяется от одного до четырех модулей. Числовые значения в графах, обозначенных Ш и П, представляют соответственно число модулей в каждом штрихе или пробеле в знаках символа.
2 Русские наименования и обозначения вспомогательных, управляющих и специальных графических знаков приведены в приложении L.
4.3.1 Структура знака символа
Сумма модулей в штрихах в любом знаке символа всегда должна быть четной (четный паритет), поэтому сумма модулей в пробелах всегда должна быть нечетной. Эта особенность паритета обеспечивает выполнение самоконтроля знака.
На рисунке 2 приведен знак Start A.
![]() На рисунке 3 приведен знак символа с закодированным значением 35, который представляет знак данных C в кодируемых наборах A или B, или две указанные цифры 35 в кодируемом наборе знаков C.
![]() На рисунке 4 приведен знак Stop.
![]() 4.3.2 Кодирование знаков данных
Code 128 имеет три уникальных кодируемых набора знаков данных, приведенных в таблице 1 (наборы A, B и C). Представленные комбинации штрихов и пробелов знаков символов соответствуют знакам данных, приведенным в графах с заголовками "Кодируемый набор A", "Кодируемый набор B" или "Кодируемый набор C". Выбор кодируемого набора зависит от знака Start или использования одного из знаков Code A (Код A), Code B (Код B) или Code C (Код C), или знака Shift (РЕГИСТР). Если символ начинается со знака Start A, то изначально определен кодируемый набор A. Аналогично определяют наборы B и C, когда символ начинается со знака Start B или C соответственно. Кодируемый набор может быть изменен в пределах символа при помощи знаков Code A, Code B и Code C или знака Shift (использование этих специальных знаков в соответствии с 4.3.4.2).
Одни и те же данные могут быть представлены различными символами Code 128 с использованием различных комбинаций знаков Start, знаков кодируемых наборов Code A, Code B и Code C, и знака Shift. Применение не должно устанавливать кодируемый набор для использования. В приложении E приведены правила, способствующие минимизации длины символа для любых данных. В дополнение к этому декодер должен декодировать символы, содержащие допустимые комбинации знаков Start, Code и Shift, помимо указанных в приложении E, например символ со знаком Code в конце данных.
Каждому знаку символа соответствует числовое значение, приведенное в таблице 1, которое используют для вычисления контрольного знака символа. Оно может быть также использовано для преобразований в значения КОИ-7 (КОИ-8) и обратно (приложение D).
4.3.3 Кодируемые наборы знаков
4.3.3.1 Кодируемый набор A
Кодируемый набор A включает все стандартные прописные латинские буквы и цифры, специальные графические знаки (знаки пунктуации) и управляющие знаки (т.е. знаки версии КОИ-7 с десятичными значениями от 00 до 95), а также семь специальных знаков.
4.3.3.2 Кодируемый набор B
Кодируемый набор B включает все стандартные прописные и строчные латинские буквы и цифры, специальные графические знаки (знаки пунктуации) (т.е. знаки версии КОИ-7 с десятичными значениями от 32 до 127 включительно), а также семь специальных знаков.
4.3.3.3 Кодируемый набор C
Кодируемый набор C включает множество из 100 цифровых пар от 00 до 99 включительно, а также три специальных знака. Этим достигается парное кодирование числовых данных в одном знаке символа.
4.3.4 Специальные знаки
Последние семь знаков кодируемых наборов A и B (значения знаков от 96 до 102) и последние три знака кодируемого набора C (значения знаков от 100 до 102) - специальные знаки, не являющиеся данными и не имеющие эквивалентов в знаках КОИ-7, предназначены для устройств считывания штрихового кода.
4.3.4.1 Знаки кодируемых наборов (Code) и Shift
Знаки кодируемых наборов (Code) и знак Shift должны использоваться для изменения одного кодируемого набора на другой в пределах символа. Они не должны передаваться декодером.
a) Знаки кодируемых наборов
Знаки Code A, Code B или Code C изменяют ранее определенный кодируемый набор знаков символа с одного на другой набор, определенный знаком Code. Это изменение применяется ко всем знакам, следующим после знака Code до конца символа или до следующего знака Code, или знака Shift.
b) Знак Shift
Знак Shift изменяет набор знаков с A на B или с B на A только для одного знака после знака Shift. Знаки, стоящие после измененного знака, должны возвратиться к представлению того набора знаков (A или B), который был определен до знака Shift. Знак Shift не должен применяться для знаков Code и Shift.
Функциональные знаки FNC (ФНК) устанавливают команды для устройств считывания штриховых кодов, обеспечивающие специальное функционирование и применение.
a) FNC1 (ФНК1) используют в особых обстоятельствах, определенных в приложении B.
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 <1>.
--------------------------------
<1> Рекомендации по кодированию сообщений с буквами кирилловского алфавита содержатся в приложении K.
4.3.4.3 Знаки Start и Stop
Знаки Start A, B и C определяют соответствующий кодируемый набор знаков для начального использования в символе.
Знак Stop одинаков для всех кодируемых наборов знаков.
Знаки Start и Stop не должны передаваться декодером.
4.3.5 Контрольный знак символа
Контрольный знак символа должен присутствовать в символе как последний знак символа перед знаком Stop. Алгоритм его вычисления определен в приложении A (A.1). Контрольный знак символа не указывается в визуальном представлении, и не должен передаваться декодером.
Этот размер должен определяться нормативным документом по применению в зависимости от возможностей оборудования для производства и считывания символов и в соответствии с общими требованиями применения.
Значение X должно быть постоянным для всего символа.
Примечание - Минимальный размер X не установлен в [3] и должен определяться в рамках конкретного применения. В ранее опубликованных спецификациях, например в [4], минимальный размер X имел значение 0,191 мм.
Минимальная ширина свободной зоны (слева и справа от символа Code 128) - 10X.
Системы считывания штрихового кода разработаны таким образом, чтобы благодаря соответствующим алгоритмам можно было считывать несовершенные символы. Для вычисления значения декодируемости, приведенного в [5], используют следующий рекомендуемый алгоритм декодирования, включающий следующие этапы декодирования каждого знака, закодированного в штриховом коде:
1) Рассчитывают восемь размеров ширины <1> p, e1, e2, e3, e4, b1, b2 и b3 (рисунок 5).
--------------------------------
<1> Размер p - измеренная ширина знака символа, e - измеренная ширина от края элемента до подобного края другого элемента, b - измеренная ширина штриха.
![]() 2) Преобразуют размеры e1, e2, e3 и e4 в нормализованные значения E1, E2, E3 и E4, которые представляют суммарную ширину (Ei) этих размеров в модулях. Для этих значений i используют следующий метод:
при 1,5p/11 <= ei < 2,5p/11 Ei = 2,
при 2,5p/11 <= ei < 3,5p/11 Ei = 3,
при 3,5p/11 <= ei < 4,5p/11 Ei = 4,
при 4,5p/11 <= ei < 5,5p/11 Ei = 5,
при 5,5p/11 <= ei < 6,5p/11 Ei = 6,
при 6,5p/11 <= ei < 7,5p/11 Ei = 7.
В противном случае - знак содержит ошибку.
3) Находят знак в таблице декодирования (таблица 2), используя в качестве ключа значения E1, E2, E3 и E4.
Таблица 2
Code 128 (в модулях)
4) Определяют значение V, обеспечивающее самоконтроль знака. Значение V содержится в таблице вместе с найденным знаком и должно быть равно сумме модулей в штрихах этого знака.
5) Проверяют соотношение
(V - 1,75) p/11 (b1 + b2 + b3) < (V + 1,75) p/11.
В противном случае - знак содержит ошибку.
При вычислениях косвенно используют паритет знака для обнаружения всех ошибок декодирования, которые могут быть вызваны отдельными несистематическими ошибками по краям одного модуля.
При использовании указанных пяти этапов декодируют первый знак. Если первым знаком является знак Start, продолжают декодирование символа в нормальном прямом направлении, если это не знак Start, то он декодируется как знак Stop, и производится попытка декодирования всех последующих знаков в обратном направлении.
После того, как все знаки были декодированы, проверяют наличие действительных знаков Start и Stop и правильность контрольного знака символа.
Знаки символа переводят в соответствующие знаки данных из кодируемого набора A, B или C в соответствии со знаками Start, Code и Shift, используемыми в символе.
Кроме того, осуществляют иные вторичные проверки: свободных зон, ускорения луча, абсолютной синхронизации, размеров и т.д., которые считаются оправданными и соответствующими с учетом конкретного устройства считывания и планируемой среды применения.
Примечание - В указанном алгоритме символ декодируется с использованием изменений "от края до подобного края" (e), а также дополнительного измерения совокупной ширины трех штрихов.
4.6.1 Общие положения
В международном стандарте [5] определена стандартизованная методология измерения и аттестации символов штрихового кода. Символы Code 128 следует оценивать в соответствии с указанным стандартом. Рекомендуемый алгоритм декодирования, приведенный в разделе 4.5 настоящего стандарта, для оценки параметров "декодирование" и "декодируемость" следует использовать после [5].
4.6.2 Декодируемость
Для вычисления декодируемости V применяют следующие правила, являющиеся дополнительными к указанным в [5]:
осуществляют подстановку V1 для Vс в формуле Vс = K/(S/2n),
где Vс - значение декодируемости для знака символа,
K - наименьшая абсолютная разность между измерением и порогом выбора,
S - общая ширина знака,
n - число модулей в знаке символа;
вычисляют V2
,где M - число темных модулей в знаке,
S - общая ширина знака,
Wb - совокупная ширина штрихов в знаке.
Vс - является меньшей из величин V1 и V2.
Примечание - Следует обратить внимание, что знак Stop включает дополнительный завершающий штрих. При измерении декодируемости знак Stop должен быть проверен дважды, сначала с использованием шести крайних левых элементов, а затем шести правых элементов справа налево. Оба набора из шести элементов по ширине эквивалентны стандартному знаку.
4.6.3 Свободные зоны
В [5] предусмотрено, что в спецификации символики должны содержаться дополнительные критерии оценки. Для Code 128 минимальный размер свободной зоны установлен 10Z <*>. Обе свободные зоны (левая и правая в каждом профиле отражения при сканировании) должны быть измерены и оценены согласно [5] следующим образом:
--------------------------------
<*> Z - средняя ширина выполненных узких элементов.
свободная зона >= 10Z - класс 4,
свободная зона < 10Z - класс 0
Нормативные документы по применению должны учитывать следующие параметры:
a) выборка подмножества из кодируемого набора знаков при необходимости;
b) число знаков данных в символе, которое может быть постоянным, переменным или переменным в пределах установленного максимума;
c) должен ли использоваться контрольный знак данных (в дополнение к обязательному контрольному знаку символа) и если должен, то алгоритм его вычисления. Стандартное устройство считывания не должно проверять контрольный знак данных;
d) может или не может быть определено наименьшее значение размера X или диапазон значений размера X при условии, что соответствующий минимальный класс качества символа (с установленными измерительной апертурой и длиной волны излучения) определен;
e) наименьшая высота штриха;
f) наименьшая ширина свободной зоны более наименьшего значения 10X, если ожидаемые условия сканирования требуют этого, например сканирование считывающим карандашом символов с размером X ниже определенного значения;
g) рекомендуемое расширение набора знаков для использования со знаком FNC4.
Параметры оценки символов должны быть заданы определением класса качества согласно [5] в стандарте, устанавливающем требования по применению. Обозначение класса должно включать значение класса, измерительную апертуру и длину волны излучения, используемого при измерении.
ПРИМЕР
1,5/10/660,
где 1,5 - полный класс качества символа;
10 - ссылочный номер измерительной апертуры (в настоящем примере диаметр 0,25 мм);
660 - длина волны в спектральном максимуме интенсивности отраженного излучения в нанометрах.
Передаваемые данные от декодируемого символа Code 128 должны включать значения байтов знаков данных. Эти данные предваряются идентификатором символики, определенным в приложении C (при его использовании). Знаки Start и Stop, функциональные знаки, знаки Code и Shift, а также контрольный знак символа не должны содержаться в передаваемых данных.
(обязательное)
ДОПОЛНИТЕЛЬНЫЕ СВОЙСТВА CODE 128
Контрольный знак символа Code 128 рассчитывают следующим образом:
1) определяют значение знака символа по таблице 1;
2) каждой позиции знака символа присваивают весовой коэффициент. Знаку Start присваивают весовой коэффициент 1. Затем, начиная слева от первого знака символа, следующего за знаком Start, весовые коэффициенты 1, 2, 3, 4, ..., n для всех последующих знаков символа, за исключением контрольного знака символа; n обозначает число знаков символа, представляющих данные или специальную информацию в символе, за исключением знаков Start/Stop и контрольного знака символа;
Примечание - Знаку Start и первому знаку символа после знака Start присваивают весовой коэффициент 1;
4) все произведения, рассчитанные на этапе 3), суммируют;
6) остаток, полученный из расчета на этапе 5), является значением контрольного знака символа.
Пример вычисления значения контрольного знака символа для данных "AIM 1234":
Контрольный знак символа должен размещаться непосредственно после окончания данных или специального знака и перед знаком Stop.
Примечание - Контрольный знак символа не должен отображаться в визуальном представлении.
A.2 Визуальное представление
Визуальное представление знаков данных (должно соответствовать знакам, передаваемым декодером) должно быть напечатано вместе с кодирующим эти знаки символом Code 128. Знаки Start/Stop и специальные знаки печататься не должны. Размер знаков и шрифт не регламентируются, эта интерпретация может быть напечатана в любой окружающей символ области, без нарушения границ свободной зоны (согласно 4.4.2).
(обязательное)
B.1 FNC1 в первой позиции - использование зарезервировано для системы EAN.UCC (ЕАН.ЮСиСи)
В соответствии с соглашением между AIM, Inc. (АИМ, Инк.), EAN International (ЕАН Интернейшнл) и Uniform Code Council (UCC) (Совет по унифицированному коду - ЮСиСи) использование FNC1 в символах Code 128 в первой позиции знака символа после знака Start зарезервировано исключительно для системы EAN.UCC. EAN International и Uniform Code Council разработали логически связанный международный стандарт применения для использования Code 128 в соединении со структурами данных для их кодирования в широком диапазоне определенных стандартом категорий. Этот стандарт полностью приведен в [6].
Адреса этих организаций:
Информация об актуализированной версии [6] может быть получена в представительствах этих организаций или во входящих в систему национальных организациях нумерации <*>.
--------------------------------
<*> Перечень национальных организаций нумерации в странах - членах МГС на момент принятия настоящего стандарта приведен в приложении J.
B.2 FNC1 во второй позиции - использование зарезервировано для AIM, Inc.
В соответствии с соглашением между AIM и другими организациями использование FNC1 в символах Code 128 в позиции второго знака символа после знака Start зарезервировано для обозначения символов, соответствующих определенным применениям, если существует необходимость однозначного распознавания различных символов Code 128. Следующие знаки являются допустимыми в позиции первого знака символа: цифры от 00 до 99 в кодируемом наборе C, прописные буквы от A до Z и строчные буквы от a до z.
Подробности указанных применений доступны в AIM International (АИМ Интернейшнл) по адресу:
AIM, Inc.
634 Alpha Drive,
Pittsburgh, PA 15328
USA
B.3 Прочие использования
Знак символа FNC1 можно использовать в качестве контрольного знака символа.
FNC1 в позициях третьего или последующих знаков передается в качестве знака версии КОИ-7 с десятичным значением 29 (GS).
B.4 Передаваемые данные
При любых применениях, в которых используют символы Code 128 с FNC1 в первой или второй позиции данных, должна быть обеспечена передача идентификатора символики. Когда FNC1 используется в первой или второй позиции, он не должен быть представлен в передаваемом сообщении, хотя его присутствие обозначается в идентификаторе символики значениями знака-модулятора 1 или 2 соответственно.
Когда FNC1 используют во второй позиции данных, ближайшие предшествующий и последующие знаки символа следует передавать как если бы знак FNC1 не существовал.
FNC1 в позициях третьего или последующих знаков передают как знак версии КОИ-7 GS (знак версии КОИ-7 с десятичным значением 29).
(обязательное)
Идентификаторы символики предоставляют единую методику сообщений о считанной символике, наборе вариантов в устройстве считывания и некоторых встречающихся особенностях данной символики. Идентификатор символики для Code 128 <*>:
--------------------------------
<*> Идентификаторы символики Code 128 установлены в ГОСТ Р 51294.1-99 и [7]
] Cm,
где ] представляет знак версии КОИ-7 с десятичным значением 93;
C - знак кода, присвоенный символике Code 128;
m - значение знака-модификатора в таблице C.1:
Таблица C.1
Эта информация не должна кодироваться в символе штрихового кода, однако она должна генерироваться декодером после декодирования и передаваться как преамбула к сообщению данных.
(рекомендуемое)
Для преобразования значения знака символа (S) к десятичному значению знака версии КОИ-7 или наоборот используют следующие соотношения для кодируемых наборов A и B.
Кодируемый набор A
Если S <= 63, то десятичное значение знака версии КОИ-7 равно S + 32.
Если 64 <= S <= 95, то десятичное значение знака версии КОИ-7 равно S - 64.
Кодируемый набор B
Если S <= 95, то десятичное значение знака версии КОИ-7 равно S + 32.
Результаты значений приведены в таблице 1 настоящего стандарта.
Примечание - Как указано в 4.3.4.2 перечисление d), наличие знака FNC4 дает эффект добавления числа 128 к десятичному значению версии КОИ-7 следующего знака данных или знаков, полученных в соответствии с указанными правилами.
(рекомендуемое)
ДЛЯ МИНИМИЗАЦИИ ДЛИНЫ СИМВОЛА
Одни и те же данные могут быть представлены различными символами Code 128 с помощью различных комбинаций знаков Start, Code и Shift.
Правила минимизации числа знаков символа, необходимых для представления заданной строки данных (и соответственно общей длины символа), обычно должны использоваться в управляющем программном обеспечении печатающего устройства.
1 Определяют знак Start.
1a Если данные состоят из двух цифр, используют знак Start C.
1b Если данные начинаются с четырех или более числовых знаков данных, используют знак Start C.
1c Если управляющий знак версии КОИ-7 (например, NUL*) находится в данных перед любым знаком нижнего регистра, используют знак Start A.
2 Если используют знак Start C и данные начинаются с нечетного количества числовых знаков данных, вставляют знак Code A или Code B перед последней цифрой в соответствии с 1c и 1d для выбора кодируемого набора A или B.
3 Если четыре или более числовых знака данных объединены в наборах A или B:
3a При четном количестве числовых знаков данных вставляют знак Code C перед первым числовым разрядом, чтобы произвести изменение на кодируемый набор C.
3b При нечетном количестве числовых знаков данных вставляют знак Code C непосредственно после первого числового знака, чтобы произвести изменение на кодируемый набор C.
4 Если в данных кодируемого набора B встречается управляющий знак версии КОИ-7:
4a Если после этого знака в данных следует знак в нижнем регистре, за которым стоит другой управляющий знак, вставляют знак Shift перед управляющим знаком.
4b В остальных случаях ставится знак Code A перед управляющим знаком, чтобы произвести изменение на кодируемый набор A.
5 Если в данных кодируемого набора A встречается знак в нижнем регистре:
5a Если в данных после этого знака следует управляющий знак, за которым стоит другой знак в нижнем регистре, вставляют знак Shift перед знаком нижнего регистра.
5b В противном случае вставляют знак Code B перед знаком нижнего регистра, чтобы произвести изменение на кодируемый набор B.
6 Если в данных кодируемого набора C встречается нечисловой знак, вставляют знак Code A или знак Code B перед этим знаком, следуя правилам 1c и 1d для выбора кодируемого набора A или B.
Примечания:
1 Термин "знак нижнего регистра" используют для удобства, и он подразумевает любой знак кодируемого набор B Code 128 со значениями от 64 до 95 (десятичные значения знаков версии КОИ-7 от 96 до 127), то есть для всех сточных букв алфавита, а также { | } ~ DEL. Термин "управляющий знак" означает любой знак из кодируемого набора A Code 128 со значениями от 64 до 95 (значения знаков версии КОИ-7 от 00 до 31).
2 Если знак функциональный код 1 стоит в первой позиции после знака Start или в нечетной позиции внутри числового поля, то для определения соответствующего набора знаков он должен обрабатываться как две цифры.
3 Если данные содержат знаки версии КОИ-8, десятичные значения которых превышают 127, следует вычесть 128 от их десятичных значений для определения соответствующего набора знаков A или B, а также использовать следующие правила: при наличии последовательности от одного до четырех указанных знаков (1 или 2 в конце строки данных) наиболее эффективно предварять каждый из них знаком FNC4; для пяти (3 в конце строки данных) или большего количества указанных знаков более эффективным является переход в версию КОИ-8 с использованием двух знаков FNC4.
(справочное)
В таблице F.1 представлено соответствие знаков второй половины набора 8-битных однобайтовых кодированных знаков по [2] байтам с десятичными значениями от 160 до 255 включительно. Для знаков с десятичными значениями от 128 до 159 включительно отсутствуют графические представления. Это соответствие эквивалентно ячейкам от 160 до 255 в строке-октете со значением 00 (десятичным) для базовой многоязычной плоскости по [8].
В соответствии с 4.3.4.3, d) настоящего стандарта эти знаки могут быть представлены в Code 128 в соединении со знаком FNC4 на основании соотношения
C = (D - 128),
где C - значение знака версии КОИ-7 символа;
D - значение знака данных по таблице F.1.
Так как это дает значения C от 32 до 127, которые соответствуют знакам кодируемого набора B, следующее соотношение также верно, когда применяется к набору знаков B:
S = (D - 160),
где S - значение знака символа по таблице 1 (кодируемый набор B);
D - значение знака данных по таблице F.1.
Таблица F.1
Вторая часть набора знаков по [2]
--------------------------------
<*> Русские обозначения и наименования знаков - в приложении L.
(рекомендуемое)
G.1 Классы качества
Стандарты, регламентирующие требования по применению, должны определять по [5] минимальный класс качества и минимальные значения изменяемых параметров символа, связанных с полным классом символа.
G.2 Показатели размеров
В качестве руководства пользователям нормативный документ, устанавливающий требования по применению, может рекомендовать значение или диапазон значений размера X в соответствии с общими потребностями применения, наличием оборудования нанесения символа и считывающего оборудования. Несоблюдение какого-либо наименьшего размера X измерения само по себе не должно быть причиной для отклонения символа в соответствии с настоящим стандартом.
При ручном сканировании рекомендуется, чтобы наименьший размер Y <*> соответствовал
из значений 5 мм или 15% длины символа.--------------------------------
<*> Y - установленная высота элемента символа Code 128.
Длину L символа Code 128, включая минимальные свободные зоны, рассчитывают по формуле
L = 11X (C + (D/2)) + 22X,
где X - ширина самого узкого элемента;
C - число знаков Start, специальные знаки, контрольный знак символа и знак Stop, а также знаки данных, не включенные в D;
D - число цифровых знаков данных, кодируемых с двойной плотностью (кодируемый набор C).
(рекомендуемое)
РЕКОМЕНДАЦИИ ПО ИСПОЛЬЗОВАНИЮ CODE 128
H.1 Совместимость для автоматического распознавания
Code 128 может читаться соответствующим образом запрограммированными декодерами штрихового кода, которые автоматически отличают его от других символик штрихового кода.
Для повышения надежности считывания действующий набор декодируемых символик штрихового кода должен ограничиваться необходимыми для данного применения.
H.2 Системные рекомендации
Важно, чтобы различные компоненты (принтеры, ярлыки, сканеры), связанные со штриховым кодом, функционировали как единая система. Сбой в работе любого компонента или рассогласование между ними может поставить под угрозу функционирование системы в целом. Характеристики принтера, символа и сканера должны быть согласованы для надлежащего функционирования.
H.3 Рекомендации для печати
Рекомендации для печати Code 128 с использованием пиксельных печатающих устройств применимы ко всем символикам штрихового кода.
H.3.1 Пиксельная печать
Графическое программное обеспечение, используемое для создания штриховых кодов на пиксельных печатающих устройствах, должно масштабировать каждый штрих и пробел пропорционально пиксельному разрешению используемого печатающего устройства. Для декодирования символик штрихового кода, основанных на принципе "от края до подобного края", таких как Code 128, число пикселей, включаемых в каждый знак символа, должно быть фиксированным целым числом, кратным числу модулей в знаке символа. В Code 128 для знаков символа со значениями от 0 до 105 число модулей - 11, а для знака Stop - 13. Поэтому конкретные печатающие устройства могут наносить только определенный набор размеров X.
Приращение (или сокращение) ширины одного штриха должно быть пропорционально компенсировано во всех штрихах и пробелах символа. Это может быть выполнено изменением целого числа пикселей от темного к светлому или от светлого к темному в равной степени для каждой пары штрихов и пробелов в символе и для последнего штриха символа. Например все темные пиксели с одного края каждого штриха в символе могли быть заменены на светлые, или темные пиксели по обоим краям каждого штриха в символе могли быть заменены на светлые при условии удовлетворительного разрешения печатающего устройства. Приемлемая замена любого набора темных пикселей на светлые или светлых на темные обеспечивается последовательным ее выполнением по всему символу без изменения размеров от края до подобного края или полной ширины знака символа. Невыполнение этих принципов приводит к снижению качества символа и часто имеет результатом несчитывание символов.
Программное обеспечение общего назначения для печати, предназначенное для поддержки широкого диапазона печатающих устройств, должно обеспечивать пользователю возможность настройки размера X и приращения или сокращения ширины штриха.
Пример программирования
В файлах цифрового изображения штрихового кода указанные принципы могут быть сведены к следующим правилам:
1. Преобразование ожидаемого увеличения или размера X измерения к размеру модуля в виде числа пикселей, округленного до ближайшего целого числа.
2. Определение числа пикселей, соответствующих требуемой компенсации для единообразного приращения ширины штриха и округление до ближайшего большего целого числа.
3. Применение указанных результатов для определения числа пикселей каждого штриха и пробела в символе.
ПРИМЕР:
При использовании файлов цифрового изображения штрихового кода в печатающих устройствах с 24 пикселями на 1 мм следует воспроизвести в символе размер X - 0,27 мм с последующим сокращением ширины штриха до 0,06 мм.
Размер модуля - 24 точки/мм·0,27 мм/модуль = 6,5 пикселей, который округляется до 6 пикселей на модуль.
Компенсация приращения штриха - 0,06 мм·24 пикселя/мм = 1,4 пикселя, которая округляется до 2 пикселей.
В результате этого процесса штрихи и пробелы имеют следующее число пикселей, приведенное в таблице H.1.
Таблица H.1
ширины штриха
H.3.2 Руководство для пользователей программного обеспечения для пиксельной печати
При первоначальной печати символа в системе печати, состоящей из программного обеспечения для печати штрихового кода и печатающего устройства, пользователь должен проверить согласно [5], что напечатанный символ соответствует требуемому классу качества печати и размеру X. Если в результате символ не достиг требуемого класса качества, пользователь может увеличить размер X или изменить приращение или сокращение ширины штриха. Если размер X увеличен, пользователь должен проверить обеспечение минимальных свободных зон. Может потребоваться повторение этого процесса, пока не будет достигнут требуемый класс качества символа. Не все системы печати способны создавать приемлемые символы с малыми значениями X.
H.3.3 Рекомендации по управлению процессом
Для управления процессом необходимо оценить среднее приращение или сокращение ширины штриха и выполнить соответствующие действия по их исправлению. На параметр декодируемости, измеренный в соответствии с [5], воздействует как систематическое приращение или сокращение ширины штриха, так и изменения размеров от края до подобного края.
(справочное)
Наименования и адреса организаций нумерации в системе UCC/EAN, действующих в странах - членах Межгосударственного Совета по стандартизации, метрологии и сертификации на момент принятия настоящего стандарта, приведены в таблице J.1.
Таблица J.1
в странах - членах МГС
(справочное)
(ЛАТИНСКИЙ/КИРИЛЛОВСКИЙ АЛФАВИТЫ)
В связи с тем, что в настоящее время отсутствуют завершенные международные рекомендации по кодированию в Code 128 букв алфавитов, отличных от латинского, для кодирования данных с буквами кирилловского алфавита в рамках замкнутых систем может быть использована вторая половина набора 8-битных однобайтных кодированных знаков по [9].
В таблице K.1 представлено соответствие знаков этого набора байтам с десятичными значениями от 160 до 255 включительно.
В соответствии с 4.3.4.3, d) настоящего стандарта эти знаки могут быть представлены в Code 128 в соединении со знаком ФНК4 (FNC4) на основании соотношений
C = (D - 128),
где C - значение знака версии КОИ-7 символа;
D - значение знака данных по таблице K.1.
Так как это дает значения C в диапазоне от 32 до 127, которые соответствуют знакам кодируемого набора B, следующие отношения также верны, когда применяются к набору знаков B
S = (D - 160),
где S - значение знака символа по таблице 1 (кодируемый набор B);
D - значение знака данных по таблице K.1.
Таблица K.1
Вторая часть набора знаков по [9]
(справочное)
И СПЕЦИАЛЬНЫХ ГРАФИЧЕСКИХ ЗНАКОВ
В таблице L.1 приведено соответствие международных и русских наименований и обозначений вспомогательных знаков, приведенных в настоящем стандарте.
Таблица L.1
и обозначений вспомогательных знаков
В таблице L.2 приведено соответствие международных и русских наименований и обозначений управляющих знаков, указанных в настоящем стандарте.
Таблица L.2
и обозначений управляющих знаков
В таблице L.3 приведено соответствие международных и русских наименований специальных графических знаков, указанных в настоящем стандарте.
Таблица L.3
специальных графических знаков
(справочное)
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost_gosudarstvennyj-standart/55/gost_40555.html
На правах рекламы:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||