Штрихкод Code 128
Штрихкод Code 128 — это высокоплотный линейный (одномерный) символический штрихкод, предназначенный для кодирования цифр, букв латинского алфавита, специальных символов и управляющих кодов. Относится к классу дискретных штрихкодов с переменной длиной, поддерживающих кодирование 128 символов ASCII (от 0 до 127), чем и обусловлено его название. Code 128 широко применяется в логистике, розничной торговле, здравоохранении, производстве и системах управления складом благодаря высокой плотности записи данных и возможности кодирования больших объёмов информации на ограниченной площади.
История создания и стандартизация
Штрихкод Code 128 был разработан в 1981 году компанией Computer Identics (США) для удовлетворения растущих потребностей в кодировании более широкого набора символов, чем это позволяли существовавшие на тот момент стандарты (например, Code 39). В 1984 году символика была принята Американским национальным институтом стандартов (ANSI) и Международной организацией по стандартизации (ISO) в качестве стандарта ISO/IEC 15417:2007 (актуальная редакция). В России стандарт ISO/IEC 15417 гармонизирован с национальными стандартами, в частности с ГОСТ Р ИСО/МЭК 15417-2009 «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Code 128».
Структура символа
Символ Code 128 состоит из последовательности штрихов (тёмных полос) и пробелов (светлых промежутков) переменной ширины. Каждый символ кодируется тремя штрихами и тремя пробелами, причём общая ширина одного знака (модуля) составляет 11 модулей (единиц измерения ширины). Ширина самого узкого элемента (штриха или пробела) принимается за один модуль.
Структура полного символа включает следующие обязательные элементы:
- Тихая зона (свободное поле) — минимальная ширина 10 модулей слева и справа от символа для корректного считывания.
- Стартовый символ (Start) — обозначает начало данных и указывает, какой из трёх поднаборов (A, B или C) будет использоваться для кодирования.
- Кодированные данные — последовательность символов, закодированных в соответствии с выбранным поднабором.
- Контрольная сумма (Check Digit) — вычисляется по модулю 103 на основе весовой суммы всех символов (включая стартовый) и служит для обнаружения ошибок считывания.
- Стоповый символ (Stop) — обозначает конец символа, имеет уникальную структуру (4 штриха и 3 пробела, всего 13 модулей).
Поднаборы символов (A, B, C)
Code 128 поддерживает три взаимоисключающих поднабора (кодовых страницы), которые переключаются с помощью специальных управляющих символов (Code A, Code B, Code C) в теле сообщения. Это позволяет оптимизировать длину штрихкода в зависимости от типа данных.
| Поднабор | Кодируемые символы | Особенности |
|---|---|---|
| Code 128A | Цифры (0–9), заглавные буквы (A–Z), управляющие коды (ASCII 00–95), специальные символы (пробел, !, «, #, $, %, &, ‘, (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _) | Оптимален для кодирования заглавных букв и управляющих символов. |
| Code 128B | Цифры (0–9), заглавные и строчные буквы (A–Z, a–z), специальные символы (ASCII 32–127) | Наиболее универсальный поднабор, поддерживает полный набор печатных символов ASCII. |
| Code 128C | Только цифры (0–9) в виде пар (00–99) | Каждый символ кодирует две цифры, что обеспечивает максимальную плотность записи числовых данных (в два раза плотнее, чем в A или B). |
Переключение между поднаборами внутри одного штрихкода позволяет кодировать смешанные данные с минимальной длиной. Например, для строки «ABC123» можно использовать поднабор B для букв, затем переключиться на C для цифр, что сократит общую длину символа.
Контрольная сумма (Check Digit)
Контрольная цифра (Check Digit) вычисляется по алгоритму, определённому в стандарте ISO/IEC 15417. Для расчёта каждому символу (включая стартовый) присваивается числовое значение от 0 до 102 в соответствии с таблицей символов Code 128. Затем вычисляется взвешенная сумма:
- Стартовый символ умножается на 1.
- Каждый последующий символ умножается на свой порядковый номер (начиная с 1 для первого символа данных, затем 2, 3 и т.д.).
Полученная сумма делится на 103. Остаток от деления (от 0 до 102) соответствует контрольному символу, который добавляется перед стоповым символом. Контрольная сумма позволяет сканеру выявить ошибки считывания (например, пропуск или дублирование штриха) и запросить повторное сканирование.
Применение и распространение
Code 128 является одним из самых популярных одномерных штрихкодов в мире благодаря своей гибкости и высокой плотности. Основные области применения:
- Логистика и транспорт — используется на транспортных этикетках (например, стандарт GS1-128, ранее известный как UCC/EAN-128) для кодирования информации о грузе: номер отправления, вес, дата, адрес получателя. GS1-128 является подмножеством Code 128, в котором данные структурированы по идентификаторам применения (AI) GS1.
- Розничная торговля — применяется для маркировки товаров, не подпадающих под стандарт EAN/UPC (например, для товаров с переменным весом, книг, запчастей).
- Здравоохранение — кодирование образцов крови, лекарств, медицинских карт (стандарт HIBC — Health Industry Bar Code).
- Производство и склад — отслеживание деталей, комплектующих, готовой продукции, управление запасами.
- Документооборот — штрихкодирование документов, почтовых отправлений, бандеролей.
Преимущества и недостатки
Преимущества
- Высокая плотность записи: Code 128 позволяет кодировать до 48 символов на дюйм (при ширине самого узкого элемента 0,19 мм), что значительно превосходит Code 39 и Code 93.
- Поддержка полного набора символов ASCII (128 символов), включая управляющие коды.
- Возможность переключения между поднаборами для оптимизации длины.
- Надёжная защита от ошибок благодаря контрольной сумме.
- Широкая поддержка сканерами и принтерами штрихкодов.
Недостатки
- Относительная сложность генерации и декодирования по сравнению с более простыми символиками (например, Code 39).
- Требование точной печати: из-за высокой плотности штрихкод чувствителен к качеству печати и разрешению принтера.
- Необходимость соблюдения тихих зон: нарушение может привести к ошибкам считывания.
Разновидности и родственные стандарты
- GS1-128 (ранее UCC/EAN-128) — стандарт, основанный на Code 128, используемый в глобальной системе GS1 для кодирования идентификаторов применения (AI). Широко применяется в цепочках поставок, логистике и розничной торговле.
- Code 128A, B, C — поднаборы, описанные выше.
- Code 128 с FNC1 — специальный символ FNC1 (Function Code 1) используется для обозначения начала данных в формате GS1-128.
Интересные факты
- Название «Code 128» происходит от количества символов, которые можно закодировать в каждом поднаборе (128 символов ASCII). Однако фактически каждый поднабор кодирует 103 символа данных плюс управляющие коды.
- Символ FNC1 (Function Code 1) не является печатным символом, а служит управляющим кодом для указания, что штрихкод соответствует стандарту GS1-128.
- Code 128 может кодировать до 48 символов на дюйм, что делает его одним из самых плотных одномерных штрихкодов. Для сравнения, Code 39 кодирует около 9 символов на дюйм.
- В системах автоматической идентификации Code 128 часто используется совместно с двумерными штрихкодами (например, QR-код) для дублирования информации.
Источники
- ISO/IEC 15417:2007 «Information technology — Automatic identification and data capture techniques — Code 128 bar code symbology specification»
- ГОСТ Р ИСО/МЭК 15417-2009 «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Code 128»
- GS1 General Specifications (актуальная версия)
- Справочник по штрихкодам: «Bar Code Symbology» — AIM Global (Automatic Identification and Mobility)
- Техническая документация компании Computer Identics (1981)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →