Share to: share facebook share twitter share wa share telegram print page

 

MSI Barcode

MSI barcode for the number 1234567 with Mod 10 check digit

MSI (also known as Modified Plessey) is a barcode symbology developed by the MSI Data Corporation, based on the original Plessey Code symbology. It is a continuous symbology that is not self-checking. MSI is used primarily for inventory control, marking storage containers and shelves in warehouse environments.

Character set and binary lookup

The MSI bar code represents only digits 0–9; it does not support letters or symbols.

Each digit is converted to 4 binary-coded decimal bits. Then a 1 bit is prepended and two 0 bits are appended.

Finally, each bit is printed as a bar/space pair totalling three modules wide. A 0 bit is represented as 1/3 bar followed by 2/3 space, while a 1 bit is represented as 2/3 bar followed by 1/3 space.

Binary mapping

Each digit and guard character is represented by a binary number, as shown in the table below.

Character Binary Bars Map
Start 1 110
0 0000 ▍▍▍▍ 100100100100
1 0001 ▍▍▍▋ 100100100110
2 0010 ▍▍▋▍ 100100110100
3 0011 ▍▍▋▋ 100100110110
4 0100 ▍▋▍▍ 100110100100
5 0101 ▍▋▍▋ 100110100110
6 0110 ▍▋▋▍ 100110110100
7 0111 ▍▋▋▋ 100110110110
8 1000 ▋▍▍▍ 110100100100
9 1001 ▋▍▍▋ 110100100110
Stop 00 ▍▍ 1001

To produce a barcode image from this map, one simply must consider the digit 1 to be a black bar and the digit 0 to be a white bar and produce an image accordingly.

Check digit calculation

The MSI barcode uses one of five possible schemes for calculating a check digit:

  • No check digit (least common)
  • Mod 10 (most common)
  • Mod 11
  • Mod 1010
  • Mod 1110

Mod 10 Check Digit

When using the Mod 10 check digit algorithm, a string to be encoded 1234567 will be printed with a check digit of 4:

 12345674

The Mod 10 check digit algorithm [1] uses the Luhn algorithm.

Mod 11 Check Digit

1. Reverse the string to be encoded (in this case 1234567).

 Let S be the reverse of the string to be encoded
 S = 7654321

2. The string is then "weighted" using a repeating weighting factor pattern. There are two modulo 11 algorithms which use different repeated weighting factor patterns: the IBM algorithm which uses (2,3,4,5,6,7), and the NCR algorithm which uses (2,3,4,5,6,7,8,9). Get the sum of the string by looping through each character and multiply it by a weight from 2 to 7 (IBM) or 2 to 9 (NCR) depending on its position. If the weight's value exceeds the highest number (7 or 9), reset the weight back to 2.

 This example is using the IBM modulo 11 algorithm with a weighting pattern of (2,3,4,5,6,7)
 Let X = the final product of the string to encode.
 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. Mod the sum by 11, subtract the result from 11, and then apply the mod 11 function again.

 Let C equal the check digit.
 C = (11 - (X mod 11)) mod 11
 C = (11 - (106 mod 11)) mod 11
 C = (11 - 7) mod 11
 C = 4 mod 11
 C = 4

The check digit is 4.

Mod 1010 check digit

Simply calculate the Mod 10 check digit the first time and then calculate it again with the previous result and append the result of the second Mod 10 Calculation to the string to be encoded.

Mod 1110 check digit

Same as Mod 1010 but the first calculation should be a Mod 11 Check digit.

Example

As an example, we will generate an MSI barcode for the number sequence 1234567 using the most common Mod 10 check digit methodology.

The check digit (as calculated above) for this sequence is 4.

Once you have calculated your check digit, simply map each character in the string to be encoded using the table above as a reference to get the binary map of the bar code; remember to precede the code with "start" and to end it with "stop" For example, to map the string 1234567 with a Mod 10 check digit it would produce the following binary map:

Character Map Comment
Start 110 The start character
1 100100100110 The number 1
2 100100110100 The number 2
3 100100110110 The number 3
4 100110100100 The number 4
5 100110100110 The number 5
6 100110110100 The number 6
7 100110110110 The number 7
4 100110100100 The check digit 4
Stop 1001

This results in the following barcode:

References

Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9