Clasificación de Productos
Clasificación de Productos
Clasificación de Productos
1 IDENTIFICACIÓN Y CLASIFICACIÓN
La identificación precisa de los materiales y productos (materias primas, materiales en
curso de elaboración, piezas, conjuntos, productos terminados) a lo largo de los procesos de
producción y logísticos es esencial para una eficaz gestión de los mismos. También es
necesario a veces identificar objetos no materiales como, por ejemplo, una categoría de
artículos.
El objeto que se quiere identificar es lo que se llama en forma genérica una entidad. Una
entidad puede ser:
• Física. Un objeto tangible, material. En particular, es un objeto al que se puede fijar un
elemento portador de datos, como un código de barras o una etiqueta de identificación
electrónica, por ejemplo.
• Abstracta. Un objeto intangible. Por ejemplo, una caja individual de 10 unidades de un
determinado producto es una entidad física, un palé de 100 de esas cajas es otra entidad
física (distinta de la anterior), pero la clase o categoría “cajas de 10 unidades” de ese
producto no es física sino abstracta.
La identificación de las entidades se realiza a partir de atributos que las caracterizan. Un
atributo es una propiedad o cualidad de la entidad. La información sobre la entidad está dada
por los valores de sus atributos. Un atributo puede ser reconocido si se puede construir una
oración de la siguiente forma: “El <nombre del atributo> de <entidad> es <valor del
atributo>”. Por ejemplo, “El peso de la barra es de 50 Kg” La barra es la entidad, el peso el
atributo y 50 Kg el valor del atributo.
Los atributos se pueden clasificar sobre la base de la frecuencia con que cambian sus
valores.
• Atributos estáticos. Atributos cuyos valores no cambian a lo largo de la vida de la
entidad.
• Atributo cuasi estáticos. Atributos cuyos valores cambian infrecuentemente en la vida de
la entidad (por ej., el estado civil de las personas).
• Atributos dinámicos. Atributos cuyos valores cambian frecuentemente (por ej., la
cantidad en existencia de un artículo).
Por otra parte los atributos se clasifican también por el tipo de información que contienen.
La información puede ser:
• De control. Es la información que permite controlar un grupo particular de entidades,
aplicar determinadas políticas a las mismas y proporcionar más detalles de ellas. Por
ejemplo: el número de identificación de un artículo; el tipo de artículo (fabricado,
*
Profesor Titular y Director del Departamento de Optimización y Control. Escuela de Ingeniería Industrial.
Facultad de Ciencias Exactas, Ingeniería y Agrimensura. Universidad Nacional de Rosario. Prohibida su
reproducción sin autorización del autor. 2012.
1
comprado, materia prima, etc.); la línea comercial a la que pertenece; la familia a la que
pertenece (por proceso de producción, por diseño, por manejo de las existencias, etc.); etc.
• Descriptiva. Información complementaria, que amplía la descripción de la entidad. Por
ejemplo: el nombre del artículo; el material; las medidas y las unidades de medida; el
precio; etc.
• De estado. Información que indica ciertas condiciones de la entidad. Por ejemplo: la
cantidad en existencia, la pedida, la comprometida para entregar; la cantidad en control de
la calidad; etc.
• De política. Información sobre las políticas de la empresa respecto de una entidad en
particular. Por ejemplo: producción por pedido; hasta agotar existencias; punto de pedido;
tamaño del lote; etc.
Los sistemas de información se refieren a una entidad específica mediante una clave. Una
clave es un atributo (o grupo de atributos) de una entidad que sirve para identificarla
unívocamente, dentro de algún dominio especificado de entidades. Las claves pueden ser:
• Clave simple. Un único atributo es suficiente como clave (por ej., el N° de DNI para las
personas).
• Clave compuesta. Cuando se necesitan dos o más atributos para identificar la entidad,
porque ninguno solo puede hacerlo (por ej., el “nombre de ciudad” puede repetirse en el
país y por lo tanto no puede ser clave para la entidad “ciudades”, pero sí puede serlo el par
de atributos “nombre de cuidad” y “provincia”.
Para que pueda ser utilizado como clave el atributo (o grupo de atributos) debe satisfacer
ciertas propiedades:
• Unicidad. Un dado valor de la clave debe corresponder a una y solo una entidad dentro del
dominio especificado; dos entidades diferentes dentro del domino tienen diferentes valores
de sus claves.
• Completitud. Existe un valor de la clave para cada entidad dentro del dominio
especificado.
• Persistencia. El mismo valor de la clave identifica una dada entidad a lo largo de toda su
vida. Esto implica que una clave es siempre un atributo estático.
Una entidad puede tener más de un atributo (o grupo de atributos) que satisfagan las
propiedades enunciadas para ser claves. En ese caso se debe elegir el atributo (o grupo) que se
utilizará como clave, que se llama clave primaria.
Por otra parte, en muchas aplicaciones ninguno de los atributos (o conjunto de atributos) de
la entidad reúne las condiciones necesarias para ser clave. En este caso la clave es creada o
asignada, es decir, es un atributo (o conjunto de atributos) que se agrega a la entidad. En esta
situación hay libertad para diseñar las claves de manera tal que satisfagan los requerimientos
para la identificación de las entidades y las de los sistemas de información.
Es interesante observar, además, que una entidad puede tener atributos que no reúnen las
condiciones para ser claves pero que son claves de otras entidades. Por ejemplo, en la entidad
“Personal” de una empresa, el atributo “Departamento” tiene un valor numérico (el N° de
departamento) que evidentemente no puede ser clave de esa entidad, pero es la clave de la
entidad “Departamentos” de la empresa.
Las claves son llamadas también códigos, concepto que precisaremos luego.
2 Clasificación y Codificación de Productos. 2012 R. Morán.
Ejemplo 1
La información sobre un artículo (la entidad) podría estar expresada como:
17580 Barra de acero SAE 1050, diámetro 10 mm, largo 6 m, importada, existencia 20
unidades, utilizar hasta agotar stock,…
Esta información se puede pensar como un registro genérico, independientemente de la
forma de tratamiento en las bases de datos, donde se muestran los atributos y sus valores para
el artículo considerado (Figura 1).
Figura 1
Es claro que algunos atributos son estáticos como, por ejemplo, los atributos de control o
de descripción (el origen, el material, el diámetro, etc.). Si cambian los valores de estos
atributos se trata de otra entidad y debe tener otra clave. Otros son dinámicos, como el estado
(la cantidad en existencia) o un dato de política (el uso). Estos atributos pueden cambiar de
valores sin que cambie la entidad.
La clasificación es el agrupamiento sistemático de las entidades en clases definidas a partir
de características comunes. Por ejemplo, para los artículos una clasificación podría ser por
tipo de material (todos los artículos de Acero SAE 1050 constituirían una clase); otra
clasificación podría ser por tipo de política de utilización (los artículos declarados de
utilización hasta agotar stock constituirían una clase); etc. Cabe observar que es frecuente
encontrar el término clasificación utilizado para referirse tanto al proceso de identificación
como al posterior agrupamiento en clases, sin embargo son dos conceptos diferentes.
Los objetivos básicos de la identificación y clasificación son:
1. Individualizar unívocamente las entidades.
2. Facilitar la búsqueda, individual o por clases, de las entidades dentro del conjunto total de
ellas (dominio).
3. Permitir las permanentes reclasificaciones, por distintos criterios, que son necesarias
durante los procesos por los que pasa la entidad.
Para lograr estos objetivos se requiere un sistema de clasificación adecuado. Un ejemplo
de sistema de clasificación ampliamente conocido es la Clasificación Decimal Universal
(CDU), utilizada para la clasificación de libros en bibliotecas. Más delante veremos sistemas
de clasificación de aplicación en producción y logística.
Un buen sistema de clasificación debe cumplir con los siguientes requisitos básicos:
2 CODIFICACIÓN
¿Por qué es necesaria la codificación? El lenguaje corriente permite establecer una
correspondencia entre las entidades y sus atributos y las expresiones usuales. Pero esta
correspondencia no es siempre de empleo cómodo:
• Un concepto puede ser designado por varias expresiones diferentes.
• Una misma expresión puede dar lugar a varias interpretaciones.
• El lenguaje corriente es a menudo difuso.
La codificación suple estas insuficiencias del lenguaje corriente:
• Los códigos son concisos.
• Los códigos son precisos: a una entidad le corresponde un único código, a un código le
corresponde una única entidad (o ninguna si el código está vacante).
• La codificación y decodificación son seguras.
Retomemos el Ejemplo 1. Si bien el artículo ya está identificado por una clave (su número
de pieza), los valores de varios atributos están expresados en forma de texto, lo que puede
causar dificultades. Así por ejemplo, si se quiere clasificar los artículos por tipo de material la
expresión “Acero SAE 1050” es clara para el lenguaje corriente pero puede no serlo para la
1
El concepto de codificación es profundamente estudiado en la Teoría de la Información y Codificación,
fundamentalmente para resolver el problema de “transmitir mensajes confiables por canales no confiables” que
aparece en telecomunicaciones. Sin embargo el enfoque que nos interesa aquí –si bien está relacionado– es
distinto: se trata de la identificación de entidades, y de sus atributos, de forma concisa, precisa y segura para
facilitar su clasificación.
2.1 Definiciones
El conjunto de entidades (artículos, conceptos, etc.) a codificar es el nomenclador o
catálogo.
Un código es una secuencia de caracteres que identifica unívocamente un elemento del
nomenclador (o ninguno si la secuencia no es utilizada).
El conjunto de caracteres o símbolos con los que se construyen los códigos es el alfabeto.
En la codificación de artículos el alfabeto es normalmente el conjunto de los dígitos
numéricos, el de las letras, el de los dígitos y las letras (caracteres alfanuméricos) o estos más
algunos caracteres especiales.
Un código es numérico si el correspondiente alfabeto está formado únicamente por los 10
dígitos decimales; es alfabético si únicamente utiliza letras o estas y algunos caracteres
especiales, como el guión, la barra, el asterisco, etc.; y es alfanumérico si el alfabeto es el
conjunto de los dígitos decimales y las letras, incluidos algunos caracteres especiales.
Un código es entonces una n-upla de símbolos del alfabeto, donde n es la longitud del
código y que puede ser variable. Por ejemplo, en la Clasificación Decimal Universal (CDU)
ya mencionada, los códigos son de longitud variable. Sin embargo, desde el punto de vista
práctico, para la codificación de artículos en la industria se prefiere que la longitud de los
códigos sea fija. Cuando la longitud es fija se la denomina también dimensión del código.
En general, un sistema de codificación o, simplemente, una codificación 2 es una
aplicación inyectiva del conjunto nomenclador en el conjunto de las n-uplas del alfabeto (n
cualquiera y variable), puesto que dos elementos distintos no deben tener el mismo código,
pero puede haber n-uplas del alfabeto no asignadas a ningún elemento, es decir se deben
satisfacer las condiciones de unicidad y completitud de los códigos. Desde el punto de vista
práctico, sin embargo, la aplicación es muchas veces biyectiva.
2
En la Teoría de la Información y Codificación se llama “código” lo que aquí hemos denominado “sistema de
codificación” o “codificación”. Sin embargo hemos preferido esta denominación porque, en el caso de artículos
o productos, el término código está ampliamente difundido en el lenguaje corriente para referirse a la
identificación del artículo o de valores de sus atributos.
6 Clasificación y Codificación de Productos. 2012 R. Morán.
La potencialidad o capacidad (teórica) de un sistema de codificación es la cantidad
máxima de elementos que se pueden codificar con él. Por ejemplo, en una codificación con
códigos de longitud fija de cinco dígitos decimales (de 00000 a 99999) se tiene una
potencialidad de 105 = 100000. La potencialidad efectiva es frecuentemente menor debido a
que, en general, siempre hay restricciones que hacen que algunos códigos no sean asignados.
El grado de saturación del sistema de codificación es la relación entre la cantidad de
elementos codificados y la potencialidad. Por ejemplo, si una empresa comercializa 12000
artículos distintos y los quiere codificar con un código numérico de longitud fija, los códigos
deberán tener como mínimo cinco dígitos (de 00000 a 99999), cuya potencialidad es 100000.
El grado de saturación resulta: 12000 / 100000 = 0,12 (12 %).
La dimensión del código está determinada por las necesidades mínimas (dadas por la
cantidad total de elementos por codificar), la futura expansión prevista y la facilidad de uso.
En general debe fijarse de manera que la saturación inicial sea baja (menor al 20 %) para que
el sistema tenga capacidad de crecimiento.
Los códigos alfanuméricos tienen mayor potencialidad que los numéricos, para una misma
dimensión, pero deben diferenciarse claramente dos casos:
a) Códigos en los que tanto los caracteres alfabéticos como los numéricos son los “dígitos” de
un sistema de numeración. Por ejemplo, considerando únicamente las letras mayúsculas y
descartando las letras I, O y Q, porque se pueden confundir con los números 1 y 0, y la Ñ,
porque no se puede representar en algunos sistemas, quedan 23 letras y los 10 dígitos
numéricos. Luego los 33 caracteres {0, 1,…, 9, A,…, H, J,…, N, P, R,…, Z} pueden ser
considerados como los símbolos de un sistema de numeración de base 33. Para una
dimensión n la potencialidad de este código es 33n, mientras que para un código numérico
sería 10n. Por ejemplo, el código 8A6X equivale al número 8 × 333 + 10 × 332 + 6 × 331 +
30 × 330 = 298614 en sistema decimal.
Los códigos con esta estructura son muy complejos y raramente utilizados. A veces se
recurre a ellos como expansión de uno numérico que ha llegado a su total saturación, pero en
este caso es preferible analizar cuidadosamente los requerimientos del sistema y pasar a una
nueva codificación numérica. Por otra parte, en estos códigos es posible que aparezcan, por
azar, nombres propios (por ejemplos marcas) que podrían causar confusiones, y hasta palabras
desagradables que obviamente se querrían evitar, todo lo cual requeriría controles especiales
que aumentarían todavía más la complejidad.
b) Códigos esencialmente numéricos en los que se utilizan caracteres alfabéticos con algún
significado especial, casi siempre por razones mnemotécnicas y también de concisión. Por
ejemplo, si en un código las líneas de productos se identifican con letras mayúsculas, se
pueden representar 23 líneas con un solo carácter en lugar de las 10 que se tendrían con un
dígito numérico. Este caso aparece con mucha frecuencia en la práctica.
Como regla general, los códigos numéricos son siempre preferibles a los alfanuméricos.
Cuando son cortos (digamos, de no más de seis dígitos) los usuarios pueden memorizarlos
con el uso.
La codificación se materializa a través de un diccionario que establece la correspondencia
entre los elementos del nomenclador y los códigos que los identifican. Es claro que un código
no tiene real sentido hasta que no sea interpretado (esto es, decodificado), es decir hasta que
no se encuentre el concepto relacionado en el diccionario.
En resumen, podemos decir que codificar es:
Ejemplo 3
Codificación Decimal pura
Todo el conjunto de elementos a codificar se divide en 10 clases o grupos principales que
se identifican por el primer dígito del código de 0 a 9 (grupo fundamental). Cada una de estas
clases se subdivide a su vez en 10 subclases o subgrupos identificados por el segundo dígito
del código de 0 a 9 (subgrupo de 1er orden), y así sucesivamente.
Las principales ventajas son la simplicidad y uniformidad; los subgrupos son fáciles de
identificar. La principal desventaja es la rigidez, todos los grupos tienen la misma cantidad de
elementos. Las 10 posiciones disponibles dentro de cada grupo pueden ser insuficientes para
ciertos criterios de clasificación o bien excesivas, con lo que es difícil alcanzar una buena
homogeneidad. Esta última observación lleva a códigos en los que cada subgrupo se puede
codificar con más de un dígito. Por ejemplo: un dígito para el grupo fundamental y dos dígitos
para el primer subgrupo, con lo que cada categoría principal se puede subdividir en cien
subcategorías, etc. El código deja de ser estrictamente decimal.
Ejemplo 4
Codificación Decimal Universal (CDU)
Es la conocida clasificación utilizada en las bibliotecas. Se basa en la Clasificación
Decimal de Dewey propuesta en 1873 por Melvil Dewey en su tesis. Divide el conjunto del
Clasificación y Codificación de Productos. 2012 R. Morán. 11
saber en 9 clases principales, indicadas con los dígitos 1 a 9 (el 4 vacante), y el 0 para
generalidades:
0 Generalidades. Ciencia y conocimiento.
1 Filosofía. Psicología.
2 Religión. Teología.
3 Ciencias Sociales.
4 (Vacante).
5 Matemática y Ciencias Naturales.
6 Ciencias Aplicadas. Medicina. Tecnología.
7 Bellas Artes. Juegos. Espectáculos. Deportes.
8 Lingüística. Filología. Literatura.
9 Geografía. Biografías. Historia.
Este primer dígito es el grupo fundamental. El segundo dígito, subgrupo de 1er orden,
indica la subdivisión de cada una de estas clases en 9 categorías y así sucesivamente. El
significado de cada subgrupo depende del significado del subgrupo de orden superior. Para
facilitar la lectura los dígitos se separan en grupos de tres por medio de puntos. El código
resulta de longitud variable aunque cada subgrupo es de longitud fija (un dígito). Por ejemplo:
6 Ciencias aplicadas. Medicina. Tecnología.
62 Ingeniería. Tecnología en general.
621 Ingeniería mecánica en general. Tecnología nuclear. Electrotecnia. Maquinaria.
621.3 Ingeniería Eléctrica. Electrotecnia.
621.39 Telecomunicaciones. Telegrafía. Telefonía. Radiocomunicación. Tecnología y
equipo del video. Telecontrol.
621.396 Aparatos y métodos de radiocomunicación. Radiotecnia.
621.396.7 Estaciones emisoras y receptoras de radio.
Es claro que todos los libros sobre un mismo tema tendrán la misma codificación decimal.
Por lo tanto, para diferenciarlos se les agrega una parte no significativa generalmente formada
por las iniciales del autor y un número secuencial.
Esta codificación es básicamente jerárquica, pero el sistema completo incluye un conjunto
de caracteres especiales, que permiten expresar distintas relaciones y situaciones particulares,
incorporando la estructura de cadena. Esto le da al código muchas más posibilidades de las
que surgen de la simple estructura decimal, transformándose en híbrido. No entraremos aquí
en estos detalles porque esta codificación no es aplicable a productos de la industria.3
3
El lector interesado puede recurrir a la bibliografía especializada y al ente rector del sistema: Universal
Decimal Classification Consortium (http://www.udcc.org/).
12 Clasificación y Codificación de Productos. 2012 R. Morán.
2.4 Claves de control
En el procesamiento de la información se pueden alterar los códigos de los artículos por
errores: en el ingreso manual de los datos, en la lectura automática, de transmisión, etc. Estos
errores pueden ser particularmente graves cuando implican la identificación de otro artículo
distinto del que se pretendía identificar.
Los códigos de barras, que veremos más adelante, tienen por finalidad fundamental
aumentar la velocidad de lectura y reducir sustancialmente los errores de trascripción. No
obstante, dado que siempre pueden producirse errores, es necesario controlar los códigos. La
forma más común de control es a través del agregado de una clave de control al código, que
se calcula a partir de los caracteres que componen el propio código con un determinado
algoritmo.
La clave de control resume de alguna manera la información del código y pasa a formar
parte de este. Esta clave es calculada automáticamente cuando se genera el código y agregada
al final del mismo. Cada vez que el código (con clave) se ingresa, recupera o transmite, se
verifica la clave; esto es, se la recalcula aplicando el algoritmo a los caracteres del código (sin
la clave) y se la compara con la recibida, si no coinciden se está en presencia de un error.
Se pretende que la clave de control sea condensada, es decir de longitud mínima, y por lo
tanto no contendrá toda la información del código. Esto significa que varios códigos distintos
pueden tener la misma clave de control. En consecuencia, si una clave de control resulta
válida no quiere decir que el código sea válido, solamente es altamente probable que lo sea.
Por el contrario, si una clave resulta no válida entonces el conjunto código + clave es inválido.
Se debe distinguir entre códigos detectores y códigos autocorrectores. Las claves de
control que estamos tratando son claves detectoras: detectan los errores más probables pero no
dicen cuál es error; para encontrar y corregir el error se debe revisar el código. Los códigos
autocorrectores detectan y corrigen (hasta cierto punto) los errores, como veremos luego.
Indicaremos con δ la clave de control en forma genérica. Frecuentemente la clave consta
de un solo carácter alfanumérico, denominado carácter de control (CC) o carácter de
verificación, o de un solo dígito numérico, llamado dígito de control (DC) o dígito de
verificación.
Puesto que con estas restricciones una clave no controla un código de manera completa, se
la debe elegir de forma que detecte los errores más frecuentes. Los errores más frecuentes son
los de trascripción:
a) Error sobre un carácter o dígito: por ejemplo 2343 en lugar de 2843.
b) Permutación de dos caracteres o dígitos consecutivos, que llamaremos transposición
simple. Por ejemplo 2834 en lugar de 2843.
c) Permutación de dos dígitos no consecutivos, llamada transposición doble. Por ejemplo
2348 en lugar de 2843.
d) Errores específicos del código utilizado: por ejemplo permutación del número de año y
de mes en un código que contiene fechas.
Las claves deben ser concebidas de manera de controlar prioritariamente estos errores.
4
Dos números enteros S y S′ se llaman congruentes módulo N, y se indica S ≡ S′ mod. N, cuando divididos por
N dan el mismo resto. Es decir, si S = N × Q + R y S′ = N × Q′ + R entonces S ≡ S′ mod. N. Dos enteros
congruentes no se pueden identificar por el resto que se obtiene al dividirlos por el módulo N. Entonces se los
puede clasificar por este resto, quedando así definidas las clases residuales respecto del módulo N. La clase
residual R es la clase de los enteros que cumplen S = N × Q + R para cualquier Q. Dos enteros congruentes
pertenecen a la misma clase y son considerados como diferentes representantes de la misma clase o resto. Como
R = 0, 1, 2,…, N – 1, hay N clases residuales. Por ejemplo, respecto del módulo N = 2 hay únicamente dos clases
residuales: resto 0 y resto 1; son los números pares y los impares.
14 Clasificación y Codificación de Productos. 2012 R. Morán.
Elección de las ponderaciones. Hay diversas formas de elegir estos coeficientes. La más
simple para códigos numéricos es: wj = 10 j–1 (j = 1, 2,…, k). El valor de S es evidentemente el
mismo valor del código. En este caso si bien son todos diferentes no son todos números
primos. En general, para simplificar la asignación de estos coeficientes, no se cumple que
sean todos diferentes ni números primos.
Ejemplo 5
Sea el código 112978 y supongamos N = 23 (el carácter de control será una de las 23 letras
mencionadas) con las ponderaciones wj = 10 j–1 (j = 1, 2,…, k). Entonces:
Código: 1 1 2 9 7 8
Ponderaciones: 100000 10000 1000 100 10 1
Productos: 100000 10000 2000 900 70 8
Suma: S= 112978
Módulo: N= 23
Cociente: Q= 112978 / 23 = 4912 Resto: R=2
Es decir, S módulo 23 = 2. Como R = 2 la clave es δ = C. El código con clave será escrito
como 112978C. A veces, para facilitar la lectura, se separa la clave por un guión o una barra:
112978-C o 112978/C, pero estos caracteres no forman parte de los códigos.
Ejemplo 6
Supongamos ahora el mismo código, pero con N = 10 y las ponderaciones wj = j
(j = 1, 2,…, k). Resulta:
Código: 1 1 2 9 7 8
Ponderaciones: 6 5 4 3 2 1
Productos: 6 5 8 27 14 8
Suma: S = 6 + 5 + 8 + 27 + 14 + 8 = 68
Módulo: N = 10
Cociente: Q = 68 / 10 = 6 Resto: R=8
Es decir, S módulo 10 = 8. Como R = 8 el dígito de control es δ = 8. El código con clave
será escrito como 1129788.
Este dígito de control no detecta todos los errores de transposición dobles. Por ejemplo, en
el código 419003 con las ponderaciones 6, 5, 4, 3, 2, 1 el dígito de control resulta 8. Si se
permutan el 4 y el 9, el código 914003 tiene también dígito de control 8 y el error no es
detectado.
Las formas más utilizadas de dígitos de control para los códigos numéricos son las
siguientes.
Ejemplo 7
Sea el código 61938425. Entonces:
Código: 6 1 9 3 8 4 2 5
Ponderaciones: 3 2 7 6 5 4 3 2
Productos: 18 2 63 18 40 16 6 10
Suma: S = 18 + 2 + 63 + 18 + 40 + 16 + 6 + 10 = 173
Módulo: N = 11
Cociente: Q = 173 / 11 = 15 Resto: R=8
Como R = 8 el dígito de control es δ = N – R = 11 – 8 = 3. El código con clave es
619384253.
Este método detecta todos los errores de números y las transposiciones simples y dobles,
que representan el 99 % de los errores de trascripción, pero δ puede resultar de dos cifras. En
efecto, si el resto de la división es 0 o 1, δ será 11 o 10 respectivamente.
Se presentan entonces las siguientes alternativas:
i) Trabajar con una clave de dos cifras.
ii) Mantener la clave de un solo carácter usando letras mayúsculas para estos casos
especiales (por ejemplo δ = A para representar el 10, y δ = B para el 11).
iii) Teniendo en cuenta que nunca resulta una clave igual a cero, dado que 0 ≤ R ≤ 10 y por lo
tanto 1 ≤ N – R ≤ 10, se puede hacer lo siguiente: Si N – R = 0 entonces δ = 0; si N –
R > 0 entonces δ = N – R. De esta forma la única clave de dos cifras es δ = 10 y para ella
se utiliza una letra, por ejemplo δ = X, de manera que la clave es de un solo carácter.
Esta última forma es muy utilizada.
Ejemplo 8
Consideremos nuevamente el código 32714.
Código: 3 2 7 1 4
Ponderaciones: 6 5 4 3 2
Productos: 18 10 28 3 8
Suma: S = 18 + 10 + 28 + 3 + 8 = 67
Módulo: N = 11
Cociente: Q = 67 / 11 = 6 Resto: R=1
Como R = 1 la clave es δ = N – R = 11 – 1 = 10 que se representa por X. El código
completo resulta 23714X.
Ejemplo 9
Código ISBN: 0 1 3 8 5 2 3 8 6
Ponderaciones: 10 9 8 7 6 5 4 3 2
Productos: 0 9 24 56 30 10 12 24 12
Suma: S = 0 + 9 + 24 + 56 + 30 + 10 + 12 + 24 + 12 = 177
Módulo: N = 11
Cociente: Q = 177 / 11 = 16 Resto: R=1
Como R = 1 el dígito de control es δ = N – R = 11 – 1 = 10 que se representa por X. El
código ISBN con clave es 0-13-852386-X.
Más adelante veremos que este código ha pasado a formar parte del estándar GTIN-13.
Ejemplo 10
Para el código 32714 resulta:
Código: 3 2 7 1 4
Ponderaciones: 2 1 2 1 2
Productos: 6 2 14 1 8
Suma: S = 6 + 2 + (1 + 4) + 1 + 8 = 22
Módulo: N = 10
Cociente: Q = 22 / 10 = 2 Resto: R=2
Como R = 2 el dígito de control es δ = N – R = 10 – 2 = 8. El código con clave es 237148.
Este método solamente detecta un error en un dígito o una transposición simple, pero no
las transposiciones dobles. Por ejemplo, si se permutaran los dígitos 3 y 7 el código 72314
(erróneo) tendría el mismo dígito de control (8) y el error no sería detectado.
Caso 2. Para simplificar el cálculo un método muy utilizado, que aplica directamente la
expresión (1), es el siguiente. Las ponderaciones son:
w1 = w3 = … = w2k+1 = 3
w2 = w4 = … = w2k = 1
Ejemplo 11
Para el mismo código 32714 resulta:
Código: 3 2 7 1 4
Ponderaciones: 3 1 3 1 3
Productos: 9 2 21 1 12
Suma: S = 9 + 2 + 21 + 1 + 12 = 45
Módulo: N = 10
Cociente: Q = 45 / 10 = 4 Resto: R=5
Como R = 5 el dígito de control es δ = N – R = 10 – 5 = 5. El código con clave es 237145.
Este método detecta todos los errores en un dígito y, obviamente, no detecta ninguna
transposición doble. Además es importante observar que, dado que la diferencia entre dos
ponderaciones sucesivas es par, tampoco detecta todas las transposiciones simples. En efecto,
si la diferencia entre dos dígitos consecutivos es 5 y se permutan, el dígito de verificación es
el mismo.
Ejemplo 12
Código: 4 1 9 3 8 3
Ponderaciones: 1 3 1 3 1 3
Productos: 4 3 9 9 8 9
Suma: S = 42
Módulo: N = 10
Cociente: Q = 42 / 10 = 4 Resto: R=2
Es decir, S módulo 10 = 2. Como R = 2 el dígito de control es δ = 8. El código con dígito
de control es 4193838.
Si se permutan los dígitos 3 y 8 del código, cuya diferencia es 5, se obtiene el mismo dígito
de control. En efecto:
Código: 4 1 9 8 3 3
Ponderaciones: 1 3 1 3 1 3
Productos: 4 3 9 24 3 9
Suma: S = 52
Módulo: N = 10
Cociente: Q = 52 / 10 = 5 Resto: R=2
Como R = 2 el dígito de control es δ = 8 y el error no es detectado.
No obstante estas limitaciones, por su sencillez este método es uno de los más utilizados.
Como veremos más adelante, es el método estándar que utiliza la Organización GS1 para sus
códigos numéricos. Por esta razón, en todo lo que sigue, con la expresión “dígito de control
módulo 10” nos referiremos a este último caso.
Finalmente, un caso interesante es el del carácter de control del Código de Barras 128. Este
código trabaja con 107 caracteres y utiliza una clave de control módulo 103. Veremos su
cálculo al estudiar el código.
18 Clasificación y Codificación de Productos. 2012 R. Morán.
2.5 Códigos autocorrectores
En la Teoría de la Información y Codificación la codificación de la información tiene por
objetivo fundamental resolver el problema de “transmitir mensajes confiables por canales no
confiables”, que se presenta en telecomunicaciones. Los códigos autocorrectores detectan y
corrigen (hasta cierto punto) los errores mediante el agregado de información redundante: en
la codificación de los datos, en el emisor, se incorpora información adicional que permite
regenerar luego, en el receptor, los datos alterados durante la transmisión.
En la codificación de productos se puede asimilar la transmisión de un mensaje con todo lo
que sucede desde que se genera un código y se lo coloca en el artículo (representado por un
código de barras, por ejemplo), hasta que es escaneado para su decodificación, esto es:
impresión del código, manipuleo, transporte y almacenamiento del producto, etc.; situaciones
en las que se puede dañar el código. Por lo tanto se puede pensar en agregar información
adicional al generar el código o su representación, de manera tal que se logren corregir errores
al leerlo posteriormente. Este concepto de códigos autocorrectores se aplica en ciertos tipos de
códigos de barras, como veremos más adelante.
Los códigos autocorrectores más utilizados para estas aplicaciones son los de Reed-
Solomon (RS). Son códigos de corrección de errores en los datos transmitidos sobre un canal
de comunicaciones.5
Los códigos RS tienen aplicaciones muy variadas. Por ejemplo, son utilizados en los discos
compactos, donde pueden corregir completamente errores de hasta 4000 bits, esto es
aproximadamente 2,5 mm en la superficie del disco, y en la codificación digital de fotografías
enviadas por sondas espaciales.
Un código RS es un código de bloques lineales. Cada bloque consta de n símbolos, de los
cuales k símbolos son de información, y d símbolos de detección y corrección de errores. El
valor de n = k + d es la longitud del bloque, en número de símbolos. El valor de k es la
dimensión del código y d es la medida de la redundancia del código. La capacidad de
corrección de errores de un código RS está determinada por el valor de d. La elección de d es
decisión del diseñador del código y puede elegirse dentro de amplios límites. Respecto de los
errores se deben distinguir dos situaciones distintas:
• Borradura (error de rechazo). Es un símbolo desaparecido o no decodificable, donde la
ubicación es conocida pero no el valor. Por ejemplo, cuando en un código de barras el
escáner no puede reconocer un símbolo de barras porque está dañado, es una borradura
porque la ubicación es conocida.
• Error (error de sustitución). Es un símbolo mal decodificado, donde tanto la ubicación
como el valor son desconocidos.
Un código RS puede detectar hasta d símbolos erróneos (errores y borraduras) y corregir
hasta ⌊d / 2⌋ símbolos con errores, o hasta d símbolos con borraduras, y toda combinación de
errores y borraduras en tanto se satisfaga la relación
e+2t≤d (3)
donde t es el número de símbolos con errores y e el de símbolos con borraduras en el bloque.
Cabe destacar que un símbolo es erróneo (error o borradura) ya sea que tenga uno o varios
elementos componentes alterados, esto es, si múltiples elementos en un símbolo son erróneos
5
Cf. Reed, Irving S.; Solomon, Gustave (1960), “Polynomial Codes over Certain Finite Fields”, Journal of the
Society for Industrial and Applied Mathematics (SIAM) 8 (2): 300–304.
Clasificación y Codificación de Productos. 2012 R. Morán. 19
solamente cuentan como un solo error. Esta propiedad de los códigos RS los hace
especialmente apropiados para aplicaciones en los códigos de barras, en los que los símbolos
pueden tener múltiples daños.
Ejemplo 13
En muchas aplicaciones prácticas de RS es común usar 2m símbolos. En este caso cada
símbolo puede ser representado por m bits. El emisor envía los datos como bloques
codificados de n = 2m – 1 símbolos cada uno. El número k de símbolos de datos en cada
bloque (k < n) es un parámetro de diseño. Los restantes d = n – k símbolos del bloque son
símbolos de paridad que utiliza RS para detectar y corregir errores; puede corregir hasta
⌊d / 2⌋ símbolos erróneos por bloque. Por ejemplo, con símbolos de 8 bits se tienen n = 28 – 1
= 255 símbolos por bloque. Un valor común para k es k = 223 símbolos de datos por bloque,
con d = 32 símbolos de paridad, y es capaz de corregir hasta d / 2 = 16 símbolos con errores
por bloque.
Figura 3
7
Opitz, H., A Classification System to Describe Workpieces, Oxford (UK): Pergamon Press, 1970.
Clasificación y Codificación de Productos. 2012 R. Morán. 23
Ejemplo 14
La pieza de la Figura 4 es de revolución con L = 80 y D = 240, es decir L/D = 1/3 < 0,5;
luego,, de acuerdo con la tabla de Figura 3, el primer dígito es 0.
Para determinar los cuatro dígitos restantes del código
de forma debemos entrar en la hoja del manual que
corresponde al primer dígito 0, que es la de Figura 5 (es la
misma para el primer dígito 0, 1 y 2).
Como es una pieza escalonada externamente en un
extremo, sin elementos de forma, el segundo dígito es 1.
La forma
ma interna es también escalonada con una ranura
funcional, luego el tercer dígito es 3. El cuarto dígito es 1
porque tiene una superficie plana exterior en una
dirección. Finalmente, dado que no tiene dientes de
engranaje y tiene un agujero con centro en un u círculo
Figura 4
concéntrico, el quinto dígito es 2.
El código de forma es: 01312.
Figura 5
Para obtener los cuatro dígitos del código suplementario la tabla es la de Figura 6 de la
página siguiente.
Puesto que 160 < D < 250 el primer dígito es 4.
Supongamos ahora que la pieza es de acero común (carga de rotura < 37 Kg/mm2), sin
tratamiento térmico, que se mecaniza a partir de un pieza pre-procesada.
procesada. El segundo dígito es
2 y el tercero 9.
Figura 6
Ejemplo 15
La pieza de la Figura 7 es plana con A = 425, B = 250 y C = 80. Luego A/B < 3 y A/C > 4,
resultando que el primer dígito es 6. La tabla del manual que corresponde es la
l de Figura 8, en
la página siguiente.
Como tiene componentes planos (no
es totalmente plana) y es rectangular con
pequeñas desviaciones de fundición, el
segundo dígito es 5. Tiene dos orificios
principales
es paralelos, el tercer dígito es
4. Como las superficies planas son
escalonadas y en ángulos rectos, el
cuarto dígito es 4. No tiene dientes ni
formas, y los agujeros auxiliares están
en una misma dirección y relacionados
por el patrón de perforado, luego el
Figura 7 quinto dígito es 3. El código es 65443.
Los cuatro dígitos del código
suplementario se obtienen de la misma tabla de la Figura 6. Como A = 425 el primer dígito es
6. Si suponemos que la pieza es de fundición gris, el segundo dígito es 0 y el tercero 7. No
hay precisión especificada y el cuarto dígito es 0.
Con estas suposiciones el código completo sería: 654436070.
Clasificación y Codificación de Productos.. 2012 R. Morán. 25
Figura 8
En todos los casos, los cuatro dígitos extras (opcionales) que forman el código secundario
deben ser definidos por la empresa, si desea utilizarlos, para satisfacer necesidades
particulares. Por ejemplo, se pueden usar para identificar las operaciones de producción y su
secuencia (proceso).
8
Cf., por ejemplo, C. C. Gallagher y W. A. Knight, Group Technology Production Method in Manufacture, UK:
Ellis Horwood, 1986.
26 Clasificación y Codificación de Productos. 2012 R. Morán.
serie de preguntas y el sistema realiza la selección del código adecuado para la pieza en
función de las respuestas. El número de preguntas depende de la complejidad de la pieza y se
encuentra entre 7 y 20.
MULTICLASS. Es la versión más nueva de MICLASS y fue realizado por OIR
(Organisation for Industrial Research). La estructura es totalmente jerárquica de hasta 30
dígitos.
KK-3. Fue un emprendimiento de la Sociedad Japonesa para la Promoción de Máquinas
Industriales (JSPMI,1980). Tiene como propósito principal la clasificación del maquinado de
piezas en forma general. Usa un sistema de 21 dígitos decimales para codificar principalmente
las operaciones de corte y rectificado.
DCLASS. Desarrollado en 1980 por D. K. Allen y P. R. Smith en la Universidad de
Briham. Es un sistema jerárquico de ocho caracteres alfanuméricos, basado en cinco
estructuras de árbol para generar los códigos para componentes, materiales, procesos,
máquinas y herramental.
CODE. Producto de MDSI (Manufacturing Data Systems, Inc.). Utiliza ocho caracteres
hexadecimales con una estructura híbrida, similar a la del sistema Opitz. Puede ser ampliado a
doce caracteres.
Vuoso-Praha. Consta de cuatro dígitos, tres de los cuales son grupos jerárquicos para
clasificar la forma de la pieza, incluyendo tamaño y proporciones, y el cuarto para el material.
La estructura es híbrida. Es utilizado para clasificaciones aproximadas para identificar el tipo
de equipamiento que produciría la pieza.
Aunque los formatos de estos sistemas son diferentes, con la excepción de Vuoso-Praha,
todos resumen la información en seis características básicas de las piezas: forma general,
forma específica basada en perfiles principales, posición, dimensiones, tolerancias y material.
No obstante estas características generales, ninguno de estos sistemas ha sido adoptado
universalmente. La razón principal es que en muchos casos, a pesar de la complejidad de los
mismos, el grado de detalle que manejan no es suficiente para satisfacer los requerimientos
del tipo de industria o de la empresa. Es decir, para una aplicación determinada, los sistemas
que se proveen como paquetes comerciales pueden resultar, a la vez, muy complejos e
insuficientes. Por esta causa muchas aplicaciones de GT han sido realizadas con sistemas de
codificación específicamente desarrollados para las necesidades de la empresa. Por otra parte,
los sistemas CAD/CAM actuales incluyen su propia forma de codificación.
En particular, para la formación de familias para la fabricación celular la codificación
presenta dificultades. En efecto, dos piezas pueden ser muy parecidas en forma y material y
tener procesos diferentes por detalles de precisión, tamaños de los lotes a producir, etc.; y
viceversa, piezas con diferente forma y material pueden tener similar proceso. Para que un
sistema de codificación fuese capaz de diferenciar todas las características de las piezas, para
todo tipo de industria, debería ser tan amplio que su aplicación resultaría inviable.
Para la fabricación celular el análisis del flujo del proceso constituye el mejor método
porque es el único que permite llegar directamente a la formación de familias de piezas y
grupos de máquinas. No obstante, el método no es viable en el caso de planificación de
nuevas plantas ni en el de renovación de maquinaria.
Cuando se trata del proyecto de una nueva planta con un producto ya definido, la
formación de familias a través de la codificación resulta no solo la única vía para la aplicación
9
http://www.gs1.org
10
http://www.gs1.org.ar
28 Clasificación y Codificación de Productos. 2012 R. Morán.
En el sistema GS1 todos los códigos pueden ser representados mediante portadores de
datos (data carriers). Los portadores de datos dependen de la tecnología disponible;
actualmente los más utilizados son los códigos de barras y las etiquetas para códigos
electrónicos e identificación por radiofrecuencia EPC/RFID (Electronic Product Code /
Radio-Frequency Identification).
Los códigos de barras son simbologías, lineales o bidimensionales, para representar
caracteres numéricos o alfanuméricos en un formato legible por escáneres y permitir así la
captura automática de datos en distintos puntos de la cadena logística, con una mejora enorme
en la velocidad y exactitud en las comunicaciones.
Conceptualmente es muy importante diferenciar los códigos de las entidades de los medios
utilizados para representarlos, los portadores de datos. Por esta razón los trataremos por
separado, si bien algunos códigos están estrechamente vinculados con, por ejemplo, una
determinada simbología de código de barras.
Comenzaremos viendo los Códigos Identificadores GS1 y luego los Identificadores de
Aplicación. Por las aplicaciones que nos interesan –la identificación de productos– nos
limitaremos a los principales códigos de identificación y los AI más comunes.11 Los
portadores de datos, por las razones mencionadas antes y porque algunos son aplicables
también a códigos que no forman parte de los estándares GS1, serán tratados por separado.
11
El lector interesado en los demás estándares, así como en los aspectos legales y técnicos, puede consultar con
la Organización GS1 (http://www.gs1.org).
Clasificación y Codificación de Productos. 2012 R. Morán. 29
Los artículos se codifican con un GTIN utilizando cuatro estructuras posibles: GTIN-13,
GTIN-12, GTIN-8 y GTIN-14 que tienen, respectivamente, 13, 12, 8 y 14 dígitos. En todos
los casos el último dígito es el de control módulo 10. La elección de la estructura depende de
la naturaleza del artículo y del alcance de las aplicaciones del usuario.
El código GTIN-13 se utiliza para la identificación de artículos para su posterior escaneo
en los puntos de venta minorista (cajas registradoras). Si los artículos son muy pequeños,
excepcionalmente se puede utilizar un código GTIN-8. El código GTIN-12 está destinado al
mercado de EE.UU. y Canadá, aunque desde enero del 2005 aceptan también los códigos
GTIN-13. Las unidades comerciales que contienen productos idénticos tales como una caja de
cartón corrugado, un cajón, un palé (pallet) con faja o cubierta, etc., siempre y cuando no
pasen como tales por un punto de venta minorista, se pueden identificar para fines logísticos
con códigos GTIN-14. Cada artículo individual en esos contenedores tendrá su código GTIN-
13 (o GTIN-8).
Desde el punto de vista del procesamiento de datos los códigos GTIN se pueden almacenar
todos en un campo de 14 dígitos, completando con ceros a la izquierda los de 8, 12 y 13
dígitos. Obsérvese que este agregado de ceros a la izquierda no altera el dígito de control y
por lo tanto se puede pensar en una representación única de 14 posiciones para las cuatro
estructuras en las bases de datos. No obstante, en la simbología de códigos de barras, el
código GTIN-14 tiene representaciones que pueden no ser aceptadas por los escáneres de los
puntos de venta minorista.
Veamos estos códigos más en detalle.
Ejemplo 16
En el código 7791234001231, el prefijo 779 corresponde a GS1 Argentina, 1234 es el
número de empresa, de manera que 7791234 es el prefijo de empresa GS1, único en el
mundo, y 00123 es la referencia de un artículo particular dentro de la empresa. El último 1 es
el dígito de control módulo 10.
Casos especiales
Las publicaciones tales como libros, diarios y revistas requieren una consideración especial
debido a que sus codificaciones preexistentes se incorporan al código GTIN-13 y utilizan la
misma simbología de códigos de barras. Veamos los casos del código ISBN para libros y del
ISSN para publicaciones seriadas.
Código ISBN
El código ISBN (International Standard Book Number), controlado por la International
ISBN Agency,12 está basado en la norma ISO 2108 y tiene por objeto “coordinar y normalizar
internacionalmente el uso de los números para libros, de modo tal que cada ISBN identifique
un título, o edición de un título, de un editor determinado, y sea único para ese título o
edición”. Este sistema permite que cada título publicado tenga un número de identificación
único en el mundo, que se aplica independientemente del destino que el editor asigne al libro:
venta, distribución gratuita o circulación en círculos específicos.
Originalmente el código constaba de diez dígitos, pero a partir del 1 de enero de 2007 se le
agregó un prefijo de tres dígitos para adaptarlo a la estructura del código GTIN-13 y utilizar la
simbología del código de barras EAN-13. Los 13 dígitos del nuevo código ISBN se dividen
en 5 grupos, tres de los cuales tienen longitud variable, separados por guiones o espacios. Los
guiones o espacios tienen por finalidad facilitar la lectura pero no forman parte del código. La
estructura es la siguiente.
Prefijo GS1 (siempre de 3 dígitos), es el grupo fundamental. En la actualidad solo puede
ser 978 o 979, este último se comenzará a utilizar cuando se agoten las posibilidades con 978
ampliando la potencialidad del código. Solamente indica que es un libro, no un país o región.
Identificador de país o grupo lingüístico, es el subgrupo de 1er orden. Indica el grupo
nacional, geográfico o lingüístico de las editoriales. Puede tener de 1 a 5 dígitos y es asignado
por la Agencia Internacional de ISBN de acuerdo con la probable producción de libros del
12
http://www.isbn.org
Clasificación y Codificación de Productos. 2012 R. Morán. 31
grupo: cuanto más grande es la producción de libros, más corto es el indicador del grupo
nacional. A la Argentina se le han asignado los indicadores 950 y 987.
Titular, es el subgrupo de 2° orden. Identifica un editor en particular dentro de un grupo
nacional, geográfico o lingüístico. Puede tener de 2 a 7 dígitos, dentro de rangos fijados. A las
editoriales con un gran volumen de producción se les asignan los indicadores más cortos y a
las de menor producción los más largos. Para la Argentina, con identificador de país 950, los
rangos establecidos para las editoriales son los siguientes: los editores con producción anual
mayor de 50 títulos tendrán un número de dos dígitos; los de 21 a 50 títulos, tres dígitos; y los
de menos de 21 títulos, cuatro dígitos.
Publicación, es el subgrupo de 3er orden. Identifica un título determinado o edición
particular de un título publicado por un editor dado. Puede tener hasta 6 dígitos, pero de
manera tal que con el país y el titular complete 9 dígitos. Si es necesario se rellena con ceros a
la izquierda.
Dígito de control, es el subgrupo de 4° orden. Se calcula con el método módulo 10.
Ejemplo 17
El código ISBN 978-950-673-833-4 significa lo siguiente:
978: Libro.
950: Argentina.
673: UNR Editora.
833: Título: Programación Lineal. Una introducción con extensiones a la Programación
Entera y a la Programación Cuadrática. 2ª edición.
4: Dígito de control.
Código ISSN
El ISSN (International Standard Serial Number) es un código numérico reconocido
internacionalmente para la identificación de las publicaciones seriadas como diarios, revistas,
informes periódicos, etc., basado en la norma ISO 3297. Está indisolublemente asociado con
el título de la publicación seriada y un cambio en el mismo puede implicar un cambio de
ISSN. Mientras el título no sufra cambios o variaciones, el ISSN se mantiene y debe
imprimirse en cada fascículo, volumen o iteración de la publicación seriada que identifica. El
organismo de control internacional es el ISSN International Centre,13 con sede en París.
El ISSN consta de siete dígitos para la identificación de la publicación seriada, no indica el
país de publicación ni el editor. Un octavo carácter es de control, calculado módulo 11 sobre
los siete anteriores, que puede ser representado por “X” si el valor es 10.
Para adaptarlo al formato GTIN-13 se le asignó el Prefijo 977. El segundo grupo es el
ISSN (siete dígitos); el tercer grupo, llamado Variantes, está formado por los dos dígitos
siguientes y pueden ser utilizados para indicar variantes del mismo título con diferente precio
o para identificar las diferentes entregas de un diario dentro de la semana. El título normal
tiene 00. El cuarto grupo es el dígito de control módulo 10. La simbología de códigos de
barras es la EAN-13.
13
http://www.issn.org
32 Clasificación y Codificación de Productos. 2012 R. Morán.
Ejemplo 18
El diario identificado con el número 0325094, para su edición de los días domingos, tiene
el siguiente ISSN: 9770325094077. El último dígito es el de control.
Dos o cinco símbolos EAN extras se utilizan para, por ejemplo, indicar el día de la semana
en los diarios, la semana del año en las revistas, etc. Estos símbolos extras, en cuyos detalles
no entraremos, deben estar ubicados a la derecha del código principal y en la misma línea.
Ejemplo 19
En el código 2000015015769, el prefijo 20 indica que es un código interno, 00015 es la
referencia del artículo y 01576 el precio: $ 15,76. El 9 es el dígito de control módulo 10.
Ejemplo 20
Supongamos el artículo cuyo código GTIN-13 es 7791234000128. El código GTIN-14
para las cajas de 24 unidades sería 17791234000125 y el de las cajas de 50 unidades,
27791234000122. Cambian los dígitos de control.
El código GTIN-14 con dígito Indicador 9 es utilizado para identificar artículos con
unidades o medidas variables como, por ejemplo, frutas, verduras, carnes, cadenas, alfombras
en rollos, etc., no destinados a la venta minorista. En estos casos, para completar la
identificación del artículo, es imprescindible especificar las unidades o medidas del mismo.
La forma de realizarlo es a través de los Identificadores de Aplicación, como veremos luego.
Observación. Un código GTIN-14 con indicador 0 no representa ningún nivel de
agrupamiento, se refiere al artículo individual, y permite generalizar en 14 dígitos todos los
códigos GTIN (sin alterar el dígito de control). En este caso particular este código, mediante
algunas simbologías de códigos de barras, puede ser utilizado en puntos de venta minorista si
disponen de los escáneres apropiados.
Las simbologías de códigos de barras para GTIN-14 pueden ser ITF-14, GS1-128, GS1-
DataBar y GS1-DataMatrix, además de los códigos electrónicos para identificación por
radiofrecuencia (EPC/RFID).
Identificadores de Aplicación
AI Descripción Formato
00 Código Seriado de Contenedor de Embarque (SSCC 1) n2+n18
01 Código GTIN 2 del artículo n2+n14
Número de artículo GTIN de productos contenidos dentro de otra unidad (acompañado
02 n2+n14
obligatoriamente del AI 37)
10 Número de lote o partida n2+an..20
11 Fecha de producción (AAMMDD) n2+n6
12 Fecha de pago (AAMMDD) n2+n6
13 Fecha de envasado (AAMMDD) n2+n6
15 Fecha de mínima duración (AAMMDD) n2+n6
17 Fecha de máxima duración (AAMMDD) n2+n6
20 Variante del producto n2+n2
21 Número de serie n2+an..20
22 HIBCC 3 – cantidad, fecha, lote y conexión n2+an..29
240 Identificación adicional del producto n3+an..30
241 Número de producto asignado por el cliente n3+an..30
242 Número de variación en Made-to-Order n3+n..6
250 Número de serie secundario n3+an..30
Ejemplo 22
Supongamos un producto identificado con el siguiente código GTIN-14: 97791234000121.
El Indicador 9 significa que el artículo es de cantidad variable, el prefijo de Empresa es
7791234, la Referencia del Artículo es 00012 y el dígito de control es 1. En este caso de
cantidad variable es necesario especificar la cantidad o el peso. Por ejemplo, en un cajón de
frutas se debe indicar el peso.
Si bien el peso se podría especificar por separado, los AI permiten expresar toda la
información en un único código. En la Tabla 1 vemos que el AI para el GTIN de un artículo
es 01, con el formato de 2 dígitos para el AI y 14 dígitos para el GTIN (para los códigos
GTIN-13, 12 y 8 se los debe rellenar con ceros a la izquierda hasta completar 14 dígitos).
También encontramos que el AI 310y indica el peso neto en kilogramos, con un formato de 4
dígitos para el AI y 6 para el peso, donde y señala la cantidad de cifras decimales en el peso.
Supongamos entonces que nuestro producto es un cajón cuyo contenido neto es de 23,670
Kg. El código completo resulta entonces: (01)97791234000121(3103)023670.
Ejemplo 23
Supongamos el código (00)177912340056789128(21)2548MW. El contenedor es un palé y
el AI 21 significa que el campo que sigue es un número de serie del producto de longitud
variable y de hasta 20 caracteres alfanuméricos.
Ejemplo 24
En el código (10)JC-938(11)111215 el AI 10 indica que se trata del lote JC-938 y el 11 que
la fecha de fabricación fue el 15/12/2011.
Los ejemplos anteriores muestran solamente algunos casos de aplicación de los AI para
ilustrar su funcionamiento. Para la correcta interpretación de todos los AI se deben consultar
los manuales correspondientes en la organización GS1.
Finalmente, es muy importante remarcar la característica fundamental de los AI: permitir
reunir información de distinta naturaleza en un único código.
Figura 9
Ejemplo 25
Retomemos el código 7791234567898 de la Figura 9. El primer dígito 7 define que los
patrones para el primer segmento de 6 dígitos siguientes son LGLGLG, de acuerdo con la
Tabla 3. Esto es: el dígito 7 se codifica según el Código L, es decir 0111011 (espacio de 1X,
barra de 3X, espacio de 1X y barra de 2X); el dígito 9 con el Código G, es decir 0010111
(espacio de 2X, barra de 1X, espacio de 1X y barra de 3X); el dígito 1 con el Código L,
0011001 (espacio de 2X, barra de 2X, espacio de 2X y barra de 1X); para el 2 resulta
0011011 (espacio de 2X, barra de 2X, espacio de 1X y barra de 2X); el 3 es 0111101 (espacio
de 1X, barra de 4X, espacio de 1X y barra de 1X) y el 4 es 0011101 (espacio de 2X, barra de
3X, espacio de 1X y barra de 1X).
El segundo segmento de seis dígitos utiliza siempre los patrones del Código R. Así, para el
5 es 1001110 (barra de 1X, espacio de 2X, barra de 3X y espacio de 1X); el 6 es 1010000
(barra de 1X, espacio de 1X, barra de 1X y espacio de 4X). Y análogamente los demás.
El código EAN-8 utiliza los patrones del Código L para los cuatro dígitos del primer
segmento y los patrones del Código R para los cuatro del segundo segmento. Los demás
detalles de la estructura son los del EAN-13.
Observaciones
Todos los patrones para los dígitos del primer segmento (Códigos L y G) comienzan con
un espacio y terminan con una barra; esto es consistente con la guarda de comienzo del
código, que termina con una barra, y con la guarda central, que comienza con un espacio.
Todos los patrones para los dígitos del segundo segmento (Código R) comienzan con una
barra y terminan con un espacio; esto concuerda con la guarda central, que termina con un
espacio, y con la guarda de fin de código, que comienza con una barra.
Los patrones del Código R son los mismos del Código L intercambiando barras por
espacios. Los patrones del Código G son los del Código R en orden inverso.
Si el primer dígito del código es 0, todos los dígitos del primer segmento se codifican
según el Código L, que es el código original UPC-A de 12 dígitos. Por lo tanto, el código
Ejemplo 26
Para facturas y comprobantes equivalentes la AFIP ha establecido que el código de
identificación, que se expresará mediante un código de barras ITF, estará formado por: el
CUIT delel emisor (11 dígitos), el código de tipo de comprobante (2 dígitos), el punto de venta
(4 dígitos), el código de autorización de impresión (14 dígitos), la fecha de vencimiento (8
dígitos) y un dígito de control, calculado
módulo 10 sobre los 39 dígitos anteriores.
a
Resulta así un código de 40 dígitos que es
en rigor una cadena de códigos, algunos
de los cuales tiene su propio dígito de Figura 13
control. La Figura 13 muestra un ejemplo.
Tabla 5
Es importante observar que, como consecuencia de que cada símbolo comienza y termina
con una barra, entre ellos debe haber necesariamente un espacio de separación. Estos espacios
son angostos y están incluidos en las fuentes de impresión de los símbolos del
de código; caso
contrario no se lo podría leer. La Figura 15 muestra un ejemplo de esta simbología aplicada a
un artículo identificado con el código ABC-123456.
ABC
La asimetría del símbolo del asterisco que se utiliza
para marcar el comienzo y el fin del código permite
determinar la dirección correcta del código de barras en el
proceso de escaneo.
El Código 39 básico no incluye carácter de control, Figura 15
pero se lo puede considerar autocontrolado porque un
error simple en la interpretación de una barra o espacio no genera otro símbolo válido. No
obstante, se ha desarrollado una versión con la opción de generar automáticamente un carácter
2 3 4 5
1 1
1. Zona calma. 2. Carácter de inicio. 3. Datos codificados. 4. Carácter de control. 5. Carácter de fin de código.
Figura 16
Los caracteres se codifican con tres barras y tres espacios, excepto el de fin de código que
usa cuatro barras y tres espacios. Así, el código de cada carácter comienza con una barra y
termina con un espacio (salvo el de fin que termina con una barra). Para evitar confusiones
utilizaremos la expresión Código 128 o, simplemente, código, para referirnos al código de
barras completo, como el de la Figura 16, y los códigos individuales de los caracteres los
llamaremos símbolos de caracteres (SC).
Las barras y los espacios pueden tener cuatro anchos, medidos en unidades X, el ancho de
la barra más angosta. Los SC se estructuran de acuerdo con la siguiente regla: la suma de los
anchos de las barras debe ser un número par de X, la de los espacios un número impar, y el
total debe sumar 11X. El SC del símbolo de fin de código tiene una barra extra de 2X (el
ancho total es 13X).
Con esta regla de formación de los códigos se pueden obtener 108 SC distintos, de los
cuales se utilizan 107; 103 para datos (alfanuméricos y especiales), 3 para indicar el comienzo
de los códigos y 1 para marcar el fin de los códigos. Los SC para datos incluyen los caracteres
alfanuméricos, caracteres especiales, funciones utilizadas en varios estándares, y caracteres de
selección. Los 107 SC utilizados están numerados de 0 a 106; números que constituyen su
valor equivalente.
46 Clasificación y Codificación de Productos. 2012 R. Morán.
Para poder representar los 128 caracteres ASCII, las funciones y los caracteres especiales
con los 107 SC disponibles se utilizan tres juegos de caracteres: 128A, 128B y 128C. Los
juegos 128A y 128B son alfanuméricos (solamente las 26 letras del alfabeto inglés), mientras
que el 128C es numérico de doble densidad (codifica los dígitos numéricos por pares), con las
siguientes posibilidades:
• 128A: Caracteres ASCII 00 a 95 (0-9, A-Z y códigos de control), caracteres especiales,
de control y funciones.
• 128B: Caracteres ASCII 32 a 127 (0-9, A-Z, a-z), caracteres especiales y funciones.
• 128C: Números 00 a 99 (codifica cada dos dígitos con un código), caracteres especiales
y una función.
Si indicamos con 1, 2, 3 y 4 los anchos posibles para cada barra y espacio, en unidades X,
la Tabla 6 muestra en la última columna los SC, en la primera sus valores y en las tres
siguientes los correspondientes caracteres de los tres juegos. Por ejemplo, el SC 111323, esto
es: una barra de 1X, seguida de un espacio de 1X, luego una barra de 1X, un espacio de 3X,
una barra de 2X y un espacio de 3X, representa el carácter “A” en los juegos 128A y 128B y
el número “33” en el juego 128C.
Otra forma de indicar los SC es a través de los patrones de barras y espacios: se utiliza el 1
para indicar las barras de 1X y el 0 para los espacios de 1X. Así, por ejemplo, una barra de 3X
se indica 111, un espacio de 2X, 00, etc. El patrón para el SC correspondiente al carácter “A”
y el número “33” es entonces 10100011000. La penúltima columna de la Tabla 6 contiene
estos patrones.
Código 128
Valor Juego Juego Juego Código Carácter Patrón de Unidades X de
128A 128B 128C ASCII ASCII Barras/Espacios Barras/Espacios
0 Espacio Espacio 00 32 o 212 Espacio o Ô 11011001100 212222
1 ! ! 01 33 ! 11001101100 222122
2 " " 02 34 " 11001100110 222221
3 # # 03 35 # 10010011000 121223
4 $ $ 04 36 $ 10010001100 121322
5 % % 05 37 % 10001001100 131222
6 & & 06 38 & 10011001000 122213
7 ' ' 07 39 ' 10011000100 122312
8 ( ( 08 40 ( 10001100100 132212
9 ) ) 09 41 ) 11001001000 221213
10 * * 10 42 * 11001000100 221312
11 + + 11 43 + 11000100100 231212
12 , , 12 44 , 10110011100 112232
13 - - 13 45 - 10011011100 122132
14 . . 14 46 . 10011001110 122231
15 / / 15 47 / 10111001100 113222
16 0 0 16 48 0 10011101100 123122
17 1 1 17 49 1 10011100110 123221
18 2 2 18 50 2 11001110010 223211
19 3 3 19 51 3 11001011100 221132
20 4 4 20 52 4 11001001110 221231
21 5 5 21 53 5 11011100100 213212
22 6 6 22 54 6 11001110100 223112
23 7 7 23 55 7 11101101110 312131
24 8 8 24 56 8 11101001100 311222
25 9 9 25 57 9 11100101100 321122
Tabla 6
De los 108 SC posibles el que no se utiliza es el 211133 para que la lectura del código
pueda ser bidireccional. En efecto si 211133 fuera un SC válido podría ser confundido con el
2331112, símbolo de fin de código, si se lo lee de derecha a izquierda. De todas maneras,
algunos códigos derivados del Código 128 que incluyen símbolos para funciones (como el
GS1-128 que veremos enseguida), no son de lectura bidireccional. Para separar los códigos en
la representación gráfica, la zona calma debe tener un ancho de al menos 10X.
Cada SC tendrá diferente significado de acuerdo con el juego de caracteres que se haya
especificado. Por ejemplo, el SC 413111 (valor 77) en el juego 128A representa “CR”
(carriage return), en el 128B la letra “m” y en el 128C el número “77”. Por lo tanto el código
de barras debe comenzar siempre por un SC de inicio (Start A, B o C) que identifica el juego
a utilizar. Luego siguen los SC de la información o datos propiamente dichos, el del carácter
de control (CC) y el de fin de código (Stop), que es siempre el mismo y es el único que tiene
13X. Por ejemplo, en la Figura 16 el SC de inicio es Start B (ver la Tabla 6) porque el código
es alfanumérico. En general, cuando el código es alfanumérico, los programas que generan los
códigos utilizan el juego 128B porque es más completo.
Se puede cambiar el juego de caracteres dentro del propio código de barras mediante un
SC de cambio: Code A, Code B y Code C. Por ejemplo, para codificar la información
ABC123456789 se comienza con el juego 128B (Start B), para los tres primeros caracteres
alfabéticos y el 1, y se pasa al 128C (Code C) para los cuatro pares de dígitos siguientes con
doble densidad. Este agrupamiento se debe a que el juego 128C es para pares de dígitos
numéricos, luego conviene incluir el 1 en la parte alfanumérica. Finalmente se debe calcular
el CC, colocar su correspondiente SC y agregar el SC de fin de código. La estructura del
código es la que muestra la Figura 17 en la página siguiente.
Figura 17
Los SC “Shift A” y “Shift B” se usan para cambiar entre los juegos A y B. Dentro de
caracteres del juego A “Shift B” significa que el patrón inmediato siguiente se interpreta
como perteneciente al juego B. Análogamente para “Shift A” dentro del juego B.
El Código 128 incluye cuatro funciones especiales. FNC1 (SC de valor 102) se utiliza en el
código GS1-128, como veremos luego, para indicar que el código se inicia con un
Identificador de Aplicación de 2, 3 o 4 dígitos, asignado por el organismo correspondiente,
que explica el significado de los dígitos siguientes. FNC2 (SC de valor 97, solamente en
128A y 128B) es utilizado para indicar a las lectoras de códigos almacenar los datos y
transmitirlos con el siguiente símbolo. FNC3 (SC de valor 96, únicamente en 128A y 128B)
está reservada para uso futuro y FNC4 (SC de valor 100 en 128B y 101 en 128A) se usa para
pasar al estándar ISO/IEC 8859-1, conocido también como Latin-1, que es el conjunto de
caracteres de 8 bits (256 caracteres) más utilizado. El uso de estas funciones depende del
software utilizado para la codificación/decodificación. En lo que sigue nos limitaremos a los
caracteres de la Tabla 6 y la función FNC1 únicamente.
La Tabla 6 se basa en el código ASCII básico de 7 bits (128 caracteres). En realidad
contiene los códigos ASCII básicos de 32 a 126, porque los caracteres de control (0 a 31) se
han incorporado en el juego de caracteres 128A, y se han agregado los códigos 200 a 211 del
estándar ISO/IEC 8859-1. Por esta razón si se quiere hallar el código ASCII equivalente del
valor de un SC se debe aplicar la siguiente regla: si el valor del SC es menor que 95 se le debe
sumar 32; si es mayor o igual a 95 se le debe sumar 105. Por ejemplo, al SC de valor 6 le
corresponde el código ASCII 6 + 32 = 38 que es el carácter “&”; al SC de valor 98 le
corresponde el código ASCII 98 + 105 = 203 que es el carácter “Ë”. La sexta columna de la
tabla ya tiene hecha esta sustitución. Para obtener el valor ASCII equivalente para los
caracteres de control, al valor de la columna 1 (valores 64 a 95) se le debe restar 64. Por
ejemplo el valor ASCII del carácter GS (Group Separator) es 93 – 64 = 29.
Carácter de control
El carácter de control (CC) es una suma ponderada módulo 103. Se calcula sumando los
productos de los valores de los símbolos por sus posiciones en el código, de izquierda a
derecha, y dividiendo en forma entera el resultado por 103; el resto de la división es el valor
del carácter de control cuyo SC se coloca al final. Obsérvese que de esta manera el SC del
carácter de control solamente puede tomar los valores de 0 a 102 y, por lo tanto, quedan
excluidos los caracteres de inicio y fin de código (ver Tabla 6). Las posiciones de los
caracteres se cuentan a partir del primero de datos, es decir sin incluir el de inicio, pero el
valor de este también se suma, es decir, se lo considera implícitamente con ponderación 1.
Ejemplo 27
Supongamos el código de producto ABC-123456. Dado que comienza con letras
mayúsculas se podría usar el juego de símbolos 128A o 128B, pero ya dijimos que, en
general, para códigos alfanuméricos los programas utilizan el 128B. El primer SC del código
será entonces Start B (valor 104) y después los SC para A (valor 33), B (valor 34), C (valor
50 Clasificación y Codificación de Productos. 2012 R. Morán.
35) y - (valor 13). Como los caracteres que siguen son numéricos se pasa al juego 128C (Code
C, valor 99) y se colocan a continuación los SC para 12, 34 y 56. Antes de poner el SC de fin
(Stop) se debe calcular el carácter de control y colocar el correspondiente SC. El cálculo se
muestra en la Tabla 7.
Tabla 7
Tabla 8
Figura 18
Ejemplo 28
Retomemos el Ejemplo 21 con el código (00)077912340000056989 correspondiente a una
caja de cartón. Dado que el código es numérico el juego de datos de comienzo será el 128C.
Inmediatamente después debe ir la FNC1 para indicar que se trata de un código GS1-128,
luego los datos, el carácter de control y el SC de fin de código.
52 Clasificación y Codificación de Productos. 2012 R. Morán.
Utilizando los símbolos < > para indicar las posiciones dentro del código en las que se
deben insertar los caracteres de control, funciones, datos, etc., la estructura del código es:
<Start C><FNC1><00077912340000056989><CC><Stop>
Si se calcula el CC del código resulta (ejercicio) el valor 50.
El código de barras es:
Figura 19
Ejemplo 29
El código del Ejemplo 22 es (01)97791234000121(3103)023670, correspondiente a un
cajón con cantidad variable en el que se debe especificar el peso. El último campo, el peso, es
de longitud fija (6 dígitos). Ambos campos son de longitud fija y no se requiere más que la
FNC1 inicial. La estructura del código es:
<Start C><FNC1><01977912340001213103023670><CC><Stop>
El CC resulta igual a 2. El código de barras es el de la Figura 20.
Figura 20
Ejemplo 30
En el Ejemplo 23 el código (00)177912340056789128(21)2548MW es el de un palé que
contiene un producto con número de serie 2548MW. El número de serie es de longitud
variable de hasta 20 caracteres alfanuméricos. Como es el último campo no requiere insertar
FNC1 para indicar su finalización. Los caracteres a codificar son:
<Start C><FNC1>00177912340056789128212548<Code B>MW<CC><Stop>
El código resulta:
Figura 21
Ejemplo 31
En el Ejemplo 24 el código (10)JC-938(11)111215 es del lote JC-938 fabricado el
15/12/2011. Los datos a codificar son:
<Start C><FNC1><10><Code B><JC-9><Code C><38><FNC1><11101215><CC><Stop>
Al final del código del lote se debe insertar FNC1 porque es de longitud variable, no se
utiliza su longitud máxima y no es el último. El código es:
St. C FNC1 10 Cod.B J C - 9 Cod.C 38 FNC1 11 11 12 15 CC Stop
Figura 22
Ejemplo 32
El código (21)123456(11)110901(17)120630 se refiere al producto con número de serie
123456 fabricado el 01/09/2011 y con fecha de vencimiento 30/06/2012. El número de serie
es de longitud variable y no se utiliza su longitud máxima, se inserta FNC1. Entre las fechas
de fabricación y vencimiento no hace falta FNC1 porque son de longitud fija. Los caracteres a
codificar son:
<Start C><FNC1>21123456<FNC1>1111090117120630<CC><Stop>
El código es el de la Figura 23.
St. C FNC1 21123456 FNC1 1111090117120630 CC Stop
Figura 23
5.1.2 Estructura de datos en los códigos de barras GS1 que utilizan Identificadores
de Aplicación.
La estructura de datos que hemos visto en el Código GS1-128 se generaliza para todas las
simbologías de códigos de barras GS1 que usan AI, que veremos enseguida, con las ventajas
señaladas sobre la concatenación de códigos en una única cadena de caracteres.
La función FNC1 como primer carácter del símbolo (en el GS1-128 inmediatamente detrás
del carácter Start) indica que los datos están codificados de acuerdo con el estándar GS1. Este
indicador de comienzo está reservado en todo el mundo para aplicaciones del sistema GS1, lo
que hace posible distinguir los códigos GS1 de otros códigos no GS1.
En otra posición posterior, dentro de un símbolo GS1, FNC1 es un separador de campos
usado únicamente si el campo es de longitud variable, no se utiliza la longitud máxima y no es
Identificadores de Simbologías
Si bien el carácter FNC1 indica que el código es una simbología estándar GS1, se debe
indicar cuál de ellas es la utilizada en cada caso. Esta es la función de los Identificadores de
Simbologías.
Cuando se decodifica un código de barras el carácter FNC1 inicial no se representa en los
datos transmitidos, sino que se lo reemplaza por el Identificador de Simbología apropiado
que es generado por el escáner y es transmitido como un prefijo en el mensaje. El escáner
debe tener la capacidad de reconocer la simbología que ha escaneado y transmitir el
identificador de simbología correspondiente.
De acuerdo con la Norma ISO/IEC 15424 el Identificador de Simbología está compuesto
por tres caracteres: un carácter bandera (el símbolo ], valor ASCII 93), que indica que los dos
caracteres que siguen son un Identificador de Simbología; un carácter de código, que
especifica el tipo de simbología; y un carácter modificador, que indica el modo en que es
usada la simbología.
En el sistema GS1 los Identificadores de Simbologías, para las simbologías que pueden
utilizar AI, son los siguientes:
Ejemplo 33
El código del Ejemplo 32, Figura 23, se decodifica como:
]C121123456<GS>1111090117120630
Tabla 10
(01)07791234000128
Expandido GTIN-1414 más AI. Sí Artículos con
Máximo: 74 dígitos num. información
o 41 caracteres alfanum. adicional (01)07791234000128(21)12345
Expandido GTIN-1414 más AI. Sí Artículos con
apilado Máximo: 74 dígitos num. información
o 41 caracteres alfanum. adicional
(01)97791234000121(3103)001500
(17)140600(21)12345
Truncado GTIN-14 No Pequeños
artículos (01)07791234000128
Tabla 11
Esta simbología puede ser utilizada en los puntos de venta (PV) minorista si cuentan con
los escáneres apropiados. Como los símbolos GS1-DataBar
GS1 utilizan 14 dígitos, si el punto de
venta minorista solamente utiliza 13 dígitos, el GTIN-14
GTIN 14 debe tener el dígito indicador igual a
Ejemplo 35
En la cuarta fila de la Tabla 11 está codificado un artículo con cantidad variable (GTIN-14
(GTIN
con Dígito Indicador igual a 9), que pesa 1,500
1,500 Kg, vence en junio de 2014 y tiene número de
serie 12345.
El código es Expandido Apilado con 4 segmentos por fila. El mismo código no apilado
sería el siguiente:
(01)97791234000121(3103)001500(17)140600(21)12345
Figura 25
Ejemplo 36
El símbolo de la Figura 26 es un ejemplo de aplicación de la variante GS1-
GS1
DataBar Omnidireccional Apilado a productos de medida fija en los puntos de
venta minorista. El símbolo forma parte de una pequeña etiqueta adherida
adherida al
artículo y representa el código GTIN-14
GTIN del mismo. Figura 26
14
Para estos detalles véase, por ejemplo, F. J. Espinosa, L. Hernández y A. Martín, “Codificación de
información mediante códigos bidimensionales”, Bol. Soc. Esp. Mat. Apl. N° 29 (2004), 35-55.
15
Ver el punto 2.5.
Clasificación y Codificación de Productos. 2012 R. Morán. 61
En el caso general es p = 0, como expresa la (3), pero en PDF417 la Norma
orma establece p = 2
para asegurar la fiabilidad de la información corregida.
El esquema general de detección
detec y corrección de errores es el siguiente:
• El sistema de detección de errores utiliza siempre 2 CW y el de corrección puede usar entre
0 y 510 CW, dependiendo del nivel de corrección elegido.
• Existen 9 niveles de corrección de errores (del 0 al 8) con un número total de CW de ECC
dado por d = 2s+1, donde s es el nivel de corrección pretendido. Se obtienen los valores de
la Tabla 12.
Nivel de corrección s = 0 1 2 3 4 5 6 7 8
Número de CW de ECC d = 2 4 8 16 32 64 128 256 512
Número de CW para datos = 925 923 919 911 895 863 799 671 415
Tabla 12
Cuanto mayor sea el nivel de seguridad, más CW para ECC deben utilizarse y, por tanto,
menor cantidad de información se puede codificar.
• El nivel 0 puede detectar errores pero no corregirlos. El nivel de corrección de errores a
utilizar depende de la cantidad de CW de datos que se prevea puedanpuedan perderse, y los
valores recomendados son los de la Tabla 13.
Tabla 13
Así, por ejemplo, para el nivel de corrección s = 2 resulta d = 8 y, de acuerdo con la (4), se
pueden corregir hasta 6 borraduras, o 4 borraduras y 1 error, o 2 borraduras y 2 errores, o 3
errores.
El nivel de corrección puede ser seleccionado automáticamente por el software de
codificación
ificación en función de la cantidad de datos a codificar.
Una vez definidas las CW de la información a codificar y determinadas las CW de ECC, se
decide el aspecto que tendrá el código, es decir, el número de filas y de columnas (lo que
puede obligar a considerar
nsiderar datos de relleno).
Ejemplo 37
El código ABC123456789 está representado en las
simbologías de las figuras siguientes. En la Figura 29 el
nivel de corrección de errores es s = 2, que es el
recomendado por la cantidad de datos.
datos En la Figura 30 el
nivel es s = 5.
Figura 29 Figura 30
Micro PDF417
Es una simbología que puede ser utilizada en aplicaciones que necesitan codificar una
moderada cantidad de datos (hasta 366 dígitos numéricos o 250 caracteres alfanuméricos o
150 bytes), y cuando minimizar el tamaño del símbolo es prioritario. La Norma
correspondiente es la ISO/IEC 24728.
Es una simbología PDF417 a la que, con el objetivo de ahorrar espacio, se le han
reemplazado los indicadores izquierdo y derecho y los de comienzo y fin por patrones de
dirección de filas que se ubican a la izquierda y derecha de cada fila. Los datos se codifican
en los mismos modos de compactación que en PDF417 y con las mismas características. La
Figura 31 muestra un ejemplo.
A diferencia de PDF417, esta simbología puede ser
impresa únicamente en ciertas combinaciones de filas y
columnas, que constituyen las versiones del símbolo, con un
máximo de 4 columnas por 44 filas. Cada símbolo Micro
PDF417 tiene al menos siete CW de ECC. El número de Figura 31
CW de ECC es fijo para cada versión del símbolo.
Los códigos Micro PDF417 son muy utilizados para crear códigos compuestos, en
conjunto con códigos de barras lineales.
16
La Simbología Compuesta está descripta en: AIM (Association for Automatic Identification and Mobility), ITS
99-002 - International Symbology Specification - Composite Symbology.
Clasificación y Codificación de Productos. 2012 R. Morán. 63
GS1-DataBar
GS1-128
Observación. La simbología ITF-14 no puede ser utilizada como componente lineal.
La elección del componente lineal determina el nombre del símbolo compuesto, por
ejemplo: EAN-13 Composite, GS1-128 Composite.
• Componente bidimensional. Es elegido a partir del componente lineal seleccionado y de la
cantidad de datos complementarios por codificar. Puede ser uno de los siguientes, por
orden de capacidad creciente:
Tipo A: Utiliza una variante de la simbología Micro PDF417 (máximo 56 dígitos).
Tipo B: Usa la simbología Micro PDF417 con nuevas reglas de codificación (máximo
338 dígitos).
Tipo C: Simbología PDF417 con nuevas reglas de codificación (máximo 2361 dígitos).
• Detección y corrección de errores:
Componente lineal: carácter de control para detección de errores.
Componente bidimensional: número fijo o variables de CW de ECC de Reed-Solomon,
dependiendo del componente específico utilizado.
• Decodificable bidireccionalmente.
Adicionalmente, en la Simbología Compuesta GS1 se tienen las siguientes características:
• Los componentes bidimensionales utilizan un modo de compactación diseñado para
codificar eficientemente datos que utilizan Identificadores de Aplicación (AI)
• El componente bidireccional contiene un indicador de vinculación, que le indica a la
lectora que no se debe transmitir ningún dato a menos que el componente lineal asociado
sea también escaneado y decodificado. Todos los componentes lineales, excepto las
simbologías EAN/UPC, tienen también un indicador de vinculación explícito.
• Las lectoras preparadas para el modo emulación GS1-128 pueden trasmitir los datos
codificados en las simbologías compuestas GS1 como si fueran datos codificados en uno o
más códigos GS1-128.
• El componente bidimensional puede codificar un Carácter Separador de Símbolos. Este
carácter indica a la lectora terminar el mensaje actual y transmitir los datos que siguen al
separador como un mensaje separado. Este nuevo mensaje tiene el prefijo Identificador de
Simbología “]e1”, como indica la Tabla 9.
• Los componentes bidimensionales tipo B y C pueden codificar también CW que forman un
Mecanismo de Escape. Estas CW indican a la lectora terminar el mensaje actual y
transmitir los datos que siguen al mecanismo de escape como un mensaje separado, pero
cuyas CW se codifican y decodifican utilizando el estándar PDF417 definido en la Norma
ISO/IEC 15438. El nuevo mensaje tendrá el prefijo Identificador de Simbología “]e2”
(Tabla 9). Este mecanismo es para aplicaciones que requieran caracteres que no están
incluidos en el subconjunto ISO 646, definido para datos que contienen Identificadores de
Aplicación.
Ejemplo 39
En el código de la Figura 33 el SSCC está codificado en el componente lineal en GS1-128
GS1
y los demás datos en el componente bidimensional tipo C (PDF417 modificado).
(00)030123456789012340(02)13012345678909(37)24(10)1234567ABCDEFG
Figura 33
Tabla 14
Tabla 15
Ejemplo 40
El código (01)97791234000121(3103)001500(17)140600(21)12345 da
origen a las siguientes CW (anteponiendo FNC1, ASCII 232):
232)
232 131 227 209 142 164 130 131 151 161 133 130 145 130 147 144
136 130 151 142 164 54.
Son 22 CW de datos y por lo tanto, de acuerdo con la Tabla 14,, se Figura 37
generan 18 CW de detección y corrección de errores y la matriz resulta de
20 filas y 20 columnas (datos 18×18).
18 La Figura 37 es el símbolo obtenido.
Ejemplo 41
El código (21)123456(11)110901(17)120630 requiere dos caracteres FNC1:
<FNC1>(21)123456<FNC1>(11)110901(17)120630.
El segundo se codifica como <GS> (ASCII
(A 29), resultando las CW:
5.1.4.5 Código QR
El código QR (Quick
Quick Response Barcode)
Barcode es una simbología bidimensional matricial
matri de
propósito general diseñada para un escaneo rápido de la información. Fue
desarrollado en Japón, donde es muy popular, y es eficiente para codificar
caracteres Kanji. El código QR es de forma cuadrada y puede ser fácilmente
identificado por su patrón de cuadros oscuros y claros en tres de las esquinas
del símbolo (Figura 39).). Su origen fue el registro de piezas en fabricación y
es utilizado para el control de las existencias. La Norma ISO/IEC 18004: 18004
Figura 39
2006 define la versión actual (QR 2005) y el código es de uso abierto.
Los elementos básicos de la codificación son los pequeños puntos cuadrados,
cuadrados llamados
módulos, dentro de la matriz. La dimensión X es el lado de esos cuadrados y el valor nominal
es X = 0,5 mm, aunque puede ser variado por el usuario.
La lectura de estos códigos requiere escáneres de imágenes (tipo cámaras fotográficas). En
particular, con la inclusión de software que decodifica estos códigos en los teléfonos móviles
se los puede leer a través de sus cámaras fotográficas. Este hecho ha permitido nuevos
nuev usos de
la simbología no orientados a la industria como, por ejemplo, ingresar datos automáticamente
en las agendas si los mismos están codificados en avisos, tarjetas de presentación, etc.
Para la correcta lectura de los códigos los símbolos siguientes definen la posición, la
alineación y la sincronización.
: Posición.. Define la posición del símbolo posibilitando la lectura omnidireccional.
: Alineación.. Permite corregir las distorsiones del símbolo.
: Sincronización (son los puntos que unen los ángulos
ángulos interiores de los tres símbolos
de posición). Identifica las coordenadas centrales de los módulos.
La zona calma alrededor del símbolo es de al menos 4X.
Los módulos constituyen el área de datos del símbolo en la que se codifica la información.
Cada módulo representa un bit (0 o 1) y la l codificación,, en cuyos detalles no entraremos, se
realiza mediante palabras-código
código (CW) de 8 bits. Se pueden codificar cuatro conjuntos de
caracteres con las siguientes características:
Dígitos numéricos: 3,3 módulos/dígito.
Caracteres alfanuméricos: 5,5 módulos/carácter.
Caracteres binarios (8 bits): 8 módulos/carácter.
Caracteres Kanji/Kana: 13 módulos/carácter.
See utiliza el algoritmo de Reed-Solomon
Reed (RS) para la detección y corrección de errores,
con cuatro niveles de corrección. La capacidad de corrección aproximada de cada uno de los
niveles, medida como porcentaje de las CW que pueden ser restauradas, es la siguiente:
Ejemplo 42
Los símbolos QR de la Figura 40 representan la
siguiente información sobre un artículo:
GTIN: 97791234000121 - PESO: 1,500 - VTO:
JUN/2014 - LOTE: 12345
Ambos están generados con X = 0,5 mm. El de la Figura 40
izquierda con nivel de corrección de errores L y el de la
derecha con nivel H.
Ejemplo 43
La Figura 42 es el símbolo del
de código:
(01)97791234000121(3103)001500(17)140600(21)12345
Tiene nivel M de corrección de errores y el tamaño es de 33×33 módulos.
módulos Figura 42
Sistema EPC
El Sistema EPC es un nuevo estándar que combina la tecnología RFID, la infraestructura
de redes existente y el Código Electrónico del Producto (EPC: Electronic Product Code), para
la identificación automática, precisa, efectiva y en tiempo real de objetos físicos. El código
EPC con RFID está estandarizado por la Norma ISO 18000-C. El ente regulador del Sistema
EPC es EPCglobal, subsidiaria de la organización GS1.17 Su papel primordial es el de
asesorar y homologar las aplicaciones disponibles en la industria.
El Sistema EPC está conformado por cinco elementos fundamentales:
• Código EPC. Número único que identifica el ítem u objeto.
17
http://www.gs1.org/epcglobal
Clasificación y Codificación de Productos. 2012 R. Morán. 73
• Etiquetas (Tags) y lectores de RFID. Dispositivos de almacenamiento y lectura del
código EPC.
• Software RFID. Programas que controlan el flujo de datos EPC en la red.
• Servidor ONS (Object Name Service). Servicio de búsqueda que toma un EPC como
entrada y produce como salida la dirección (en la forma de una URL: Uniform Resouce
Locator) de un sitio de Internet, identificado por el campo Administrador EPC en el código
EPC.
• Servidor EPCIS (Electronic Product Code Information Services). Servidor para compartir
información relacionada con EPC entre los participantes en las cadenas de suministro
globales.
EPCIS es un estándar de EPCgolbal. Provee nuevas e importantes capacidades para
mejorar la eficiencia, seguridad y visibilidad en las cadenas logísticas, y complementa los
estándares de más bajo nivel de las etiquetas, unidades lectoras y software relacionado.
Una compañía miembro de GS1 que desee utilizar el Sistema EPC tiene que registrar su
Prefijo de Empresa GS1 en el sistema ONS. Esto le permitirá asignar códigos EPC a cada
producto individual.
Código GTIN
El GTIN solo no se corresponde con un EPC porque identifica una clase de ítems, no ítems
individuales. En cambio sí se corresponden el GTIN más un número de serie único con un
EPC. Esa combinación es llamada GTIN Serializado y hay dos esquemas de codificación,
indicadas SGTIN-96 y SGTIN-198.
Código SGTIN-96
• Encabezamiento EPC: 8 bits. Especifica el esquema de codificación utilizado, indicando
longitud, tipo y estructura del EPC.
• Filtro: 3 bits. Indica el nivel de agregación.
• GTIN: 47 bits. Contiene el Prefijo de Empresa y la Referencia de Artículo sin incluir el
Dígito de Control.
• Número de serie: 38 bits. Solamente numérico, sin ceros a la izquierda, con valor decimal
que no supere la capacidad del campo (238 = 274.877.906.943).
De esta manera el código SGTIN-96 es similar, pero no idéntico, al GTIN (AI 01) más un
Número de Serie (AI 21), porque el Número de Serie en el EPC está limitado a dígitos
numéricos únicamente, sin ceros a la izquierda, y que no superen la capacidad del campo,
mientras que en la especificación GS1 el Número de Serie puede tener hasta 20 caracteres
alfanuméricos.
18
GS1 EPC Tag Data Standard 1.6 (http://www.gs1.org/epcglobal).
Clasificación y Codificación de Productos. 2012 R. Morán. 75
Código SGTIN-198
El código GTIN-198, de 198 bits, admite todos los valores de las Especificaciones
Generales de GS1 (hasta 20 caracteres alfanuméricos). La única diferencia respecto del
GTIN-96 es que para el Número de Serie dispone de 140 bits.
Todos los demás indicadores GS1 tienen Encabezados de 8 bits y Filtros de 3 bits, con las
funciones ya señaladas, de manera que nos limitaremos a señalar las características esenciales.
Código SSCC-96
• Encabezamiento EPC y Filtro: 11 bits.
• SSCC: 61 bits. Admite todos los valores de las Especificaciones Generales de GS1 (Prefijo
de Empresa y Número de Serie, incluyendo el dígito de Extensión).
• Reservado: 24 bits.
Código SGLN-96
• Encabezamiento EPC y Filtro: 11 bits.
• GLN: 44 bits. Admite todos los valores de las Especificaciones Generales de GS1 (Prefijo
de Empresa y Número de Serie, incluyendo el dígito de Extensión).
• Extensión: 41 bits. Solamente numérica, sin ceros a la izquierda, valor decimal menor o
igual a 241 (2.199.023.255.551).
Código SGLN-195
Para la Extensión dispone de 140 bits, admitiendo todos los valores correspondientes al AI
254, esto es, hasta 20 caracteres alfanuméricos. Los demás elementos son los mismos del
SGLN-96.
Código GRAI-96
• Encabezamiento EPC y Filtro: 11 bits.
• GRAI: 47 bits. Admite todos los valores de las Especificaciones Generales de GS1.
• Número de Serie: 38 bits. Solamente numérico, sin ceros a la izquierda, valor decimal
menor o igual a 238 (274.877.906.943).
Código GRAI-170
Para el Número de Serie dispone de 112 bits, admitiendo todos los Números de Serie
correspondientes al AI 8003 (hasta 16 caracteres alfanuméricos). Los demás elementos son
los mismos del GRAI-96.
Código GIAI-96
• Encabezamiento EPC y Filtro: 11 bits.
• GIAI: 85 bits. Solamente numérico, sin ceros a la izquierda, con valor decimal menor o
igual que un límite que varía con la longitud del Prefijo de Empresa GS1.
Otros códigos
Si bien EPCglobal es subsidiaria de GS1, las aplicaciones de los códigos electrónicos van
más allá de los estándares GS1. EPC incluye códigos para los que no hay identificadores GS1
correspondientes como, por ejemplo, el GID-96 (GID: General Indentifier), y códigos para
aplicaciones muy diferentes de la identificación de productos, que son los únicos que hemos
considerado.
Los códigos electrónicos constituyen un espacio de aplicaciones muy amplio y dinámico,
de manera que el lector interesado debe consultar permanentemente la actualización de las
Normas y la documentación pertinente.
Finalmente, cabe recordar que en la identificación y clasificación de productos lo esencial
es la codificación. Los portadores de datos son medios que, si bien son imprescindibles para
procesar los códigos en forma automática, cambian con la evolución de las tecnologías. No
obstante, debe tenerse siempre presente que los medios portadores pueden condicionar la
codificación y por lo tanto no se los puede ignorar al realizarla.
6 BIBLIOGRAFÍA
1. Blahut, Richard E., Algebraic Codes for Data Transmission, Cambridge University Press,
2011. ISBN 978-0521556590.
2. Burke, Harry E., Automating Management Information Systems: Barcode Engineering
and Implementation, Van Nostrand Reinhold, 1990. ISBN: 978-0442207120.
3. Espinosa, F. J., L. Hernández y A. Martín, “Codificación de información mediante
códigos bidimensionales”, Bol. Soc. Esp. Mat. Apl. N° 29 (2004), 35-55.
4. Finkenzeller, Klaus, RFID Handbook: Fundamentals and Applications in Contactless
Smart Cards, Radio Frequency Identification and Near-Field Communication, 3a ed.,
Wiley, 2010. ISBN: 978-0470695067.
5. Gallagher C. C. y W. A. Knight, Group Technology Production Method in Manufacture,
UK: Ellis Horwood, 1986.
6. Groover, Mikell P., Automation, Production Systems, and Computer-Integrated
Manufacturing, 3a ed., Prentice Hall, 2007. ISBN: 978-0132393218.
7. Michael, Katina, Innovative Automatic Identification and Location-Based Services: From
Bar Codes to Chip Implants (Premier Reference Source), IGI Global, 2009. ISBN: 978-
1599047959.
8. Monsó i Bustio, Julià, Sistemas de Identificación y Control Automáticos, Tomo II,
(Sistemas de control de flujo físico), Barcelona: Marcombo S. A., 1994. ISBN: 978-
8426709233