Bugün öğrendim ki: Bir perakende satış noktasında taranan ilk UPC işaretli ürün, 26 Haziran 1974 günü sabah 8:01'de Ohio, Troy'daki Marsh süpermarketinden satın alınan 10'lu Wrigley's Juicy Fruit sakızı paketiydi.

Mağazalarda ticari ürünlerin takibi için kullanılan barkod sembolojisi

Evrensel Ürün Kodu (UPC veya UPC kodu), mağazalarda ticari ürünlerin takibi için dünya çapında kullanılan bir barkod sembolojisidir.

Seçilen sembolojide, her biri tam olarak 1, 2, 3 veya 4 birim genişliğinde olan çizgiler (veya boşluklar) bulunmaktadır; kodlanacak her ondalık basamak, her ikisi de "çift" ve "tek" parite biçiminde toplam genişliği 7 birim olan iki çizgi ve iki boşluktan oluşmaktadır, bu da herhangi bir yönde taranmasına olanak tanır. Kodlama yapmayan özel "koruyucu desenler" (genişliği 3 veya 5 birim olan), kod çözmeye yardımcı olmak için karıştırılmıştır.

Bir UPC (teknik olarak, UPC-A), her bir ticari ürüne benzersiz olarak atanmış 12 basamaktan oluşmaktadır. Uluslararası GS1 örgütü, hem UPC hem de ilgili Uluslararası Madde Numarası (EAN) barkodunda kullanılan basamakları atar.[1] UPC veri yapıları, uluslararası standartlara dayalı küresel GS1 spesifikasyonuna dayanan Küresel Ticaret Madde Numaraları (GTIN'ler) bileşenidir. Giyim ve mobilya gibi bazı perakendeciler, GS1 sistemini kullanmak yerine başka barkod sembolojileri veya madde numaralandırma sistemleri kullanmaktadır. Bazı perakendeciler EAN/UPC barkod sembolojisini kullanmaktadır, ancak yalnızca kendi mağazalarında satılan ürünler için GTIN kullanmamaktadır.

Araştırmalar, UPC'nin benimsenmesinin ve yayılmasının yeniliği teşvik ettiğini ve uluslararası perakende tedarik zincirlerinin büyümesine katkıda bulunduğunu göstermektedir.[2]

Tarih

[düzenle]

Wallace Flint, 1932'de delikli kartlar kullanan otomatik bir kasa sistemi önerdi. Drexel Teknoloji Enstitüsü'nden bir lisansüstü öğrencisi olan Bernard Silver ve Norman Joseph Woodland, 1949'da bir hedef tarzı kod geliştirdi ve patent başvurusunda bulundu.[3][4]

1960'lar ve 1970'lerin başlarında, Kuzey Amerika'daki demiryolları, raylı araçları takip etmek için çok renkli barkodlarla deneyler yaptı, ancak bu sistem nihayet terk edildi ve Otomatik Ekipman Tanımlama (AEI) adı verilen radyo tabanlı bir sistemle değiştirildi.[5]

1973'te, gıda sektöründen bir grup ticaret birliği, McKinsey & Company danışmanları Larry Russell ve Tom Wilson'ın yardımıyla, Tekdüze Ürün Kodu'nun temelini oluşturan sayısal formatı tanımlayan Tekdüze Ürün Kodu Konseyi (UPCC) oluşturdu.[6] Charegon, IBM, Litton-Zellweger, Pitney Bowes-Alpex, Plessey-Anker, RCA, Scanner Inc., Singer ve Dymo Industries/Data General dahil olmak üzere teknoloji firmaları, konseye sembol temsilleri için alternatif öneriler sundu.[kaynak gerekli] Sembol Seçim Komitesi nihayet insan tarafından okunabilir alandaki yazı tipinde küçük bir değişiklikle George J. Laurer tarafından tasarlanan IBM önerisini uygulamaya koydu.[kaynak gerekli]

Perakende bir kasada taranan ilk UPC işaretli ürün, 26 Haziran 1974'te saat 08:01'de Ohio, Troy'daki Marsh süpermarketinde satın alınan Wrigley's Juicy Fruit sakızının 10'luk (50 çubuk) bir paketiydi.[7] NCR kasa 67 sent olarak kaydetti.[8] Alışveriş sepetinde başka barkodlu ürünler de vardı, ancak sakız kasada ilk alınan üründü. Washington, D.C.'deki Smithsonian Enstitüsü'nün Amerikan Tarihi müzesinde sakız paketinin bir örneği sergilendi.[9][10]

Murray Eden, Evrensel Ürün Kodu barkodunu yaratan ekipte bir danışmandı.[11][12] Massachusetts Teknoloji Enstitüsü'ndeki bir bilim adamları komitesinin başkanı olarak, "gelecekte kaçınılmaz teknolojik gelişmelerden etkilenmeyecek bir sembol seçmesine" yardımcı oldu.[13] Yazı tipini seçti ve barkod okuyucu doğru çalışmıyorsa bir güvenlik sistemi olarak alt kısma sayılar ekleme fikrini ortaya attı.[14][15]

IBM önerisi

[düzenle]

1969'un sonlarında, Kuzey Carolina'daki Araştırma Üçgeni Parkı (RTP) bölgesindeki IBM, bir süpermarket tarayıcı ve etiket nasıl yapılacağını belirlemek üzere George Laurer'ı görevlendirdi. 1970'lerin sonunda, Heard Baumeister, iki IBM barkodunun Delta A ve Delta B tarafından elde edilebilen karakter-inç hesaplamaları için denklemler sağladı. Şubat 1971'de, Baumeister Laurer'a katıldı.

Delta B, çizgi genişliklerini boşluk genişliğine kod bitlerine göre karşılaştırdı. Bu, mürekkep yayılmasına son derece duyarlıydı, yanlış seviyelerdeki mürekkep veya baskı nedeniyle bir çizginin her iki kenarının dışa doğru yayılmasına veya küçülmesine neden oluyordu.

1971'in ortalarında, William "Bill" Crouse, Delta C adı verilen yeni bir barkod icat etti.[4] Delta B'nin karakter başına inç değerini dört katına çıkardı.

Delta C, yalnızca ön tarafa veya arka tarafa uzanan kenarları kullanarak yüksek performansına ulaştı, bu da eşit mürekkep yayılımından etkilenmiyordu. Kod, çoğu veya tercihen tüm karakteri kapsayan tanımlanmış bir karakter kümesine ve sabit bir referans mesafesine sahip olduğunda en iyi performansı sağlıyordu.

Ağustos 1971'de, Crouse tarayıcı çabasına katıldı. Birkaç ay sonra hiçbir ilerleme kaydedemediler. Basit düz çizgili bir lazer tarayıcıyla okunabilen RCA hedef etiketinin farkındaydılar, ancak okunabilir bir etiket çok büyüktü.

Litton Industries, alanı azaltmak için yarıya bölünmüş bir hedef sembol önermesine rağmen, hala çok büyük kaldı ve RCA sembolünde olduğu gibi mürekkep lekesi baskı sorunlarına yol açtı. Fazlalık ve kontrol yeteneği tamamen kaldırıldı. Ayrıca, uygulanabilir olmayan birçok dünya önerisinden de haberdardılar.

1972 baharında, Baumeister bir atılım duyurdu. Tek bir geçişte okunması gereken tüm çizgilerin genişliğinden biraz daha uzun olan çizgilerle bir etiket önerdi. Bu etiket, düz çizgili lazer tarayıcıdan biraz daha karmaşık olan basit bir "X" tarayıcıyla okunabilirdi. Ertesi gün, Baumeister etiketin iki yarıya bölünmesi durumunda çizgi uzunluklarının neredeyse yarıya indirilebileceğini öne sürdü.

Bu iki öneri, hedeften alanı önce üçte bir sonra da altıda bir oranında azalttı. Sağdaki görüntü, Baumeister tarafından önerilen etiketi göstermektedir. O, herhangi bir özel barkod belirtmemiştir, çünkü bu tam olarak anlaşıldı. Günümüzdeki UPC etiketi, barkodlama ve on basamak hariç, onun önerisidir. Kısa bir süre sonra Baumeister, RTP'nin başka bir alanına geçti.

Laurer, etiketin ayrıntılarını tanımladı ve bir öneri yazdı. N.J. Woodland, projenin planlayıcısı olarak atandı ve Laurer'ın önerisini yazmasında ona yardımcı oldu.

Laurer'ın ilk barkod denemesi Delta B'yi kullandı. Sonuçtaki etiket boyutu, çok büyük olan yaklaşık 6 inç x 3 inç'ti. Crouse, Laurer'ın barkodunda Delta C'yi kullanmasını ve başka boyutlarda alfabe oluşturmak için örnek alfanümerik karakter kümesi ve kurallar içeren patentinin bir kopyasını sağlamasını önerdi. Bu, etiket boyutunu yaklaşık 1,5 inç x 0,9 inç'e (38 mm x 23 mm) indirdi.

Daha sonra Laurer, tarayıcının bir etiketi nasıl algılayabileceği konusunda Crouse'dan yardım istedi. Birlikte, koruyucular çizgilerini tanımladılar ve etiketi nasıl algılayacakları konusunda bir tanımladılar. Koruyucu çizgiler ayrıca, yarı etiket ayrımının tanınmasını ve tarayıcı eşiği devreleri için eğitim çizgilerini sağladı. Laurer, tamamlanmış bir etiket tanımı yaptı ve önerisini yazmaya devam etti.[16]

Daha önce, Crouse, bir yüzük ve bilezik gibi takılan basit bir değneğin fikrine sahipti. Etiketin bir gösterisini sunmak için o değneği geliştirmeye karar verdi.[kaynak gerekli]

1 Aralık 1972'de, IBM, tarayıcının geliştirileceği yer olan Rochester, Minnesota'daki Süpermarket Komitesi'ne Laurer'ın önerisini sundu. Sunum sırasında, Crouse, halkasına benzeyen değneğiyle UPC benzeri etiketleri okuduğu bir laboratuvar gösterisi yaptı. Düzenli etiketleri okuduğunun yanı sıra, önerideki iki sayfalık orta kısım etiketini de okudu. Ardından, bir masanın üzerinde etiketli ürünlerin fotoğrafını gösteren bir sayfaya geçti. Etiketler, basılı fotoğrafın çözünürlüğünden dolayı küçük ve kusurluydu, ancak değnek bunların çoğunu okudu. Bu gösteri, saf Delta C kodunun sağlamlığını gösterdi. Öneri kabul edildi.

Bir ay sonra, 1 Ocak 1973'te Crouse, IBM'nin Gelişmiş Teknoloji grubuna geri döndü ve Laurer, etiket için tam sorumluluğu üstlendi.

Elde tutulan baskı cihazlarını üreten Dymo Industries, kodun karakter bağımsız olmasını ısrar etti,[açıklama gerekli] böylece ürünler üreticiler tarafından barkodlanmamışsa, eldeki tutulan baskı cihazları mağazada barkodu üretebilirdi. Dymo'nun önerisi IBM tarafından kabul edildi ve IBM'in en son önerisine dahil edildi.

Etiketin iki yarısının farklı sayısal karakter kümelerine sahip olması gerektiğine karar verildi. Laurer'ın Delta C patentinden türettiği karakter kümesi, iki çizgi ve iki boşluk basılabilen yedi basılabilir artırım veya birim kullanıyordu. Bu, karakterlerin yirmi kombinasyonunu ortaya çıkardı, ancak Delta C kurallarıyla okunduğunda çiftleşen iki çift aynı kodu üretti.

On sekiz karakter yeterli olmadığından, Laurer karakter kümesine bir birim eklemeye çalıştı. Bu, iki ondalık karakter kümesini sağlayabilecek yirmi altı Delta C karakterini ortaya çıkardı, ancak aynı zamanda etiketin genişliğine ve dolayısıyla yüksekliğine yüzde on dört ekledi. Bu, alanın yüzde otuz artışı veya 1,7 inç x 1,03 inç (43 mm x 26 mm) boyutunda bir etiket olurdu. Laurer bunun kabul edilebilir olmadığını düşündü.

Laurer, orijinal yirmi karakterli karakter kümesine döndü, ancak bunlardan dördü, Delta C okuma ile aynı iki çiftti. Hepsini kullanmaya karar verdi. Çiftler arasında ayrım yapmak için, çiftlerin her birindeki bir çizgi genişliğini ölçecekti, böylece birbirlerinden ayırt edilebilecekti. Her çift için bu çizgiler bir veya iki birim genişliğinde olacaktı.

Laurer, bu kümeye Baumeister denklemlerini uygulamadı. Düşündüğü bir çizgi genişliğinin ölçümünün çok ciddi bir sorun oluşturmayacağıydı. Sonuçta, alanın iki katından fazla artışı için genişlik ve yükseklikte yüzde elliden fazla artış gerektiriyordu. Laurer daha sonra bu dört karakterin her kümede tarayıcı okuma hatalarının çoğundan sorumlu olduğunu kabul etti.

Bir matematikçi olan David Savir, sembolün basılabileceği ve güvenilirlik gereksinimlerini karşılayacağı görevinin verildi ve Baumeister denklemlerinden muhtemelen habersizdi. O ve Laurer, hatanın tespiti ve düzeltmesi için ona ek iki basamak daha eklediler.

Daha sonra, her bir taraftaki çizgili birimlerin sayısına tek/çift parite eklemeye karar verdiler. Tek/çift parite, bit akışındaki tek sayıda bit hatasının tespiti için kullanılan bir tekniktir. Herhangi bir tarafın hangi tarafın okunduğunu ek olarak göstermesi gerektiğine karar verdiler. Bu, her çizgi genişliğinin iyi bir okuma sağlamak için doğru bir şekilde okunması gerektiği anlamına geliyordu. Ayrıca, her boşluğun da bilineceği anlamına geliyordu.

Her bit genişliğinin kesin olarak okunması gerektiği, Delta C avantajını, Delta C referans ölçümü hariç, temelde ortadan kaldırdı. Yalnızca garip karakter kümesi ve etiket boyutu, Delta C kodunun bir gölgesi olarak kaldı. Boyut hala saf Delta C için hesaplanan boyuttu. Gerekli çizgi genişliği ölçümlerini hesaba katan etiket boyutu düzgün şekilde yeniden hesaplanmış olsaydı, etiket kabul edilebilir olamayacak kadar büyük olurdu.

Makine mühendisliği ve elektronik devre tasarımı genellikle bilinen toleransları kullanarak en kötü senaryo tasarımları gerektirir. Barkodlarla çalışan birçok mühendis böyle şeylerle çok az deneyime sahipti ve biraz sezgisel yöntemler kullandılar. Bu, Delta B kodunun düşük performansının ve muhtemelen RCA'nın hedef tarayıcısının başarısızlığının nedeniydi.

Aşağıdaki tablo, 1970'lerin başlarında kullanılabilen çalışabilen etiketleri, boyutlarıyla birlikte göstermektedir.

Etiket türü Etiket boyutları Alan Mors Kodu'yla hedef Büyük Büyük Delta B ile hedef 12,0 inç (300 mm) çaplı 113,10 inç2 (729,7 cm2) Delta A ile hedef 9,0 inç (230 mm) çaplı 63,62 inç2 (410,5 cm2) Baumeister 1. w/ Delta B 6,0 inç x 5,8 inç (150 mm x 150 mm) 34,80 inç2 (224,5 cm2) Delta B ile Baumeister 2 yarı 6,0 inç x 3,0 inç (152 mm x 76 mm) 18,00 inç2 (116,1 cm2) Delta A ile Baumeister 2 yarı 4,5 inç x 2,3 inç (114 mm x 58 mm) 10,35 inç2 (66,8 cm2) Delta C ile Baumeister 1,5 inç x 0,9 inç (38 mm x 23 mm) 1,35 inç2 (8,7 cm2)

Bu, aynı bilgileri ve güvenilir okunabilirliği olan bir hedef varsayar.

İçerik

[düzenle]

Her UPC-A barkodu, 12 sayısal basamağın bir dizisinin üzerinde taranabilir siyah çizgiler ve beyaz boşluklardan oluşan bir şeritten oluşur. UPC-A barkodunda herhangi bir harf, sembol veya başka bir karakter görünemez. 12 basamaklı sayı ile siyah çizgi ve beyaz boşluk şeridi arasında bire bir yazışma vardır, yani her 12 basamaklı sayıyı görsel olarak temsil etmenin sadece bir yolu vardır ve her siyah çizgi ve beyaz boşluk şeridini sayısal olarak temsil etmenin yalnızca bir yolu vardır.

Her UPC-A barkodunun taranabilir alanı, her UPC-A barkodunda aynı şekilde temsil edilen S (başlangıç), M (orta) ve E (son) koruyucu desenlerinin desenine, L (sol) ve R (sağ) bölümlerinin topluca her UPC-A'yı benzersiz kılan 12 sayısal basamağı temsil etmesine uygundur. İlk L basamağı, sonraki basamaklar tarafından kullanılacak belirli bir sayı sistemini belirtir. Son R basamağı, tarama veya manuel girişlerde bazı hataları algılamayı sağlayan hata tespiti kontrol basamağıdır. Koruyucu desenler, altı sayısal basamak grubunu ayırır ve zamanlamayı belirler.

UPC-A 042100005264, UPC-E 425261'e eşdeğerdir, "EOEEOO" parite deseniyle, bu da UPC-A sistem numarası 0 ve UPC-A kontrol basamağı 4 ile tanımlanır.

Biçimlendirme

[düzenle]

UPC-A barkodları, çeşitli baskı ve tarama işlemlerine uyacak şekilde çeşitli yoğunluklarda basılabilir. Önemli boyut parametresi x boyutu (tek modül öğesinin genişliği) olarak adlandırılır. Her çizginin (boşluğun) genişliği, x boyutu ile her çizginin (boşluğun) modül genişliğinin (1, 2, 3 veya 4 birim) çarpımı ile belirlenir. Koruyucu desenler her birinde iki çizgi içerdiğinden ve UPC-A barkodunun 12 basamağının her biri iki çizgi ve iki boşluk içerdiğinden, tüm UPC-A barkodları tam olarak (3 × 2) + (12 × 2) = 30 çizgiden oluşur, bunlardan 6'sı koruyucu desenleri ve 24'ü sayısal basamakları temsil eder.

Nominal boyutlardaki UPC-A için x boyutu 0,33 mm (0,013")'dir. UPC-A için nominal sembol yüksekliği 25,9 mm (1,02")'dir. S (başlangıç), M (orta) ve E (son) koruyucu desenleri oluşturan çizgiler, sonuçta 27,55 mm (1,08") nominal sembol yüksekliği ile 5 kat x boyutu kadar aşağıya uzatılır. Bu ayrıca UPC-A barkodunun ilk ve son sayısal basamağının çizgileri için de geçerlidir. UPC-A, %80 ile %200 arasında herhangi bir yerde küçültülebilir veya büyütülebilir.

UPC-A barkodunun taranabilir alanının her iki tarafında en az 9 kat x boyutu genişliğinde bir sessiz alan olmalıdır.[17][18] UPC-A barkodunda kodlanan bir GTIN-12 numarası için, insan tarafından okunabilir yorumun ilk ve son basamakları her zaman sembolün dışına yerleştirilir, böylece UPC barkod tarayıcılarının düzgün çalışması için gerekli sessiz alanlar belirtilir.

Kodlama

[düzenle]

UPC numarası kodlama Değeri L kodlaması R kodlaması 0 3 2 1 1 3 2 1 1 1 2 2 2 1 2 2 2 1 2 2 1 2 2 2 1 2 2 3 1 4 1 1 1 4 1 1 4 1 1 3 2 1 1 3 2 5 1 2 3 1 1 2 3 1 6 1 1 1 4 1 1 1 4 7 1 3 1 2 1 3 1 2 8 1 2 1 3 1 2 1 3 9 3 1 1 2 3 1 1 2

UPC-A barkodu, UPC-A 12 basamaklı sayıyı kodlayan çizgi ve boşluklardan oluşan şeritler şeklinde görsel olarak temsil edilir. Her basamak, 2 çizgi ve 2 boşluktan oluşan benzersiz bir desende temsil edilir. Çizgiler ve boşluklar değişken genişliktedir, yani 1, 2, 3 veya 4 modül genişliğindedir. Bir basamak için toplam genişlik her zaman 7 modüldür; bu nedenle, UPC-A 12 basamaklı sayı toplamda 7×12 = 84 modül gerektirir.

Tam bir UPC-A, S (başlangıç), M (orta) ve E (son) koruyucu desenleri ile birlikte (L ve R bölümlerini) birleştiren 95 modül genişliğindedir. S (başlangıç) ve E (son) koruyucu desenleri 3 modül genişliğindedir ve her çizgi ve boşluk bir modül genişliğinde olan çizgi-boşluk-çizgi desenini kullanır. M (orta) koruyucu deseni 5 modül genişliğindedir ve her çizgi ve boşluk bir modül genişliğinde olan boşluk-çizgi-boşluk-çizgi-boşluk desenini kullanır. Ek olarak, UPC-A sembolü, S (başlangıç) öncesinde ve E (son) sonrası 9 modül genişliğinde bir sessiz alan gerektirir.

UPC-A barkod deseni için kodlama tablosu SLLLLLLMRRRRRRE Sessiz

alan S

(başlangıç) L

(sol sayısal basamak) M

(orta) R

(sağ sayısal basamak) E

(son) Sessiz

alan 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9

UPC-A'nın sol tarafındaki basamakların (M (orta) koruyucu desenin solundaki basamakların) tek paritesi vardır, bu da siyah çizgilerin toplam genişliğinin tek sayıda modül olduğu anlamına gelir. Tersine, sağ taraftaki basamaklar çift paritelidir. Bu nedenle, bir UPC tarayıcısı bir sembolün soldan sağa veya sağdan sola doğru tarandığını (sembol ters çevrilmiş) belirleyebilir. S (başlangıç) veya E (son) koruyucu desenini (hangisi yönlere okunsalar da aynı çizgi-boşluk-çizgi) gördükten sonra, tarayıcı soldan sağa tarama yapıyorsa önce tek pariteli basamakları, sağdan sola tarama yapıyorsa önce çift pariteli basamakları görür. Parite/yön bilgisiyle, ters çevrilmiş bir sembol tarayıcıyı yanıltmayacaktır. Ters çevrilmiş bir sembolle karşılaşıldığında, tarayıcı sembolu basitçe görmezden gelebilir (çok sayıda tarayıcı soldan sağa ve sağdan sola doğru taramayı değiştirebilir, bu nedenle sembolu sonraki geçişte okuyabilir) veya basamakları tanır ve bunları doğru sıraya koyar. Basamak kodlamasında başka bir özellik daha vardır. Sağ taraftaki basamaklar, sol taraftaki basamaklarının optik tersidir, yani siyah çizgiler beyaz boşluklara ve bunun tersi çevrilerek dönüştürülür. Örneğin, sol taraftaki "4", boşluk×1 - çizgi×1 - boşluk×3 - çizgi×2 iken, sağ taraftaki "4" ise çizgi×1 - boşluk×1 - çizgi×3 - boşluk×2'dir.

Numaralandırma

[düzenle]

UPC-A ve UPC-E barkodlarının sayısı, bunları oluşturmak için kullanılan standartlarla sınırlıdır.

UPC-A

(her sol basamak için olası değerler) (sol basamak) × (her sağ basamak için olası değerler) (5 sağ basamak) = 10 6 × 10 5 = 100,000,000,000. {\displaystyle {\begin{aligned}{\text{(her sol basamak için olası değerler)}}^{\text{(sol basamak)}}&\times {\text{(her sağ basamak için olası değerler)}}^{\text{(5 sağ basamak)}}\\=10^{6}&\times 10^{5}=100,000,000,000.\end{aligned}}}

UPC-E

(her basamak için olası değerler) (basamak) × (her UPC-E numarası için olası parite desenleri) = 10 6 × 2 = 2,000,000. {\displaystyle {\begin{aligned}{\text{(her basamak için olası değerler)}}^{\text{(basamak)}}&\times {\text{(her UPC-E numarası için olası parite desenleri)}}\\=10^{6}&\times 2=2,000,000.\end{aligned}}}

Numara sistemi basamağı

[düzenle]

LLLLLLLRRRRR olan tüm olası sayı sistemlerinin ve ilgili 12 basamaklı UPC-A numaralandırma şemalarının açıklaması aşağıdadır, burada L numara sistemi basamağını ve R kontrol basamağını göstermektedir.

0–1, 6–9

Çoğu ürün için. LLLLL basamakları, yerel GS1 örgütü tarafından atanan üretici kodudur ve RRRRR basamakları, ürün kodudur.

2

Yerel kullanım için saklıdır (mağaza/depol): değişken ağırlıktaki ürünler için. Et, taze meyveler veya sebzeler gibi değişken ağırlıktaki ürünler, orada paketlenmişse, mağaza tarafından bir ürün numarası alır. Bu durumda, LLLLL ürün numarasıdır ve RRRRR, hangi R'nin (ağırlık için 0) olduğunu belirleyen ağırlık veya fiyattır.

3

Ulusal İlaç Kodu (NDC) numarasıyla ilaçlar. ABD'deki ilaçlar, UPC'nin orta 10 basamağını NDC numaraları olarak kullanır. Genellikle yalnızca reçetesiz ilaçlar satış noktasında taranırken, NDC tabanlı UPC'ler, reçeteli ilaç paketleri ve cerrahi ürünlerde ve bu durumda genellikle UPN Kodları olarak adlandırılır. kullanılır.[19]

4

Yerel kullanım için saklıdır (mağaza/depol), genellikle sadakat kartları veya mağaza kuponları için kullanılır.

5

Kuponlar. LLLLL basamakları, ürünün UPC önekinin 2-6 basamağıdır; sonraki üç RRR, aile kodudur (üretici tarafından veya kupon ödeme merkezi tarafından belirlenir) ve sonraki iki RR, indirim miktarını belirleyen bir değer kodudur (GS1 değer kodu tablosuna göre). Bu kuponlar iki veya üç katına çıkabilir.[20]

Kontrol basamağı hesaplama

[düzenle]

UPC, yaygın veri giriş hatalarını tespit etmek için bir kontrol basamağı içerir. Örneğin, UPC-A kodları, kontrol basamağı denkleminden memnun kalacak şekilde x 12 {\displaystyle x_{12}} basamağını seçer:

( 3 x 1 + x 2 + 3 x 3 + x 4 + 3 x 5 + x 6 + 3 x 7 + x 8 + 3 x 9 + x 10 + 3 x 11 + x 12 ) ≡ 0 ( mod 10 ) . {\displaystyle (3x_{1}+x_{2}+3x_{3}+x_{4}+3x_{5}+x_{6}+3x_{7}+x_{8}+3x_{9}+x_{10}+3x_{11}+x_{12})\equiv 0{\pmod {10}}.}

Girilen bir kod denklemden memnun kalmazsa, geçerli bir UPC-A değildir.

UPC-A kontrol basamağı aşağıdaki gibi hesaplanabilir:

Tek numaralı konumlardaki (birinci, üçüncü, beşinci,..., on birinci) basamakları toplayın.

Sonucu 3 ile çarpın.

Çift numaralı konumlardaki (ikinci, dördüncü, altıncı,..., onuncu) basamakların toplamını sonuca ekleyin.

Sonucu 10'a göre bul (yani, 10'a bölündüğünde kalan) ve M olarak adlandırın.

