Открыть сервис

Code 128

Code 128 — это высокоплотный линейный (одномерный) штриховой код, предназначенный для кодирования буквенно-цифровых символов, управляющих символов и всех 128 символов стандарта ASCII. Разработан в 1981 году компанией Computer Identics (США) как альтернатива менее ёмким кодам Code 39 и Codabar. Отличается высокой плотностью записи данных на единицу длины и широким набором кодируемых символов, что сделало его одним из самых распространённых стандартов в логистике, торговле и промышленности.

История и разработка

Потребность в более ёмком и гибком штриховом коде возникла в конце 1970-х годов, когда существующие стандарты (Code 39, Codabar) не могли эффективно кодировать большие объёмы информации, включая строчные буквы и управляющие символы. В 1981 году компания Computer Identics, один из пионеров автоматической идентификации, представила Code 128. Разработка основывалась на принципе модульной ширины штрихов и пробелов, что позволяло добиться высокой плотности кодирования. В 1983 году стандарт был принят Американским национальным институтом стандартов (ANSI) как ANSI/AIM BC4-1983, а позже — Международной организацией по стандартизации (ISO) как ISO/IEC 15417:2007.

Структура и принцип кодирования

Code 128 представляет собой код переменной длины, состоящий из последовательности штрихов и пробелов различной ширины. Каждый символ кодируется 11 модулями, которые объединены в 3 штриха и 3 пробела. Ширина каждого элемента кратна одному модулю (самой узкой единице). Код является непрерывным, то есть между символами нет межзнаковых промежутков.

Наборы символов (подмножества)

Code 128 использует три подмножества (режима) — A, B и C, которые переключаются с помощью специальных управляющих символов:

Переключение между режимами осуществляется с помощью управляющих символов CODE A, CODE B, CODE C, а также SHIFT (для временного переключения на один символ). Это позволяет гибко комбинировать разные типы данных в одном коде.

Структура символа

Каждый символ Code 128 состоит из:

Контрольная сумма

Контрольная сумма (checksum) рассчитывается как остаток от деления на 103 взвешенной суммы значений всех символов (стартового и данных). Вес первого символа (стартового) принимается за 1, вес второго — за 2, третьего — за 3 и так далее. Формула:

\[ \text{Checksum} = \left( \sum_{i=1}^{n} (V_i \times i) \right) \bmod 103 \]

где \( V_i \) — значение i-го символа (от 0 до 102), \( n \) — общее количество символов (включая стартовый). Результат кодируется одним символом из набора Code 128.

Кодирование и декодирование

Ширина штрихов и пробелов

Каждый символ кодируется 11 модулями, которые распределены на 3 штриха и 3 пробела. Ширина каждого элемента может быть от 1 до 4 модулей. Сумма ширины всех элементов в символе всегда равна 11 модулям. Например, символ «0» в режиме B кодируется последовательностью ширины: штрих 2, пробел 1, штрих 2, пробел 2, штрих 2, пробел 2 (итого 11).

Декодирование

Сканер считывает последовательность чередующихся чёрных (штрихи) и белых (пробелы) полос, измеряя их ширину. По соотношению ширины элементов определяется значение каждого символа. Стартовый символ указывает на начальный режим, и декодер последовательно обрабатывает символы, переключая режимы при обнаружении управляющих символов. Контрольная сумма проверяется для подтверждения целостности данных.

Применение

Code 128 широко используется в различных отраслях благодаря высокой плотности и гибкости кодирования:

Логистика и транспорт

Торговля и розница

Производство и промышленность

Здравоохранение

Документооборот

Преимущества и недостатки

Преимущества

Недостатки

Интересные факты

Критика и ограничения

Основная критика Code 128 связана с его относительной сложностью по сравнению с более простыми кодами (например, Code 39). Для корректного декодирования требуется более мощное программное обеспечение и оборудование. Кроме того, в условиях низкого качества печати или сильного фонового шума Code 128 может быть менее надёжным, чем двухмерные коды (например, QR-код или Data Matrix). Однако в большинстве промышленных и логистических приложений его преимущества (высокая плотность и гибкость) перевешивают эти недостатки.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →