Barcodes

What are barcodes?

Barcodes are a graphical representation of letters, numbers and symbols. On their own they don’t do or mean anything. For example, scanning a barcode could reveal the following letters and numbers:

ABC123

This could represent an item of stock in a warehouse or just as easily a tin of baked beans in a supermarket. It only means something to the computer system or systems that are reading it. It is best to think about the whole problem in the same way as you approach reading and writing. There is the alphabet, on its own it really doesn't mean anything. You have to form it into words to get meaning and then sentences to get meaning with context. Only then can you understand what it is that you are reading.

How do we interpret barcodes?

Most of the system is used in context, for example, when moving stock, the system knows you are scanning a bay and so knows what to do. However, when receiving stock, it is a lot harder as the labels that are scanned are often produced by suppliers and could have any number of barcodes meaning many different things. To deal with this, Think Warehouse can be taught a set of rules depending on need. It is therefore only possible to highlight common barcode reading problems to get an idea of some of the ways Think Warehouse can be setup to work. Let us take the following barcode as an example:

All we have is a 5 digit number. Does this barcode represent a quantity? Does it represent a batch number? Does it represent a serial number or item code? For a human, it is often easy to know what they are because you can see what label it appears on. A computer on the other hand has nothing to go on, it can’t see what a human can see and so it only knows one thing - what was scanned.

Using the above as an example, we could say that if the barcode scanned is exactly five digits long then it must be an item (or part if you prefer). Any other number scanned must be a quantity. This rule is good but it is flawed. What if there is a quantity that is also five digits long - won’t that be mistaken for an item? To combat this, barcodes are often printed with a prefix character to give the value context and allow the rules to be more precise. For example:

P12345
Q12345

These two barcodes are different from each other and the rules can be adapted to take the prefix into consideration thus preventing any misunderstandings. It is not always possible to change barcode labels especially when a supplier has printed them and so Think Warehouse is configured according to a customer's needs.

What types of barcode do we support?

There are many types of barcode. Put simply, we support any that your hardware is able to scan. That said, it is useful to know that there are two main categories of barcode which are known as 1D or 2D barcodes. Here are a few examples of 1D barcodes:

As you can see from the examples, each barcode is made up of a series of blocks and spaces of varying sizes. A scanner reads these by sensing what light is reflected in the spaces and what light is not in the blocks. The different sizes and patterns represent different values. Information is stored horizontally and is read by the scanner from left to right, or right to left depending on the type of barcode. This is one direction, or 1D.

A 2D barcode is different in the sense that not only does the scanner read horizontally but it also reads vertically. This is 2 directions, or 2D. The barcode is made up of a grid of blocks with set patterns so the scanner knows which way up the barcode is. These types of barcode are able to hold more information than a 1D barcode and can be a lot smaller as a result of their design. Here is an example:

What types of barcode do we print?

Normally we print barcodes using a font called 'Code 39' which is also sometimes known as '3 of 9'. We use this type for three reasons:

  1. It is simple to use – it works just like any other font and so it is entirely possible for our customers to print their own barcode labels outside of our system if needed. The only rule is that any barcode must start and end with an asterisk (*).
  2. It is almost universally supported. Nearly all hardware can scan it and just as importantly nearly all printers can print it.
  3. It is free! Other types of barcode can require specialist hardware or software. They can cost money to buy or license.

Sadly though, Code 39 has some failings and so is not always the perfect choice:

  1. It cannot contain lower case characters or certain symbols. There is an extended edition that does but it is not as universally supported and so we avoid it.
  2. It does not compress information. This means that the more letters or numbers you output, the longer it gets. Some barcodes can be very long and as a result do not fit on labels or become impossible to scan.

It is possible to print other types of barcode from Think Warehouse but usually they carry a cost.

What are the most common problems when printing barcodes?

If a printed barcode fails to scan, scans intermittently or the wrong code is read then it is worth checking the following as these are the most common causes:

  • The printer is printing the barcode at too low a resolution. If lines are blurred on the printout, the scanner won't be able to read them. They must be clear and distinct from each other.
  • The printer is running low on ink or the printer head is getting old. This causes additional lines to appear or some lines to disappear changing the meaning of a barcode. You can check this out by printing a block of text or something similar to see if there are lines in the text where there shouldn't be.
  • When printing manually, ensure the size of the barcode is not too small.
  • Ensure that the barcode will actually fit on the label. If your barcode is too long, then only part of it will be printed. This happens mostly when setting up items (parts) and locations. If you are unsure, try printing out the barcode in something like Microsoft Word and see how long it is.
  • Glossy or reflective paper is used. This causes the scanner's laser to be reflected back incorrectly.
 
 
1.12.0.0