Sunteți pe pagina 1din 6

Cdigos de Barras

UPC A

EAN 13

En la actualidad la mayora de los productos que llegan a nuestras manos llevan un cdigo de barras impreso. Pasando este cdigo por un escner, el cajero de un supermercado nos carga el precio del producto sin necesidad de efectuar ninguna otra operacin. Nos sorprende que con una simple pasada, sin atender a la posicin en la que lo pase por el escner, el precio se marque en la caja con toda facilidad. Cmo funciona esto? Introduccin Lectura de un cdigo Barras.exe Partes de un cdigo Dgito de Control Codificacin de un nmero Por qu este sistema y no otro?

Todo cdigo de barras consiste en una secuencia de barras y espacios de grosor variable. Cada nmero se representa mediante dos barras y dos espacios. Nos centraremos en el estudio de los cdigos UPC A (Universal Product Code) pues los EAN 13 (European Article Number) son una extensin de stos. En la siguiente figura representamos las diferentes partes de un cdigo de barras UPC A

Codificacin de un nmero:
Cada dgito se codifica mediante dos barras y dos espacios de anchuras variables. La anchura total de la representacin del nmero es 7. Las barras y espacios pueden ser por tanto de anchuras 1,2,3 4, de modo que la suma de todas ellas sea 7. Si un nmero est en la zona izquierda del cdigo de barras se codifica de un modo diferente a si est en la derecha. En la zona izquierda podremos identificar la barra de anchura 1 con "1" y el espacio de anchura 1 con "0". Si la barra es de anchura 2 pondremos "11", si un espacio es de anchura 4 "0000". En la figura observamos la codificacin izquierda del nmero 5 (espacio(0),barra(11),espacio(000),barra(1)) La codificacin en la zona derecha es la complementaria binaria de la de la izquierda, el nmero 5 es 1001110. Nmero 0 1 2 3 4 5 6 Codificacin izquierda Codificacin derecha 0001101 0011001 0010011 0111101 0100011 0110001 0101111 1110010 1100110 1101100 1000010 1011100 1001110 1010000

7 8 9

0111011 0110111 0001011

1000100 1001000 1110100

Lectura de un cdigo
Todo cdigo de barras comienza tanto por la izquierda como por la derecha por unas barras de inicio codificadas como 101 (barra, espacio, barra). En el centro hay unas barras de cambio de zona (izquierda o derecha) codificadas como 01010 (espacio, barra, espacio, barra, espacio) Los nmeros se codifican conforme a la tabla anterior. El dgito de sistema indica la naturaleza del producto. El dgito de control depende de los dems dgitos para garantizar que el nmero ledo por el escner corresponde realmente a un cdigo de barras UPC A. ste se calcula mediante el siguiente algoritmo: Sumamos los nmeros de lugar impar y el resultado lo multiplicamos por 3, sumamos los nmeros de lugar par, finalmente sumamos los dos resultados. El dgito de control es el nmero que hemos de sumar a la cantidad anterior para obtener un mltiplo de 10.

3 x (0+1+3+5+7+9)+(0+2+4+6+8) = 95, hemos de sumar 5 para obtener un mltiplo de 10, luego el dgito de control es 5. El escner de lectura debe contar un total de 30 barras y 29 espacios: (2 barras y dos espacios por cada nmero)x 12= 24 barras y 24 espacios. (2 barras y un espacio de inicio) + (2 barras y un espacio de final) + ( 2 barras y tres espacios de cambio de zona)= 6 barras y 5 espacios.

Barras.exe programa ejecutable para representar cdigos de barras

Por qu este sistema y no otro?

