Datatech logo

Data Technologies, Inc.





Bar Code Tutorial: 2-D Barcodes

Those who want to know the technical details of the two-dimensional bar codes, can read the next few paragraphs. Others may want to skip down to "What It Means to You".

The new two-dimensional bar codes allow a large amount of data to be contained in one bar code. You might be able to put a part number, a purchase order, a vendor, and other data all into one bar code. The problem is, of course, how to do this in a way that is easily understood, and stands a chance of being compatible with the data systems for other companies.

Some standards are developing that allow the user to imbed fields into a 2-D bar code in an organized way. Typically, these standards will have some header information that alerts the scanner that the bar code follows a given specification. Following the header are a number of fields, each containing data and separated from each other in some manner. Finally, a trailer indicates that you are at the end of the bar code.

Data Technologies is committed to support all commonly used standards, but the one that we have implemented now is the GM 1724 standard. Although the following discussion draws heavily on our GM 1724 experience, it should hold true for most 2-D bar codes.

The GM 1724 standard adheres to the "Proposed ANSI MH10.8.3 Transfer Data Syntax for High Capacity ADC Media" (which can't be called a standard yet, because it is only a proposal) and the ISO 15434 "Transfer Syntax for High Capacity ADC Media" (which we think can be called a standard.)

Without going through all 32 pages of the two standards, here they are in a nutshell:

Header

In this standard, the bar code must start with the characters :

[)><RS>06<GS>

where <RS> stands for the non-printable ascii character $1E, and <GS> stands for the non-printable ascii character $1D. The [)><RS> indicates that this bar code is in compliance with the standard. The standard has many possible formats, which are numbered 00 through 99. The formats 00 through 11 are currently defined, and 12 through 99 reserved for later use.

The 06 in the header, indicates the format used for this bar code is format 06, which uses a special character to separate the data fields from each other. This character must immediately follow the 06. In the GM 1724 standard, the character <GS> is used to separate the fields.

The Data

Each field then follows in the bar code separated from each other by the special character (in this case <GS>.) Each field starts out with identifier characters that tell you what the data means. For example, if the field starts out with a "P", then it is a "GM Part Number", if it starts out with a "Q", it is a "Quantity".

The Trailer

The bar code ends with the characters :

<RS><EOT>

where <RS> stands for the non-printable ascii character $1E, and <EOT> stands for the non-printable ascii character $04.

Example

Suppose that you wanted to make a bar code for a box that held 100 parts with GM part number "ABCD". You could make a bar code containing:

[)><RS>06<GS>Q100<GS>PABCD<RS><EOT>

You could also reverse the fields, or put other fields into the bar code. Applications that needed the part number and quantity can extract them from this bar code no matter where they are.  

What it Means to You

The two-dimensional bar code can contain a number of pieces of bar code data (part number, quantity, etc.) contained in one bar code. When you scan the bar code, Keyport will extract the data, and place it into the keyboard buffer only when you desire. Data can be placed out of order, held until you are ready, or some data in the bar code can be ignored altogether. For an example of how to use Keyport with GM 1724 labels, go here.


Created 02/07/01 — last modified 03/09/01.
Write us at sales@datatechinc.com