Тема 11. Штрихові коди

 

Штрихові коди ( ШК )  широко використовуються в медицині, торгівлі, промисловості тощо. ШК – це послідовність  штрихів і пробілів, що розташовані у напрямку уявленої прямої. Інформацію у ШК можуть нести як штрихи і пробіли різної ширини, так і штрихи різної висоти.

Існує багато ШК які в основному мають вузькоспеціальне призначення. Найбільш поширеними ШК є коди, що рекомендовані Міжнародною асоціацією EAN. Це коди EAN ( European Article Numbering )   та  UPC  ( Uniform  Product  Code ) .

Штрихові  коди  EAN  призначені для кодування 10 цифр ( 0. . .9 ) і додаткових символів ( СТАРТ, СТОП та розділові знаки ). Код може мати довжину кодового слова  4, 5, 6, 7, 8, 10, 12, 13 і 14 знаків. Але існує два основні різновиди  коду EAN: EAN-13  і  EAN-8, де цифрою позначена довжина  коду ( кількість знаків у кодовому слові ). Так наприклад, код EAN-13 має структуру, яка наведена на рис. 6.1.

  u12    u11     u 10        u 9      u 8     u7      u6      u5      u4      u3      u2      u1        uК

 

 

           Код             Код товаро-                                                     

           країни              виробника

 

 

 

                                                                            

          Код                    Код                              Код товару             Конт-

        країни       товаровиробника             ( найменування,        рольний

                                                                     характеристика )       символ

                                

               Рис. 6.1. Структура  штрихового коду  EAN-13                 

 

 

 

 

 

 

 

 

 

 

 


 

Як видно з рисунка  6.1, код країни ( див. табл. додатка В ) може мати не два, а три знаки. У цьому разі код товаровиробника має не 5, а 4  знаки.

Контрольний символ визначається за таким алгоритмом:

1- ий крок: знаходять суму цифр, розташованих на непарних позиціях кодового слова ( перегляд виконується справа наліво ), і помножують одержаний результат на 3;

2 - ий крок: знаходять суму цифр, розташованих на парних позиціях кодового слова;

3 - ій  крок: визначають добуток сум, знайдених при 1-му та 2-му кроках;

4 - ий  крок: обчислюють контрольну цифру, яка дорівнює найменшому числу, що не перевищує 9, яке, якщо його додати до результату, одержаному на 3-му кроці, дає кратне 10 число.

Для кодування інформації у ШК EAN використовуються чотири набори знаків: A, B, C  та  D  ( табл.6.1 ) для кодування десяткових цифр, а також знаків СТАРТ, СТОП  Н1, Н2, Н3 ), та розділових зна-ків  ( Н4  та  Н5 ). Кожний знак містить у собі два штрихи і два пробіли. Довжина кожного знака для кодування цифр дорівнює 7 модулям     ( 7-ми  елементам зображення ), а допоміжні знаки мають  довжину 3, 5  і  6 модулів. Як знак СТАРТ використовуються набори Н1  та  Н3, а знак СТОП – Н1  та  Н2  у залежності від символів початку і кінця кодового слова  ( табл.6.2,  де  0 – пробіл,  1 – штрих ).

Таблиця 6.1

Сим-

воли

Набір  А

Набір  В

Набір  С

Набір  D

Двійковий еквівалент

Двійковий еквівалент

Двійковий еквівалент

Двійковий еквівалент

0

0001101

0100111

1110010

1011000

1

0011001

0110011

1100110

1001100

2

0010011

0011011

1101100

1100100

3

0111101

0100001

1000010

1011110

4

0100011

0011101

1011100

1100010

5

0110001

0111001

1001110

1000110

6

0101111

0000101

1010000

1111010

7

0111011

0010001

1000100

1101110

8

0110111

0001001

1001000

1110110

9

0001011

0010111

1110100

1101000

Н1

101

Обмежувальні

знаки  СТАРТ

і      СТОП

Н2

010101

Н3

101010

Н4

01010

Розділові    

знаки

Н5

10101

 

Примітка:  При зображенні кодового слова у штриховому коді , згідно табл. 6.1, подають: 0 – одним, 00 – двома, 000 – трьома  і  0000 – чотирма інтервалами, а  1 – тонким штрихом (    ) ,  11 – штрихом (    ),    111 – штрихом (      )  і  1111 – штрихом  (       )  .     

                                                                                              Таблиця 6.2