M sıfır ise, kontrol basamağı 0'dır; aksi takdirde kontrol basamağı 10 − M'dir.

Örneğin, "03600029145x12" UPC-A barkodunda, x12 bilinmeyen kontrol basamağıdır, x12 aşağıdaki gibi hesaplanabilir:

Tek numaralı basamakları toplayın (0 + 6 + 0 + 2 + 1 + 5 = 14).

Sonucu 3 ile çarpın (14 × 3 = 42).

Çift numaralı basamakları ekleyin (42 + (3 + 0 + 0 + 9 + 4) = 58).

Sonucu 10'a göre bul (58 mod 10 = 8 = M).

M sıfır değilse, M'yi 10'dan çıkarın (10 − M = 10 − 8 = 2).

Bu nedenle, kontrol basamağı x12 2'dir.

Kontrol basamağı denklemi, makul hata tespit özellikleri için seçilir (Luhn algoritmasını inceleyin).

UPC-A, tek basamaklı hataların %100'ünü algılar.

Tek basamaklı hata, tam olarak bir basamağın yanlış olması anlamına gelir. Yanlış basamak ve doğru basamağın 10 modülündeki farkı d olsun. d değeri sıfır olamaz çünkü bu, basamakların aynı olduğu anlamına gelir, ancak d {1, 2, 3, 4, 5, 6, 7, 8, 9}deki diğer herhangi bir değer olabilir. Hata basamağı tek konumda (ağırlık 1) ise, kontrol basamağı denkleminin sol tarafı d kadar değişir ve eşdeğerlik artık sıfır olmaz. Hata basamağı çift konumda (ağırlık 3) ise, sol taraf 3d kadar değişir, ancak bu değişiklik 10 modülünde de sıfır olmadığından, kontrol basamağı denklemi sağlanmaz.

