Code produit universel - Universal Product Code

Un code-barres UPC

Le code produit universel ( UPC ; redondant : code UPC ) est une symbologie de code à barres largement utilisée dans le monde entier pour le suivi des articles commerciaux dans les magasins.

UPC (se réfère techniquement à UPC-A) se compose de 12 chiffres qui sont attribués de manière unique à chaque article commercial. Avec le code-barres EAN associé , l'UPC est le code-barres principalement utilisé pour la numérisation des articles commerciaux au point de vente , conformément aux spécifications GS1 . Les structures de données UPC font partie des GTIN et suivent la spécification mondiale GS1, qui est basée sur des normes internationales. Mais certains détaillants (vêtements, meubles) n'utilisent pas le système GS1 (plutôt d'autres symbologies de codes à barres ou systèmes de numéros d'articles). D'autre part, certains détaillants utilisent la symbologie du code-barres EAN/UPC, mais sans utiliser de GTIN (pour les produits vendus dans leurs propres magasins uniquement).

La recherche indique que l'adoption et la diffusion de l'UPC ont stimulé l'innovation et contribué à la croissance des chaînes d'approvisionnement internationales de la vente au détail.

Histoire

Wallace Flint a proposé un système de caisse automatisé en 1932 utilisant des cartes perforées . Bernard Silver et Norman Joseph Woodland , un étudiant diplômé du Drexel Institute of Technology (aujourd'hui Drexel University) , ont développé un code de type œil de bœuf et ont déposé une demande de brevet en 1949.

Dans les années 1960 et au début des années 1970, les chemins de fer en Amérique du Nord ont expérimenté des codes à barres multicolores pour suivre les wagons , mais ce système a finalement été abandonné et remplacé par un système radio appelé Identification automatique des équipements (AEI) .

En 1973, un groupe d'associations professionnelles de l'industrie de l'alimentation a formé le Uniform Product Code Council (UPCC) qui, avec l'aide des consultants Larry Russell et Tom Wilson de McKinsey & Company , a défini le format numérique qui a constitué la base du Uniform Product. Code. Des entreprises technologiques telles que Charegon, IBM , Litton-Zellweger, Pitney Bowes-Alpex, Plessey-Anker, RCA , Scanner Inc., Singer et Dymo Industries /Data General, ont présenté au conseil des propositions alternatives pour la représentation des symboles. Le comité de sélection des symboles a finalement choisi de mettre en œuvre la proposition d'IBM conçue par George J. Laurer , mais avec une légère modification de la police dans la zone lisible par l'homme.

Le premier article marqué UPC à avoir été scanné dans une caisse de vente au détail était un paquet de 10 (50 bâtonnets) de chewing-gum Wrigley's Juicy Fruit , acheté au supermarché Marsh à Troy, Ohio , à 8 h 01 le 26 juin 1974. La caisse enregistreuse de la RCN a sonné 67 cents. Le panier contenait également d'autres articles à code-barres, mais le chewing-gum était le premier ramassé à la caisse. Un fac - similé du paquet de gomme a exposé à la Smithsonian Institution de musée de l' histoire américaine à Washington, DC

Murray Eden était consultant dans l'équipe qui a créé le code-barres Universal Product Code. En tant que président d'un comité de scientifiques du Massachusetts Institute of Technology , il a aidé à  sélectionner un symbole qui résisterait à l'inévitable ruée technologique à venir. Il a choisi la police et a eu l'idée d'ajouter des chiffres en bas, ce qui est un système à sécurité intégrée, au cas où le lecteur de code serait en panne.

Proposition d'IBM

Vers la fin de 1969, IBM à Research Triangle Park (RTP) en Caroline du Nord a chargé George Laurer de déterminer comment fabriquer un scanner et une étiquette de supermarché. Fin 1970, Heard Baumeister a fourni des équations pour calculer les caractères par pouce réalisables par deux codes à barres IBM, Delta A et Delta B. En février 1971, Baumeister a rejoint Laurer.

Au milieu de 1971, William "Bill" Crouse a inventé un nouveau code à barres appelé Delta C. Il atteignait quatre fois plus de caractères par pouce que Delta B. Delta B a comparé les largeurs de barres à la largeur de l'espace pour coder les bits. Ceci était extrêmement sensible à l'étalement de l'encre où trop d'encre ou de pression entraînerait l'étalement des deux bords d'une barre vers l'extérieur et trop peu pour les faire rétrécir. Pour aggraver les choses, les espaces de propagation des barres rétrécissent et vice versa. Delta C a atteint ses meilleures performances en n'utilisant que les bords avant ou arrière et arrière qui n'étaient pas affectés par un étalement uniforme de l'encre. Le code a fourni les meilleures performances lorsqu'il avait un jeu de caractères défini avec une distance de référence fixe qui couvrait la plupart ou de préférence tout le caractère. En août 1971, Crouse a rejoint l'effort du scanner. Après plusieurs mois, ils n'avaient fait aucun progrès. Ils étaient au courant de l'étiquette œil de bœuf RCA qui pouvait être numérisée avec un simple scanner laser à ligne droite, mais une étiquette lisible était beaucoup trop grande. Bien que Litton Industries ait proposé un symbole œil de bœuf coupé en deux pour réduire la zone, il était encore trop grand et présentait les mêmes problèmes d'impression de taches d'encre que le symbole RCA. La redondance et la capacité de vérification ont été complètement supprimées. Ils étaient également au courant des nombreuses propositions du monde entier, dont aucune n'était réalisable.

Le Label UPC reprenant les caractéristiques générales des propositions de Baumeister

Au printemps 1972, Baumeister annonce une percée. Il a proposé une étiquette avec des barres légèrement plus longues que la distance entre toutes les barres qui devaient être lues en un seul passage. Cette étiquette pourrait être numérisée avec un simple scanner "X" à peine plus complexe que le scanner laser à ligne droite. Le lendemain, Baumeister a suggéré que si l'étiquette était divisée en deux moitiés, les longueurs des barres pourraient être coupées presque en deux. Ces deux propositions ont réduit la surface de la cible d'un tiers puis d'un sixième. L'image de droite montre l'étiquette proposée par Baumeister. Il n'a pas spécifié de code à barres spécifique car cela était bien compris. À l'exception du code à barres et des dix chiffres, l'étiquette UPC est aujourd'hui sa proposition. Peu de temps après, Baumeister a été transféré dans un autre domaine de RTP.

Laurer a ensuite défini les détails du label et rédigé une proposition. NJ Woodland a été désigné comme planificateur du projet et a aidé Laurer à rédiger sa proposition.

La première tentative de Laurer avec un code à barres a utilisé Delta B. La taille de l'étiquette résultante était d'environ six pouces sur trois pouces, ce qui était trop grand. Crouse a suggéré que Laurer utilise son code à barres Delta C et a fourni une copie de son brevet qui contenait un exemple de jeu de caractères alphanumériques et de règles pour générer des alphabets d'autres tailles. Cela a réduit la taille de l'étiquette à environ 1,5" x 0,9". Plus tard, Laurer a demandé à Crouse de l'aider sur la façon dont le scanner pouvait détecter une étiquette. Ensemble, ils ont défini des barres de garde et une définition de la façon de détecter l'étiquette. Les barres de garde fournissaient également une identification pour la discrimination des demi-étiquettes et des barres d'entraînement pour les circuits de seuil du scanner. Laurer avait une définition complète de l'étiquette et a procédé à la rédaction de sa proposition.

Auparavant, Crouse avait une idée pour une simple baguette portée comme une bague et un bracelet. Il a décidé de développer cette baguette pour faire une démonstration du label.

Le 1er décembre 1972, IBM a présenté la proposition de Laurer au Super Market Committee de Rochester, Minnesota , l'endroit où IBM développerait le scanner. Au cours de la présentation, Crouse a fait une démonstration en laboratoire où il a lu des étiquettes de type UPC avec sa baguette magique. En plus de lire les étiquettes ordinaires, il a lu la grande étiquette centrale de deux pages dans le livret de proposition. Il s'est ensuite tourné vers une page montrant une photo d'articles étiquetés posés sur une table. Les étiquettes étaient petites et défectueuses en raison de la résolution de la photo imprimée, mais la baguette en a lu beaucoup. Cette démonstration a montré la robustesse du code Delta C pur. La proposition a été acceptée.

Un mois plus tard, le 1er janvier 1973, Crouse est de nouveau transféré au groupe Advanced Technology d'IBM, et Laurer conserve l'entière responsabilité du label.

Dymo Industries , les fabricants d'appareils d'impression portables ont insisté pour que le code soit indépendant des caractères, de sorte que les appareils d'impression portables puissent produire le code à barres en magasin si les articles n'étaient pas codés à barres par les fabricants. La proposition de Dymo a été acceptée par IBM et incorporée dans la dernière proposition d'IBM.

Il a été décidé que les deux moitiés de l'étiquette devraient avoir un ensemble différent de caractères numériques. Le jeu de caractères Laurer dérivé du brevet Delta C utilisait sept incréments ou unités imprimables où deux barres et deux espaces seraient imprimés. Cela a donné vingt combinaisons de caractères, mais il y avait deux paires qui, une fois lues par les règles Delta C, ont donné le même code pour la paire. Comme dix-huit caractères n'étaient pas suffisants, Laurer a essayé d'ajouter une unité au jeu de caractères. Cela a donné vingt-six caractères Delta C qui pourraient fournir les deux ensembles de caractères décimaux, mais cela a également ajouté quatorze pour cent à la largeur de l'étiquette et donc à la hauteur. Ce serait une augmentation de trente pour cent de la superficie ou une étiquette de 1,7 "x1,03". Laurer a estimé que ce n'était pas acceptable. Il est revenu au jeu de caractères d'origine avec vingt caractères, mais quatre d'entre eux étaient deux paires avec la même lecture Delta C. Il a décidé de les utiliser tous. Pour distinguer les paires, il mesurait une largeur de barre dans chacune des paires pour les distinguer les unes des autres. Pour chaque paire, ces barres auraient une ou deux unités de large. Laurer n'a pas appliqué les équations de Baumeister à cet ensemble. Il a estimé qu'une seule mesure de largeur de barre ne serait pas trop grave. Il s'est avéré qu'il aurait fallu plus de cinquante pour cent d'augmentation de la largeur et de la hauteur pour une augmentation de surface de plus du double. Laurer a admis plus tard que ces quatre caractères dans chaque ensemble étaient responsables de la plupart des erreurs de lecture du scanner.

David Savir, un mathématicien, a été chargé de prouver que le symbole pouvait être imprimé et répondrait aux exigences de fiabilité, et n'était probablement pas au courant des équations de Baumeister. Lui et Laurer ont ajouté deux chiffres supplémentaires aux dix pour la correction et la détection d'erreurs . Ensuite, ils ont décidé d'ajouter une parité paire/impaire au nombre d'unités remplies de barres de chaque côté. La parité paire/impaire est une technique utilisée pour détecter tout nombre impair d'erreurs de bits dans un flux de bits. Ils ont décidé d'utiliser impair sur une moitié et pair sur l'autre. Cela fournirait une indication supplémentaire du demi-ticket en cours de lecture. Cela signifiait que chaque largeur de barre devait être lue avec précision pour fournir une bonne lecture. Cela signifiait également que chaque espace serait également connu. Exiger que chaque largeur de bit soit lue avec précision a pratiquement annulé l'avantage Delta C, à l'exception de la mesure de référence Delta C. Seuls l'étrange jeu de caractères et la taille de l'étiquette restent comme une ombre du code Delta C. La taille était toujours celle calculée pour le Delta C pur. Si la taille de l'étiquette avait été correctement recalculée, en tenant compte des mesures de largeur de barre requises, l'étiquette aurait été beaucoup trop grande pour être acceptable.

L'ingénierie mécanique et la conception de circuits électroniques nécessitent généralement des conceptions dans le pire des cas utilisant des tolérances connues. De nombreux ingénieurs travaillant avec des codes à barres avaient peu d'expérience avec de telles choses et utilisaient des méthodes quelque peu intuitives. C'était la cause de la mauvaise performance du code Delta B et très probablement de l'échec du scanner œil de bœuf de RCA.

Le tableau suivant montre les étiquettes utilisables, disponibles au début des années 1970, avec leurs tailles.

Type d'étiquette Dimensions de l'étiquette Surface
Oeil de boeuf avec le code Morse Grande Grande
Oeil de boeuf avec Delta B 12,0 po (300 mm) de diamètre 113,10 en 2 (729,7 cm 2 )
Oeil de boeuf avec Delta A 9,0 po (230 mm) de diamètre 63,62 po 2 (410,5 cm 2 )
Baumeister 1er avec Delta B 6,0 po × 5,8 po (150 mm × 150 mm) 34,80 en 2 (224,5 cm 2 )
Baumeister 2 moitiés avec Delta B 6,0 pouces × 3,0 pouces (152 mm × 76 mm) 18,00 en 2 (116,1 cm 2 )
Baumeister 2 moitiés avec Delta A 4,5 pouces × 2,3 pouces (114 mm × 58 mm) 10,35 en 2 (66,8 cm 2 )
Baumeister avec Delta C 1,5 po × 0,9 po (38 mm × 23 mm) 1,35 en 2 (8,7 cm 2 )

Cela suppose un œil de bœuf avec les mêmes informations et une lisibilité fiable.

Composition

Chaque code-barres UPC-A se compose d'une bande numérisable de barres noires et d'espaces blancs au-dessus d'une séquence de 12 chiffres numériques. Aucune lettre , caractère ou autre contenu de quelque nature que ce soit ne doit apparaître sur un code-barres UPC-A. Il existe une correspondance un à un entre un nombre à 12 chiffres et une bande de barres noires et d'espaces blancs, c'est-à-dire qu'il n'y a qu'une seule façon de représenter visuellement chaque nombre à 12 chiffres et il n'y a qu'une seule façon de représenter chaque bande de barres noires et des espaces blancs numériquement.

La zone numérisable de chaque code-barres UPC-A suit le modèle S L LLLLLMRRRRR R E, où les motifs de garde S (début), M (milieu) et E (fin) sont représentés de la même manière sur chaque code-barres UPC-A et le L Les sections (à gauche) et R (à droite) représentent collectivement les 12 chiffres numériques qui rendent chaque UPC-A unique. Le premier chiffre L indique un système de numérotation particulier à utiliser par les chiffres suivants. Le dernier chiffre R est un chiffre de contrôle de détection d'erreurs , qui permet de détecter certaines erreurs lors de la numérisation ou de la saisie manuelle. Les motifs de garde séparent les deux groupes de six chiffres numériques et établissent la synchronisation.

UPC-A UPC-E
UPC-A.png UPC-E.png

UPC-A 042100005264 est équivalent à UPC-E 425261 avec le modèle de parité "EOEEOO", qui est défini par le système de numérotation UPC-A 0 et le chiffre de contrôle UPC-A 4.

Mise en page

Les codes-barres UPC-A peuvent être imprimés à différentes densités pour s'adapter à une variété de processus d'impression et de numérisation. Le paramètre dimensionnel significatif est appelé dimension x (largeur de l'élément de module unique). La largeur de chaque barre (espace) est déterminée en multipliant la dimension x et la largeur du module (1, 2, 3 ou 4 unités) de chaque barre (espace). Étant donné que les motifs de garde comprennent chacun deux barres et que chacun des 12 chiffres du code à barres UPC-A se compose de deux barres et de deux espaces, tous les codes à barres UPC-A se composent exactement de (3 × 2) + (12 × 2) = 30 barres, dont 6 représentent des motifs de garde et 24 représentent des chiffres numériques.

La dimension x pour l'UPC-A à la taille nominale est de 0,33 mm (0,013"). La hauteur nominale du symbole pour l'UPC-A est de 25,9 mm (1,02"). Les barres formant les motifs de garde S (début), M (milieu) et E (fin) sont prolongées vers le bas de 5 fois la dimension x, avec une hauteur de symbole nominale résultante de 27,55 mm (1,08"). Cela s'applique également à les barres du premier et du dernier chiffre numérique du code à barres UPC-A. UPC-A peut être réduit ou agrandi de 80 à 200 %.

Une zone calme, d'une largeur d'au moins 9 fois la dimension x, doit être présente de chaque côté de la zone numérisable du code-barres UPC-A. Pour un numéro GTIN-12 codé dans un code-barres UPC-A, le premier et le dernier chiffre de l' interprétation lisible par l'homme sont toujours placés à l'extérieur du symbole afin d'indiquer les zones de silence nécessaires au bon fonctionnement des lecteurs de codes-barres UPC.

Codage

Le code-barres UPC-A est représenté visuellement par des bandes de barres et d'espaces qui codent le numéro UPC-A à 12 chiffres. Chaque chiffre est représenté par un motif unique de 2 barres et 2 espaces. Les barres et les espaces sont de largeur variable, soit 1, 2, 3 ou 4 modules de largeur. La largeur totale d'un chiffre est toujours de 7 modules ; par conséquent, le numéro UPC-A à 12 chiffres nécessite un total de 7 × 12 = 84 modules.

Un UPC-A complet est large de 95 modules : 84 modules pour les chiffres (sections L et R) combinés avec 11 modules pour les motifs de garde S (début), M (milieu) et E (fin). Les motifs de garde S (début) et E (fin) ont une largeur de 3 modules et utilisent le motif barre-espace-barre , où chaque barre et chaque espace font un module de large. Le motif de garde M (milieu) a une largeur de 5 modules et utilise le motif espace-barre-espace-barre-espace , où chaque barre et chaque espace font également un module de large. De plus, un symbole UPC-A nécessite une zone calme (espace supplémentaire de 9 modules de large) avant les motifs de garde S (début) et après E (fin).

Tableau de codage pour le modèle de code-barres UPC-A S L LLLLLLMRRRRR R E
calme
zone
S
(début)
L
(chiffre numérique gauche)
M
(milieu)
R
(chiffre numérique de droite)
E
(fin)
calme
zone
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-A Q.svg UPC-A S.svg UPC-A L0.svg UPC-A L1.svg UPC-A L2.svg UPC-A L3.svg UPC-A L4.svg UPC-A L5.svg UPC-A L6.svg UPC-A L7.svg UPC-A L8.svg UPC-A L9.svg UPC-A M.svg UPC-A R0.svg UPC-A R1.svg UPC-A R2.svg UPC-A R3.svg UPC-A R4.svg UPC-A R5.svg UPC-A R6.svg UPC-A R7.svg UPC-A R8.svg UPC-A R9.svg UPC-A S.svg UPC-A Q.svg

Les chiffres du côté gauche de l'UPC-A (les chiffres à gauche du motif de garde M (milieu)) ont une parité impaire, ce qui signifie que la largeur totale des barres noires est un nombre impair de modules. Au contraire, les chiffres de droite ont une parité paire. Par conséquent, un scanner UPC peut déterminer s'il scanne un symbole de gauche à droite ou de droite à gauche (le symbole est à l'envers). Après avoir vu un motif de garde S (début) ou E (fin) (ils sont les mêmes, barre-espace-barre , quelle que soit la direction dans laquelle ils sont lus), le scanner verra d'abord les chiffres de parité impairs, s'il numérise de gauche à droite, ou même des chiffres de parité, si vous numérisez de droite à gauche. Avec les informations de parité/direction, un symbole à l'envers ne confondra pas le scanner. Lorsqu'il est confronté à un symbole à l'envers, le scanner peut simplement l'ignorer (de nombreux scanners alternent les balayages de gauche à droite et de droite à gauche, de sorte qu'ils lisent le symbole lors d'un passage ultérieur) ou reconnaissent les chiffres et les mettent dans le bon ordre. Il y a une autre propriété dans le codage des chiffres. Les chiffres de droite sont l'inverse optique des chiffres de gauche, c'est-à-dire que les barres noires sont transformées en espaces blancs et vice versa. Par exemple, le côté gauche "4" est espace×1 - bar×1 - espace×3 - bar×2 , tandis que le côté droit "4" est bar×1 - espace×1 - bar×3 - espace × 2 .

Numérotage

Le nombre de codes-barres UPC-A et UPC-E est limité par les normes utilisées pour les créer.

UPC-A : (10 valeurs possibles par chiffre de gauche ^ 6 chiffres de gauche) × (10 valeurs possibles par chiffre de droite ^ 5 chiffres de droite) = 100 000 000 000.
UPC-E : (10 valeurs possibles par chiffre ^ 6 chiffres) × (2 modèles de parité possibles par numéro UPC-E) = 2 000 000.

Chiffre du système de numérotation

Vous trouverez ci-dessous une description de tous les systèmes de numérotation possibles avec le schéma de numérotation UPC-A à 12 chiffres correspondant L LLLLLRRRRR R , où L désigne le chiffre du système de numérotation et R le chiffre de contrôle.

0-1, 6-9
Pour la plupart des produits. Les chiffres LLLLL sont le code du fabricant (attribué par l' organisation locale GS1 ) et les chiffres RRRRR sont le code du produit.
2
Réservé à un usage local (magasin/entrepôt), pour les articles vendus en poids variable. Les articles de poids variable, tels que les viandes, les fruits frais ou les légumes, se voient attribuer un numéro d'article par le magasin, s'ils y sont emballés. Dans ce cas, le LLLLL est le numéro de l'article et le RRRRR est soit le poids, soit le prix, le premier R déterminant lequel (0 pour le poids).
3
Médicaments par numéro de code national des médicaments (NDC). Aux États-Unis, les produits pharmaceutiques utilisent les 10 chiffres du milieu de l'UPC comme numéro NDC. Bien que seuls les médicaments en vente libre soient généralement scannés au point de vente, les codes UPC basés sur le NDC sont utilisés sur les emballages de médicaments sur ordonnance et les produits chirurgicaux et, dans ce cas, sont communément appelés codes UPN.
4
Réservé à un usage local (magasin/entrepôt), souvent pour des cartes de fidélité ou des coupons de magasin.
5
Bons de réduction . Les chiffres LLLLL sont le code du fabricant, les trois premiers RRR sont un code de famille (défini par le fabricant) et les deux suivants RR sont un code de coupon, qui détermine le montant de la remise. Ces coupons peuvent être doublés ou triplés.

Calcul du chiffre de contrôle

L'UPC comprend un chiffre de contrôle pour détecter les erreurs de saisie de données courantes. Par exemple, les codes UPC-A choisissent le chiffre de contrôle pour satisfaire l' équation du chiffre de contrôle :

Si un code entré ne satisfait pas l'équation, alors ce n'est pas un UPC-A valide.

Le chiffre de contrôle UPC-A peut être calculé comme suit :

  1. Additionnez les chiffres aux positions impaires (premier, troisième, cinquième,..., onzième).
  2. Multipliez le résultat par 3.
  3. Ajouter la somme des chiffres à même positions -numbered (deuxième, quatrième, sixième, ..., dixième) au résultat.
  4. Trouvez le résultat modulo 10 (c'est-à-dire le reste divisé par 10) et appelez-le M .
  5. Si M est zéro, alors le chiffre de contrôle est 0 ; sinon, le chiffre de contrôle est 10 − M .

Par exemple, dans un code-barres UPC-A « 03600029145 x 12 », où x 12 est le chiffre de contrôle inconnu, x 12 peut être calculé par :

  1. Additionnez les chiffres impairs (0 + 6 + 0 + 2 + 1 + 5 = 14).
  2. Multipliez le résultat par 3 (14 × 3 = 42).
  3. Additionnez les chiffres pairs (42 + (3 + 0 + 0 + 9 + 4) = 58).
  4. Trouvez le résultat modulo 10 (58 mod 10 = 8 = M ).
  5. Si M n'est pas 0, soustrayez M de 10 ( 10 − M = 10 − 8 = 2 ).

Ainsi, le chiffre de contrôle x 12 est 2.

L'équation du chiffre de contrôle est sélectionnée pour avoir des propriétés de détection d'erreur raisonnables (voir algorithme de Luhn ).

  • UPC-A peut détecter 100 % des erreurs à un chiffre.
    Une erreur à un seul chiffre signifie qu'un seul chiffre est erroné. Laissez la différence modulo 10 du chiffre erroné et le chiffre correct soit d . La valeur de d ne peut pas être zéro car cela signifie que les chiffres sont les mêmes, mais d peut être n'importe quelle autre valeur dans {1, 2, 3, 4, 5, 6, 7, 8, 9}. Si le chiffre d'erreur est dans une position impaire (poids 1), le côté gauche de l'équation du chiffre de contrôle change de d et l'équivalence n'est plus nulle. Si le chiffre d'erreur est dans une position paire (poids 3), alors le côté gauche change de 3 d , mais ce changement est également non nul modulo 10, donc l'équation du chiffre de contrôle n'est pas satisfaite.
  • UPC-A peut détecter environ 89 % des erreurs de transposition. Concrètement, si et seulement si la différence entre deux chiffres adjacents est de 5, l'UPC-A ne peut pas détecter leur transposition.
    1. Si 2 chiffres voisins sont transposés, alors l'un des chiffres a sera pondéré par 1, et l'autre chiffre b = a + d sera pondéré par 3, où d est la différence entre les deux chiffres. Si les chiffres étaient dans leur ordre correct, ils contribueraient
      à gauche de l'équation du chiffre de contrôle. Dans l'ordre transposé, ils contribuent
      .
      au LHS. La soustraction des deux contributions donne dans quelle mesure elles modifient le LHS :
      Une erreur sera détectée tant que le changement modulaire est différent de zéro ; si 2d 0 modulo 10, alors le changement ne sera pas détecté. Par conséquent, ce n'est que lorsque la différence de caractère d 5 qu'une erreur ne sera pas détectée (lorsque d ≡ 0 la "transposition" dégénérée n'est pas une erreur).
    2. Considérez ensuite combien de fois une transposition a une distance d de 5.
Voici le tableau des transpositions d pour les codes-barres UPC-A , où
Tableau des transpositions d pour les codes-barres UPC-A
0 1 2 3 4 5 6 7 8 9
1 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9
2 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9
3 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9
4 3 3 3 4 3 5 3 6 3 7 3 8 3 9
5 4 4 4 5 4 6 4 7 4 8 4 9
6 5 5 5 6 5 7 5 8 5 9
7 6 6 6 7 6 8 6 9
8 7 7 7 8 7 9
9 8 8 8 9
dix 9 9
Somme dix 18 16 14 12 dix 8 6 4 2
Row Sum contient le nombre de d -transpositions, donc la proportion d'erreurs de transposition non détectables est (en ignorant les transpositions où d = 0 ):
??

Variantes

UPC dans son utilisation la plus courante se réfère techniquement à UPC-A.

D'autres variantes de l'UPC existent :

  • L'UPC-B est une version à 12 chiffres de l'UPC sans chiffre de contrôle, développée pour le National Drug Code (NDC) et le National Health Related Items Code. Il comporte 11 chiffres plus un code produit à 1 chiffre et n'est pas d'usage courant.
  • UPC-C est un code à 12 chiffres avec un code produit et un chiffre de contrôle ; pas d'usage courant.
  • UPC-D est un code de longueur variable (12 chiffres ou plus), le 12e chiffre étant le chiffre de contrôle. Ces versions ne sont pas d'usage courant.
  • UPC-E est un code à 6 chiffres, qui a son équivalent dans le code UPC-A à 12 chiffres avec le système de numérotation 0 ou 1.
  • UPC-2 est un supplément à 2 chiffres à l'UPC utilisé pour indiquer l'édition d'un magazine ou d'un périodique.
  • UPC-5 est un supplément à 5 chiffres de l'UPC utilisé pour indiquer le prix de détail suggéré pour les livres.

UPC-E

Pour permettre l'utilisation de codes-barres UPC sur des emballages plus petits, où un code-barres complet à 12 chiffres peut ne pas tenir, une version avec suppression des zéros a été développée, appelée UPC-E, dans laquelle le chiffre du système de numérotation, tous les zéros de fin dans le fabricant et tous les zéros non significatifs dans le code produit sont supprimés (omis). Cette symbologie diffère de l'UPC-A en ce qu'elle n'utilise qu'un code à 6 chiffres, n'utilise pas le motif de garde M (milieu) et le motif de garde E (fin) est formé comme espace-barre-espace-barre-espace-barre , c'est-à-dire que le code-barres UPC-E suit le modèle SDDDDDDE. La manière dont un UPC-E à 6 chiffres se rapporte à un UPC-A à 12 chiffres est déterminée par le modèle numérique UPC-E et le modèle de parité UPC-E. Il ne peut correspondre qu'au système de numérotation UPC-A 0 ou 1, dont la valeur, avec le chiffre de contrôle UPC-A, détermine le modèle de parité UPC-E du codage. Avec les chiffres du code du fabricant représentés par des X et les chiffres du code du produit par des N, alors :

Dernier chiffre UPC-E Modèle numérique UPC-E Équivalent UPC-A
0 XXNNN0 0 ou 1 + XX000-00NNN + chiffre de contrôle
1 XXNNN1 0 ou 1 + XX100-00NNN + chiffre de contrôle
2 XXNNN2 0 ou 1 + XX200-00NNN + chiffre de contrôle
3 XXXNN3 0 ou 1 + XXX00-000NN + chiffre de contrôle
4 XXXN4 0 ou 1 + XXXX0-0000N + chiffre de contrôle
5 XXXXX5 0 ou 1 + XXXXX-00005 + chiffre de contrôle
6 XXXXX6 0 ou 1 + XXXXX-00006 + chiffre de contrôle
7 XXXXX7 0 ou 1 + XXXXX-00007 + chiffre de contrôle
8 XXXXX8 0 ou 1 + XXXXX-00008 + chiffre de contrôle
9 XXXXX9 0 ou 1 + XXXXX-00009 + chiffre de contrôle

Par exemple, un UPC-E 654321 peut correspondre à l'UPC-A 065100004327 ou 165100004324, selon le modèle de parité UPC-E des chiffres codés, comme décrit ci-dessous :

Chiffre de
contrôle UPC-A
Modèle de parité UPC-E pour UPC-A

système de nombre 0

Modèle de parité UPC-E pour UPC-A

système de numération 1

0 EEEOOO OOOEEE
1 EEOEOO OOEOEE
2 EEOOEO OEEEOE
3 EEOOOE OOEEEO
4 EOEEOO OEOOEE
5 EOOEEO OEEOOE
6 EOOOEE OEEEOO
7 EOEOEO OEOEOE
8 EOEOOE OEOEEO
9 EOOEOE OEEOEO
Table de codage pour le modèle de code-barres UPC-E SDDDDDDE
S
(début)
O
(chiffre de parité impair)
E
(chiffre pair de parité)
E
(fin)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-E S.svg UPC-E 0ow.svg
3-2-1-1
UPC-E 1ow.svg
2-2-2-1
UPC-E 2ow.svg
2-1-2-2
UPC-E 3ow.svg
1-4-1-1
UPC-E 4ow.svg
1-1-3-2
UPC-E 5ow.svg
1-2-3-1
UPC-E 6ow.svg
1-1-1-4
UPC-E 7ow.svg
1-3-1-2
UPC-E 8ow.svg
1-2-1-3
UPC-E 9ow.svg
3-1-1-2
UPC-E 0ew.svg
1-1-2-3
UPC-E 1ew.svg
1-2-2-2
UPC-E 2ew.svg
2-2-1-2
UPC-E 3ew.svg
1-1-4-1
UPC-E 4ew.svg
2-3-1-1
UPC-E 5ew.svg
1-3-2-1
UPC-E 6ew.svg
4-1-1-1
UPC-E 7ew.svg
2-1-3-1
UPC-E 8ew.svg
3-1-2-1
UPC-E 9ew.svg
2-1-1-3
UPC-E E.svg

UPC-E 654321 avec le modèle de parité "EOEOEO" (UPC-A 065100004327) serait codé comme

1-1-1 4-1-1-1 1-2-3-1 2-3-1-1 1-4-1-1 2-2-1-2 2-2-2-1 1-1 -1-1-1-1.

Le code-barres ressemblerait à ceci :

UPC-E-654321.png

EAN-13

L' EAN-13 a été développé comme un sur - ensemble d'UPC-A, ajoutant un chiffre supplémentaire au début de chaque numéro UPC-A. Cela a multiplié par dix le nombre de valeurs uniques théoriquement possibles à 1 000 milliards. Les codes-barres EAN-13 indiquent également le pays dans lequel l'entreprise qui vend le produit est basée (qui peut être ou non le même que le pays dans lequel le produit est fabriqué). Les trois premiers chiffres du code le déterminent, selon les codes pays GS1 . Chaque code UPC-A peut être facilement converti en code EAN-13 équivalent en ajoutant 0 chiffre au début du code UPC-A. Cela ne change pas le chiffre de contrôle . Tous les systèmes de point de vente peuvent désormais comprendre les deux de manière égale.

EAN-8 est une variation à 8 chiffres du code-barres EAN.

Remarques sur l'utilisation de l'UPC :

  • Tous les produits marqués d'un EAN seront actuellement acceptés en Amérique du Nord, en plus de ceux déjà marqués d'un CUP.
  • Les produits avec un UPC existant n'ont pas besoin d'être remarqués avec un EAN.
  • En Amérique du Nord, l'EAN ajoute 30 % de codes supplémentaires, principalement en ajoutant les chiffres 10 à 12 aux chiffres UPC 00 à 09. C'est une puissante incitation à supprimer progressivement l'UPC.

Voir également

  • GS1 - Organisation internationale de normalisation de la chaîne d'approvisionnement
  • Preuve d'achat

Les références

Lectures complémentaires

  • US 3832686 , Bilgutay, Ilhan M., "Bar Code Font", publié le 11 mai 1972, publié le 27 août 1974 
  • US 3145291 , Brainerd, HB, "Identification System", publié le 2 juillet 1959, délivré le 18 avril 1964  Railroad code à barres.
  • US 3617707 , Shields, Charles B. & Roelif Stapelfeldt, "Automatic car identification system", publié le 17 août 1967, publié le 2 novembre 1971 
  • US 3723710 , Crouse, William G. & John E. Jones, "Method and Device for Reading and Decoding a High Density Self-Clocking Bar Code", publié le 28 juin 1971, délivré le 27 mars 1973 

Liens externes