Bar Code 1®
A Web Of Information About Bar Code
Plessey Bar Code Specification Page

[BarCode 1 Sponsor]
This Visit Brought To You By
[BarCode 1 Sponsor]

Plessey code pictureAll About Plessey Barcode

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.

Basic Code Rule Features This code is also called PLESSEY Code and equally used by Anker (ADS) and MSI. Anker code has inverted CRC and MSI different start and stop configurations. ADS and MSI code are used in retail applications and Plessey code in retail, libraries, production and stock control.

Start Code

This will be 1101 in all cases.

Data Block

Each decimal digit will be represented by a Binary coded decimal number (BCD) of 4 bits according to the table below :

0 0000
1 1000
2 0100
3 1100
4 0010
5 1010
6 0110
7 1110
8 0001
9 1001

Alphabetic 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

Check Code

This will be an 8 bit code block and may be identified by two 4 bit numbers using the same representation as the data.

Termination Block

The check code will be followed by two binary 'l's in the case of labels which are read from left to right.

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.

Reverse Start Code

In the case of bi-directionally read labels, the termination bar is followed by a 4 bit reverse start code pattern such that 1101 is generated if the block is scanned from right to left.


A white margin at least 4 bits wide must be provided at both left and right hand ends of the barcode.

Bit Definition and Dimensions

Each data bit of the label is made up of a black bar followed by a white space each of defined widths. The sum of these two widths equals the nominal pitch. The tolerances shown in the following tables are governed by the following conditions :

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 mm

Table 1 defines the dimensions of bars and spaces in terms of millimeters for different code densities.

Table 1: Bit Definition and Dimensions (in mm)
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
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

Spots and Voids

Black spots in white areas should be less than 0.038 mm {0.0015 ins) 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 spot.

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.

Reflectance Measurements

The operation is dependent upon the difference in reflected light from black and white areas in the code pattern. The following parameters are required to quantify reflectance properties.

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%.

Bar Reflectance

The reflectance of the black print areas should be less than 10% of the average reflectance in the white areas.

PLESSEY CODE Cyclic Check Code (CRC)

For all data capture systems, it is necessary to minimize the number of incorrect entries, especially when data is being collected in a noisy environment by unsophisticated operators. In addition, if this data is to be transmitted, it is essential to detect any error that may occur.

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. Example:

1049 is 1000 0000 0010 1001
767 is 1110 0110 1110

The cyclic check code is attached at the end of the message, and is recomputed and checked at each transfer.

Computer Generation of Check Code

The "logical division" principle of check code generation is an awkward algebraic manipulation to perform on a computer. A far simpler technique is to use a table look-up for each polynomial co-efficient Consider the previous example, 10000, The equivalent polynomial is

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:

Step 1 Set r = 0, counter - 20
Step 2 Input next data bit
Step 3 If data = 0, go to step 6
Step 4 Fetch r from table
Step 5 Exclusive or r with R. Store in r
Step 6 Decrease n by i. If not zero go to Step 2
Step 7 Remainder in r

The 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

Principle of Cyclic Check Generation

If the data is represented by a polynomial d(x) and the cyclic check polynomial (generally known as the generating polynomial) by g(x), then the cyclic check code r(x) is the remainder after logical division of x^n.d(x) by g(x), where n = the highest order of g(x).

(x^n.d(x))/g(x) = (q(x) + r(x))/g(x)


If g(x) = x^8 + x^7 + x^6 + x^5 + x^3 + 1 then n = 8

For encoding a number 18080, the binary equivalent is 10000001000000010000

d(x) = x^19 +x^12 + x^4

(x^8.d(x))/g(x) = (x^27 + x^20 + x^12)/(x^8 + x^7 + x^6 + x^5 + x^3 + 1)


(x^8.d(x))/g(x) = (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 or 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.

BarCode 1 is a registered trademark of Adams Communications.
Send comments and questions by e-mail to Russ Adams