UPC-A, transpozisyon hatalarının yaklaşık %89'unu algılar. Özel olarak, iki bitişik basamağın farkı 5 ise, UPC-A transpozisyonlarını algılayamaz.

İki bitişik basamak yer değiştirirse, basamaklardan biri a ağırlıklı 1 olur ve diğer basamak b = a + d ağırlıklı 3 olur, burada d, iki basamak arasındaki farktır. Basamaklar doğru sırada olsaydı, bunlar kontrol basamağı denkleminin sol tarafına şu şekilde katkıda bulunurlardı:

1 a + 3 b = 1 a + 3 ( a + d ) = 4 a + 3 d {\displaystyle 1a+3b=1a+3(a+d)=4a+3d}

Yer değiştirilmiş sırada, bunlar şu şekilde katkıda bulunurlar:

1 b + 3 a = 3 a + 1 ( a + d ) = 4 a + d {\displaystyle 1b+3a=3a+1(a+d)=4a+d}

İki katkıdan çıkarılarak, sol tarafta ne kadar değiştirileceği bulunur:

( 4 a + 3 d ) − ( 4 a + d ) = 2 d {\displaystyle (4a+3d)-(4a+d)=2d}

Hata, modüler değişiklik sıfırdan farklı olduğunda algılanacaktır; eğer 2d ≡ 0 mod 10 ise, değişiklik algılanmaz. Bu nedenle, yalnızca karakter farkı d ≡ 5 olduğunda, bir hata algılanmaz ("transpozisyon" dejenerasyonunda d ≡ 0 olduğunda hata olmaz).

