Kod kreskowy MSI - MSI Barcode
MSI (znany również jako Modified Plessey ) to symbolika kodu kreskowego opracowana przez MSI Data Corporation, oparta na oryginalnej symbolice Plessey Code . Jest to ciągła symbolika, która nie sprawdza się samoczynnie. MSI jest używany głównie do kontroli zapasów, oznaczania pojemników magazynowych i półek w środowiskach magazynowych.
Zestaw znaków i wyszukiwanie binarne
Kod kreskowy MSI zawiera tylko cyfry 0–9; nie obsługuje liter ani symboli.
Każda cyfra jest konwertowana do 4 bitów dziesiętnych zakodowanych binarnie . Następnie 1 bit jest dołączany na początku i dwa bity 0.
Wreszcie, każdy bit jest drukowany jako para kresek / spacji o łącznej szerokości trzech modułów. Bit 0 jest reprezentowany jako 1/3 słupka, po którym następuje 2/3 spacja, podczas gdy 1 bit jest reprezentowany jako 2/3 słupka i 1/3 spacja.
Mapowanie binarne
Każda cyfra i znak ochronny jest reprezentowana przez liczbę binarną, jak pokazano w poniższej tabeli.
| Postać | Dwójkowy | Słupy | Mapa |
|---|---|---|---|
| Początek | 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 |
| Zatrzymać | 00 | ▍▍ | 1001 |
Aby utworzyć obraz kodu kreskowego z tej mapy, wystarczy wziąć pod uwagę cyfrę 1 jako czarny pasek, a cyfrę 0 za biały pasek i odpowiednio utworzyć obraz.
Sprawdź obliczenie cyfry
Kod kreskowy MSI wykorzystuje jeden z pięciu możliwych schematów obliczania cyfry kontrolnej :
- Brak cyfry kontrolnej (najrzadziej)
- Mod 10 (najczęściej)
- Mod 11
- Mod 1010
- Mod 1110
Cyfra kontrolna Mod 10
Podczas korzystania z algorytmu cyfry kontrolnej Mod 10, ciąg do zakodowania 1234567 zostanie wydrukowany z cyfrą kontrolną 4:
12345674
Algorytm cyfry kontrolnej Mod 10 wykorzystuje algorytm Luhna .
Cyfra kontrolna mod 11
1. Odwróć ciąg do zakodowania (w tym przypadku 1234567).
Let S be the reverse of the string to be encoded S = 7654321
2. Ciąg jest następnie „ważony” przy użyciu powtarzającego się wzorca współczynnika ważenia. Istnieją dwa algorytmy modulo 11, które wykorzystują różne powtarzane wzorce współczynników ważenia: algorytm IBM , który wykorzystuje (2,3,4,5,6,7) i algorytm NCR , który wykorzystuje (2,3,4,5,6, 7,8,9). Uzyskaj sumę ciągu, przechodząc przez każdy znak w pętli i pomnóż ją przez wagę od 2 do 7 (IBM) lub od 2 do 9 (NCR) w zależności od jego pozycji. Jeśli wartość ciężaru przekracza najwyższą liczbę (7 lub 9), zresetuj wagę z powrotem do 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. Zmodyfikuj sumę o 11, odejmij wynik od 11, a następnie ponownie zastosuj funkcję mod 11.
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
Cyfra kontrolna to 4.
Cyfra kontrolna Mod 1010
Po prostu oblicz cyfrę kontrolną Mod 10 za pierwszym razem, a następnie oblicz ją ponownie z poprzednim wynikiem i dołącz wynik drugiego obliczenia Mod 10 do ciągu, który ma być zakodowany.
Cyfra kontrolna Mod 1110
To samo co Mod 1010, ale pierwsze obliczenie powinno być cyfrą kontrolną Mod 11.
Przykład
Na przykład wygenerujemy kod kreskowy MSI dla sekwencji numerów 1234567 przy użyciu najpopularniejszej metodologii cyfr kontrolnych Mod 10.
Cyfra kontrolna (jak obliczono powyżej) dla tej sekwencji to 4.
Po obliczeniu cyfry kontrolnej po prostu zamapuj każdy znak w ciągu do zakodowania, używając powyższej tabeli jako odniesienia, aby uzyskać mapę binarną kodu kreskowego; pamiętaj, aby poprzedzić kod „start” i zakończyć go „stop”. Na przykład, aby zmapować ciąg 1234567 z cyfrą kontrolną Mod 10, dałoby to następującą mapę binarną:
| Postać | Mapa | Komentarz |
|---|---|---|
| Początek | 110 | Znak początkowy |
| 1 | 100100100110 | Numer 1 |
| 2 | 100100110100 | Liczba 2 |
| 3 | 100100110110 | Liczba 3 |
| 4 | 100110100100 | Liczba 4 |
| 5 | 100110100110 | Liczba 5 |
| 6 | 100110110100 | Liczba 6 |
| 7 | 100110110110 | Liczba 7 |
| 4 | 100110100100 | Cyfra kontrolna 4 |
| Zatrzymać | 1001 |
Skutkuje to następującym kodem kreskowym: