MSIバーコード

Mod 10 チェック ディジット付きの数値 1234567 の MSI バーコード

MSI ( Modified Plesseyとも呼ばれる)は、MSI Data CorporationがオリジナルのPlessey Codeシンボルに基づいて開発したバーコードシンボルです。連続シンボルであり、自己チェック機能はありません。MSIは主に在庫管理、倉庫環境における保管容器や棚のマーキングに使用されます。

文字セットとバイナリ検索

MSI バーコードは 0 ~ 9 の数字のみを表し、文字や記号はサポートしていません。

各桁は4つの2進化10進ビットに変換されます。その後、先頭に1ビット、末尾に2ビットの0が付加されます。

最後に、各ビットは合計3モジュール幅のバー/スペースのペアとして印刷されます。0ビットは1/3バーと2/3スペースで表され、1ビットは2/3バーと1/3スペースで表されます。

バイナリマッピング

各数字とガード文字は、次の表に示すように 2 進数で表されます。

キャラクターバイナリバー地図
始める1110
00000▍▍▍▍100100100100
10001▍▍▍▋100100100110
20010▍▍▋▍100100110100
30011▍▍▋▋100100110110
40100▍▋▍▍100110100100
50101▍▋▍▋100110100110
60110▍▋▋▍100110110100
70111▍▋▋▋100110110110
81000▋▍▍▍110100100100
91001▋▍▍▋110100100110
停止00▍▍1001

このマップからバーコード イメージを作成するには、数字 1 を黒いバー、数字 0 を白いバーと見なし、それに応じてイメージを作成するだけです。

チェックディジットの計算

MSI バーコードでは、チェック ディジットを計算するために 5 つの方式のいずれかを使用します。

  • チェックディジットなし(最も一般的ではない)
  • Mod 10(最も一般的)
  • モッド11
  • モッド1010
  • モッド1110

Mod 10 チェックデジット

Mod 10 チェック ディジット アルゴリズムを使用すると、エンコードされる文字列 1234567 はチェック ディジット 4 で印刷されます。

12345674 

Mod 10チェックディジットアルゴリズム [ 1 ]はLuhnアルゴリズム を使用する。

Mod 11 チェックディジット

1. エンコードする文字列を逆にします (この場合は 1234567)。

Sをエンコードする文字列の逆とする S = 7654321 

2. 次に、文字列は繰り返し重み付け係数パターンを用いて「重み付け」されます。異なる繰り返し重み付け係数パターンを用いるモジュロ11アルゴリズムが2つあります。IBMアルゴリズムは(2,3,4,5,6,7)を使用し、NCRアルゴリズムは(2,3,4,5,6,7,8,9)を使用します。各文字をループ処理して文字列の合計を求め、その文字の位置に応じて2~7(IBM)または2~9(NCR)の重みを掛けます。重みの値が最大値(7または9)を超えた場合は、重みを2に戻します。

この例では、重み付けパターン(2,3,4,5,6,7)のIBMモジュロ11アルゴリズムを使用しています。 X をエンコードする文字列の最終積とします。 X = 7 * 2 X = 6 * 3 X = 5 * 4 X = 4 * 5 X = 3 * 6 X = 2 * 7 X = 1 * 2 
X = 14 + 18 + 20 + 20 + 18 + 14 + 2 X = 106 

3. 合計を 11 で mod し、その結果を 11 から減算して、mod 11 関数を再度適用します。

C をチェック数字と等しくします。 C = (11 - (X mod 11)) mod 11 C = (11 - (106 mod 11)) mod 11 C = (11 - 7) を 11 で割ったもの C = 4 ÷ 11 C = 4 

チェックディジットは4です。

Mod 1010 チェックディジット

最初に Mod 10 チェック ディジットを計算し、次に前回の結果を使用して再度計算し、2 回目の Mod 10 計算の結果をエンコードする文字列に追加するだけです。

Mod 1110 チェックディジット

Mod 1010 と同じですが、最初の計算は Mod 11 チェック ディジットにする必要があります。

例として、最も一般的な Mod 10 チェック ディジット方式を使用して、数字シーケンス 1234567 の MSI バーコードを生成します。

このシーケンスのチェック ディジット (上記で計算したとおり) は 4 です。

チェック デジットを計算したら、上の表を参考にしてエンコードする文字列の各文字をマッピングし、バーコードのバイナリ マップを取得します。コードの前に「start」を付け、最後に「stop」を付けることを忘れないようにしてください。たとえば、文字列 1234567 を Mod 10 チェック デジットでマッピングすると、次のバイナリ マップが生成されます。

キャラクター地図コメント
始める110開始文字
11001001001101番
2100100110100数字の2
3100100110110数字の3
4100110100100数字の4
5100110100110数字の5
61001101101006という数字
71001101101107という数字
4100110100100チェックディジット4
停止1001

結果として次のバーコードが生成されます。

参考文献