El Código Universal de Producto ( UPC o código UPC ) es una simbología de código de barras que se utiliza en todo el mundo para rastrear artículos comerciales en las tiendas.
La simbología elegida tiene barras (o espacios) de exactamente 1, 2, 3 o 4 unidades de ancho cada una; Cada dígito decimal a codificar consta de dos barras y dos espacios elegidos para tener un ancho total de 7 unidades, tanto en forma de paridad "par" como "impar", lo que permite escanear en cualquier dirección. Se mezclan "patrones de guardia" especiales (de 3 o 5 unidades de ancho, que no codifican un dígito) para ayudar a la decodificación.
Un UPC (técnicamente, un UPC-A) consta de 12 dígitos que se asignan de forma única a cada artículo comercial. La organización internacional GS1 asigna los dígitos utilizados tanto para el código de barras UPC como para el número de artículo internacional (EAN) relacionado . [1] Las estructuras de datos UPC son un componente de los números globales de artículos comerciales (GTIN) y siguen la especificación global GS1, que se basa en estándares internacionales. Algunos minoristas, como los de ropa y muebles, no utilizan el sistema GS1, sino que utilizan otras simbologías de códigos de barras o sistemas de números de artículos. Algunos minoristas utilizan la simbología del código de barras EAN/UPC, pero no utilizan un GTIN para productos vendidos únicamente en sus propias tiendas.
Las investigaciones indican que la adopción y difusión de la UPC estimuló la innovación y contribuyó al crecimiento de las cadenas de suministro minoristas internacionales. [2]
Wallace Flint propuso un sistema de pago automatizado en 1932 mediante tarjetas perforadas . Bernard Silver y Norman Joseph Woodland , un estudiante graduado del Instituto de Tecnología Drexel , desarrollaron un código estilo diana y solicitaron la patente en 1949. [3] [4]
En la década de 1960 y principios de la de 1970, los ferrocarriles de América del Norte experimentaron con códigos de barras multicolores para rastrear vagones , pero este sistema finalmente fue abandonado [5] y reemplazado por un sistema basado en radio llamado Identificación Automática de Equipos (AEI) .
En 1973, un grupo de asociaciones comerciales de la industria de comestibles formó el Uniform Product Code Council (UPCC) que, con la ayuda de los consultores Larry Russell y Tom Wilson de McKinsey & Company , definió el formato numérico que formó la base del Uniform Product Code. Código. [6] Empresas de tecnología como Chaegon, IBM , Litton-Zellweger, Pitney Bowes-Alpex, Plessey-Anker, RCA , Scanner Inc., Singer y Dymo Industries /Data General, presentaron al consejo propuestas alternativas para representaciones de símbolos. [ cita necesaria ] El Comité de Selección de Símbolos finalmente decidió implementar la propuesta de IBM diseñada por George J. Laurer , pero con una ligera modificación en la fuente en el área legible por humanos. [ cita necesaria ]
El primer artículo con la marca UPC que se escaneó en una caja minorista fue un paquete de 10 (50 barras) de chicle Wrigley's Juicy Fruit , comprado en el supermercado Marsh en Troy, Ohio , a las 8:01 am del 26 de junio de 1974. [7] La caja registradora de NCR marcó 67 céntimos. [8] El carrito de compras también contenía otros artículos con códigos de barras, pero el chicle fue el primero que se recogió en la caja. Un facsímil del paquete de chicles se exhibió en el museo de historia estadounidense del Instituto Smithsonian en Washington, DC [9] [10]
Murray Eden fue consultor del equipo que creó el código de barras del Código de producto universal. [11] [12] Como presidente de un comité de científicos en el Instituto de Tecnología de Massachusetts , ayudó a "seleccionar un símbolo que resistiría la inevitable avalancha de tecnología que se avecinaba". [13] Eligió la fuente y se le ocurrió la idea de agregar números en la parte inferior, que es un sistema a prueba de fallas , en caso de que el lector de códigos de barras no funcione correctamente. [14] [15]
Hacia finales de 1969, IBM en Research Triangle Park (RTP) en Carolina del Norte asignó a George Laurer la tarea de determinar cómo fabricar un escáner y una etiqueta para supermercado. A finales de 1970, Heard Baumeister proporcionó ecuaciones para calcular los caracteres por pulgada que pueden alcanzar dos códigos de barras de IBM, Delta A y Delta B. En febrero de 1971, Baumeister se unió a Laurer.
Delta B comparó el ancho de las barras con el ancho del espacio y los bits de código. Esto era extremadamente sensible a la dispersión de la tinta, donde niveles inadecuados de tinta o presión causaban que ambos bordes de una barra se extendieran hacia afuera o se encogieran.
A mediados de 1971, William "Bill" Crouse inventó un nuevo código de barras llamado Delta C. [4] Logró cuatro veces más caracteres por pulgada que Delta B.
Delta C logró su mayor rendimiento utilizando únicamente bordes de entrada a salida o de salida a salida que no se vieron afectados por la distribución uniforme de la tinta. El código proporcionaba el mejor rendimiento cuando tenía un conjunto de caracteres definido con una distancia de referencia fija que abarcaba la mayor parte o preferiblemente todos los caracteres.
En agosto de 1971, Crouse se unió al esfuerzo del escáner. Después de varios meses no habían logrado ningún progreso. Conocían la etiqueta de ojo de buey RCA que podía escanearse con un simple escáner láser de línea recta, pero una etiqueta legible era demasiado grande.
Aunque Litton Industries propuso un símbolo de diana cortado a la mitad para reducir el área, todavía era demasiado grande y presentaba los mismos problemas de impresión de manchas de tinta que el símbolo RCA. La redundancia y la capacidad de verificación se eliminaron por completo. También eran conscientes de las numerosas propuestas procedentes de todo el mundo, ninguna de las cuales era viable.
En la primavera de 1972, Baumeister anunció un gran avance. Propuso una etiqueta con barras que eran ligeramente más largas que la distancia entre todas las barras que debían leerse en una sola pasada. Esta etiqueta podría escanearse con un escáner "X" simple, sólo un poco más complejo que el escáner láser de línea recta. Al día siguiente, Baumeister sugirió que si la etiqueta se dividiera en dos mitades, la longitud de las barras se podría cortar casi a la mitad.
Estas dos propuestas redujeron el área del centro en un tercio y luego en un sexto. La imagen de la derecha muestra la etiqueta propuesta por Baumeister. No especificó ningún código de barras específico porque era bien entendido. Salvo el código de barras y los diez dígitos la etiqueta UPC hoy es su propuesta. Poco después Baumeister se trasladó a otra área de RTP.
Laurer procedió a definir los detalles del sello y redactar una propuesta. NJ Woodland fue asignado como planificador del proyecto y ayudó a Laurer a redactar su propuesta.
El primer intento de Laurer con un código de barras utilizó Delta B. El tamaño de la etiqueta resultante fue de aproximadamente seis pulgadas por tres pulgadas, lo cual era demasiado grande. Crouse sugirió que Laurer usara su código de barras Delta C y le proporcionó una copia de su patente que tenía un conjunto de caracteres alfanuméricos de muestra y reglas para generar alfabetos de otros tamaños. Esto redujo el tamaño de la etiqueta a aproximadamente 1,5 x 0,9 pulgadas (38 mm x 23 mm).
Más tarde, Laurer le pidió ayuda a Crouse sobre cómo el escáner podía detectar una etiqueta. Juntos definieron barras de protección y una definición de cómo detectar la etiqueta. Las barras de protección también proporcionaron identificación para la discriminación de medias etiquetas y barras de entrenamiento para los circuitos de umbral del escáner. Laurer tenía una definición completa de la etiqueta y procedió a redactar su propuesta. [dieciséis]
Anteriormente, Crouse tuvo la idea de una varita simple que se usaba como anillo y pulsera. Decidió desarrollar esa varita para hacer una demostración de la etiqueta. [ cita necesaria ]
El 1 de diciembre de 1972, IBM presentó la propuesta de Laurer al Comité de Supermercados en Rochester, Minnesota , el lugar donde IBM desarrollaría el escáner. Durante la presentación, Crouse hizo una demostración de laboratorio en la que leyó etiquetas tipo UPC con su varita anular. Además de leer las etiquetas habituales, leyó la gran etiqueta central de dos páginas del folleto de propuestas. Luego pasó a una página que mostraba una fotografía de artículos etiquetados sobre una mesa. Las etiquetas eran pequeñas y defectuosas debido a la resolución de la fotografía impresa, pero la varita leyó muchas de ellas. Esta demostración mostró la solidez del código Delta C puro. La propuesta fue aceptada.
Un mes después, el 1 de enero de 1973, Crouse volvió a ser transferido al grupo de Tecnología Avanzada de IBM y Laurer permaneció con toda la responsabilidad del sello.
Dymo Industries , fabricantes de dispositivos de impresión portátiles, insistieron en que el código fuera independiente de los caracteres, [ se necesita aclaración ] para que los dispositivos de impresión portátiles pudieran producir el código de barras en la tienda si los artículos no estaban codificados por los fabricantes. La propuesta de Dymo fue aceptada por IBM y incorporada en la última propuesta de IBM.
Se decidió que las dos mitades de la etiqueta deberían tener un conjunto diferente de caracteres numéricos. El conjunto de caracteres que Laurer derivó de la patente Delta C utilizó siete incrementos o unidades imprimibles donde se imprimirían dos barras y dos espacios. Esto produjo veinte combinaciones de caracteres, pero había dos pares que, cuando se leían mediante las reglas Delta C, arrojaban el mismo código para el par.
Como dieciocho caracteres no eran suficientes, Laurer intentó agregar una unidad al conjunto de caracteres. Esto produjo veintiséis caracteres Delta C que podían proporcionar los dos conjuntos de caracteres decimales pero también añadió un catorce por ciento al ancho de la etiqueta y, por lo tanto, a la altura. Esto sería un aumento del treinta por ciento en el área o una etiqueta de 1,7 x 1,03 pulgadas (43 mm x 26 mm). Laurer consideró que esto no era aceptable.
Laurer volvió al conjunto de caracteres original con veinte caracteres, pero cuatro de ellos eran dos pares con la misma lectura de Delta C. Decidió usarlos todos. Para distinguir entre los pares, mediría el ancho de una barra en cada uno de los pares para distinguirlos entre sí. Para cada par, esas barras tendrían una o dos unidades de ancho.
Laurer no aplicó las ecuaciones de Baumeister a este conjunto. Sintió que medir el ancho de una sola barra no sería demasiado serio. Al final resultó que, habría requerido un aumento de más del cincuenta por ciento en ancho y alto para un aumento de área de más del doble. Más tarde, Laurer admitió que estos cuatro caracteres en cada conjunto eran responsables de la mayoría de los errores de lectura del escáner.
A David Savir, un matemático, se le encomendó la tarea de demostrar que el símbolo podía imprimirse y cumpliría los requisitos de confiabilidad, y probablemente desconocía las ecuaciones de Baumeister. Él y Laurer agregaron dos dígitos más a los diez para la detección y corrección de errores .
Luego decidieron agregar paridad impar/par al número de unidades llenas de barras en cada lado. La paridad impar/par es una técnica utilizada para detectar cualquier número impar de errores de bits en un flujo de bits. Decidieron usar impar en una mitad y par en la otra. Esto proporcionaría una indicación adicional de qué mitad del billete se estaba leyendo. Esto significaba que cada ancho de barra debía leerse con precisión para proporcionar una buena lectura. También significaba que cada espacio sería conocido.
Exigir que cada ancho de bit se leyera con precisión básicamente anulaba la ventaja Delta C, excepto para la medición de referencia Delta C. Sólo el extraño juego de caracteres y el tamaño de la etiqueta permanecen como una sombra del código Delta C. El tamaño seguía siendo el calculado para Delta C puro. Si el tamaño de la etiqueta se hubiera recalculado correctamente, teniendo en cuenta las medidas de ancho de barra requeridas, la etiqueta habría sido demasiado grande para ser aceptable.
La ingeniería mecánica y el diseño de circuitos electrónicos comúnmente requieren diseños en el peor de los casos utilizando tolerancias conocidas. Muchos ingenieros que trabajaban con códigos de barras tenían poca experiencia con este tipo de cosas y utilizaban métodos algo intuitivos. Esta fue la causa del bajo rendimiento del código Delta B y muy probablemente la falla del escáner de ojo de buey de RCA.
La siguiente tabla muestra las etiquetas viables, disponibles a principios de la década de 1970, con sus tamaños.
Esto supone dar en el blanco con la misma información y legibilidad fiable.
Cada código de barras UPC-A consta de una franja escaneable de barras negras y espacios en blanco sobre una secuencia de 12 dígitos numéricos. No pueden aparecer letras , caracteres u otro contenido de ningún tipo en un código de barras UPC-A. Existe una correspondencia uno a uno entre el número de 12 dígitos y la franja de barras negras y espacios en blanco, es decir, solo hay una manera de representar visualmente cada número de 12 dígitos y solo hay una manera de representar cada franja de barras negras. y espacios en blanco numéricamente.
El área escaneable de cada código de barras UPC-A sigue el patrón S L LLLLLMRRRRR R E, donde los patrones de protección S (inicio), M (medio) y E (final) se representan de la misma manera en cada código de barras UPC-A y el L (izquierda) y R (derecha) representan colectivamente los 12 dígitos numéricos que hacen que cada UPC-A sea único. El primer dígito L indica un sistema numérico particular que utilizarán los siguientes dígitos. El último dígito R es un dígito de control de detección de errores , que permite detectar algunos errores en el escaneo o la entrada manual. Los patrones de guardia separan los dos grupos de seis dígitos numéricos y establecen el tiempo.
UPC-A 042100005264 es equivalente a UPC-E 425261 con el patrón de paridad "EOEEOO", que está definido por el sistema numérico UPC-A 0 y el dígito de control UPC-A 4.
Los códigos de barras UPC-A se pueden imprimir en varias densidades para adaptarse a una variedad de procesos de impresión y escaneo. El parámetro dimensional significativo se llama dimensión x (ancho de un elemento de módulo único). El ancho de cada barra (espacio) se determina multiplicando la dimensión x y el ancho del módulo (1, 2, 3 o 4 unidades) de cada barra (espacio). Dado que cada uno de los patrones de protección incluye dos barras, y cada uno de los 12 dígitos del código de barras UPC-A consta de dos barras y dos espacios, todos los códigos de barras UPC-A constan exactamente de (3 × 2) + (12 × 2) = 30 barras, de las cuales 6 representan patrones de guardia y 24 representan dígitos numéricos.
La dimensión x para UPC-A en el tamaño nominal es 0,33 mm (0,013"). La altura nominal del símbolo para UPC-A es 25,9 mm (1,02"). Las barras que forman los patrones de protección S (inicio), M (medio) y E (final) se extienden hacia abajo 5 veces la dimensión x, con una altura de símbolo nominal resultante de 27,55 mm (1,08"). Esto también se aplica a Las barras del primer y último dígito numérico del código de barras UPC-A se pueden reducir o ampliar entre un 80% y un 200%.
Debe haber una zona silenciosa, con un ancho de al menos 9 veces la dimensión x, a cada lado del área escaneable del código de barras UPC-A. [17] [18] Para un número GTIN-12 codificado en un código de barras UPC-A, el primer y último dígito de la interpretación legible por humanos siempre se colocan fuera del símbolo para indicar las zonas silenciosas que son necesarias para el código de barras UPC. escáneres funcionen correctamente.
El código de barras UPC-A está representado visualmente por franjas de barras y espacios que codifican el número de 12 dígitos UPC-A. Cada dígito está representado por un patrón único de 2 barras y 2 espacios. Las barras y espacios son de ancho variable, es decir, 1, 2, 3 o 4 módulos de ancho. El ancho total de un dígito es siempre de 7 módulos; en consecuencia, el número UPC-A de 12 dígitos requiere un total de 7×12 = 84 módulos .
Un UPC-A completo tiene 95 módulos de ancho: 84 módulos para los dígitos (secciones L y R) combinados con 11 módulos para los patrones de protección S (inicio), M (medio) y E (final). Los patrones de protección S (inicio) y E (final) tienen 3 módulos de ancho y usan el patrón barra-barra espaciadora , donde cada barra y espacio tiene un módulo de ancho. El patrón de protección M (medio) tiene 5 módulos de ancho y utiliza el patrón barra espaciadora-barra espaciadora-espacio , donde cada barra y espacio también tiene un módulo de ancho. Además, un símbolo UPC-A requiere una zona silenciosa (espacio adicional de 9 módulos de ancho) antes de los patrones de guardia S (inicio) y después de E (final).
Los dígitos del lado izquierdo del UPC-A (los dígitos a la izquierda del patrón de protección M (medio)) tienen paridad impar, lo que significa que el ancho total de las barras negras es un número impar de módulos. Por el contrario, los dígitos del lado derecho tienen paridad uniforme. En consecuencia, un escáner UPC puede determinar si está escaneando un símbolo de izquierda a derecha o de derecha a izquierda (el símbolo está al revés). Después de ver un patrón de protección S (inicio) o E (fin) (son iguales, barra-espacio-barra , en cualquier dirección en la que se lean), el escáner verá primero dígitos de paridad impares, si escanea de izquierda a derecha, o incluso dígitos de paridad, si se escanea de derecha a izquierda. Con la información de paridad/dirección, un símbolo al revés no confundirá al escáner. Cuando se enfrenta a un símbolo invertido, el escáner puede simplemente ignorarlo (muchos escáneres alternan escaneos de izquierda a derecha y de derecha a izquierda, por lo que leerán el símbolo en una pasada posterior) o reconocerán los dígitos y los colocarán. en el orden correcto. Hay otra propiedad en la codificación de dígitos. Los dígitos del lado derecho son la inversa óptica de los dígitos del lado izquierdo, es decir, las barras negras se convierten en espacios en blanco y viceversa. Por ejemplo, el lado izquierdo "4" es espacio×1 - barra×1 - espacio×3 - barra×2 , mientras que el lado derecho "4" es barra×1 - espacio×1 - barra×3 - espacio × 2 .
La cantidad de códigos de barras UPC-A y UPC-E está limitada por los estándares utilizados para crearlos.
A continuación se muestra una descripción de todos los sistemas numéricos posibles con el correspondiente esquema de numeración UPC- A de 12 dígitos LLLLLLRRRRR R , donde L indica el dígito del sistema numérico y R el dígito de control.
La UPC incluye un dígito de control para detectar errores comunes en la entrada de datos. Por ejemplo, los códigos UPC-A eligen el dígito de control para satisfacer la ecuación del dígito de control :
Si un código ingresado no satisface la ecuación, entonces no es un UPC-A válido.
El dígito de control UPC-A se puede calcular de la siguiente manera:
Por ejemplo, en un código de barras UPC-A "03600029145 x 12 ", donde x 12 es el dígito de control desconocido, x 12 se puede calcular mediante:
Por tanto, el dígito de control x 12 es 2.
La ecuación del dígito de control se selecciona para que tenga propiedades de detección de errores razonables (consulte el algoritmo de Luhn ).
UPC en su uso más común técnicamente se refiere a UPC-A.
Existen otras variantes de la UPC:
Para permitir el uso de códigos de barras UPC en paquetes más pequeños, donde un código de barras completo de 12 dígitos puede no caber, se desarrolló una versión de UPC con supresión de ceros, llamada UPC-E, en la que el dígito del sistema numérico, todos los ceros finales en el fabricante El código y todos los ceros a la izquierda del código de producto se suprimen (omiten). [23] Esta simbología difiere de UPC-A en que solo usa un código de 6 dígitos, no usa el patrón de protección M (medio) y el patrón de protección E (final) se forma como barra espaciadora-barra espaciadora- barra espaciadora , es decir, el código de barras UPC-E sigue el patrón SDDDDDDE. La forma en que un UPC-E de 6 dígitos se relaciona con un UPC-A de 12 dígitos está determinada por el patrón numérico UPC-E y el patrón de paridad UPC-E. Solo puede corresponder al sistema numérico UPC-A 0 o 1, cuyo valor, junto con el dígito de control UPC-A, determina el patrón de paridad UPC-E de la codificación. Con los dígitos del código del fabricante representados por M y los dígitos del código de producto por P, entonces:
Por ejemplo, un UPC-E 654321 puede corresponder a un UPC-A 065100004327 o 165100004324, dependiendo del patrón de paridad UPC-E de los dígitos codificados, como se describe a continuación:
UPC-E 654321 con patrón de paridad "EOEOEO" (UPC-A 065100004327) se codificaría como
El código de barras se vería así:
El EAN-13 fue desarrollado como un superconjunto de UPC-A, agregando un dígito adicional al comienzo de cada número UPC-A. Esto amplió diez veces el número de valores únicos teóricamente posibles hasta 1 billón. Los códigos de barras EAN-13 también indican el país en el que tiene su sede la empresa que vende el producto (que puede ser o no el mismo que el país en el que se fabrica el bien). Los tres dígitos iniciales del código determinan esto, según los códigos de país GS1 . Cada código UPC-A se puede convertir fácilmente al código EAN-13 equivalente anteponiendo 0 dígitos al código UPC-A. Esto no cambia el dígito de control . Todos los sistemas de punto de venta ahora pueden entender ambos por igual.
EAN-8 es una variación de 8 dígitos del código de barras EAN.
Notas de uso de UPC:
Después de graduarse de Maryland en 1951, George Laurer se unió a IBM como ingeniero junior y ascendió de rango hasta convertirse en ingeniero senior. En 1969, regresó al aspecto técnico de la ingeniería y más tarde se le asignó la monumental tarea de diseñar un código y un símbolo para la identificación de productos para el Uniform Grocery Product Code Council. Su solución, el Código Universal de Producto, cambió radicalmente el mundo minorista. Desde entonces, ha mejorado el código añadiendo un decimotercer dígito.
{{cite web}}
: Mantenimiento CS1: nombres numéricos: lista de autores ( enlace )