![]() Plessey Code Specification Page |
|
|
|
Plessey
Code was developed by the Plessey Company in England with formal specifications
first dated March 1971. Plessey Code has been extensively used in libraries.
A variation of Plessey Code and the associated scanning equipment was provided
by Plessey to the ADS Company and this variation is known as Anker Code. Anker
Code was used in European point of sale systems prior to the advent of EAN.
The basic encoding principle in Plessey Code was used by MSE Data Corporation
to construct its MSI barcode, sometimes known as modified Plessey Code. The
primary application for MSI Code is marking of retail shelves and subsequent
scanning with portable devices to accomplish inventory re-ordering. More
information about MSI code is available here.
0 0000 1 1000 2 0100 3 1100 4 0010 5 1010 6 0110 7 1110 8 0001 9 1001Alphabetic or other symbols may be assigned to the remaining 6 possible four bit combinations, e.g.
A 0101 B 1101 C 0011 D 1011 E 0111 F 1111
In the case of labels which are read from either left to right or right to left, the check code is followed by a single thick bar.
a/b < 1 Subject to 'b' < 0.009 ins. or 0.229 mm c/d > 0.33 Subject to 'c' > 0.005 ins. or 0.127 mmTable 1 defines the dimensions of bars and spaces in terms of millimeters for different code densities.
| Binary '1' | Binary '0' | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| bits/inch | Nom. Pitch 'p' | Width of "1" | Min. | Nom. | Max. | Width of "0" | Min. | Nom. | Max. |
| 40 | 0.635 | Bar 'a' | 0.305 | 0.343 | 0.381 | Bar 'c' | 0.114 | 0.127 | 0.152 |
| Space 'b' | 0.254 | 0.292 | 0.305 | Space 'd' | 0.471 | 0.508 | 0.533 | ||
| 32 | 0.787 | Bar 'a' | 0.394 | 0.432 | 0.470 | Bar 'c' | 0.127 | 0.152 | 0.173 |
| Space 'b' | 0.318 | 0.356 | 0.394 | Space 'd' | 0.584 | 0.635 | 0.685 | ||
| 25 (Standard) |
1.02 | Bar 'a' | 0.533 | 0.584 | 0.635 | Bar 'c' | 0.127 | 0.178 | 0.229 |
| Space 'b' | 0.381 | 0.432 | 0.483 | Space 'd' | 0.787 | 0.838 | 0.889 | ||
Voids (i.e. white spots in black areas) should be less than 0.051 mm across in any direction. In addition, any such spot should be farther than 0.051 mm (0.002 ins) from the nominal edge of an adjacent bar and not less than 0.203 mm (0.008 ins) from the next void.
Measurements refer to diffuse reflectance in the near-infra-red spectrum between 850 and 1025 nm (nanometers).
The primary white standard will be "Bristol Board". The reflectance of this is taken as 100%. Absence of reflected light in the band is taken as 0%.
Techniques to overcome these problems range from simple parity and check digit techniques, to the very sophisticated error detection and correction codes. All these techniques have one factor in common - they introduce redundant information into the message, and the error detection "power" of the technique bears a relation to the amount of redundant information introduced.
The Plessey Company have adopted a cyclic (or polynomial) check code technique which is applied to the reading of barcode labels and transmission of data. This technique is adjudged to be a fair compromise between the extra redundancy - 8 bits per message - and the error detecting power- roughly one undetected error per hundred million 6 digit transactions.
Between system modules, messages are transmitted as a string of 4 bit characters, starting with the most significant character. Within each character, the least significant bit comes first.
E.G. 1049 is 1000 0000 0010 1001 767 is 1110 0110 1110The cyclic check code is attached at the end of the message, and is recomputed and checked at each transfer.
d (x) = x^19 + x^12 + x^4
and the logical remainder can be found logically adding the remainders of each individual term.
i.e. r (x) = r19 (x) + r12 (x) + f4 (x)
Thus all that is necessary to calculate the logical remainders for each co-efficient for the particular polynomial being used, and as successive bits come in, they logically add in the remainder or not (depending on whether it is a non-zero co-efficient). The properties of logical addition are 1 + 1 = 0 + 0 = 0
1 + 0 = 0 + 1 = 1 which is the same as an exclusive or function.
The algorithm becomes :
Steps 1 Set r = 0, counter - 20 2 Input next data bit 3 If data = 0, go to step 6 4 Fetch r from table 5 Exclusive or r with R. Store in r 6 Decrease n by i. If not zero go to Step 2 7 Remainder in rThe test example would require :
r19 dec 134 10000110 r12 dec 186 10111010 exor 00111100 R4 dec 49 00110001 exor 00001101 = x^3 + x^2 + 1 as previously
x^n.d(x) q(x) + r(x) ______ = ___ g(x) g(x)
Thus is g(x) = x^8 + x^7 + x^6 + x^5 + x^3 + 1
then n = 8
For encoding a number 18080
The binary equivalent = 10000001000000010000
d(x) = x^19 +x^12 + x^4
x^8.d(x) = x^27 + x^20 + x^12
______ ________________________
g(x) x^8 + x^7 + x^6 + x^5 + x^3 + 1
= x^19 + x^18 + x^15 + x^11 + x^10 + x^6 + x^2 + 1 + x^3 + x^2 + 1
_________________________
x^8 + x^7 + x^6 + x^5 + x^3 + 1
f(x) = x^3 + x^2 + 1 = 00001101
Hence the complete code as one would find on a label is :
1 d(x) 1 r(x) 1
1000000100000001000000001101
The Plessey Code never had a formal code specification, and documentation has been out of print for many years. Mr. Paul Bergé was kind enough to supply the above information to BarCode1.
Barcode Mill from Altek Instruments allows you to issue unique, identifiable documents from your own web site, dynamically and in real time! This service can produce Plessey bar codes and other codes.