Queremos representar cada dgito con dos barras, como consecuencia necesitaremos adems dos espacios en blanco, pues de lo contrario las barras de dos dgitos seguidos se juntaran. Buscaremos tambin que sea posible indicar al escner en qu sentido est leyendo. Con dos barras y dos espacios de anchura 1 (en total anchura 4 para cada dgito) slo podremos representar 2 dgitos: 1+1+1+1.................1010 y 0101 (representamos por 0 espacio en blanco y por 1 barra). Con anchura 5 (y como siempre dos barras y dos espacios) la anchura mxima de un espacio o de una barra es dos, 1+1+1+2=5 y slo podremos representar 8 dgitos (representamos por 0 espacio en blanco y por 1 barra) 1+1+1+2........................10100 y 01011 1+1+2+1........................10110 y 01001 1+2+1+1........................10010 y 01101 2+1+1+1....................... 11010 y 00101 Con anchura 6 la anchura mxima de un espacio o de una barra es 3 pues 6=1+1+1+3 6=1+1+2+2 de este modo podremos escribir los dgitos siguientes: 1+1+1+3 1+1+3+1 1+3+1+1 3+1+1+1 1+1+2+2 1+2+1+2 1+2+2+1 2+1+1+2 2+1+2+1 2+2+1+1 101000 101110 100010 111010 101100 100100 100110 110100 110110 110010 010111 010001 011101 000101 010011 011011 011001 001011 001001 001101

Evidentemente podramos valernos slo de los seis espacios para representar los 10 dgitos, pero tendramos un problema. El escner lo primero que lee es siempre un 101(barra, espacio, barra, de inicio o de fin de cdigo), lo que le indica la anchura bsica de una barra y de un espacio, por lo tanto si leemos desde la parte izquierda, el cdigo de cualquier dgito ha de empezar por 0 (por espacio) pues

sino se sumaran la anchura de las dos barras, y si lo hacemos desde la parte derecha entonces ha de terminar tambin por 0. Eso nos obliga a codificar cada dgito de dos formas, una si va a ser ledo desde la izquierda, otra si desde la derecha. Como tenemos 20 posibilidades parecera que tendramos suficiente, pero el problema es que ledos los cdigos de derecha a izquierda coinciden con otros ledos de izquierda a derecha, lo que impedira al escner distinguir entre ellos. (Ver en la tabla anterior las celdas sombreadas en azul) Por tanto la anchura 6 resulta insuficiente. Con anchura 7, la anchura mxima de un espacio o de una barra es cuatro pues 7=1+1+1+4 7=1+1+2+3 7=1+2+2+2 1+1+1+4 1+1+4+1 1+4+1+1 4+1+1+1 1+1+2+3 1+1+3+2 1+2+1+3 1+2+3+1 1+3+1+2 1+3+2+1 2+1+1+3 2+1+3+1 2+3+1+1 3+1+1+2 3+1+2+1 3+2+1+1 1+2+2+2 2+1+2+2 2+2+1+2 2+2+2+1 0101111 0100001 0111101 0000101 0100111 0100011 0110111 0110001 0111011 0111001 0010111 0010001 0011101 0001011 0001001 0001101 0110011 0010011 0011011 0011001 1010000 1011110 1000010 1111010 1011000 1011100 1001000 1001110 1000100 1000110 1101000 1101110 1100010 1110100 1110110 1110010 1001100 1101100 1100100 1100110

En total tenemos 40 posibilidades. Vemos que ledos de derecha a izquierda los cdigos de la columna de la izquierda coinciden con otros de la derecha. Para evitar coincidencias elijamos en la columna de la izquierda aqullos de paridad impar (sumando todos los "1" obtengo un nmero impar).Obtenemos diez cdigos (sombreados en la tabla). Estos sern los cdigos que utilizaremos para representar los dgitos en la parte izquierda del cdigo de barras. Para representar en la parte derecha elegiremos su complemento binario(

a su derecha en la tabla). De este modo no tenemos ninguna duplicidad aunque leamos de derecha a izquierda, y el escner siempre distinguir si lee en un sentido o en otro.
Ir al principio

Copyright 2001 [Fernando Huertas]. Reservados todos los derechos. Revisado: 12 de febrero de 2003

S-ar putea să vă placă și