Codablock
Codablock (англ. Codablock) — семейство составных штрихкодов, состоящих из нескольких сложенных друг над другом одномерных (1D) штрихкодов (включая разновидности Codablock A, Codablock F и Codablock 256), разработанное в 1989 году в компании Identcode Systeme GmbH (Германия) Генрихом Элманном (Heinrich Oehlmann)[1][2]. Штрихкоды Codablock базируются на сложенных символьных системах Code 39 и Code 128, совмещая некоторые преимущества двумерных (2D) штрихкодов[3][4].
Основная сфера применения Codablock — здравоохранение, в частности стандарты HIBC[5][6]. В настоящее время штрихкоды Codablock вытеснены более современным стандартом Data Matrix[7].
История
Разработка Codablock велась с 1989 по 1995 год. Первая версия, Codablock A, была представлена в 1989 году[8] и стандартизирована как стандарт AIM в 1994 году[9][10]. Codablock A базировался на сложенных штрихкодах Code 39, но не получил широкого распространения из-за ограничений формата Code 39.
Вторая версия — Codablock F[11][12] — была построена на составе Code 128 и принята AIM как стандарт в 1995 году[13]. В настоящее время Codablock F официально считается устаревшим стандартом и не рекомендуется для новых внедрений[14].
Codablock 256[15] был реализован как внутренний стандарт ICS Identcode-Systeme и не прошёл международной стандартизации. Он также построен на базе сложенного Code 128 и позволяет кодировать все 256 знаков набора ISO 8859-1 с помощью символа FNC4; в каждой строке предусмотрена коррекция ошибок. Из-за проблем с распознаванием на сканерах Code 128 в дальнейшем необходимость в отдельном Codablock 256 отпала — восьмибитная кодировка была добавлена в Codablock F, а 256 практически не использовался.
Codablock сыграл важную роль в развитии двумерных штрихкодов: надёжность кодирования позволяла считывать их даже с минимальными доработками лазерных сканеров того времени.
Технические особенности
Символьные системы Codablock[16][17] разрабатывались как составная версия кодировок Code 39 и Code 128, обладающая преимуществами 2D-кодов. Такое «составление» позволяет значительно эффективнее использовать прямоугольную область поверхности по сравнению с классическими одномерными штрихкодами, а дополнительные проверочные символы обеспечивают целостность данных в сообщении.
Codablock можно сравнить с переносом строки в текстовом редакторе: при заполнении одной строки информация продолжается в следующей, где указывается номер строки, а в финальном блоке — общее число строк. Первая строка содержит счетчик строк; каждая строка также содержит идентификатор ориентации для ридеров и дополнительные контрольные суммы в конце блока.
Codablock A[18][19] основан на Code 39, поддерживает от 2 до 22 строк, по 1–61 символу в каждой, максимум до 1340 символов. Контрольная сумма для коррекции рассчитывается по модулю 43 по всему блоку.
Codablock F реализован[20] на основе Code 128[21], может содержать от 2 до 44 строк по 4–62 символа, поддерживает кодирование до 2725 символов[22]. Codablock F допускает полное кодирование 8-битного набора ISO 8859-1 и обязателен стартовый символ Start A (Code 128).
Codablock 256 использует ту же структуру, что и Codablock F, но отличается тем, что каждая строка имеет собственный стартовый символ. Codablock 256, как и Codablock F, может кодировать до 2725 символов. Каждая строка содержит собственную коррекцию ошибок, что позволяет восстанавливать данные при незначительных повреждениях. Этот формат остался внутренней разработкой Identcode Systeme GmbH и не стандартизирован.
Структура Codablock F
Codablock F состоит из массивов строк Code 128 и обладает следующими характеристиками:
- от 2 до 44 строк;
- в каждой строке — от 4 до 62 символов данных;
- максимальная вместимость — до 2725 символов;
- эффективное использование прямоугольного пространства по сравнению с обычными 1D-кодами;
- возможность использовать оборудование для чтения Code 128 с минимальными доработками;
- при печати выглядит как последовательность стандартных строк Code 128;
- защищён двумя контрольными суммами mod-86 сверх контрольных сумм по каждой строке;
- поддержка полного набора символов ASCII и 8-битных кодов ISO 8859-1 (через символ FNC4);
- числовое сжатие: позволяет уплотнить блоки из минимум 4-х цифр, используя только половину пространства;
- дополнительно защищён блочной контрольной суммой по модулю 103.
Codablock F формируется[23] из строк данных Code 128 между стартовым символом Start A (Code 128) и стоп-символом Code 128. Вторая позиция каждой строки содержит её номер (или в первой строке — общее количество строк). Последняя строка содержит две дополнительные контрольные суммы.
| Старт | Данные (Code 128) | Стоп | |||||
|---|---|---|---|---|---|---|---|
| Режим/Данные | № строки | Данные строки (Code 128) | Контрольная сумма строки | ||||
| Start A (Code 128) | MD1 | Счётчик строк | Данные 1-й строки | CS1 | Stop (Code 128) | ||
| MDX | RX | Данные X-й строки | CSX | ||||
| MDN | RN | Данные N-й строки | CBS1 | CBS2 | CSN | ||
MDX — селектор режима кодирования или символ данных, если возможно кодирование в режиме Code A.
Счётчик строк — общее количество строк, задаётся в первой строке.
RX — номер строки.
Данные X-й строки — данные, закодированные в строке Code 128.
CSX — контрольная сумма для Code 128.
CBS1, CBS2 — два блочных контрольных символа Codablock F.
Примечания
Литература
- Bhasker, Raj, Raj. Bar Codes. — Tata McGraw-Hill Education, 2001. — P. 99. — ISBN 0074638491.
- Michael Hompel, Thorsten Schmidt. Warehouse Management: Automation and Organisation of Warehouse and Order Picking Systems. — Springer Science & Business Media, 2006. — P. 211. — ISBN 3540352201.
- Benjamin Nelson. Punched Cards to Bar Codes: A 200 Year Journey. — Helmers Publishing Company, 1997. — P. 206. — ISBN 0911261125.
- EDN, V.35, N25. — Rogers Publishing Company, 1990. — P. 110.
- 33rd International Conference Proceedings, October 8-12, 1990, New Orleans, Louisiana. — American Production and Inventory Control Society, 1990. — P. 573. — ISBN 1558220275.
- The Bar Code Book: Reading, Printing, and Specification of Bar Code Symbols. — Roger C. Palmer, 1991. — P. 59. — ISBN 9780911261059.


