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

Code 39 mod 43

Code 39 mod 43 — это разновидность штрихового кода Code 39 (также известного как «3 из 9»), дополненная контрольным символом (check digit), вычисляемым по модулю 43. Code 39 является линейным (одномерным) дискретным штрихкодом с переменной длиной, способным кодировать цифры, буквы латинского алфавита и несколько специальных символов. Версия с модулем 43 обеспечивает повышенную надёжность считывания за счёт автоматической проверки целостности данных, что критически важно в промышленности, логистике и оборонной сфере, где цена ошибки высока.

История

Code 39 был разработан в 1974 году компанией Intermec (США) для цепей автоматической идентификации. Он быстро стал индустриальным стандартом благодаря простоте печати и возможности кодирования буквенно-цифровых данных без использования сложного оборудования. В середине 1970-х годов в некоторых отраслях, особенно в аэрокосмической и автомобильной промышленности, стали применять контрольную сумму для минимизации ошибок. Стандарт ISO/IEC 16388 (2007 год) описывает Code 39, включая опциональное использование контрольного символа mod 43. В России Code 39 (в том числе с mod 43) применяется в системах воинского учёта, на складах предприятий ОПК и в логистике ряда государственных учреждений.

Структура и кодирование

Code 39 кодирует 43 символа: 10 цифр (0–9), 26 прописных букв (A–Z), знак минус (-), точка (.), пробел, знак доллара ($), косая черта (/), плюс (+) и процент (%). Каждый символ представляется девятью элементами (пятью штрихами и четырьмя пробелами), из которых три элемента являются широкими (двоичная единица) и шесть — узкими (двоичный ноль). Ширина широкого элемента кратна узкому, обычно в 2–3 раза.

Формат строки:

Вычисление контрольного символа mod 43

Контрольный символ вычисляется по алгоритму на основе суммирования числовых эквивалентов всех символов в строке данных (кроме стартового и стопового), затем взятия остатка деления на 43, и сопоставления полученного числа с таблицей символов Code 39.

Порядок шагов:

  1. Каждому символу из кодируемых 43 присваивается числовое значение от 0 до 42 (например, ‘0’ = 0, ‘1’ = 1, …, ‘9’ = 9, ‘A’ = 10, ‘B’ = 11, …, ‘Z’ = 35, ‘-’ = 36, ‘.’ = 37, пробел = 38, ‘$’ = 39, ‘/’ = 40, ‘+’ = 41, ‘%’ = 42).
  2. Суммируются числовые значения всех символов данных (включая буквы, цифры и специальные знаки).
  3. Вычисляется остаток от деления суммы на 43.
  4. Остаток (0–42) преобразуется обратно в символ по той же таблице. Этот символ добавляется в конец строки перед стоповым символом.

Пример: для строки «TEST» числовые значения: T=29, E=14, S=28, T=29. Сумма = 29+14+28+29=100. 100 mod 43 = 14. 14 соответствует символу ‘E’. Таким образом, полная закодированная строка будет «TESTE».

Особенности и преимущества

  • Повышенная надёжность: ошибка при считывании одного символа из-за неверной суммы будет обнаружена, что снижает вероятность неправильного распознавания.
  • Совместимость: оборудование, поддерживающее Code 39 без контрольного символа, обычно игнорирует дополнительный символ, поэтому метки с mod 43 читаются и старыми сканерами (хотя проверка суммы не производится).
  • Стандартизация: алгоритм описан в ISO/IEC 16388, что гарантирует единообразное вычисление разными производителями.
  • Простота реализации: расчёт суммы выполняется очень быстро, не требуя сложных процессоров.

Применение

Code 39 mod 43 используется там, где критически важна точность идентификации:

  • Оборонная промышленность: нанесение на боеприпасы, вооружение и военную технику для автоматизации учёта и контроля жизненного цикла (по стандартам системы НАТО, распространённым также в вооружённых силах России).
  • Автомобилестроение: маркировка деталей и узлов для отслеживания партий поставок (например, на конвейерах ГАЗ, АвтоВАЗа, КамАЗа).
  • Медицина: подписи на флаконах с лекарственными средствами и медицинских изделиях (требования Росздравнадзора для некоторых групп товаров).
  • Логистика и складской учёт: наклейки на товары, паллеты и транспортные единицы (особенно на автоматизированных складах, где считывание происходит при скорости движения конвейера).
  • Оборудование для печати штрихкодов: принтеры этикеток (Zebra, Honeywell, TSC) поддерживают расчёт mod 43 как опцию драйвера или через команды ZPL.

Ограничения

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

Отличие от других версий Code 39

  • Code 39 (базовый): без контрольного символа.
  • Code 39 Full ASCII: расширенная версия, кодирующая полный набор ASCII (00–127) с использованием пар комбинаций. В ней также может присутствовать mod 43, хотя реже.
  • Code 39 mod 10: альтернативный метод вычисления, где контрольный символ считается по модулю 10 для повышения точности, но он почти не распространён и не стандартизирован международно.

Пример считывания

На практике штрихкод Code 39 mod 43 на этикетке обычно выглядит как последовательность штрихов, которые сканер интерпретирует в строку, содержащую звёздочку, данные, контрольный символ и снова звёздочку. Пример:

  • Original DATA: «ABC123»
  • Сумма: 10+11+12+1+2+3 = 39. 39 mod 43 = 39. Символ 39 — это ‘$’.
  • Полный код: «ABC123$»

Сканер после считывания вычисляет сумму по данным (без контрольного символа) и сравнивает её с полученной. Если совпадают — данные корректны.

Источники

  • ISO/IEC 16388:2007 «Information technology — Automatic identification and data capture techniques — Code 39 bar code symbology specification».
  • Справочник «Штриховые коды в промышленности: от ГОСТ до международных стандартов» (М., 2019).
  • Техническая документация принтеров Zebra (серия ZPL Programming Guide, раздел Code 39).
  • Патент US 3 723 794 A, 1973 (первое описание Code 39).
  • Учебное пособие «Системы автоматизированной идентификации» (М.: МГТУ им. Баумана, 2020).
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru