Simple Bar Code Reading
I am surprised and impressed with the level of interest that this series of articles on bar coding has generated. No other article has generated as many telephone calls as the first one of this series on bar code basics. I welcome your calls and questions.
Many of the callers were looking for an easy way to incorporate bar code reading into their DataFlex applications. This article is for those DataFlex users who want to add bar code reading without modifying their applications or DataFlex itself.
Before we look at the easy to utilize wedge bar code readers, I think its appropriate to review the two primary modes of bar code data usage: off-line and on-line data collection.
Off-line data collection consists of a bar code scanner and some device that stores the bar code data scanned by the user. Off-line data collection has many uses in applications such as inventory, labor job costing, and records tracking where there isn't a requirement to immediately make use of the data or where it is inappropriate to have the computer close to where the bar code data is being scanned.
On-line data collection is simply the bar code data is immediately made available to the processing computer without any form of storage capability. This mode of operation is very important in applications such a supermarket check-out counters and video tape rental where the bar code data is immediately used to look-up other, additional information. The primary disadvantage of on-line data collection is the host computer must be available to receive the data as it is scanned.
Plug In Bar Code Reading
The devices I will describe in this article take no more installation than removing them from their boxes, unplugging your keyboard, plugging the wedge reader into your computer and plugging your keyboard into the wedge reader. From that time on, any bar code data scanned by the wedge reader literally looks like keystrokes typed on the keyboard. A diagram of what the connections look like is shown in figure 1.
All four wedge readers I tried worked exactly as they came out of the box with no adjustments on my part. All, however, did have switches or some other way to set various configuration options to optimize their performance.
Configuration options included enabling/disabling recognition of particular bar code topologies, whether or not to automatically insert a carriage return after each bar code scanned, enabling an audio beep on good scans, keyboard type (PC or AT), and intercharacter delays (the amount of time between each character sent to the computer).
Discriminating Reading
All the units I looked at had a nice feature called autodiscrimination. Autodiscrimination means the units were capable of reading several different bar code topologies at the same time without being told which one is currently being scanned. After the bar code is scanned, algorithms inside the units are able to determine which bar code topology has just been scanned and decode the bar code appropriately.
Autodiscrimination makes integrating the wedge type bar code readers even easier because the integrator doesn't need to worry what bar code topology is being used as long as it is one of the supported ones. Thus I was able to scan video tapes, film cans, and even Keno tickets successfully without knowing what topology they were printed in.
Autodiscrimination is particularly handy where multiple bar code topologies are being used in a single application. For example, one application I am working with uses a combination of UPC and interleave 2 of 5 coding on items pre-bar coded by our factories combined with code 39 bar coding we produce locally.
All of the units can read several different bar code topologies. A summary of which reader can read which topologies is outlined in figure 2.
Reading Options
While the least expensive, and most common, wedge reader scanning device is the hand held contact scanning wand, you are not limited to that one device. Most of the wedge readers offer a choice of the hand held wand, a slot reader that you can slide ID cards through, or a hand held laser scanner.
Most of the hand held contact scanning wands are visible light, meaning they will work with a wide variety of bar code printing techniques, including bar codes printed with dot matrix printers. You can, however, get infrared scanning wands as options. Remember that infrared scanners only react to bar codes with high carbon content, making them incompatible with many bar code printing techniques. However those same limitations can become an advantage if you need security since you can overprint your bar code with a non-carbon ink to conceal it from human observation. I would suggest staying with visible light wand scanners unless you are absolutely certain about your bar code sources.
A bulkier, and considerably more expensive, scanning option is the hand held laser scanners. These scanners, which look sort of like a distorted gun, do not have to touch the bar code in order to read it. That is in contrast to the wands which must actually be in contact with the bar code to successfully read it. Non-contact scanners such as the laser scanners are useful where the same bar codes are read many times. If you use a contact type scanner many times on the same bar code, you will quickly wear out the bar code causing an unacceptable number of bad reads. Fortunately the built-in error checking of the common bar topologies allow detection of the bad reads, but it is still extremely frustrating to the user to have to scan a bar code several times. When the first read rate drops below 85%, many users will simply stop using the bar code reader rather than risk having to rescan the bar code. In addition, the laser scanners can read bar codes on curved or irregular surfaces, making them particularly appropriate in retail store situations. One caution, make sure the laser scanner and your wedge reader are compatible, not all lasers will work with all readers.
Alternate Interfaces
In addition to working with standard IBM PC/XT/AT and compatible microcomputers, there are wedge readers for the new IBM PS/2 and other MS-DOS microcomputers with different keyboard interfaces. And for those Xenix and VAX users there are wedge readers for many of the popular ASCII terminals commonly used on those systems. All work the same way, they are plugged in between the keyboard and the computer or terminal and appear to the computer or terminal as key strokes from the keyboard.
Percon makes a RS-232C interface unit that can be integrated through the auxiliary port of some terminals that are not supported directly. In addition, Percon sells memory resident software for the IBM PC/AT and compatibles that makes data coming in from a COM port appear as if it were keystrokes from the keyboard. While designed only for their bar code reader, this software might also allow the integration of other RS-232 data sources without resorting to modification of the DataFlex runtime via CS & L.
Worthington Data Solutions also makes a RS-232 unit that can operate in three modes: it can connect to an auxiliary port like the Percon unit, it can be connected like a wedge reader except utilizing RS-232 ports (useful for adapting almost any terminal), or up to 32 can be daisy chained on a single RS-232 port. Worthington Data also offers a memory resident program, BARKEY, that requires only 1K memory and allows data from a COM port appear as keystrokes from the keyboard. BARKEY is available separately.
In addition, Worthington Data Solutions has a unit called a Tricoder, that can serve several different purposes. It can be a keyboard wedge reader, a RS-232 or RS-422 interfaced reader, or most intriguingly, a stand alone hand held data collection device. And it can easily be converted from one use to another. So you can use the Tricoder as a wedge reader for most of the time to speed data entry, and then when inventory time comes, unplug it and take it out into the warehouse to automate the collection of inventory information. At a cost of less than $1,000 retail including a standard contact scanning wand, the Tricoder combines the best of all possible worlds for flexibility.
Four Representative Wedge Readers
From the simple integration point of view, there is little difference between the four wedge reader systems I looked at so there is little I can report about individually.
One vendor, whose reader I did not look at, suggested the primary differences in these readers was their ability to read marginal bar codes. However I tried all four readers with just about every bar code I could find, including some worn dot matrix printer ones, and all the units were able to read them all.
The three areas where there were differences were price, documentation and configuration options.
The American Microsystems Model 200 bar code reader was an inexpensive and no frills unit. Documentation consisted of a single sheet of instructions on how to plug the unit in and how to set the configuration switches. Configuration options included XT or AT keyboard emulation, enable/disable each bar code topology, enable/disable audio beep on good read, enable/disable a carriage return at end of each read, and enable self-test.
The Percon EZ-Reader was a well built intermediate unit. Its documentation was considerable more complete than the American Microsystems unit and included several pages on troubleshooting. Also included were specifications for each of the supported bar code topologies. Configuration options were comparable to the American Microsystems unit with the addition of the ability to specify the length of 2 of 5 codes be to allowed. This ability is important since 2 of 5 suffers from successful partial read potential.
I also looked at the Compsee Quickreader. While not the least expensive, it was one of the most configurable. It's documentation was standard IBM PC sized and very thorough.. Setting configuration options on the Quickreader was also quite unique. They are all set by way of bar code menus contained in the manual. There are no switches to set or maintain. In addition, the Quickreader adds a number of interesting and useful configuration options. You can select the intercharacter delay and the delay at the end of each scan. This is useful if your system has trouble accepting keystrokes at the normal scanning rate. In addition, you can program up to 16 characters to be sent before, and another 16 characters to be sent after, each bar code read. And you can configure the Quickreader for a number of data transfer protocols. Finally the Quickreader has a RS-232 auxiliary port that can be used to integrate other data, such as from digital scales, with the bar code data. The auxiliary port has its own preamble and postamble to identify the data source.
Outstanding Price/Performance
Finally I evaluated the Worthington Data Solutions WDP Reader. It was the least expensive and the most configurable. The WDP Reader also recognized the most different bar code topologies. Like the Compsee Quickreader, configuring the WDP Reader is accomplished using a bar code menu. There are over 75 different configuration options that are set or reset in this way. Like the Quickreader, you can set intercharacter delay, preambles, postambles, and a number of options for each bar code topology.
One unique feature of the Worthington Data Solutions WDP Reader is you can convert an IBM PC/XT/AT unit into a PS/2 by changing a $35 cable. Besides, you have the option of mounting the WDP externally, as with the other wedge readers, or internally as a half sized PC interface card. How? You simply take the plastic case apart and inside is a PC half card. Add the enclosed PC mounting bracket and you have the internal version. Finally, by changing some jumpers on the card itself, you can have a bus interface bar code reader. A memory resident program, BUSKEY, makes data collected appear as keystrokes.
In addition, Worthington Data Solutions states that the WDP Reader is compatible with Novell's ELS operating system working on a non-dedicated server. Apparently, ELS in switching from the workstation DOS mode to its protected Novell mode issues keyboard resets that are incompatible with many wedge readers. Worthington Data Solutions has modified to WDP to be fully compatible.
Another interesting, and potentially powerful, feature available with the WDP Reader is a code 39 accumulate mode. That mode, made possible by the WDP Reader's on-board intelligence, allows the use of a bar code "keypad", much like the one used with the Videx Timewand. The difference is by using code 39, both numbers and letters can be input.
By utilizing an extension to code 39, called Full ASCII, the WDP Reader can input, accumulate and transmit the entire ASCII character set including control characters and keyboard function keys. This very flexible input capability allows full data entry in situations where it is impossible to have prepared bar codes for all possible input data. Plus it makes it possible to integrate the WDP with more applications without modification.
The 32 page manual was clear and complete. Included were sections on how to configure the WDP Reader for both external and internal operation, how to set the various configuration options, configuring and using the various I/O options (bar code and magnetic slot readers, laser scanners and contact wands). There are sections on troubleshooting and specifications of the various bar code topologies--especially how the various check characters are calculated. The manual has both a table of contents and index.
A Novel Application
One interesting application of a wedge reader and bar codes is adding menus to programs that don't have, or have only minimal, menuing of their own. For example, one application I saw used bar code menus to make using Lotus 1-2-3 easier for people with little or no experience with 1-2-3. In that application, the keystrokes necessary to execute various commands and macros were encoded in the bar codes and "plain English" explanations were printed below each one. The user only had to scan the appropriate bar code to execute the desired command.
Of course, most wedge reader applications are more traditional. For example, bar code readers are becoming increasingly popular in libraries where both library cards and books sport bar code labels. Instead of laborious manual recording of who checked out what book or microfilming, the librarian simply scans the user's card and the book and the computer records the book as checked out.
In addition, wedge bar code readers are being used in hospital operating rooms to record what instruments, supplies and procedures are being used. Of course the hospital gets more accurate inventory records and can speed up its billing. Your bill is ready before you even get out of recovery.
Not All Applications Need Barcodes
The primary two reasons for utilizing bar coding is to increase data entry speed and accuracy. In most environments, data entry speed can be increased anywhere from 5 to 20 times, depending on the operator (unskilled data entry operators achieve the greatest improvements). And data entry accuracy usually increases anywhere from 50 all the way to 1 millions times.
We ran into an interesting situation where we originally thought using bar coding could achieve significant increases in data entry speed and accuracy. In the end, however, we concluded adding bar coding, at least at one level of implementation, would actually slow down data entry.
It is a labor job costing system, with all data currently input by hand from time sheets maintained by each worker. We quickly ruled out dedicated on-line bar code data entry since the frequency of data production (every 15 minutes to several hours per person) and large number of employees would have meant dedicating too much computer hardware to the task. We also looked at data collection devices such as the Videx Timewand, but were concerned about potential damage or loss of that relatively small device in this industrial environment.
As an interim solution we decided we would try affixing bar code stickers onto the regular time sheets currently being used with the hypothesis they would speed up data entry and improve accuracy. In actually we did improve accuracy, but at a loss of data entry speed. The reason was the operator had to stop keyboard entry, pick up the wand, scan the bar code (which was 6 or 10 characters in length), put the wand back, and resume keyboard entry. That was done twice per data record and took roughly twice as long as simply keying the same data.
In the end, we abandoned the bar codes. Instead, we changed the employee/job codes that were bar coded to include a check character and made other modifications to the data entry procedures that improved data entry speed by making most of it possible from the numeric keypad while at the same time improved accuracy by incorporating the check characters and other data entry validation techniques.
The lesson we learned was, while bar codes and other technological innovations are many times cost effective, not all applications lend themselves to their utilization. Forcing a new technology into an application it doesn't fit can often be worse than not incorporating any new technology at all.
Integration Issues
How hard it will be to integrate bar code reading into your application is difficult to say. This article describes devices that potentially eliminate the need to modify your application to add bar code reading data entry. At least they eliminate any need for the addition of communications capabilities.
But whether your application will still need higher level modifications will depend in part on if you can control the generation of the bar codes themselves.
If you have control over the bar code generation, you can tailor the information contained in the bar code to be read later so it is completely compatible with your existing application. Modifications to your application won't be necessary.
However, if you can't control the bar code generation, such as an application using the UPC codes on almost every consumer product on the market today, then you may need to modify your application to translate the information read when the bar code is scanned into corresponding information needed by your application. For example, you might need to look for a specific data prefix and translate the UPC code 326285 found on a tube of plumbers caulk into the corresponding factory part number of 25-605.
Even if you end up modifying your application to better integrate bar code reading, the use of wedge readers like these eliminate much of the low level integration necessary with other readers. And in the end, you gain the data entry and accuracy improvements that are encouraging more and more industries to implement bar code labeling and usage.
Simple Integration
If you are looking for simplicity in bar code integration, then the wedge bar code reader might just be the solution for you. Easy connection without modification of your application combined with autodiscrimination of several bar code topologies make the wedge readers the best choice for many bar code applications.
I hope you have enjoyed this series on bar coding and its integration with DataFlex and other software. From reader requests, the next article in this series will deal with printing bar codes from DataFlex applications. If there are any other topics related to bar coding you are interested in, feel free to contact me.
Where to Buy Wedge Bar Code Readers
Here are just a few of the many sources of wedge bar code readers:
WDP Reader with contact wand $ 399.00
WDP Reader with magnetic slot reader $ 499.00
WDP Reader with bar code slot reader $ 669.00
WDP Reader with 290 visible laser scanner $1,034.00
Above model for PC/XT/AT & Compatibles, PS/2, AT&T 6300 / 7300, Epson Equity, Tandy 1000, and any MS-DOS computer with IBM PC compatible bus.
Worthington Data Solutions
417-A Ingalis Street
Santa Cruz, CA 95060
(800) 345-4220 -- (408) 458-9938
Model 200-Wand Reader & Interface $ 495.00
Model 200-Slot Reader & Interface $ 639.00
Model 200-CCD "Laser Scanner" & Interface $1,395.00
Above models are for PC/XT/AT & Compatibles, other models for PS/2, Tandy, Kimtron, Wyse, and Control Data Viking are also available.
American Micro Systems
1110 S Airport Circle, Suite 140
Euless, TX 76040
(800) 648-4452 -- (817) 571-9015
E-Z Reader with standard wand & interface $ 635.00
E-Z Reader with slot reader & interface $ 744.00
E-Z Reader with hand held laser & interface $1,295.00
Above models are for PC/XT/AT & Compatibles, other models for PS/2, AT&T, Televideo terminals, Kimtron, Link Technologies, DEC VT220, and Wyse terminals are also availables. They also offer a RS-232C interface with software to make COM1: appear as keyboard input.
PERCON
2190 W. 11th Ave
Eugene, OR 97402
(503) 344-1189
Quickreader with wand & interface $665.00
Above model for PC/XT/AT, other models for IBM terminals, UTS 20/30/40, SVT 1120/1220, Telex terminals, AT&T PC's and terminals, DDC 3761/3791/3781, DEC VT220/320/340, ADDS 3220, Honeywell HDS-7, Comterm 6178, NCR 4970, Paradyne, Wyse, Beehive, ITT, NCR, Ampex and Harris terminals.
COMPSEE, INC
17 E. Hibiscus Blvd
Melbourne, FL 32901
(305) 724-4321
Figure 1
Wedge Reader Connections
Figure 2
Bar Code Compatibilities
Worthington American
Bar Code Topology Data Microsystems Percon Compsee
Code 39 X X X X
Full ASCII Code 39 X
2 of 5 X
Interleave 2 of 5 X X X X
UPC-A X X X X
UPC-E X X X X
EAN-8 X X X
EAN-13 X X X
UPC/EAN Supplements X
Codabar X X X X
CLSI Codabar X
Code 128 X X
MSI/Plessey X