Знак  СТАРТ

Кодове слово

Знак

 СТОП

Н1

0 . . . . . . . . . .  0

Н1

Н3

1 . . . . . . . . . . .1

Н2

Н1

0 . . . . . . . . . . .1

Н2

Н3

1 . . . . . . . . . . .0

Н1

 

У штрихових кодах EAN довжиною 4, 5, 6, 7 знаків для кодування цифр використовується  набір  А ( табл.6.1 ),  а  обмежувальних знаків – Н1 ( СТАРТ ) та  Н2 ( СТОП ).   У  ШК  довжиною 8, 10, 12  і  14 зна-ків кодові слова діляться на дві частини з однаковим числом знаків у кожній, які розділяються розділовим знаком Н4. Для зображення знаків лівої частини кодового слова використовуються набори  А  і  В, а  правої – С  і  D ( див. табл.6.1 ). Такі кодові слова мають обмежу-вальні знаки СТАРТ  і  СТОП  типу  Н1.

У коді EAN-13  штрихове зображення складається з двох частин по шість знаків у кожній, які розділені знаком  Н4,  і  має зліва та справа обмежувальні знаки Н1 ( СТАРТ і СТОП ). Першу  зліва цифру ( 12-а цифра )  товарного номера не кодують у вигляді штрихів і пробілів, а тільки пишуть зліва внизу. Ця цифра визначає спосіб кодування цифр, які розташовані у лівій частині кодового слова між знаками Н1 та Н4 ( табл.6.3 ). Літерами А  і  В  у табл. 6.3  позначені набори з табл..6.1, якими кодують відповідні знаки лівої частини кодового слова. Цифри, які розташовані у правій частині кодового слова між знаками Н4  і  Н1,  кодують набором  С ( див. табл.6.1 ). Обмежувальні і розділовий знаки зображають  більш довшими по висоті штрихами.

Таблиця 6.3

u12

u11        u10         u9          u8          u7          u6

0

  А          А          А           А           А          А

1

  А          А          В           А           В          В

2

  А          А          В           В           А          В

3

  А          А          В           В           В          А

4

  А          В          А           А           В          В

5

  А          В          В           А           А          В

6

  А          В          В           В           А          А

7

  А          В          А           В           А          А

8

  А          В          А           В           В          А

9

  А          В          В           А           В          А

 

Деякі товари можуть мати короткий номер, що має 7 цифр. Після доповнення його контрольною цифрою, що виконується за наведеним вище алгоритмом для коду EAN-13, одержують 8 цифр, які кодують кодом EAN-8. Кодове слово EAN-8 складається зі знака СТАРТ – Н1, чотирьох знаків набору А, розділового знака Н4, трьох знаків набору С, знака контрольної цифри у наборі С, а також знака СТОП – Н1. У коді EAN-8  перша цифра  u7  не визначає неявне кодування, а кодується як і наступні цифри  u6, u5, u4  набором А ( див. табл.6.1 ).

Штрихові  коди  UPC  використовуються у США та Канаді для ідентифікації товарів і також призначені для кодування 10 цифр та п’яти додаткових знаків. Коди  UPC  сумісні з кодами EAN  з огляду на те, що використовують одну  і  ту ж таблицю наборів знаків ( табл.6.1 ).

Існує декілька  різновидів ШК  UPC, з яких найбільше поширення  набули коди UPC-А  і  UPC-Е.  Кодове слово ШК  UPC-А має 12 цифр ( 12-а – контрольна ), тобто на одну цифру менше ніж у EAN-13. Це викликано тим, що код країни ( США і Канада ) має тільки дві цифри. Відмінними ознаками коду  UPC-А  від коду EAN-13  є:

– старша цифра ( u11 ) товарного номера у штриховому зображенні кодується явно;

– штрихове зображення кодового слова у коді UPC-А  містить знак СТАРТ ( Н1 ), 6 знаків набору А, розділовий знак ( Н4 ), 5 знаків набору С, знак контрольної суми набору С  і  знак СТОП ( Н1 ) ( див. табл.6.1 );

– у штриховому зображенні знаки цифр u11   і   uК  виконуються висотою, однаковою з висотою зображення знаків Н1 і Н4, причому значення цифр під цими знаками не позначають;

