Clear Printer Memory to Prevent Misapplied Labels
Summary
What you cannot see CAN hurt you!
Just about every thermal printer has internal memory. It is very helpful in the printing process providing many benefits in the printing operation. With printer memory, the printer can store important data to speed up the printing process such as fonts, images, and even entire label formats if needed. There are situations, however, where this can be a problem. The user cannot see what is in the printer memory. Thus the printer may, at times, store label data or print jobs without the print user knowing it. If not careful, the print user may pickup and apply a label unknowingly stored in the printer memory to the wrong product or pallet.
Why Clear Printer Memory?
One of the more useful benefits of printer memory is the ability of the printer to queue label jobs so that it can print one label while accepting more print jobs at the same time. When printing in high speed operations or when sharing the printer with different users, this can prevent print jobs from getting lost. If the printer is taken offline or the print jobs come in faster than the printer can print them, nothing gets lost. The printer stores these 'extra' print jobs in memory and prints them when the printer is back online and given time to catch up.
Industrial labeling software, through the printer drivers, typically send down instructions to printers telling it to start a new label and, depending on the printer settings, redefine the settings needed for successful print job. This is usually enough to keep settings and data from prior print jobs from altering how the label looks and the data residing on it. In most cases, this is what you want. There is no need for additional steps to clear memory.
A couple of situations we have encountered, however, have required us to recommend clearing the printer memory mainly to remove other print jobs. These situations include:
Automation
In "Read and Feed" systems where a barcode or vision scanner identifies an incoming case or pallet and then prints and applies a label automatically, there is the potential that the 'reading' and 'feeding' can get out of sync. For example, we have seen situations where a pallet or case gets stuck in front of the scanner and maintenance personnel, working around the photo-eyes that trigger the scanner, accidentally cause the scanner to read the same case or pallet multiple times. This then causes multiple print jobs to be generated by the print applicator (sitting downstream). What happens to all those extra false print jobs?
You guessed it. The printer keeps all these print jobs in memory and queues them for the print applicator to print and apply. Thus if the maintenance personnel accidentally triggers five extra print jobs, those five extra print jobs patiently wait in the printer memory for the next fix cases or pallets. New cases and pallets passing in front of the scanner generate new print jobs. But those print jobs need to wait for five previous jobs to complete. Thus the system is out of sync...always behind by five cases. If the cases and pallets traveling down the conveyor are different, then the system will misapply ALL the labels.
Programming the print job to erase all previous print jobs in memory eliminates this problem. If we embed a 'clear all' command into the print job, it can signal to the printer upon arrival to drop other queued print jobs and put the current print job to the front of the line. This eliminates the problem getting out of sync.
WORD OF CAUTION: This will work as long as the labels printed are applied IMMEDIATELY after the scan. If there is an extra case or pallet 'in process' between the scanner and the print applicator, requiring the printer to queue that label until the printer is ready, clearing the printer memory can cause that 'in process' label to be lost.
Long Print Runs
When printing long print runs, it is not uncommon for the printer to run out of labels or ribbon. While in this condition, print jobs sent to the printer will queue until the labels or ribbon are replaced. At such time, the printer will restart the printing from where it left off and then execute the print jobs queued in the printer. This can create a confusing situation when the print user goes to pick their labels. If the print job was almost complete, the print user may not notice the 'out of stock' warning message on the printer an assume the print job is complete. The next print user (who has already sent another print print job to the printer), sees the printer needs labels or ribbon, reloads, and then waits for THEIR print job to come streaming out. However, if not vigilant, they may also get:
- The tail end of the first print user's print job
- Other print jobs sent between the time of the incomplete job stuck with the out of stock condition and when they sent their print job (these extra print jobs might even be reruns of the same job sent by an impatient print user who didn't notice the printer was out of stock and just resent the same job over and over)
Sending the print job with printer coding to clear all printer memory (including the partial print job) prevents partial or other print jobs from getting attached to the same label job.
WORD OF CAUTION: Similar to the automation example above, clearing printer memory might cause the unintentional loss of a print job when the printer is busy.
How to Clear the Printer Memory at Print Time
Most major brands of thermal printers have printer commands that can be embedded in the print to clear the printer memory. Some can be as specific as clearing just the print queue or clearing jobs in process and error messages (e.g. out of paper or ribbon). Checking the reference manual for the printer and working with your labeling systems integrator can help determine what commands are appropriate and how they need to be embedded in the print job.
Sometimes, the standard Windows print drivers provided by the printer manufacturer have the ability to clear print jobs by just selecting a checkbox in the printer settings. Care must be taken, however, to understand exactly what is being cleared (i.e. pending jobs only, all print activity, error conditions, etc.) before using these pre-configured settings. Here is an example of the Windows print driver for the Sato M84 Pro with a "Cancel all current and queued printing documents:
If the Windows driver does not have what you need (or you are not using Windows print drivers), some industrial label software applications have the ability to embed specific commands within the print job. Often this is done by changing settings in the print driver supplied by the label software company. Here is an example of the Job Modifier function within TEKLYNX drivers that allow users to insert specific printer commands anywhere in the label job:
Conclusion
Thermal printers use printer memory to improve overall efficiency of the label printing process. However, there are situations where hidden print jobs can make automated systems go 'out of sync' and create confusion for print users. Both of these situations can lead to errors in label application (i.e. wrong label applied). Using clear memory printer commands, many of these mistakes can be prevented. These commands can be effective but also can have unintended consequences so we recommend researching your options and working with a competent labeling system integrator.
Efficient Label Concepts
Use Start and End Labels to Prevent Mixing of Label Jobs
Other Related Articles
Clearing Print Jobs Using Job Modifier – EBI Online Knowledge Base CODESOFT Instruction Article
3 Comments
Leave a Comment
You must be logged in to post a comment.
I notice that you are showing a Sato printer but using ZPL ~JA
Is that right?
Excellent attention to detail! You are correct. The image shows a Zebra printer command used in the settings of a TEKLYNX embedded Sato driver. Although the concept is sound (i.e. using printer commands in the embedded driver), the particular scenario shown in the picture would not work. That command would need to be used in TEKLYNX embedded Zebra driver.
Problem fixed! Thanks for pointing that out.