The subject matter disclosed herein relates to printing systems and methods, and more particularly, to a system and method for printing on one or more packages.
Printing systems have been developed for printing on labels wherein the labels are attached to packages that are to be shipped. Some such printing systems receive print commands using a printing language. The print commands are divided into a plurality of blocks of commands, wherein each block is associated with a label or other content to be printed on the box. For each block of commands, a controller operates a printing device to print indicia on a label in accordance with the block of commands. Typically, the label is removably secured to a liner. After printing, the label may be released from the liner and applied to a corresponding package. Label printing systems are typically suitable for printing text, line art, and two-color bitmaps on labels.
In a production environment, the label printing system is proximate or incorporated into a production system comprising a conveying system. During production that are to be shipped are loaded on to the conveying system in accordance with a sequenced determined by a production database. In addition, printing data commands are generated in accordance with the production database and provided to the label printing system in a sequence that matches the sequence in which packages are supposed to be loaded on the conveyor. The label is printed and affixed to the package at a labeling station as the package is conveyed past such labeling station by the conveying system. If before arriving at the labeling station, a package is loaded onto the conveying system out of sequence (e.g., if the package is produced out of sequence or manually loaded out of sequence because of an error) or if the sequence in which the packages are loaded is changed (e.g., if a package falls of the conveying system and is loaded following other packages), the sequence in which labels are provided at the labeling station will not match the sequence in which the packages arrive at the labeling station. Quality checks may need to be implemented to confirm that the correct label is applied to a package. Further, corrective measures may need to be implemented to generate additional labels for mislabeled packages due to the mismatch between the sequences in which labels are generated and in which packages reach the labeling stations.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
A method and system printing includes transporting an object toward a print system. A plurality of blocks of print commands is stored in an ordered sequence in a first queue and a first identifier encoded in indicia on an object is received. An oldest block of print commands from the stored plurality of blocks is selected, wherein the oldest block of commands is associated with a second identifier. If the first identifier is associated with a second identifier, the print system is operated to printing content specified by the selected block of print commands on the object. Otherwise, the oldest block is stored in a second queue.
According to one aspect, a method of printing includes the steps of transporting an object toward a print system, storing a plurality of blocks of print commands in an ordered sequence in a first queue, and receiving a first identifier encoded in indicia on the object. The method includes the further steps of selecting an oldest block of print commands from the stored plurality of blocks, wherein the oldest block of commands is associated with a second identifier, and determining whether the first identifier is associated with a second identifier. If the first identifier is associated with the second identifier, the print system is operated to print content specified by the selected block of print commands on the object: otherwise, the oldest block is stored in a second queue.
According to another aspect, a system for printing includes a conveying system that transports an object toward a print system and a control system having a first queue and a second queue. The first queue has a plurality of blocks of print commands stored therein in an ordered sequence. The system for printing also includes a sensor that reads a first identifier encoded in indicia on the object and an image generator that selects an oldest block of print commands from the stored plurality of blocks, wherein the oldest block of commands is associated with a second identifier, and a print controller. The image generator determines whether the first identifier is associated with a second identifier and, if so, causes the print controller to print content specified by the selected block of print commands on the object, otherwise stores the oldest block in the second queue.
Other aspects and advantages will become apparent upon consideration of the following detailed description and the attached drawings wherein like numerals designate like structures throughout the specification.
This brief description of the invention is intended only to provide a brief overview of subject matter disclosed herein according to one or more illustrative embodiments, and does not serve as a guide to interpreting the claims or to define or limit the scope of the invention, which is defined only by the appended claims. This brief description is provided to introduce an illustrative selection of concepts in a simplified form that are further described below in the detailed description. This brief description is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
So that the manner in which the features of the invention can be understood, a detailed description of the invention may be had by reference to certain embodiments, some of which are illustrated in the accompanying drawings. It is to be noted, however, that the drawings illustrate only certain embodiments of this invention and are therefore not to be considered limiting of its scope, for the scope of the invention encompasses other equally effective embodiments. The drawings are not necessarily to scale, emphasis generally being placed upon illustrating the features of certain embodiments of the invention. In the drawings, like numerals are used to indicate like parts throughout the various views. Thus, for further understanding of the invention, reference can be made to the following detailed description, read in connection with the drawings in which:
Referring to
Diverter gates, positioning apparatus, and other conveyor components are typically included as part of the conveying system 23 but are omitted from
Referring also to
The control system 28 receives a stream of print commands developed print command source 56. In some embodiments, the print commands are developed using, for example, Postscript and/or Portable Data Format languages specified by Adobe Systems Incorporated of San Jose, California, Zebra Programming Language (ZPL) specified by Zebra Technologies of Lincolnshire, Illinois, Printer Command Language (PCL) specified by Hewlett Packard Company of Palo Alto, California, and the like. The stream of print commands may be transmitted or provided to the control system 28 in any manner apparent to one who has ordinary skill in the art, e.g., via network 34, a local storage device, and the like. In some embodiments, upon receipt, the control system 28 stores the stream of label print commands in the memory 54 thereof.
As the box 22 traverses past the barcode sensor 24, the barcode sensor 24 reads the barcode 32 or other indicia on the box 22 and provides the unique identifier encoded in the barcode 32 or other indica to the control system 28. The unique identifier may be associated with information regarding the box 22 including, but not limited to, the contents of the box 22, the weight of the box 22 (alone and/or in combination with the contents), dimensions of the box 22, the intended recipient of the box 22, and shipping information (e.g., address, postage, etc.) associated with the box 22. The control system 28 may use the unique identifier to retrieve such information regarding the box 22 from a memory or data store accessible thereto. As described in greater detail below, the control system 28 uses the unique identifier to select and process a portion (or block) of the stream of commands that is associated with the unique identifier encoded in the barcode 32 to generate printed content that is printed on the box 22 as the box is conveyed past the printing system 26. The image is a bitmap or multi-color image that represents content including, for example, recipient information (name, address, postage, tracking information, etc.), information regarding contents of the package, marketing information, and the like, as specified by the block of the stream of commands.
The barcode sensor 24 and control system 28 operate in this manner to develop and print on each of the boxes 22 loaded onto the conveying system 23.
Referring to
Each block of print commands 82 also includes strings delimited and identified by “{circumflex over ( )}FX” and “{circumflex over ( )}FS” text strings that are readable by a printer but otherwise would not cause a printer to undertake any other action. One of ordinary skill in the art would understand such strings to be analogous to comment strings in a programming language. In the illustrated embodiment of the system 20, each block of print commands 82 includes one such comment string 84 that includes a first predetermined substring “$$$ % %% LIC=” that is followed by a predetermined number of characters (in this case 4) that specify the unique identifier of the box on which a representation of the content specified by the commands in the block of print commands 82 is to be printed. Thus, in the example shown in
Each block of the control system shown in
Referring next to
As each data block is transmitted by the print commands source 56, the data block reader 102 receives such data block and stores the data block in the print queue 112. The data blocks 112 are stored in the print queue in accordance with the order in which such data blocks are received.
Referring to
At step 124, the image generator 106 directs the timer controller 110 to start a timer and generate a signal (e.g., an interrupt) when a predetermined amount of time has elapsed.
At step 126, the image generator 106 reads from the print queue 112 the oldest data block stored therein and removes the read data block from the print queue 112.
At step 128 the image generator 106 determines if the identifier of the box encoded in the data block (e.g., in the string 84 shown in
If the two identifiers are associated with one another, the image generator 106 at step 130 generates print data representing the content represented by the data block and provides the print data to the print controller 108.
At step 132, the print controller 108 waits to receive the signal from the timer controller 110 that the predetermined amount of time specified by the image generator 106 at step 124 has elapsed. Such predetermined amount of time is selected in accordance with the speed with which the conveying system 23 operates and the expected amount of time necessary for the box 22 to be conveyed from the barcode sensor 24 to a position for printing by the printing system 26.
In response to the signal from the timer, the print controller 108 at step 134 operates the print system 26 to print the content on a surface of the box 22 as such box is conveyed past the print system 26. In some embodiments, the print system 26 is a multi-color inkjet printing system. In such embodiments, the print controller 108 creates halftone bitmaps of each color plane of the page to be printed and supplies such bitmaps to the print system 26. In some embodiments, the print controller 108 generates signals to the individual print heads of the print system 26 in accordance with the halftone bitmaps to cause such print heads to eject one or more colors of ink onto the box 22 to print the page thereon.
At step 136, the control system 28 checks whether a signal has been received, for example, via the network 34 or the user device 36 that production is completed or the production should stop. If so, the control system 28 exits.
Otherwise, at step 138, the image generator 106 checks whether the print queue 112 is empty (i.e., that all the data blocks read by the data block reader 102 and stored in the print queue 112 have been processed). If the print queue 112 is not empty, the controller 28 returns to step 122 to receive another box identifier from the barcode sensor 24.
Otherwise, at step 140, the image generator 106 checks whether the reorder queue 114 (described in greater detail below) is empty. If the reorder queue 114 is not empty, the controller 28 returns to step 122 to receive another box identifier from the barcode sensor 24.
If both the print queue 112 and the reorder queues 114 are empty, the controller 28 exits.
If at step 128, the image generator 106 determines that the identifier of the box 22 encoded in the data block read from print queue 112 at step 126 is not associated with the unique identifier received from the barcode sensor 24 at step 122, the image generator 106 adds the data block to the reorder queue 114 at step 142.
Thereafter, at step 144, the image generator 106 checks the data blocks stored in the reorder queue 114 to determine if there is a data block in the reorder queue 114 that has an identifier of a box that is associated with the unique identifier received from the barcode sensor 24. If so, at step 146, the image generator 106 reads such data block from the reorder queue 114 and removes the data block from the reorder queue 114. Thereafter, the image generator 106 proceeds to step 130 to generate content data in accordance with the data block read from the reorder queue 114.
If at step 144 the image generator 106 determines that there is no data block in the reorder queue 114 associated with the unique identifier received from the barcode sensor 24 (i.e., the box 22 has been loaded on the conveyor 30 for which a data block has not been received) then at step 148, the image generator 106 signals the conveyor system 23 to divert the box 22 from a production path of the printing system 20 before the box 22 reaches the print system 26 or downstream of the print system 26. In either case, the image generator 106 does not generate any image and no content is printed on the box 22 by the print system 26 and the box 22 is diverted away from the production path (i.e., the path followed by boxes 22 that are printed on). If the box 22 is diverted before reaching the print system 26, the image generator 106 directs the timer controller 110 to cancel the timer started at step 124.
Referring also to
In some embodiments, if the box 22 is diverted, the control system 28 or the conveying system 23 provides the unique identifier associated with such box 22 to the print command source 56 to indicate that the box 22 was not printed on.
Although the printing system 20 receives print data in a sequence that corresponds to a sequence in which packages are expected to reach the print system 26. If a package does not reach the barcode sensor 24 (and thus the print system 26) when expected the print data for such package is stored in the reorder queue 114. If the package is then detected at the barcode sensor 24 at a later time, the print data for the late arriving package is retrieved from the reorder queue and used to generate and print appropriate content on the package. Further, if a package reaches the barcode sensor 24 earlier in the sequence than expected, such early arrival is detected, and the package may be diverted. Thus, the print system 20 automatically ensures that the correct content is printed on each package even if the package arrives out of sequence.
It should be apparent to one who has ordinary skill in the art that a FIFO buffer, a circular list, a linked list, or other data structure may be used to organize memory that is used to implement the print queue 112 and the reorder queue 114.
Referring once again to
It should be apparent to those who have skill in the art that any combination of hardware and/or software may be used to implement components of the system 20 described herein. It will be understood and appreciated that one or more of the processes, sub-processes, and process steps described in connection with
Depending on certain implementation requirements, the embodiments described can be implemented using a non-transitory storage medium such as a digital storage medium, for example, a DVD, a Blu-Ray, a CD, a ROM, a PROM, and EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
Some embodiments disclosed herein a data carrier having electronically readable control signals, which are capable of cooperating with a processor, a controller, or a programmable computer system, such that at least one of the methods described herein is performed.
Generally, embodiments disclosed herein can be implemented as a computer program product with a program code, the program code being operative for performing at least one of the methods disclosed herein when the computer program product runs on a computer. The program code may, for example, be stored on a machine-readable carrier.
Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine-readable carrier.
In other words, an embodiment, therefore, may include a computer program having a program code for performing one of the methods described herein, when the computer program runs on a processor, a controller, and/or a computer.
A further embodiment of the system described herein is, therefore, a storage medium (or a data carrier, or a computer-readable medium) comprising, stored thereon, the computer program for performing at least one of the methods described herein when it is performed by a processor. The data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitory. A further embodiment of the present invention is an apparatus as described herein comprising a processor and the storage medium.
A further embodiment of the system describe herein is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may, for example, be configured to be transferred via a data communication connection, for example, via the internet.
A further embodiment comprises a processing means, for example, a computer or a programmable logic device, configured to, or adapted to, perform one of the methods described herein.
A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
A further embodiment comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing at least one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
In some embodiments, a programmable logic device (for example, a field programmable gate array) may be used to perform some or all of the functionalities of some or all of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware apparatus.
While particular embodiments of the present invention have been illustrated and described, it would be apparent to those skilled in the art that various other changes and modifications can be made and are intended to fall within the spirit and scope of the present disclosure. Furthermore, although the present disclosure has been described herein in the context of a particular implementation in a particular environment for a particular purpose, those of ordinary skill in the art will recognize that its usefulness is not limited thereto and that the present disclosure may be beneficially implemented in any number of environments for any number of purposes. Accordingly, the claims set forth below should be construed in view of the full breadth and spirit of the present disclosure as described herein.
All references, including publications, patent applications, and patents, cited herein are hereby incorporated by reference to the same extent as if each reference were individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.
The use of the terms “a” and “an” and “the” and similar references in the context of describing the invention (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illuminate the disclosure and does not pose a limitation on the scope of the disclosure unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.
Numerous modifications to the present disclosure will be apparent to those skilled in the art in view of the foregoing description. It should be understood that the illustrated embodiments are exemplary only and should not be taken as limiting the scope of the disclosure.
This written description uses examples to disclose the invention and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal language of the claims.
This application claims the benefit and priority to U.S. Patent Application Ser. No. 63/317,186, filed Mar. 7, 2022 and entitled “System and Method For Printing Packages”, the entirety of which is incorporated herein by reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2023/014668 | 3/7/2023 | WO |
Number | Date | Country | |
---|---|---|---|
63317186 | Mar 2022 | US |