Codigo 93 -
Code 93
J. Ignacio
Ulacia F. (18.5.1994 rev
9.11.2005)
Una simbologia de alta
densidad es el codigo 93. Fue introducida
en 1982 por Intermec para ser un
complemento del codigo 39 para
aplicaciones de espacio reducido. Con este
codigo de barras es posible incluir mayor
informacion por unidad de area. Se usa en
aplicaciones muy especificas dentro de
empresas, en algunos titulos de credito y
lugares donde se requiere de
seguridad.
Codificacion
El codigo 39 en un
codigo de barras unidimensional
alfanumerico de longitud variable. Cada
codigo esta compuesto por 9 modulos con
tres barras negras y tres barras blancas.
Cada digito empieza con una barra negra y
termina con una barra blanca. Se pueden
codificar 47 caracteres. Debido a la
similitud del codigo 39 esta simbologia
esta diseñado para codificar las 26
letras mayusculas
(ABCDEFGHIJKLMNOPQRSTUVWXYZ), 10 digitos
(0123456789) y siete caracteres especiales
(-.$/+% espacio) ademas de codigos circulo
para incluir todos los caracteres ASCII.
Los separadores de inicio y fin son los
mismos solo que el del final incluye una
barra adicional (1111411).
La siguiente Tabla
muestra la codificacion
completa.
|
Caracter
|
Codificacion
|
Check
|
|
Caracter
|
Codificacion
|
Check
|
|
0
|
131112
|
0
|
O
|
121122
|
24
|
|
1
|
111213
|
1
|
P
|
131121
|
25
|
|
2
|
111312
|
2
|
Q
|
212112
|
26
|
|
3
|
111411
|
3
|
R
|
212211
|
27
|
|
4
|
121113
|
4
|
S
|
211122
|
28
|
|
5
|
121212
|
5
|
T
|
211221
|
29
|
|
6
|
121311
|
6
|
U
|
221121
|
30
|
|
7
|
111114
|
7
|
V
|
222111
|
31
|
|
8
|
131211
|
8
|
W
|
112122
|
32
|
|
9
|
141111
|
9
|
X
|
112221
|
33
|
|
A
|
211113
|
10
|
Y
|
122121
|
34
|
|
B
|
211212
|
11
|
Z
|
123111
|
35
|
|
C
|
211311
|
12
|
-
(Menos)
|
121131
|
36
|
|
D
|
221112
|
13
|
(Punto)
|
311112
|
37
|
|
E
|
221211
|
14
|
Espacio
|
311211
|
38
|
|
F
|
231111
|
15
|
$
(USD)
|
321111
|
39
|
|
G
|
112113
|
16
|
/
(Diagonal)
|
112131
|
40
|
|
H
|
112212
|
17
|
+
(Mas)
|
113121
|
41
|
|
I
|
112311
|
18
|
% (Por
Ciento)
|
211131
|
42
|
|
J
|
122112
|
19
|
O$ (O
USD)
|
121221
|
43
|
|
K
|
132111
|
20
|
O% (O
Por Ciento)
|
312111
|
44
|
|
L
|
111123
|
21
|
O/ (O
Diagonal)
|
311121
|
45
|
|
M
|
111222
|
22
|
|
O+ (O
Mas)
|
122211
|
46
|
|
N
|
111321
|
23
|
|
Separador
|
111141(1)
|
|
Tabla 1: Codificacion
de los caracteres del Codigo 93. Debido a
que esta simbologia tiene barras de
diferentes anchos la primera posicion
significa que es una barra negra con la
cantidad de modulos descritos, la segunda
blanca, la tercera negra y asi
sucesivamente. A continuacion se encuentra
la representacion de la letra
"P".
Cada caracter esta
representado con tres barras y tres
espacios teniendo un total de nueve
modulos. Las barras o espacios pueden ser
de distintos anchos. Tipicamente la barra
mas angosta tiene una dimension de 10 mils
(10 milesimos de pulgada). La minima
dimension de la barra angosta (x) puede
ser de 7.5 mils.
Digito
Verificador
Aunque el codigo 93 no
se autoverifica, puede ser de alta
seguridad ya que puede incluir dos digitos
verificadores en modulo 47, los "C" y "K".
Estos caracteres no se imprimen, ni son
transmitidos por los lectores de codigo de
barras. Debido a esta facilidad se pueden
incluir conjuntamente con codigos 39
indistintamente en una
aplicacion.
El digito verificador
"C" se calcula con la suma de los
valores numericos de la Tabla 1
aplicandoles un factor de peso de
Izquierda a Derecha 1,2,3,4...19,20,1,2...
y dividiendolos entre 47, el residuo
determina el caracter
correspondiente.
El digito verificador
"K" se calcula con la suma de los
valores numericos de la Tabla 1
aplicandoles un factor de peso de Derecha
a Izquierda 1,2,3,4...19,20,1,2...y
dividiendolos entre 47, el residuo
determina el caracter
correspondiente.
Por ejemplo, Para la
Palabra POSLINE se calculan
C =
mod[(25x1 + 24x2 + 28x3 + 21x4 + 18x5
+ 23x6 + 14x7)/47] = mod(567/47)
--->
residuo = 3 ---> Letra "C"
K =
mod[(25x7 + 24x6 + 28x5 + 21x4 + 18x3
+ 23x2 + 14x1)/47] = mod(657/47)
--->
residuo = 46 ---> Letra
"O+"
Impresion del
Codigo
Un codigo 93 debe tener
los siguientes elementos
- Zona Muda - antes
del codigo tiene que haber un espacio
en blanco sin impresion donde los
lectores determinan el inicio de un
codigo. Esta zona corresponde a 10
veces el ancho de una barra
delgada.
- Separador de inicio
- Es el simbolo (111141)
- Informacion a
codificar
- Digito verificador
C - en caso de que se
utilice.
- Digito verificador
K - en caso de que se
utilice.
- Separador de inicio
- Es el simbolo (1111411)
- Zona muda - igual
que la anterior.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P
|
O
|
S
|
L
|
I
|
N
|
E
|
C
|
O+
|
|
|
Sp
Ini
|
|
Ck
"C"
|
Ck
"K"
|
Sp
Fin
|
La altura de un codigo
debe ser igual al 15% de su longitud o
0.25 pulgadas, el que sea
mayor.
Concatenacion de mensajes
El codigo 93 permite el
concatenar mensajes cuando el primer
caracter es igual a ESPACIO. El lector
agrega la informacion a lo que tiene en su
buffer eliminando el espacio, para
transmitirla al final del mensaje. Esta
funcion es bastante util cuando se tienen
mensaje muy largos.
Cuando lector de codigo
de barras detecta un mensaje que empieza
con un ESPACIO, guarda el mensaje sin el
espacio en su buffer y sin transmitirlo.
Sigue este proceso hasta que detecta un
mensaje sin espacio. Entonces agrega el
ultimo mensaje al buffer y transmite toda
la informacion, limpiando el buffer.
Codificacion ASCII
Aunque el Code 39 solo
tiene 43 caracteres, es posible codificar
los 128 caracteres ASCII usando una
combinacion de dos caracteres. Es
importante mencionar que para usar esta
tabla hay que programar el lector de
codigo de barras a que identifique el par
de codigos; de lo contrario el lector
interpretara los caracteres tal como se
escribieron.
|
ASCII
|
C39
|
|
ASCII
|
C39
|
|
ASCII
|
C39
|
|
ASCII
|
C39
|
|
NUL
|
O%
U
|
SP
|
Space
|
@
|
O%
V
|
|
O%
W
|
|
SOH
|
O$
A
|
!
|
O/
A
|
A
|
A
|
a
|
O+
A
|
|
STX
|
O$
B
|
"
|
O/
B
|
B
|
B
|
b
|
O+
B
|
|
ETX
|
O$
C
|
#
|
O/
C
|
C
|
C
|
c
|
O+
C
|
|
EOT
|
O$
D
|
$
|
$
|
D
|
D
|
d
|
O+
D
|
|
ENQ
|
O$
E
|
%
|
%
|
E
|
E
|
e
|
O+
E
|
|
ACK
|
O$
F
|
&
|
O/
F
|
F
|
F
|
f
|
O+
F
|
|
BEL
|
O$
G
|
!
|
O/
G
|
G
|
G
|
g
|
O+
G
|
|
BS
|
O$
H
|
(
|
O/
H
|
H
|
H
|
h
|
O+
H
|
|
HT
|
O$
I
|
)
|
O/
I
|
I
|
I
|
i
|
O+
I
|
|
LF
|
O$
J
|
*
|
O/
J
|
J
|
J
|
j
|
O+
J
|
|
VT
|
O$
K
|
+
|
+
|
K
|
K
|
k
|
O+
K
|
|
FF
|
O$
L
|
'
|
O/
L
|
L
|
L
|
l
|
O+
L
|
|
CR
|
O$
M
|
-
|
-
|
M
|
M
|
m
|
O+
M
|
|
SO
|
O$
N
|
.
|
.
|
N
|
N
|
n
|
O+
N
|
|
SI
|
O$
O
|
/
|
/
|
O
|
O
|
o
|
O+
O
|
|
DLE
|
O$
P
|
0
|
0
|
P
|
P
|
p
|
O+
P
|
|
DC1
|
O$
Q
|
1
|
1
|
Q
|
Q
|
q
|
O+
Q
|
|
DC2
|
O$
R
|
2
|
2
|
R
|
R
|
r
|
O+
R
|
|
DC3
|
O$
S
|
3
|
3
|
S
|
S
|
s
|
O+
S
|
|
DC4
|
O$
T
|
4
|
4
|
T
|
T
|
t
|
O+
T
|
|
NAK
|
O$
U
|
5
|
5
|
U
|
U
|
u
|
O+
U
|
|
SYN
|
O$
V
|
6
|
6
|
V
|
V
|
v
|
O+
V
|
|
ETB
|
O$
W
|
7
|
7
|
W
|
W
|
w
|
O+
W
|
|
CAN
|
O$
X
|
8
|
8
|
X
|
X
|
x
|
O+
X
|
|
EM
|
O$
Y
|
9
|
9
|
Y
|
Y
|
y
|
O+
Y
|
|
SUB
|
O$
Z
|
:
|
O/
Z
|
Z
|
Z
|
z
|
O+
Z
|
|
ESC
|
O%
A
|
;
|
O%
F
|
[
|
O%
K
|
{
|
O%
P
|
|
FS
|
O%
B
|
<
|
O%
G
|
\
|
O%
L
|
|
|
O%
Q
|
|
GS
|
O%
C
|
=
|
O%
H
|
]
|
O%
M
|
}
|
O%
R
|
|
RS
|
O%
D
|
>
|
O%
I
|
^
|
O%
N
|
|
O%
S
|
|
US
|
O%
E
|
?
|
O%
J
|
_
|
O%
O
|
DEL
|
O%
T
|
|