– зліва від штрихового зображення друкують цифру  0, що іденти-фікує код UPC-А.

Контрольна цифра визначається за тим же алгоритмом, що використовується  і  у  коді EAN-13.

Товарний номер у коді UPC-Е  містить 6 цифр і також поділяється на дві частини по 3 цифри у кожній. Перша частина ( ліва ) кодується набором А, а друга ( права ) – набором С ( у тому числі і контрольний знак ) ( див. табл.6.1 ).

При декодуванні ШК EAN  та  UPC  перш за все визначається контрольний знак, який повинен співпадати  з  переданим. Крім того, сума всіх цифр кодового слова, що подається на приймальний пристрій, повинна бути кратною 10. У цьому разі помилки нема. Якщо ж  сума буде не кратною 10,  це вказує на наявність помилки. Помилка виявля-ється і при неправильному прийомі знаків, що не відповідають наборам, встановленим неявним кодуванням по старшому знаку  в ШК EAN-13  цифр лівої половини кодового слова, тому що набори А  і  В ( див. табл.6.1 ) не збігаються.

 

Задача 1.

 Побудувати кодове слово у коді EAN-13, якщо країна товаровиробник – Україна,  код товаровиробника –1229, код товару – 03458.

Розв’язання.  12 цифр кодового слова, яке треба закодувати кодом  EAN-13, мають вигляд: 482122903458 ( код країни –  482 ). Необхідно доповнити це кодове слово контрольною цифрою uK, яку визначаємо згідно з алгоритмом для коду  EAN:

а) визначаємо суму цифр, які розміщені на непарних місцях кодового слова  ( справа наліво ):  8 + 4 + 0 + 2 + 1 + 8 = 23;

б) помножимо одержану суму на 3:  23 ´ 3 = 69;

в) визначаємо суму цифр, які розташовані на непарних місцях кодового слова:  5 + 3 + 9 + 2 + 2 + 4 = 25;

г) визначаємо суму двох результатів за  п. п. б  та  в:

 69 + 25 = 84;

д) визначаємо контрольну цифру як різницю між числом кратним 10, що є найближчим більшим за одержаний результат у п. г, і числом  одержаним у п. г: 90 – 84 = 6,  тобто  u= 6.

У коді EAN-13 штрихове зображення має дві частини, по 6 знаків у кожній, які розділені знаком Н4, і має зліва і справа обмежувальні знаки Н1 ( СТАРТ і СТОП ). За першою зліва цифрою визначаємо набори кодових комбінацій, якими кодуються цифри першої частини кодового слова ( табл.6.3 ).  У зв’язку з тим, що  u12 = 4, згідно  табл. 6.3  маємо: u11, u9  та  u8 – кодуються набором А, а  u10, u7  та  u6 – набором В. Цифри u5, . . . , u1, а також контрольна цифра uК, кодуються відповідними знаками набору С ( табл.6.1 ). Таким чином, кодове слово EAN-13  у двійковому еквіваленті має такий вигляд:

101  0110111  0011011  0011001  0010011  0011011  0010111  01010

Н1         8              2              1              2              2               9          Н4 

      1110010  1000010  1011100  1001110  1001000  1010000  101

             0              3              4              5              8               6         Н1.

Задача 2.

Зчитувальним пристроєм фіксується кодове слово у коді EAN-13: 4821223034586, у якому міститься помилка. Показати процес виявлення помилки.

Розв’язання.  Для виявлення помилки у кодовому слові коду EAN-13 виконуємо перевірку на відповідність контрольної цифри ( uК = 6 ) цифрам кодового слова, що надійшло до декодера  зчитувального пристрою. Для цього знаходимо контрольну цифру uK* для прийнятого кодового слова   482122303458  ( без uK  ) згідно з алгоритмом для коду  EAN-13  та порівнюємо  її  з   uK :

8 + 4 + 0 + 2 + 1 + 8 = 23;

23 ´ 3 = 69;

5 + 3 + 3 + 2 + 2 + 4 = 19;

69 + 19 = 88;

90 – 88 = 2     uK*  =  2,   uK uK.

Таким чином, контрольні цифри у прийнятому кодовому слові і обчислені декодером не збігаються. Це вказує на наявність помилки у прийнятому кодовому слові.