Şimdi, bir transpozisyonun d mesafesinin 5 olma sıklığına bakın.

İşte UPC-A barkodları için d-transpozisyonlar tablosu, burada d ∈ { 0 , 1 , 2 , … , 9 } : {\displaystyle d\in \{0,1,2,\ldots ,9\}:}

UPC-A barkodları için d-transpozisyonlar tablosu

d



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 10 9 9 Toplam 10 18 16 14 12 10 8 6 4 2

Satır toplamı, d-transpozisyonların sayısını içerir, bu nedenle algılanmayan transpozisyon hatalarının oranı (d = 0'ın transpozisyonlarını göz ardı ederek):

10 18 + 16 + 14 + 12 + 10 + 8 + 6 + 4 + 2 = 10 90 = 11.111 … % . {\displaystyle {\frac {10}{18+16+14+12+10+8+6+4+2}}={\frac {10}{90}}=11.111\ldots \%.}

Değişkenler

[düzenle]

UPC, en yaygın kullanımıyla teknik olarak UPC-A'dır.

UPC'nin diğer çeşitleri de vardır:

UPC-B, Ulusal İlaç Kodu (NDC) ve Ulusal Sağlık İlgili Ürünler Kodu için geliştirilmiş, kontrol basamağı olmayan 12 basamaklı bir UPC versiyonudur.[21][doğrulanamayan bilgi]. 11 basamak ve 1 basamaklı bir ürün kodu içerir ve yaygın kullanımda değildir.[22]

UPC-C, ürün kodu ve kontrol basamağı içeren 12 basamaklı bir koddur; yaygın kullanımda değildir.[22]

UPC-D, 12 basamak veya daha fazla değişken uzunlukta bir koddur ve 12. basamak kontrol basamağıdır. Bu versiyonlar yaygın kullanımda değildir.

UPC-E, 6 basamaklı bir koddur ve numara sistemi 0 veya