Генератор MSI

MSI (также известный как MSI Plessey) — это линейный штрихкод, который разработали для маркировки стеллажей и полок на складах. Он до сих пор встречается в старых WMS-системах. Разбираем его устройство и генерацию.

Автору приходилось разбирать складской софт на одном старом заводе. Там использовались терминаторы сбора данных (ТСД) образца 1995 года, и они умели читать только два формата: Code 39 и MSI. Пришлось срочно осваивать MSI, чтобы не менять оборудование.

MSI не так широко известен, как EAN или Code 128, но в нише складского учёта он долгое время был королём. Рассказываем, как с ним обращаться.

Устройство и структура MSI

MSI — это непрерывный, импульсный штрихкод с фиксированной длиной (обычно 4–14 цифр). Он состоит из последовательности чёрных и белых полос одинаковой толщины. Кодирование происходит за счёт того, что каждый цифровой символ представляется четырьмя полосами (две чёрные и две белые) в определённой комбинации.

Основные характеристики:

  • Набор символов: только цифры 0–9.
  • Контрольные суммы: может использовать одну или две контрольные цифры. Существует несколько алгоритмов: «модуль 10» (обычный), «модуль 11» и двойной модуль.
  • Плотность: довольно низкая, код получается длинным по сравнению с Code 128.
  • Стартовый и стоповый символы — «защитные» полосы по краям.

Особенности генерации MSI

Создать MSI программно несложно, но есть важные нюансы:

  • Выбор алгоритма контрольной суммы. Это самый критичный момент. Если сканер ожидает одну контрольную цифру по модулю 10, а генератор посчитает по модулю 11 — код не прочитается. Лучший инструмент должен позволять выбирать из нескольких вариантов.
  • Расчёт контрольной суммы: для модуля 10 используется алгоритм Лукна (Luhn) или упрощённый вариант с весами 2,1,2,1... Для модуля 11 — веса от 2 до 7.
  • Размер тихой зоны: из-за низкой плотности MSI требует не менее 10 мм пустого поля слева и справа.

Где сегодня используется MSI

Активное применение MSI пришлось на 1980–1990-е годы. Сегодня он встречается в таких местах:

  • Старые складские и инвентаризационные системы в производстве и розничной торговле.
  • Учёт библиотечного фонда в некоторых европейских библиотеках.
  • Маркировка медицинских образцов и пробирок в лабораториях, где оборудование не обновляли.
  • Стеллажные этикетки на крупных складах автозапчастей.

В новых проектах MSI практически не выбирают из-за низкой плотности и ограниченного набора символов. Но поддержка его важна для совместимости с legacy-системами.

Типичные ошибки

При генерации и печати MSI чаще всего ошибаются в следующем:

  • Неправильная контрольная сумма. Проверьте документацию ваших сканеров — они используют один из четырёх вариантов (mod 10 с разными весами или mod 11).
  • Слишком маленький код. MSI имеет широкие полосы. Печатайте его не уже 2,5 см.
  • Отсутствие чётких границ кода. Из-за низкой плотности сканеру труднее найти начало/конец. Сделайте тихую зону побольше.

Заключение

Коротко по делу:

  • MSI — старый цифровой штрихкод, используемый в основном в складских legacy-системах.
  • Главная сложность при генерации — выбор и расчёт контрольной суммы (mod 10 или mod 11, одна или две цифры).
  • Низкая плотность и цифровой набор символов сделали его непопулярным в новых проектах, но знание MSI может выручить при работе с древним оборудованием.

Вопрос к ветеранам складского учёта: доводилось ли вам ещё встречать MSI на стеллажах? Как часто он отказывал и почему вы до сих пор его не заменили? Поделитесь историями.