The present invention relates to a printing system for cut sheets, the printing system comprising a paper path comprising a loop in order to enable duplex printing on the sheets in a continuous flow of sheets in a first and second interweaving pass in the loop, a controller for controlling simplex and/or duplex printing of image data on the continuous flow of sheets, a print engine positioned in the loop configured to dispose marking material on the sheets according to the image data, and a scheduler for time scheduling the continuous flow of sheets in an order of a plurality of actions comprising loading a sheet, printing the sheet in a first pass in the loop, printing the sheet in a second pass in the loop, and unloading the sheet, wherein the scheduler is configured to use a digital representation of a directed graph of vertices and edges, each vertex representing an action of the plurality of actions on a sheet of the continuous flow of sheets and each edge representing at least one amount of time needed for a sheet to go from a starting vertex of the edge to an ending vertex of the edge, the directed graph also representing interweaving of sheets from a first pass and a second pass.
Such a printing system will also be called a production printer hereinafter. The actions mentioned here-above will also be called sub-tasks or operations hereinafter. The loop may contain a buffered part and a non-buffered part.
In the paper path of a printing system each of the plurality of sheets is transported from an input section of the printing system towards a print head or print assembly. By means of the print head or print assembly marking material is disposed on each of the plurality of sheets. Each of the plurality of sheets is transported from the print head or print assembly towards an output section of the printing system.
To enable duplex printing the paper path contains a loop, a so-called duplex loop. A sheet enters the loop in a first pass in order to print image data on one side of the sheet, goes through the duplex loop and enters the duplex loop in a second pass in order to print image data on the other side of the sheet. However, simplex printing—printing on one side of a sheet—may also be executed by means of the loop in the paper path or without using the loop in the paper path. The present invention relates to simplex printing as well as to duplex printing, i.e. for simplex printing as well as duplex printing the loop is used. A print engine with a loop may have a print speed of twice as high as a speed of a separation in the input module and a working speed of an output module or finisher. In such a case and also in general the loop may be used to print on the plurality of sheets by interweaving the plurality of sheets in the first pass and in the second pass.
The controller of the printing system comprises a scheduler to time schedule the sheets for processing. First of all the sheets are sequenced and thereafter scheduled. Sequencing of the sub-tasks comprising loading a sheet, printing the sheet in a first pass in the loop, printing the sheet in a second pass in the loop, and unloading the sheet, in such a printer is a special case of a flowshop problem called “A re-entrant flowshop heuristic for online scheduling of the paper path in a large scale printer” as described by Umar Waqas et al. (“Proceedings of the 2015 Design, automation & Test in Europe Conference & Exhibition”. DATE '15. Grenoble, France: EDA Consortium, 2015, pp. 573-578. ISBN 978-3-9815370-4-8). After online sequencing of the sub-tasks, the sub-tasks need to be online scheduled.
In the case of a production printer there is a chance that new information may come into the print queue as part of new print jobs arriving at the production printer. Therefore a scheduler for a production printer needs to be able to compute schedules at a pace at least as fast as the printer's printing. Only then the printer can actually output the sheets at regular intervals. The scheduler should also be able to consider information about new print jobs joining the print queue while making its scheduling decisions.
A re-entrant flowshop problem provides a near optimal sequence of sheets as a solution to the operations re-entering into the same duplex loop from different sheets. To establish a correctness of the solution, the sequencing needs to be validated for constraints on the sequence of operations and if valid, the sequence of operations need to be given start times. This is referred to as scheduling. The constraints may be integrated into the directed graph leading to a constraint graph which has edges of both polarities, positive and negative. Shortest path algorithms are well-known which can handle constraints graphs with both positive and negative edges, for example a Bellman-Ford algorithm.
Therefore the scheduler of the production printer uses the Bellman-Ford algorithm to validate the sequences and schedule the operations on the sheets. The Bellman-Ford algorithm works on the principle of relaxing as explained in Wikipedia (URL https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford algorithm, 2016).
A problem arises when scheduling sheets in a continuous flow for a production printer, since sheets are continuously added to the stream of sheets which are already scheduled to be printed by the production printer. For example, a pamphlet print job requires the production printer to print almost 100,000 sheets of a particular type, for example a smallest media type available. Not only scheduling 100,000 sheets takes a long time, but also for the printer to print, it does not need a schedule for all the 100,000 sheets, it just needs the schedule for the number of sheets that fit in the printer at a point of time.
It is an object of the present invention to provide a printing system that permits to increase productivity of the printing system with regard to scheduling the continuous stream of the plurality of sheets to be printed upon.
In order to achieve this object, according to the present invention, the scheduler comprises a digital window mover for providing subsequent windows over the directed graph, each window of the subsequent windows covering a finite subset of the vertices of the directed graph which correspond to actions on a number of subsequently sheets to be processed in the continuous flow of sheets, as to allow repetitive executions of an algorithm for finding a shortest path between vertices covered by the window, and wherein a window size determines for each window of the subsequent windows the amount of vertices in the window and a window step size determines which vertices are covered by the subsequent windows respectively.
The algorithm may be optimized according to known optimization measures for the algorithm. Instead of optimizing the algorithm faster hardware like fast GPU, FPGA, etc. may be used to get the results faster with the standard algorithm.
Experiments have revealed that the invention performs well at a print speed of 300 A4 sized images per minute and is suitable to achieve the required production performance of 300 A4 sized images per minute.
According to an embodiment the window size is determined by the number of sheets that is present in the paper path of the printing system at any point of time between the loading of the sheets and the unloading of the sheets. Such a number of sheets depends on the size of the sheets, the size of the duplex loop, for example measured in sheets containable in the duplex loop, etc.
The present invention also relates to a method for time scheduling a continuous flow of sheets in a loop of a printing system which comprises a controller for controlling simplex and/or duplex printing of image data on a plurality of sheets of the continuous flow and scheduling the plurality of sheets in a printing order, a paper path comprising the loop in order to enable printing on the plurality of sheets in an interweaving first and second pass in the loop, and a print head or print assembly for disposing marking material on the sheets according to the image data, wherein the method comprises the steps of
The scheduler is modified to supply the printer schedules of only those sheets that will be in the printer at a point of time. The only constraint is that, for the printer to be able to output one sheet in every predetermined time period, the schedule for the number of sheets that fill the printer should be made available every predetermined time period.
According to an embodiment the method comprises the step of separating valid interweaving of sheets from a first pass and a second pass from invalid interweaving of sheets from a first pass and a second pass.
The present invention also relates to a software product comprising program code on a non-transitory computer-readable medium, wherein said program code, when loaded into a computer that is connected to a printing system according to the invention causes the computer to act according to any of the methods according to the invention.
Preferred embodiments will now be described in conjunction with the drawings, wherein:
The output section 5 comprises a first output holder 52 for holding printed image receiving material, for example a plurality of sheets. The output section 5 may comprise a second output holder 55. While 2 output holders are illustrated in
The output section 5 is digitally connected by means of a cable 60 to the print engine and control section 3 for bi-directional data signal transfer.
The print engine and control section 3 comprises a print engine and a controller 37 for controlling the printing process and scheduling the plurality of sheets in a printing order before they are separated from input holder 44, 45, 46.
The controller 37 is a computer, a server or a workstation, connected to the print engine and connected to the digital environment of the printing system, for example a network N for transmitting a submitted print job to the printing system 1. In
The controller 37 comprises a print job receiving section 371 permitting a user to submit a print job to the printing system 1, the print job comprising image data to be printed and a plurality of print job settings. The controller 37 comprises a print job queue section 372 comprising a print job queue for print jobs submitted to the printing system 1 and scheduled to be printed. The controller 37 comprises a sheet scheduling section 373 for determining for each of the plurality of sheets of the print jobs in the print job queue an entrance time in the paper path of the print engine and control section 3, especially an entrance time for the first pass and an entrance time for the second pass in the loop in the paper path according to the present invention. The sheet scheduling section 373 will also be called scheduler 373 hereinafter.
The sheet scheduling section 373 takes the length of the loop into account. The length of the loop corresponds to a loop time duration of a sheet going through the loop dependent on the velocity of the sheets in the loop. The loop time duration may vary per kind of sheet, i.e. a sheet with different media properties.
Resources may be recording material located in the input section 4, marking material located in a reservoir 39 near or in the print head or print assembly 31 of the print engine, or finishing material located near the print head or print assembly 31 of the print engine or located in the output section 5 (not shown).
The paper path comprises a plurality of paper path sections 32, 33, 34, 35 for transporting the image receiving material from an entry point 36 of the print engine and control section 3 along the print head or print assembly 31 to the inlet 53 of the output section 5. The paper path sections 32, 33, 34, 35 form a loop according to the present invention. The loop enables the printing of a duplex print job and/or a mix-plex job, i.e. a print job comprising a mix of sheets intended to be printed partially in a simplex mode and partially in a duplex mode.
The print head or print assembly 31 is suitable for ejecting and/or fixing marking material to image receiving material. The print head or print assembly 31 is positioned near the paper path section 34. The print head or print assembly 31 may be an inkjet print head, a direct imaging toner assembly or an indirect imaging toner assembly.
While an image receiving material is transported along the paper path section 34 in a first pass in the loop, the image receiving material receives the marking material through the print head or print assembly 31. A next paper path section 32 is a flip unit 32 for selecting a different subsequent paper path for simplex or duplex printing of the image receiving material. The flip unit 32 may be also used to flip a sheet of image receiving material after printing in simplex mode before the sheet leaves the print engine and control section 3 via a curved section 38 of the flip unit 32 and via the inlet 53 to the output section 5. The curved section 38 of the flip unit 32 may not be present and the turning of a simplex page has to be done via another paper path section 35.
In case of duplex printing on a sheet or when the curved section 38 is not present, the sheet is transported along the loop via paper path section 35A in order to turn the sheet for enabling printing on the other side of the sheet. The sheet is transported along the paper path section 35 until it reaches a merging point 34A at which sheets entering the paper path section 34 from the entry point 36 interweave with the sheets coming from the paper path section 35. The sheets entering the paper path section 34 from the entry point 36 are starting their first pass along the print head or print assembly 31 in the loop. The sheets coming from the paper path section 35 are starting their second pass along the print head or print assembly 31 in the loop. When a sheet has passed the print head or print assembly 31 for the second time in the second pass, the sheet is transported to the inlet 53 of the output section 5.
The input section 4 may comprise at least one input holder 44, 45, 46 for holding the image receiving material before transporting the sheets of image receiving material to the print engine and control section 3. Sheets of image receiving material are separated from the input holders 44, 45, 46 and guided from the input holders 44, 45, 46 by guiding means 42, 43, 47 to an outlet 36 for entrance in the print engine and control section 3. Each input holder 44, 45, 46 may be used for holding a different kind of image receiving material, i.e. sheets having different media properties. While 3 input holders are illustrated in
The local user interface 7 is suitable for displaying user interface windows for controlling the print job queue residing in the controller 37. In another embodiment a computer N1 in the network N has a user interface for displaying and controlling the print job queue of the printing system 1.
To model the problem into a constraint graph shown in
For example, the forward edge constraint between operations o1 and o2 in
The group of vertices G1 and G3 are mapped to the input section 4 and the output section 5 respectively and need no sequencing because there is only one operation per sheet that is mapped to these sections and because these sheets are ordered, the corresponding operations are also ordered.
The remaining group is G2. The operations of group G2 are mapped to the print engine and control section 3. Unlike the other groups, the group G2 has two operations from each sheet. So, the scheduler 373 is provided an opportunity to re-order the operations so that a makespan is kept minimal.
All the edges shown in
With these compulsory constraints, the default ordering of the operations will be, o2, o3 of a sheet will execute and only after these two operations are finished, next sheet's o2, o3 can start. This order goes from a first sheet to a last sheet. But, because the printer can hold a buffer of sheets before it can begin printing second side prints of sheets, as long as the compulsory constraints are satisfied, there can be other sequences too. To find these orderings in the operations in group G2, the scheduling algorithm uses extra constraints. These extra constraints are shown using dotted edges in
In the printer paper path shown in
For example, consider four sheets 1-4 shown in
An interleaving is an ordered tuple, OT((a,b),(b, c)) where a, b, and c denote vertices. The ordered tuple OT((a,b),(b, c)) also means that the operation denoted by vertex b is executed after a is executed and before c is executed. An interleaving is said to be feasible if the ordering does not create a cycle in the compulsory constraint graph. Only after an interleaving is found to be feasible, the edges of this interleaving between vertices (a, b) and (b, c) are added to the compulsory constraint edges.
The scheduling problem is to find the feasible set of ordering tuples in OT such that all the vertices in all the groups which have multiple operations per job mapped to a same machine are ordered such that the makespan is kept minimal.
There are three types of interleavings possible to schedule a sheet in queue.
Firstly, a regular interleaving denotes a sheet's ordering between “first prints” of two other sheets in the queue. This is shown in
Secondly, an exceptional interleaving denotes an interleaving when a sheet's second print operation is interleaved with first and second print operations of a sheet in the queue. This is different from the above discussed regular interleaving because this interleaving is only with one sheet (its first and second print operations), instead of two different sheets' first print operations. In example shown in
Thirdly, a flush interleaving, as its name suggests will flush the duplex loop before next sheet starts its first print operation. In an example shown in
Because the two interleavings, exceptional and flush, are used to clear the duplex loop, these two interleavings are time expensive interleavings.
The Bellman-Ford algorithm computes shortest paths to all vertices from a source vertex. But for the production printer scheduler 373, as explained here-above, all compulsory constraints need to be satisfied before an operation can start its execution. This means that if an operation has two incoming edges that belong to the compulsory constraint edges, then constraints on both edges need to be satisfied, i.e., the operation can only start its execution after both the operations on the other side of the incoming edges have finished their execution. This means, instead of computing shortest path, to compute the start times, a longest path needs to be computed. The source to destination longest path can be computed by inverting the signs of edge weights on the constraint graph. For simplicity, all the optimizations are explained on the algorithm that computes the shortest paths, but just by changing the sign of the edges, the same optimizations will work to compute the longest path.
A heuristic approach is a practical way of exploring the solution space for a problem. The scheduler's problem here is to explore the different solutions of re-ordering of operations on sections which have more than one operation per job mapped to them in order to minimize the makespan. The scheduler 373 needs to decide between which sheets does the re-entering sheet enter the main path 34 and is printed on its second side. In flowshop and constraint graph terminology, an ordering tuple need to be computed for each re-entering operation, say ((a,b), (b,c)), where b denotes the re-entering operation, and a and c represent the two operations between which b is executed. For such a re-entering operation there may be more than one valid ordering tuple and the makespan of the final schedule depends on how the heuristic algorithm selects a final ordering tuple. The heuristic approach that Waqas et al. presents is a generic algorithm which will compute a schedule for constraint graphs of re-entrant flowshop type problems. The production printer scheduling is one such flowshop problem with one re-entrant section. Since the problem has only one re-entrant section there is only one group for the scheduler 373 to re-order.
The algorithm has to compute the ordered tuples for each re-entering operation, called interleaving and is denoted by OTsol. To do so, first the algorithm needs a solution space to explore the interleaving solutions. There are two ways to compute interleaving solution space for re-entering operations.
A first way is called “forward interleaving”.
Interleavings are computed from a first sheet to a last sheet in that order.
A second way is “reverse interleaving”.
In reverse interleaving, interleavings are computed from a last sheet to a first sheet. In the example, the interleaving begins at Sheet-4. But since Sheet-4 is the last sheet and there are no sheets after it in the queue, there is no interleaving needed for the last sheet. So, interleaving begins at the pen-ultimate sheet, Sheet-3. Sheet-3 has only two interleavings possible, either the exceptional interleaving or the flush interleaving. Sheet-2 now has all three types of interleavings possible and so can Sheet-1.
Having an option to flush when interleaving a sheet is preferred because it will act like a fall-back in case of any errors during scheduling. In forward interleaving, shown in
The scheduler 373 takes a heuristic approach by using three metrics to understand the effect of an ordering tuple on the makespan. The three metrics are productivity, flexibility and distance.
The productivity of an ordering tuple measures the impact of the ordering tuple on the makespan. To calculate a productivity metric of the ordering tuple ((a,b),(b,c)), first the scheduler 373 computes the maximum possible increase in start time of the operation c (denoted by dx;b), that can be caused by one of the ordering tuples of b (denoted by OTxb), where x and b denote the group and vertex which are currently being ordered.
The productivity metric denotes how restrictive the ordering tuple is. So, Pot=0 denotes a highly productive ordering tuple. The productivity of an ordering tuple can be given by the equation:
The flexibility of an ordering tuple ((a,b),(b,c)), measures the effect of edges over the due date constraints of vertex b. If Db contains all the negative edges going out of vertex b, the flexibility is given as:
The above equation Fot denotes a ratio of excess usage of a time by the ordering tuple to a total allowed time by a due date constraint. The terms tb and tx are a start time of the vertices band x, computed from the partial solution (the compulsory constraint edges set and OTsol at that point of time).
A distance denotes the length of interleaving of the vertex c. It is given by the following formula.
where |V| denotes the number of vertices and disk denotes the minimum number of edges from source vertex vs to c.
The weight of an ordering tuple is computed by weighted sum of all the three metrics calculated for each ordering tuple. It is given by the following equation.
R
ot=κP×Pot+κF×Fot+κDT×Dot
The relative weights, κP, κF and κDT indicate the relative importance to the metrics and sum up to 1.
The heuristics are modeled in such a way that, as the weight of an interleaving option increases, its rank decreases. Therefore, lower the weight, higher the rank.
The complete heuristic approach is explained hereinafter.
The algorithm as explained above uses reverse interleaving, so the interleaving begins at the penultimate sheet in the queue. The algorithm is explained in steps below.
Step-1: The algorithm selects a sheet's second side print operation and computes all its valid interleavings.
Step-2: All the valid interleavings are weighted and ranked using the metrics mentioned here-above. The interleaving with lowest weight will be given highest rank.
Step-3: Check the feasibility of the interleavings in the order of their ranking.
Step-4: Highest ranked feasible interleaving will be selected and its edges are added to the compulsory edges set and the interleaving will be added to the final set of ordered tuples OTsol. While computing each sheet's interleaving the schedule (start times) of the operations of sheets in the queue will be computed and will be used during ranking of the interleavings. This is denoted by T in the algorithm.
Final step: The algorithm finally returns the schedule after all sheets are interleaved.
The number of sheets that a printer can hold at any point of time, most importantly depends on the size of the sheets that are to be printed, on the number of input holders at the beginning of the printer, etc. But for this example the number is considered to be 60. And assuming the loop filling from merge-point 34A to merge-point 34A in
Because the printer can hold up to 92 sheets of smallest possible sheet size, below example assumes sheets are of smallest possible size. This means that a window according to this example may contain 92 sheets.
In a non-windowed case, a scheduler will compute interleavings for all sheets in the job. A job may contain any arbitrary number of sheets in it. Only after 95 sheets are scheduled, the printer begins printing. But in the windowed scheduler 373 according to the invention, instead of scheduling all sheets, the scheduler 373 schedules only those sheets that fill the printer. The printer needs no more than 92 sheets to generate valid schedules and therefore the number of sheets in the window is limited to 92. According to a preferred embodiment the scheduler 373 uses only the required number of sheets in contrast with the solution of the flowshop problem called “A re-entrant flowshop heuristic for online scheduling of the paper path in a large scale printer” as described by Umar Waqas et al. (“Proceedings of the 2015 Design, automation & Test in Europe Conference & Exhibition”. DATE '15. Grenoble, France: EDA Consortium, 2015, pp. 573-578. ISBN 978-3-9815370-4-8).
In
After scheduling each window, the scheduler 373 fixes schedules of only S sheets and not necessarily all sheets in order to make better interleaving choices with new sheets.
It is not profitable to move the window completely by 92 sheets because the pen-ultimate sheet in the window W0 (S-91) is interleaved using the exceptional interleaving, this means, every time the window moves completely by 92 sheets, the printer loop needs to be cleared before first sheet from the next window begins. This clearance consumes more time because, after emptying the loop, as explained above, the printer needs, for example, a maximum time of 92×400 ms time to reach a steady rate of printing a sheet every 400 ms.
As explained above, not moving the window completely by 92 sheets gives an opportunity for the scheduler 373 to explore new interleaving options for the sheets in the window. For example, in the first window W0 shown in
In order to explore new interleaving options for the sheets which remained in the window even after moving, the old interleavings need to be removed from the compulsory constraint edges set. This means, before the scheduler begins to interleave a next window, it needs to remove the interleavings of the sheets that were common to the previous window. For example, in
When the algorithm fixes the start times of certain operations, the printer can begin using these start times and begin printing. Therefore, when the window moves from these scheduled fixed sheets, the interleavings chosen in that window should not disturb these fixed schedules, otherwise it will cause errors during printing. Therefore, the selection criteria for interleavings changes in the windowed heuristic algorithm. In the next window interleavings should be chosen in such a way that, the interleavings should not only cause no positive cycles, but also should not change the fixed schedules of the sheets which left the window. This helps in maintaining the feasibility of the constraint graph. Only positive cycles are a problem. There are always cycles due to the reverse edge of due dates. But if there is a positive cycle, then it means that the assigned times are larger than the deadlines and therefore they are infeasible.
The algorithm is explained below in a set of steps.
Step-1: The algorithm selects the parameters to denote where the window begins and ends.
Step-2: Using reverse interleaving technique, the algorithm interleaves all the sheets in the window (from window end to window start).
Step-3: For each sheet, the algorithm computes all of its valid interleaving choices.
Step-4: These interleavings are weighted and ranked using the metrics mentioned before. The interleaving with lowest weight will be given highest rank.
Step-5: Select highest ranked feasible interleaving that does not disturb previously fixed start times.
Step-6: This interleaving's edges are added to compulsory edges set and the interleaving will be added to the final set of ordered tuples OTsol.
Step-7: Depending on how many number of sheets the window is moving, referred to as step S, the start times of the operations of the sheets leaving the window will be fixed, i.e., they are added to Tsol.
Step-8: Apart from the first step of sheets in the window whose schedules are fixed, all other sheet's interleavings are removed before scheduling the next window.
The above given algorithm discusses the windowed version of the scheduling algorithm according to the present invention.
The skilled person will recognise that other embodiments with respect to the printing system and the method are possible within the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
17157311.6 | Feb 2017 | EP | regional |
This application is a Continuation of International Application No. PCT/EP2018/053696, filed on Feb. 14, 2018, and for which priority is claimed under 35 U.S.C. § 120. PCT/EP2018/053696 claims priority under 35 U.S.C. § 119 to Application No. 17157311.6, filed in Europe on Feb. 22, 2017. The entirety of each of the above-identified applications is expressly incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/EP2018/053696 | Feb 2018 | US |
Child | 16540714 | US |