Примечания
1 .Знак start/stop (СТАРТ/СТОП) обозначен в графе “Знак” как S/S, может быть представлен как знак «*» | 2. В таблице Ш обозначает штрих, П - пробел. 0 обозначает узкий элемент, а 1 - широкий элемент.
3. Русские и международные наименования знаков $ / + % * приведены в приложении F.
рекомендуемая наименьшая высота штрихового кода для ручного сканирования: большее из значений 5,0 мм или 15 % длины символа, исключая свободные зоны.
Примечание— Длину W, мм, символа Code 39, включая свободные зоны, вычисляют по формуле W= (С + 2) (3 N + 6) Х+ (С + 1) 7+2 Q,
где
С — количество знаков данных (включая контрольный знак, если его используют);
N — отношение широкого элемента к узкому;
X — ширина узкого элемента, мм;
/ — ширина межзнакового интервала, мм;
Q — ширина свободной зоны, мм.
4.5 Рекомендуемый алгоритм декодирования
Системы считывания штриховых кодов на основе соответствующих алгоритмов декодирования позволяют считывать несовершенные символы Code 39. Для расчета значения декодируемости [3] используют следующий рекомендуемый алгоритм декодирования:
подтверждают наличие начальной свободной зоны;
для каждого знака символа, включая знаки Start (СТАРТ) и Stop (СТОП):
измеряют совокупную ширину пяти штрихов и четырех пробелов (5Д
вычисляют пороговое значение Т = S / 8;
сравнивают ширину каждого элемента этого знака со значением Т. Если ширина элемента превышает Т, то элемент считают широким; в противном случае — узким элементом;
определяют, соответствует ли комбинация широких и узких элементов действительному знаку из допустимого набора;
первый считанный знак символа должен быть знаком Start/Stop (СТАРТ/СТОП), по нему определяют направление считывания;
продолжают считывание знаков до тех пор, пока не будет обнаружен действительный знак Start/Stop (СТАРТ/СТОП);
подтверждают наличие конечной свободной зоны.
4.6 Параметры, определяемые применением
В стандартах, регламентирующих требования по применению, должны быть установлены параметры символов Code 39 в соответствии с настоящим стандартом, а также указанные в 4.6.1—4.6.3.
Параметры символики и размеры
Для осуществления печати и считывания символа Code 39 в конкретном применении должны быть заданы следующие параметры символики и размеры:
конкретный набор кодируемых знаков;
число знаков данных в символе. Число знаков может быть фиксированным, переменным, или переменным до заданного максимального значения;
сведения о том, применяется ли контрольный знак символа по модулю 43 (согласно А.1) и должен ли он передаваться декодером;
сведения о том, применяется ли контрольный знак данных. В случае применения контрольного знака данных должен быть приведен алгоритм его расчета;
диапазон значений для размера X;
диапазон значений отношения широкого элемента к узкому;
межзнаковый интервал;
наименьшая допустимая высота штрихового кода.
Примечания:
В рамках конкретных применений при необходимости повышения надежности считывания данных следует использовать контрольный знак символа.
Для увеличения надежности считывания отношение широкого элемента к узкому должно быть возможно большим в пределах диапазона, определяемого по 4.4, перечисление Ь).
В конкретных применениях, при необходимости, учитывают рекомендации приложения В.
Пример параметров, определяемых применением, приведен в приложении D.Требования к оптическим параметрам
Для обеспечения надежного считывания символов штрихового кода в конкретном применении необходимо задать оптические параметры. Выбранные параметры должны быть указаны в стандартах, регламентирующих применение, и учитывать:
длину волны устройства считывания;
ширину спектральной линии, с которой должны быть согласованы символ и устройство считывания;
размер светового пятна устройства считывания;
параметры отражения от штрихов и пробелов;
условия, при которых следует проводить оптические измерения;
допустимые погрешности в символе штрихового кода.
Пример оптических параметров, определяемых применением, приведен в приложении D.
Требования к испытаниям
Для оценки соответствия требованиям настоящего стандарта символ испытывают в соответствии с требованиями испытаний [3], устанавливающими методы определения полного класса качества на основе свойств символа штрихового кода. Класс определяют следующим образом:
1,5/10/660
1,5 — полный класс качества символа;
10 — ссылочный номер измерительной апертуры (в настоящем примере диаметр 0,25 мм);
660 — длина волны в спектральном максимуме интенсивности отраженного излучения, нм.
В соответствии с [3] в спецификации символики допускается устанавливать также критерий в виде отношения числа успешных считываний к числу отказов декодирования. Для Code39 дополнительные критерии приведены в 4.6.3.1—4.6.3.3. Любому профилю отражения при сканировании, которые не соответствуют этим требованиям, должен быть присвоен класс 0.
Примечание — В 4.6.3.1—4.6.3.3 требования основаны на действительных, а не на теоретических измерениях параметров; по этой причине размер Z присваивают иначе, чем размеры X.
Отношение широкого элемента к узкому
Номинальное значение N при печати символов устанавливают от 2,0 до 3,0 включительно. Измеренное значение N в любых профилях отражения при сканировании должно быть от 1,8 до 3,4 включительно.
Межзнаковый интервал
Для символов с измеренной шириной узкого элемента (Z) менее 0,287 мм наибольший межзнаковый интервал равен 5,3 Z. Для символов с Z, превышающим или равным 0,287 мм, наибольший межзнаковый интервал должен быть не менее 3 Z или 1,52 мм.
Свободная зона
Свободная зона с каждого конца символа должна быть не менее 10 Z.
ПРИЛОЖЕНИЕ А
(рекомендуемое)
Дополнительные показатели
А.1 Контрольный знак
А.1.1 Контрольный знак символа Code 39
В конкретных применениях при необходимости повышенной надежности данных следует использовать контрольный знак символа, располагаемый непосредственно за последним знаком данных и перед знаком Stop (СТОП). Введение контрольного знака символа должно быть предусмотрено в стандарте, регламентирующем требования по применению. В этом случае должен использоваться следующий алгоритм расчета контрольного знака символа:
каждому знаку данных присваивают числовое значение в соответствии с таблицей А.1;
суммируют значения всех знаков данных символа Code 39;
сумму делят на 43;
в качестве контрольного знака символа используют знак, значение которого в таблице А.1 равно остатку от деления результата действия в соответствии с перечислением с)
.Таблица А.1. — Значения знаков для проверки символа по модулю 43
Знак |
Значение |
0 |
0 |
1 |
1 |
2 |
2 |
3 |
3 |
4 |
4 |
5 |
5 |
6 |
6 |
7 |
7 |
8 |
8 |
9 |
9 |
|
|
Знак |
Значение |
А |
10 |
В |
11 |
C |
12 |
D |
13 |
E |
14 |
F |
15 |
G |
16 |
Н |
17 |
I |
18 |
J |
19 |
К |
20 |
Знак |
Значение |
L |
21 |
М |
22 |
N |
23 |
O |
24 |
Р |
25 |
Q |
26 |
R |
27 |
S |
28 |
т |
29 |
и |
30 |
V |
31 |
Знак |
Значение |
W |
32 |
X |
33 |
Y |
34 |
Z |
35 |
- |
36 |
. |
37 |
ПРОБЕЛ |
38 |
$ |
39 |
/ |
40 |
+ |
41 |
% |
42 |
Контрольный знак символа по модулю 43 может передаваться декодером.
Пример: расчет контрольного знака символа для данных CODE 39:
Знаки данных |
C |
O |
D |
E |
ПРОБЕЛ |
3 |
9 |
|||||
Значения знаков |
12 |
24 |
13 |
14 |
38 |
3 |
9 |
|||||
Сумма значений |
113 |
|
|
|
|
|
||||||
Деление на 43 |
|
113/43 |
= 2 |
остаток 27 |
|
|
||||||
Значение 27 соответствует знаку |
R |
|
|
|
|
|
|
|||||
Данные с контрольным знаком |
C |
O |
D |
E |
ПРОБЕЛ |
3 |
9 R |
А.1.2 Контрольный знак данных
Контрольный знак по модулю 43 может быть использован как контрольный знак данных, если он передается декодером.
Для вычисления контрольного знака данных в качестве альтернативы алгоритму [4] может быть использован иной алгоритм при условии, что в программном обеспечении, используемом для создания символа и обработки сообщений, заложен его расчет и верификация. Контрольный знак данных размещают последним в строке данных. Он должен передаваться декодером.
А.2 Визуальное представление
Знаки данных визуального представления Code 39 (включая контрольный знак символа в случае его использования), как правило, печатают вместе со штриховым кодом. Допускается печать знака Start/Stop (СТАРТ/СТОП). Размеры и гарнитура шрифта не регламентированы. Знаки визуального представления символа могут быть напечатаны в любом месте рядом с символом штрихового кода, но без перекрытия свободных зон.
А.З Необязательные режимы передачи данных
В случае специального применения декодеры могут быть запрограммированы на нестандартную обработку символов Code 39 по трем следующим схемам:
версия кодированных знаков КОИ-7 (А.3.1),
соединение информации (А.3.2),
управляющие функции (А.3.3).
Поскольку эти схемы предполагают специальное программирование декодера, эти режимы не рекомендуются для общего применения, так как это может привести к путанице с обычными символами Code 39.
А.3.1 Версия кодированных знаков КОИ-7
Полный набор 128 знаков версии КОИ-7 [2] может быть закодирован комбинациями, состоящими из двух знаков символа Code 39. Первым в комбинации должен быть один из четырех знаков ($ + % /), вторым — один из 26 алфавитных знаков. Эти комбинации представлены в таблице А.2. Если декодер запрограммирован на обработку версии КОИ-7, то передаче подлежат только знаки КОИ-7, соответствующие комбинациям знаков символа, а сами значения знаков в комбинации не передаются
.
Таблица А.2 — Кодирование версии КОИ-7 в Code 39 (Код 39)
Знаки КОИ-7 |
Комбинация |
|
Знаки КОИ-7 |
|
Комбинация |
|
Знаки КОИ-7 |
Комбинация |
|
Знаки КОИ-7 |
Комбинация |
NUL (ПУС) |
%U |
|
БР(ПР) |
|
ПРОБЕЛ |
|
@ |
%V |
|
X |
%w |
SOH (НЗ) |
$A |
|
! |
|
/A |
|
A |
A |
|
a |
+A |
STX (НТ) |
$B |
|
« |
|
/B |
|
B |
B |
|
b |
+B |
ETX (КТ) |
$C |
|
# |
|
/C |
|
C |
C |
|
c |
+C |
EOT (ЕОТ) |
$D |
|
$ |
|
/D |
|
D |
D |
|
d |
+D |
ENQ (КТМ) |
$E |
|
% |
|
/E |
|
E |
E |
|
e |
+E |
ACK (ДА) |
$F |
|
& |
|
/F |
|
F |
F |
|
f |
+F |
BEL (ЗВ) |
$G |
|
|
|
/G |
|
G |
G |
|
g |
+G |
BS (ВШ) |
$H |
|
( |
|
/H |
|
H |
H |
|
h |
+H |
HT (ГТ) |
$I |
|
) |
|
/I |
|
I |
I |
|
і |
+I |
LF (ПС) |
$J |
|
* |
|
/J |
|
J |
J |
|
j |
+J |
VT (ВТ) |
$K |
|
+ |
|
/K |
|
K |
K |
|
k |
+K |
FF (ПФ) |
$L |
|
, |
|
/L |
|
L |
L |
|
1 |
+L |
CR (ВК) |
$M |
|
- |
|
- |
|
M |
M |
|
m |
+M |
SO (ВЫХ) |
$N |
|
. |
|
|
|
N |
N |
|
n |
+N |
SI (ВХ) |
$O |
|
/ |
|
/O |
|
O |
O |
|
o |
+O |
DLE (АРІ) |
$P |
|
0 |
|
0 |
|
P |
P |
|
p |
+P |
DC1 (СУІ) |
$Q |
|
І |
|
І |
|
Q |
Q |
|
q |
+Q |
DC2 (СУ2) |
$R |
|
2 |
|
2 |
|
R |
R |
|
r |
+R |
DC3 (СУ3) |
$S |
|
3 |
|
3 |
|
S |
S |
|
s |
+S |
DC4 (СУ4) |
$T |
|
4 |
|
4 |
|
T |
T |
|
t |
+T |
NAK (НЕТ) |
$U |
|
5 |
|
5 |
|
U |
U |
|
u |
+U |
SYN (СИН) |
$V |
|
6 |
|
6 |
|
V |
V |
|
V |
+V |
ETB (КБ) |
$w |
|
7 |
|
7 |
|
w |
w |
|
w |
+w |
CAN (АН) |
$X |
|
8 |
|
8 |
|
X |
X |
|
X |
+X |
EM (КН) |
$Y |
|
9 |
|
9 |
|
Y |
Y |
|
У |
+Y |
SUB (ЗМ) |
$Z |
|
|
|
/Z |
|
Z |
Z |
|
z |
+Z |
ESC (АР2) |
%A |
|
; |
|
%F |
|
[ |
%K |
|
{ |
%P |
FS (РИ4) |
%B |
|
< |
|
%G |
|
%L |
|
1 |
%Q |
|
GS (РИ3) |
%C |
|
= |
|
%H |
|
] |
%M |
|
} |
%R |
RS (РИ2) |
%D |
|
> |
|
%I |
|
л |
%N |
|
|
%S |
Ш(РШ) |
%E |
|
? |
|
%J |
|
_ |
%O |
|
DEL (ЗБ) |
%T или %Х или %Y или %Z |