EP1473652A2 - Predictive and preemptive planning and scheduling for different job priorities system and method - Google Patents

Predictive and preemptive planning and scheduling for different job priorities system and method Download PDF

Info

Publication number
EP1473652A2
EP1473652A2 EP04009992A EP04009992A EP1473652A2 EP 1473652 A2 EP1473652 A2 EP 1473652A2 EP 04009992 A EP04009992 A EP 04009992A EP 04009992 A EP04009992 A EP 04009992A EP 1473652 A2 EP1473652 A2 EP 1473652A2
Authority
EP
European Patent Office
Prior art keywords
jobs
capabilities
work unit
less
job
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP04009992A
Other languages
German (de)
French (fr)
Other versions
EP1473652A3 (en
Inventor
Markus P. J. Fromherz
Daniel G. Bobrow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of EP1473652A2 publication Critical patent/EP1473652A2/en
Publication of EP1473652A3 publication Critical patent/EP1473652A3/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/80Management or planning

Definitions

  • This invention relates generally to the control and management of automated manufacturing systems, and more particularly to applying model-based planning and scheduling to reprioritization and reallocation of resources among jobs of differing priorities.
  • the current jobs may have reserved all the finishers, in which case a new job cannot be scheduled and executed until at least one of the current jobs has completed. In such cases, it would be desirable to interrupt or even abort long low-priority jobs if high-priority jobs enter the job queue.
  • Reconfigurable production systems in particular systems with parallel capabilities, should also allow one to reallocate some of the system's capabilities to higher-priority jobs. This would increase productivity and customer satisfaction.
  • a computer-controlled system provides for configuration-specific reprioritization of jobs for an automated manufacturing system having a number of modules with numerous alternative capabilities.
  • the computer-controlled system includes at least one system controller for planning and scheduling utilization of selected module capabilities in the production of jobs having not less than one work unit.
  • Module capabilities include the relative costs of the module capabilities.
  • said selected module capabilities include capabilities necessary to repair said not less than one work unit.
  • said selected module capabilities include capabilities necessary to purge and reproduce the work unit.
  • a method for configuration-specific reprioritization of jobs in a reconfigurable production system having a plurality of modules with a plurality of alternative capabilities for processing work units includes selecting at least one work unit from a job having at least one work unit and at least one priority to be planned for production. The capabilities necessary for executing the work unit are determined, as well as their availability for executing the work unit. This process is repeated until all work units have been planned. Those work units of a job for which sufficient module capabilities are not available are temporarily removed from consideration.
  • determining capabilities necessary for executing said work unit comprises identifying capabilities necessary to produce said work unit.
  • determining capabilities necessary for executing said work unit comprises identifying capabilities necessary to repair said work unit.
  • determining capabilities necessary for executing said work unit comprises identifying capabilities necessary to purge and reproduce said work unit.
  • each of said capabilities is assigned a cost.
  • solving for timing and selection variables of planned capabilities further comprises optimizing for cost.
  • determining capabilities necessary for executing said work unit further comprises limiting the module capabilities compared to a pre-identified subset of module capabilities.
  • said work unit comprises not less than one new work unit. In a further embodiment said work unit comprises not less than one in-process work unit.
  • Disclosed herein is a method and system that applies model-based planning and scheduling to reprioritization and reallocation of resources among arriving jobs of differing priorities within a system controller, in which the controller provides for continued use of all available system capabilities and reports system state and updated module models as necessary after each capability is executed.
  • the method inserts, plans, and schedules new jobs, while concurrently completing unfinished job elements correctly while taking into account their constraints, for example shared resources. In those instances in which an unfinished job cannot be interrupted (and later restarted) correctly, it is further decided whether to abort the unfinished job or to delay the inserted job.
  • the method attempts to create a new plan and schedule to produce the unfinished job elements and the remainder of the current jobs together with the new job(s) inserted, using the capabilities of the system and the original job constraints.
  • the system and method described herein is made possible by planning and scheduling from the current system state, inserting new jobs, and aborting and redoing work as necessary.
  • the system and method apply to control software used for multi-step production processes such as manufacturing, printing, or assembly and provide for the handling of complex operations over complex paths to provide flexible routing, optimal productivity, and optimal load balancing.
  • control software used for multi-step production processes such as manufacturing, printing, or assembly
  • complex operations over complex paths to provide flexible routing, optimal productivity, and optimal load balancing.
  • numerous specific details are set forth in order to provide a thorough understanding of the present invention. It would be apparent, however, to one skilled in the art to practice the invention without such specific details. In other instances, specific implementation details have not been shown in detail in order not to unnecessarily obscure the present invention.
  • Figure 1 illustrates a controller for planning and scheduling for different job priorities in conformance with one embodiment of the subject system.
  • system controller 110 receives descriptions of work units to be produced from any known type of job input source. These descriptions correspond to descriptions of the desired output products or other goals to be achieved. They may specify attributes (or properties) of the products, values or ranges or general constraints for these attributes, and possibly constraints on the timing of the production (e.g., deadlines), but generally without specifying how the products are to be produced. Descriptions of work units are typically grouped into jobs, and are received incrementally.
  • System controller 110 also receives, along paths 130, capability models and performance log information from each module 120 in the system.
  • the capability models are descriptions of how the modules move and transform work units, generally together with information about the attributes and timing of the work units. Models may be sent to the system controller only once when the production system is started up, or the models may be updated regularly or when changes occur. Such changes in the modules (and therefore in the models) may, for example, be the reconfiguration of the modules, changes in timing values, and the unavailability of resources (and thus some capabilities).
  • the capability models include, for example, timing constraints (e.g., the duration of execution of a capability, the time during which a resource is occupied, or the reservation of a resource), feature constraints (e.g., limits on the size of the work units being processed, transformation of the work units such as changing the orientation of a part or adding two parts together), and commands (e.g., the names or identifications of the operations corresponding to the capabilities, together with times and possibly other information).
  • timing constraints e.g., the duration of execution of a capability, the time during which a resource is occupied, or the reservation of a resource
  • feature constraints e.g., limits on the size of the work units being processed, transformation of the work units such as changing the orientation of a part or adding two parts together
  • commands e.g., the names or identifications of the operations corresponding to the capabilities, together with times and possibly other information.
  • the timing and feature constraints describe when and how a capability can be applied to a work unit.
  • the commands are the commands that are sent
  • Modules 120 may encompass many varying types of production systems, for example machine modules of a print engine, such as a feeder module, mark engine module, finisher module, or transport module.
  • modules 120 may include the analysis modules of a biotech screening system, which may comprise a preparation module, heating module, mixing module, analysis module, or transport robot.
  • Manufacturing line modules may include a machining module, assembling module, testing module, transport robot, or packaging module.
  • a packaging line may include a bottle filling module or a labeling module.
  • System controller 110 considers all possible system capabilities when searching for schedules for the desired work units.
  • Planning and scheduling some or all of the desired work units of one or more jobs results in a set of selected and scheduled capabilities.
  • the system controller 110 sends the instruction commands corresponding to the scheduled capabilities to modules 120 along paths 140.
  • Each of the modules then performs its task sequence for the completion of the specified job.
  • path 150 which illustrates the path of the work units being processed, work may cycle repeatedly within a particular module 120 before moving to the next module in succession, or work may cycle repeatedly among several modules before passing to a third module.
  • path 150 which illustrates the path of the work units being processed
  • work may cycle repeatedly within a particular module 120 before moving to the next module in succession, or work may cycle repeatedly among several modules before passing to a third module.
  • Only three modules 120 are illustrated for the purposes herein, it will be understood that a system may include numerous modules, depending on the complexity of the job requirements.
  • the modules may have various configurations within a system that is reconfigurable. Additionally there is also capability for operator feedback as to the work being scheduled on the modules and the state of the system at any
  • the system control software plans and schedules jobs by identifying job priorities, selecting capabilities, determining the timing variables of these capabilities and executing scheduled capabilities.
  • Figure 2 illustrates the functions of monitoring, reporting, and an approach to predictive and preemptive planning and scheduling for differing job priorities by the system controller.
  • method steps are described in terms of data received and provided to each subsequent step in the process.
  • Each of the steps 220, 230, and 240 in this process may be executed in sequence (one after the other) or concurrently. In either case, each step consumes data 225, 235, or discrepancies between schedule and execution provided by a previous step or another action within the system, and produces data 235, 245, and ultimately 270 for subsequent steps or other system operations.
  • Consuming and producing this data is generally done incrementally, where a step is processing one data item after another, but may also be done in batches, as will be obvious to one skilled in the art of real-time software.
  • a description of the work units 225, or job to be performed is provided to the controller.
  • Such work unit and job descriptions typically are provided incrementally.
  • Work unit descriptions for multiple jobs may be submitted in series or in parallel. New jobs may be submitted before previous jobs have been finished or even have been submitted completely.
  • the controller also has the models of the system modules available together with the current state of the system and information as to discrepancies between schedule and execution 260, e.g., which operations are currently performed by the modules, and any capabilities it may have previously planned and scheduled. From the set of submitted work unit descriptions, it is decided which should be planned and scheduled next. This selection is typically done in the same order as work units and jobs have been submitted, but it is also possible to start planning new jobs before previous jobs have been completely scheduled, for example taking into account the priorities of new jobs that have previously been unknown.
  • the selected work units 225 are then transmitted to step 220, which plans and schedules the capabilities for the selected work units, taking into consideration the capability model for each module.
  • This step is repeated for each work unit and diagnostic work unit selected in the previous step, and a set of scheduled capabilities 235 is created.
  • failures are identified and a recovery mode is identified based on schedule and execution discrepancy data from 260. Concretely, any (significant) discrepancy between schedule and execution points to a possible failure. (Failures may be either current faults that need intervention, or imminent faults that may still be avoided.)
  • the software has to identify whether the reported execution will still satisfy the constraints given by jobs and models. For example, if a work unit stays longer in a module than expected, will it overlap (i.e., collide) with other scheduled work units? If a work unit is delayed, will it still satisfy the precedence constraints with respect to other work units? If a work unit transformation (e.g., change in orientation) wasn't executed, is that critical? This reasoning can be done by modifying the schedule based on the module reports and then checking it against the constraints. If the constraints continue to be satisfied, no further action should be necessary. (This also allows the modules some autonomy in resolving local issues, which further improves robustness.)
  • the scheduler's facility to generate correct schedules can be used to detect if production is becoming inconsistent due to execution differences. For example, if operations on a work unit are delayed, work units of the same jobs may be produced out of order (and thus precedence constraints will be violated) or work units may collide (and thus resource constraints will be violated). By comparing and integrating such execution differences into its schedules, the scheduler can immediately detect such inconsistencies.
  • the detailed system state provides a basis for determining whether and how the system can recover from the failure. For example, a typical result of failure is that parts of a job will violate their precedence constraints (i.e., would come out in a different order than desired because of delays of some work units) or will not be produced at all (because modules that were scheduled to produce them went off-line). The state will help identify those parts, such that the system control software can recover, perhaps by re-planning or rerouting these jobs. System failure identification and failure recovery mode are provided to planning and scheduling step 220 for incorporation into the dynamic system schedule.
  • Scheduled capabilities 235 are in turn provided to step 240, at which the controller sends the commands 245 corresponding to the scheduled capabilities to the individual modules. This step is repeated for each scheduled capability. Modules incrementally report the execution of capabilities at the same level of detail as defined in their models.
  • a transport module may define a "move" capability with an input time, an output time, an input work unit (and its attributes), an output work unit (and its attributes), and some constraints between these (e.g., time constraints between the time variables, attribute transformations between the work unit variables, etc.); if the system control software selects and schedules that capability (determining values for the time and attribute variables), a command will be sent to the module to execute this capability at the given time, and the module will report back the actual values (or the differences to the expected values) for the model variables (times, attributes, resources).
  • These module reports 255 are logged at 250 and integrated to build a detailed log of the execution of its schedules.
  • the log may explicitly or implicitly include a history of the system's behavior. For example, instead of a single value for timing values, the log may maintain a distribution of values, including frequency or likelihood of occurrence. This information is then utilized to update the system status 260 and generate a system report 270.
  • the flowchart illustrates example operations utilized to accomplish predictive and preemptive planning in the presence of differing job priorities.
  • the planner/scheduler also includes new jobs and considers the various priorities associated with them.
  • the various priorities can, for example, be expressed in a cost model that considers not only the jobs' priorities, but also the cost of reproducing and/or delaying jobs. Inserting a high-priority job does not simply mean delaying or aborting lower-priority jobs.
  • a new job may simply be produced in parallel to the current jobs, perhaps with some slight re-planning for the current jobs.
  • a current job may be almost done and delaying a higher-priority job for a short time may be less costly than re-creating the current job. Only if the cost of delaying a higher-priority job is higher than the cost of aborting and recreating another job should that option be chosen.
  • the scheduler may even make these decisions at a finer granularity than jobs, namely individual work units.
  • the decisions of what to delay, shelve (e.g., in a buffer tray), or purge and recreate can be done due to detailed information about the system's capabilities, the system's state, the jobs' requirements on the system, and the user's desired objective function (e.g., minimizing the completion time of the highest priority job).
  • This approach further allows the user to make use of human intervention for decision making, e.g., by presenting the operator with several options based on the scheduler's information before committing to a course of action.
  • the controller selects a work unit to be planned, taking into consideration new, in-process, or completed jobs.
  • the controller determines, at 320, the capabilities necessary to produce, repair, or purge and reproduce the work unit.
  • a capability to repair the schedule for a work unit includes, for example, the rerouting of the work unit or the delay of the work unit on the previously determined route.
  • Capabilities for recovery, purging and recreation capabilities are all assigned costs.
  • the total cost of a schedule is the sum of the costs of all selected capabilities. Thus, finishing an almost completed job should cost much less than purging and recreating it, while the incremental cost of delaying the higher-priority job for a brief time should be minor.
  • a current job may be purged only if a job of much higher priority is submitted. If all jobs have the same priorities or the priorities are only slightly different or a decision can be made without considering all possible scenarios (e.g., the current job is almost completed), the option to purge and reproduce the current job when a new job arrives doesn't even have to be considered. Consequently, 320 may alternatively include a decision component that knows certain heuristics about the jobs (such as those just mentioned) that help the planner avoid explicitly comparing all possible capabilities in detail.
  • the controller determines what capabilities are available at 330. If the capabilities sufficient to complete a job are unavailable, subsequent work units of the same job are temporarily removed from consideration at 340 and the controller returns to 310 to select a work unit to be planned. If sufficient capabilities are available, timing constraints modified by selection variables are posted at 350. The controller also posts constraints on selection variables and common modules at 360. Real-time constraints and order constraints are posted at 370, and cost values for all selected capabilities are posted at 380. The controller then returns to 310 and selects another work unit to be planned.
  • objectives may be computed in different ways, including objectives from individual work units (e.g., sum of priorities and schedule lengths for all individual work units) and objectives for entire jobs as planned and scheduled so far (e.g., priority and schedule length for the last work unit in a job).
  • a flow chart illustrates the scheduling function of the controller.
  • the controller selects those capabilities to be scheduled, which may be all or a subset of the capabilities provided by the planning step.
  • the controller reserves exit resources for planned capabilities within the same jobs at step 420. Since all work units of the same job are constrained to be delivered to the same final exit port, the resource connected to that same final exit port, corresponding for example to a finisher stack in a print engine, cannot be used by other jobs until the job is finished.
  • the controller solves for timing and selection variables of planned capabilities while optimizing for cost. This can be accomplished using a number of constraint solving or constrained optimization techniques, which are known to those skilled in the art.
  • code as used herein, or “program” as used herein, is any plurality of binary values or any executable, interpreted or compiled code which can be used by a computer or execution device to perform a task. This code or program can be written in any one of several known computer languages.
  • a "computer”, as used herein, can mean any device which stores, processes, routes, manipulates, or performs like operation on data.

Abstract

For an automated manufacturing system having a number of modules with numerous alternative capabilities, a computer-controlled system provides for configuration-specific reprioritization of jobs. The computer-controlled system includes at least one system controller for planning and scheduling utilization of selected module capabilities in the production of jobs having not less than one work unit. Module capabilities include the relative costs of the module capabilities.

Description

    BACKGROUND OF THE INVENTION
  • This invention relates generally to the control and management of automated manufacturing systems, and more particularly to applying model-based planning and scheduling to reprioritization and reallocation of resources among jobs of differing priorities.
  • Current system control software for production systems requires that jobs being executed fully complete before other jobs can be executed. This is unsatisfactory for high-volume systems, in which jobs are often long, particularly in those instances in which new jobs have a higher priority than jobs being produced, and instead of waiting for a long, lower-priority job to finish, one would like to produce those new jobs in parallel or instead of the lower-priority jobs. Scheduling and system control as implemented for traditional, in-line systems, or even as proposed for reconfigurable systems, only allows adding in new jobs if they do not conflict with jobs being executed. For example, in a printing system, if the system has sufficient capacity and the necessary resources are available, a new job could be inserted at the front of the job queue and thus delay the remainder of unfinished jobs. However, the current jobs may have reserved all the finishers, in which case a new job cannot be scheduled and executed until at least one of the current jobs has completed. In such cases, it would be desirable to interrupt or even abort long low-priority jobs if high-priority jobs enter the job queue. Reconfigurable production systems, in particular systems with parallel capabilities, should also allow one to reallocate some of the system's capabilities to higher-priority jobs. This would increase productivity and customer satisfaction.
  • To accomplish this end, it would be useful for the system control software, with help from the planner and scheduler, to make use of the system's various modules and often extensive capabilities to reroute jobs in process to permit work on new higher priority jobs, or to intelligently purge parts of a job and restart it later.
  • SUMMARY OF THE INVENTION
  • Briefly stated, and in accordance with one aspect of the present invention, a computer-controlled system provides for configuration-specific reprioritization of jobs for an automated manufacturing system having a number of modules with numerous alternative capabilities. The computer-controlled system includes at least one system controller for planning and scheduling utilization of selected module capabilities in the production of jobs having not less than one work unit. Module capabilities include the relative costs of the module capabilities.
  • In one embodiment said selected module capabilities include capabilities necessary to repair said not less than one work unit.
  • In a further embodiment said selected module capabilities include capabilities necessary to purge and reproduce the work unit.
  • In accordance with another aspect of the invention, there is disclosed a method for configuration-specific reprioritization of jobs in a reconfigurable production system having a plurality of modules with a plurality of alternative capabilities for processing work units. The method includes selecting at least one work unit from a job having at least one work unit and at least one priority to be planned for production. The capabilities necessary for executing the work unit are determined, as well as their availability for executing the work unit. This process is repeated until all work units have been planned. Those work units of a job for which sufficient module capabilities are not available are temporarily removed from consideration.
  • In one embodiment determining capabilities necessary for executing said work unit comprises identifying capabilities necessary to produce said work unit.
  • In a further embodiment determining capabilities necessary for executing said work unit comprises identifying capabilities necessary to repair said work unit.
  • In a further embodiment determining capabilities necessary for executing said work unit comprises identifying capabilities necessary to purge and reproduce said work unit.
  • In a further embodiment each of said capabilities is assigned a cost.
  • In a further embodiment the method further comprises:
  • selecting capabilities to be scheduled;
  • reserving exit resources for planned capabilities with the same jobs; and
  • solving for timing and selection variables of planned capabilities.
  • In a further embodiment solving for timing and selection variables of planned capabilities further comprises optimizing for cost.
  • In a further embodiment determining capabilities necessary for executing said work unit further comprises limiting the module capabilities compared to a pre-identified subset of module capabilities.
  • In a further embodiment said work unit comprises not less than one new work unit.
    In a further embodiment said work unit comprises not less than one in-process work unit.
  • In a further embodiment the method further comprises:
  • posting timing constraints modified by selection variables;
  • posting constraints on selection variables and common modules;
  • posting real-time constraints and order constraints; and
  • posting cost values for all selected capabilities.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The foregoing and other features of the instant invention will be apparent and easily understood from a further reading of the specification, claims and by reference to the accompanying drawings in which:
  • FIG. 1 illustrates a system for predictive and preemptive planning and scheduling for different job priorities in accordance with one embodiment of the subject invention;
  • FIG. 2 provides a flow diagram detailing the flow of operations to accomplish predictive planning and scheduling for different job priorities in accordance with one embodiment of the subject invention;
  • FIG. 3 provides a flow chart detailing the ordering of operations to accomplish predictive and preemptive planning for different job priorities in accordance with an embodiment of the subject invention; and
  • FIG. 4 provides a flow chart detailing the ordering of operations to accomplish scheduling in the presence of predictive and preemptive planning for different job priorities in accordance with one embodiment of the subject invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • Disclosed herein is a method and system that applies model-based planning and scheduling to reprioritization and reallocation of resources among arriving jobs of differing priorities within a system controller, in which the controller provides for continued use of all available system capabilities and reports system state and updated module models as necessary after each capability is executed. To accomplish this, the method inserts, plans, and schedules new jobs, while concurrently completing unfinished job elements correctly while taking into account their constraints, for example shared resources. In those instances in which an unfinished job cannot be interrupted (and later restarted) correctly, it is further decided whether to abort the unfinished job or to delay the inserted job. Given the system state in a constraint-based format, the method attempts to create a new plan and schedule to produce the unfinished job elements and the remainder of the current jobs together with the new job(s) inserted, using the capabilities of the system and the original job constraints. In contrast to existing approaches to scheduling, the system and method described herein is made possible by planning and scheduling from the current system state, inserting new jobs, and aborting and redoing work as necessary.
  • The system and method apply to control software used for multi-step production processes such as manufacturing, printing, or assembly and provide for the handling of complex operations over complex paths to provide flexible routing, optimal productivity, and optimal load balancing. In the following description numerous specific details are set forth in order to provide a thorough understanding of the present invention. It would be apparent, however, to one skilled in the art to practice the invention without such specific details. In other instances, specific implementation details have not been shown in detail in order not to unnecessarily obscure the present invention.
  • Turning now to the drawings, wherein the purpose is for illustrating the embodiments of the system and method, and not for limiting the same, Figure 1 illustrates a controller for planning and scheduling for different job priorities in conformance with one embodiment of the subject system. In a system 100, system controller 110 receives descriptions of work units to be produced from any known type of job input source. These descriptions correspond to descriptions of the desired output products or other goals to be achieved. They may specify attributes (or properties) of the products, values or ranges or general constraints for these attributes, and possibly constraints on the timing of the production (e.g., deadlines), but generally without specifying how the products are to be produced. Descriptions of work units are typically grouped into jobs, and are received incrementally. Because system control, including planning and scheduling, as well as execution, happens incrementally, these operations all occur concurrently. Therefore, it may not always be possible or desirable to generate a plan and then execute it without modification. System controller 110 also receives, along paths 130, capability models and performance log information from each module 120 in the system. The capability models are descriptions of how the modules move and transform work units, generally together with information about the attributes and timing of the work units. Models may be sent to the system controller only once when the production system is started up, or the models may be updated regularly or when changes occur. Such changes in the modules (and therefore in the models) may, for example, be the reconfiguration of the modules, changes in timing values, and the unavailability of resources (and thus some capabilities). The capability models include, for example, timing constraints (e.g., the duration of execution of a capability, the time during which a resource is occupied, or the reservation of a resource), feature constraints (e.g., limits on the size of the work units being processed, transformation of the work units such as changing the orientation of a part or adding two parts together), and commands (e.g., the names or identifications of the operations corresponding to the capabilities, together with times and possibly other information). The timing and feature constraints describe when and how a capability can be applied to a work unit. The commands are the commands that are sent to the modules in order to start the corresponding operations.
  • Modules 120 may encompass many varying types of production systems, for example machine modules of a print engine, such as a feeder module, mark engine module, finisher module, or transport module. Alternatively, modules 120 may include the analysis modules of a biotech screening system, which may comprise a preparation module, heating module, mixing module, analysis module, or transport robot. Manufacturing line modules may include a machining module, assembling module, testing module, transport robot, or packaging module. A packaging line may include a bottle filling module or a labeling module. System controller 110 considers all possible system capabilities when searching for schedules for the desired work units.
  • Planning and scheduling some or all of the desired work units of one or more jobs results in a set of selected and scheduled capabilities. With these available, the system controller 110 sends the instruction commands corresponding to the scheduled capabilities to modules 120 along paths 140. Each of the modules then performs its task sequence for the completion of the specified job. As can be seen in path 150, which illustrates the path of the work units being processed, work may cycle repeatedly within a particular module 120 before moving to the next module in succession, or work may cycle repeatedly among several modules before passing to a third module. Although only three modules 120 are illustrated for the purposes herein, it will be understood that a system may include numerous modules, depending on the complexity of the job requirements. The modules may have various configurations within a system that is reconfigurable. Additionally there is also capability for operator feedback as to the work being scheduled on the modules and the state of the system at any point in time.
  • The system control software plans and schedules jobs by identifying job priorities, selecting capabilities, determining the timing variables of these capabilities and executing scheduled capabilities. Figure 2 illustrates the functions of monitoring, reporting, and an approach to predictive and preemptive planning and scheduling for differing job priorities by the system controller. In this diagram, method steps are described in terms of data received and provided to each subsequent step in the process. Each of the steps 220, 230, and 240 in this process may be executed in sequence (one after the other) or concurrently. In either case, each step consumes data 225, 235, or discrepancies between schedule and execution provided by a previous step or another action within the system, and produces data 235, 245, and ultimately 270 for subsequent steps or other system operations. Consuming and producing this data is generally done incrementally, where a step is processing one data item after another, but may also be done in batches, as will be obvious to one skilled in the art of real-time software. Initially, a description of the work units 225, or job to be performed, is provided to the controller. Such work unit and job descriptions typically are provided incrementally. Work unit descriptions for multiple jobs may be submitted in series or in parallel. New jobs may be submitted before previous jobs have been finished or even have been submitted completely.
  • The controller also has the models of the system modules available together with the current state of the system and information as to discrepancies between schedule and execution 260, e.g., which operations are currently performed by the modules, and any capabilities it may have previously planned and scheduled. From the set of submitted work unit descriptions, it is decided which should be planned and scheduled next. This selection is typically done in the same order as work units and jobs have been submitted, but it is also possible to start planning new jobs before previous jobs have been completely scheduled, for example taking into account the priorities of new jobs that have previously been unknown. The selected work units 225 are then transmitted to step 220, which plans and schedules the capabilities for the selected work units, taking into consideration the capability model for each module. This step is repeated for each work unit and diagnostic work unit selected in the previous step, and a set of scheduled capabilities 235 is created. At 230, failures are identified and a recovery mode is identified based on schedule and execution discrepancy data from 260. Concretely, any (significant) discrepancy between schedule and execution points to a possible failure. (Failures may be either current faults that need intervention, or imminent faults that may still be avoided.)
  • Thus, the software has to identify whether the reported execution will still satisfy the constraints given by jobs and models. For example, if a work unit stays longer in a module than expected, will it overlap (i.e., collide) with other scheduled work units? If a work unit is delayed, will it still satisfy the precedence constraints with respect to other work units? If a work unit transformation (e.g., change in orientation) wasn't executed, is that critical? This reasoning can be done by modifying the schedule based on the module reports and then checking it against the constraints. If the constraints continue to be satisfied, no further action should be necessary. (This also allows the modules some autonomy in resolving local issues, which further improves robustness.)
  • By updating or attempting to update schedules according to the module reports, the scheduler's facility to generate correct schedules (e.g., constraint solver) can be used to detect if production is becoming inconsistent due to execution differences. For example, if operations on a work unit are delayed, work units of the same jobs may be produced out of order (and thus precedence constraints will be violated) or work units may collide (and thus resource constraints will be violated). By comparing and integrating such execution differences into its schedules, the scheduler can immediately detect such inconsistencies.
  • If the constraints are no longer satisfied, the detailed system state provides a basis for determining whether and how the system can recover from the failure. For example, a typical result of failure is that parts of a job will violate their precedence constraints (i.e., would come out in a different order than desired because of delays of some work units) or will not be produced at all (because modules that were scheduled to produce them went off-line). The state will help identify those parts, such that the system control software can recover, perhaps by re-planning or rerouting these jobs. System failure identification and failure recovery mode are provided to planning and scheduling step 220 for incorporation into the dynamic system schedule.
  • Scheduled capabilities 235 are in turn provided to step 240, at which the controller sends the commands 245 corresponding to the scheduled capabilities to the individual modules. This step is repeated for each scheduled capability. Modules incrementally report the execution of capabilities at the same level of detail as defined in their models. For example, a transport module may define a "move" capability with an input time, an output time, an input work unit (and its attributes), an output work unit (and its attributes), and some constraints between these (e.g., time constraints between the time variables, attribute transformations between the work unit variables, etc.); if the system control software selects and schedules that capability (determining values for the time and attribute variables), a command will be sent to the module to execute this capability at the given time, and the module will report back the actual values (or the differences to the expected values) for the model variables (times, attributes, resources). These module reports 255 are logged at 250 and integrated to build a detailed log of the execution of its schedules. The log may explicitly or implicitly include a history of the system's behavior. For example, instead of a single value for timing values, the log may maintain a distribution of values, including frequency or likelihood of occurrence. This information is then utilized to update the system status 260 and generate a system report 270.
  • Turning now to Figure 3, the flowchart illustrates example operations utilized to accomplish predictive and preemptive planning in the presence of differing job priorities. In this example embodiment, the planner/scheduler also includes new jobs and considers the various priorities associated with them. The various priorities can, for example, be expressed in a cost model that considers not only the jobs' priorities, but also the cost of reproducing and/or delaying jobs. Inserting a high-priority job does not simply mean delaying or aborting lower-priority jobs. Depending on the current state and capabilities of the system, a new job may simply be produced in parallel to the current jobs, perhaps with some slight re-planning for the current jobs. In other cases, a current job may be almost done and delaying a higher-priority job for a short time may be less costly than re-creating the current job. Only if the cost of delaying a higher-priority job is higher than the cost of aborting and recreating another job should that option be chosen. The scheduler may even make these decisions at a finer granularity than jobs, namely individual work units. With the constraint-based scheduler, the decisions of what to delay, shelve (e.g., in a buffer tray), or purge and recreate can be done due to detailed information about the system's capabilities, the system's state, the jobs' requirements on the system, and the user's desired objective function (e.g., minimizing the completion time of the highest priority job). This approach further allows the user to make use of human intervention for decision making, e.g., by presenting the operator with several options based on the scheduler's information before committing to a course of action.
  • At 310 the controller selects a work unit to be planned, taking into consideration new, in-process, or completed jobs. The controller then determines, at 320, the capabilities necessary to produce, repair, or purge and reproduce the work unit. A capability to repair the schedule for a work unit includes, for example, the rerouting of the work unit or the delay of the work unit on the previously determined route. Capabilities for recovery, purging and recreation capabilities are all assigned costs. The total cost of a schedule is the sum of the costs of all selected capabilities. Thus, finishing an almost completed job should cost much less than purging and recreating it, while the incremental cost of delaying the higher-priority job for a brief time should be minor. Obviously, the converse would be true in those instances in which the cost of delaying a higher-priority job is higher than the cost of aborting and recreating another job, and thus aborting a lower-priority job would be chosen. Whenever possible, keeping a current plan and simply adding new jobs should have the lowest cost (no delays and no extra operations to execute), if that is an option.
  • The planner constantly revisits and questions previous decisions concerning scheduling as new jobs are received. For example, a current job may be purged only if a job of much higher priority is submitted. If all jobs have the same priorities or the priorities are only slightly different or a decision can be made without considering all possible scenarios (e.g., the current job is almost completed), the option to purge and reproduce the current job when a new job arrives doesn't even have to be considered. Consequently, 320 may alternatively include a decision component that knows certain heuristics about the jobs (such as those just mentioned) that help the planner avoid explicitly comparing all possible capabilities in detail.
  • The controller then determines what capabilities are available at 330. If the capabilities sufficient to complete a job are unavailable, subsequent work units of the same job are temporarily removed from consideration at 340 and the controller returns to 310 to select a work unit to be planned. If sufficient capabilities are available, timing constraints modified by selection variables are posted at 350. The controller also posts constraints on selection variables and common modules at 360. Real-time constraints and order constraints are posted at 370, and cost values for all selected capabilities are posted at 380. The controller then returns to 310 and selects another work unit to be planned.
  • One example of pseudo code for planning and scheduling for different job priorities presented herein posts the entire (disjunctive) problem to the constraint store and uses Boolean variables to select among capabilities in order to plan and schedule at the same time. As one skilled in the art would appreciate, other approaches could be utilized, for example, the different alternative capabilities could be posted one after the other, with the search procedure backtracking over the selection and posting of alternative capabilities as needed. Such alternate approaches are fully contemplated by the specification and scope of the claims herein.
    Figure 00100001
    Figure 00110001
  • It will be appreciated that objectives may be computed in different ways, including objectives from individual work units (e.g., sum of priorities and schedule lengths for all individual work units) and objectives for entire jobs as planned and scheduled so far (e.g., priority and schedule length for the last work unit in a job).
  • Turning now to Figure 4, a flow chart illustrates the scheduling function of the controller. Initially, in step 410, the controller selects those capabilities to be scheduled, which may be all or a subset of the capabilities provided by the planning step. The controller then reserves exit resources for planned capabilities within the same jobs at step 420. Since all work units of the same job are constrained to be delivered to the same final exit port, the resource connected to that same final exit port, corresponding for example to a finisher stack in a print engine, cannot be used by other jobs until the job is finished. At step 430 the controller then solves for timing and selection variables of planned capabilities while optimizing for cost. This can be accomplished using a number of constraint solving or constrained optimization techniques, which are known to those skilled in the art.
  • While the present invention has been illustrated and described with reference to specific embodiments, further modification and improvements will occur to those skilled in the art. For example, various simplifications and pre-compilations of this approach may be possible. For example, an approximating heuristic may determine whether to abort or finish current jobs, based simply on the number of completed and unfinished work units in the job. Additionally, "code" as used herein, or "program" as used herein, is any plurality of binary values or any executable, interpreted or compiled code which can be used by a computer or execution device to perform a task. This code or program can be written in any one of several known computer languages. A "computer", as used herein, can mean any device which stores, processes, routes, manipulates, or performs like operation on data.

Claims (10)

  1. A computer controlled system for configuration-specific reprioritization of jobs in a reconfigurable production system having a plurality of modules with a plurality of alternative capabilities for processing work units, the system comprising:
    a system controller;
    at least one planning function for planning utilization of selected module capabilities in the production of jobs having not less than one work unit, wherein said module capabilities include the relative costs of said module capabilities; and
    at least one scheduling function for scheduling utilization of said selected module capabilities in the production of said jobs having not less than one work unit.
  2. The system for configuration-specific reprioritization of jobs in a reconfigurable production system according to claim 1, further comprising at least one function for identifying performance failure of not less than one of said selected module capabilities in the production of said jobs having not less than one work unit.
  3. The system for configuration-specific reprioritization of jobs in a reconfigurable production system according to claim 1, further comprising at least one function for recovering from performance failure of not less than one of said selected module capabilities in the production of said jobs having not less than one work unit.
  4. The system for configuration-specific reprioritization of jobs in a reconfigurable production system according to claim 1, wherein said function for planning utilization of selected module capabilities comprises:
    means for selecting not less than one work unit to be planned; and
    means for determining capabilities associated with said not less than one work unit to be planned.
  5. The system for configuration-specific reprioritization of jobs in a reconfigurable production system according to claim 4, wherein said not less than one work unit to be planned is associated with not less than one priority.
  6. The system for configuration-specific reprioritization of jobs in a reconfigurable production system according to claim 5, wherein said not less than one priority is expressed in a cost model.
  7. The system for configuration-specific reprioritization of jobs in a reconfigurable production system according to claim 1, wherein said not less than one work unit comprises not less than one new work unit.
  8. The system for configuration-specific reprioritization of jobs in a reconfigurable production system according to claim 1, wherein said planning function further comprises:
    at least one function for determining module capabilities available in the reconfigurable production system;
    at least one function for posting timing constraints modified by selection variables;
    at least one function for posting constraints on selection variables and common modules;
    at least one function for posting real-time constraints and order constraints;
    at least one function for posting cost values for all selected capabilities; and at least one function for removing Subsequent work units of the same job temporarily from consideration.
  9. The system for configuration-specific reprioritization of jobs in a reconfigurable production system according to claim 1, wherein said selected module capabilities include capabilities necessary to produce said not less than one work unit.
  10. A method for configuration-specific reprioritization of jobs in a reconfigurable production system having a plurality of modules with a plurality of alternative capabilities for processing work units, the method comprising:
    selecting not less than one work unit to be planned in the production of at least one job, wherein said job includes not less than one work unit and not less than one priority;
    determining capabilities necessary for executing said work unit;
    determining whether sufficient module capabilities are available for executing said work unit;
    repeating selecting not less than one work unit to be planned, determining capabilities necessary for executing said work unit, and determining whether sufficient module capabilities are available for executing said work unit until all work units have been planned; and
    removing temporarily from consideration any work unit of a job for which sufficient module capabilities for executing said job are not available.
EP04009992A 2003-04-28 2004-04-27 Predictive and preemptive planning and scheduling for different job priorities system and method Ceased EP1473652A3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/424,661 US6895292B2 (en) 2003-04-28 2003-04-28 Predictive and preemptive planning and scheduling for different job priorities system and method
US424661 2003-04-28

Publications (2)

Publication Number Publication Date
EP1473652A2 true EP1473652A2 (en) 2004-11-03
EP1473652A3 EP1473652A3 (en) 2005-02-02

Family

ID=32990352

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04009992A Ceased EP1473652A3 (en) 2003-04-28 2004-04-27 Predictive and preemptive planning and scheduling for different job priorities system and method

Country Status (3)

Country Link
US (1) US6895292B2 (en)
EP (1) EP1473652A3 (en)
JP (1) JP4571819B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092086A (en) * 2011-10-28 2013-05-08 上海宝信软件股份有限公司 Control method and control system of multiple-step competing batch charging

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7226049B2 (en) * 2003-06-06 2007-06-05 Xerox Corporation Universal flexible plural printer to plural finisher sheet integration system
JP4485763B2 (en) * 2003-07-10 2010-06-23 株式会社日立製作所 Operation management method and apparatus
US20050203655A1 (en) * 2004-03-11 2005-09-15 Taiwan Semiconductor Manufacturing Co. Scheduling system and method for avoiding low equipment utilization
US7512455B2 (en) * 2004-03-29 2009-03-31 Palo Alto Research Center Incorporated Method for self-synchronization of modular production systems
US7185888B2 (en) * 2004-03-29 2007-03-06 Palo Alto Research Center Incorporated Rotational jam clearance apparatus
US7396012B2 (en) * 2004-06-30 2008-07-08 Xerox Corporation Flexible paper path using multidirectional path modules
US7188929B2 (en) * 2004-08-13 2007-03-13 Xerox Corporation Parallel printing architecture with containerized image marking engines
US7542059B2 (en) * 2006-03-17 2009-06-02 Xerox Corporation Page scheduling for printing architectures
US7123873B2 (en) * 2004-08-23 2006-10-17 Xerox Corporation Printing system with inverter disposed for media velocity buffering and registration
US7742185B2 (en) 2004-08-23 2010-06-22 Xerox Corporation Print sequence scheduling for reliability
US8407077B2 (en) * 2006-02-28 2013-03-26 Palo Alto Research Center Incorporated System and method for manufacturing system design and shop scheduling using network flow modeling
US7308218B2 (en) * 2005-06-14 2007-12-11 Xerox Corporation Warm-up of multiple integrated marking engines
US20070002085A1 (en) * 2005-06-30 2007-01-04 Xerox Corporation High availability printing systems
US9250967B2 (en) * 2004-08-23 2016-02-02 Palo Alto Research Center Incorporated Model-based planning with multi-capacity resources
US7649645B2 (en) 2005-06-21 2010-01-19 Xerox Corporation Method of ordering job queue of marking systems
US7787138B2 (en) 2005-05-25 2010-08-31 Xerox Corporation Scheduling system
US7224913B2 (en) * 2005-05-05 2007-05-29 Xerox Corporation Printing system and scheduling method
US7245838B2 (en) * 2005-06-20 2007-07-17 Xerox Corporation Printing platform
US7302199B2 (en) * 2005-05-25 2007-11-27 Xerox Corporation Document processing system and methods for reducing stress therein
US7024152B2 (en) * 2004-08-23 2006-04-04 Xerox Corporation Printing system with horizontal highway and single pass duplex
US7619769B2 (en) * 2005-05-25 2009-11-17 Xerox Corporation Printing system
US7136616B2 (en) * 2004-08-23 2006-11-14 Xerox Corporation Parallel printing architecture using image marking engine modules
US7493055B2 (en) * 2006-03-17 2009-02-17 Xerox Corporation Fault isolation of visible defects with manual module shutdown options
US7751072B2 (en) * 2004-09-29 2010-07-06 Xerox Corporation Automated modification of a marking engine in a printing system
JP4460411B2 (en) * 2004-10-01 2010-05-12 本田技研工業株式会社 Robot controller
US7412180B2 (en) * 2004-11-30 2008-08-12 Xerox Corporation Glossing system for use in a printing system
US7791751B2 (en) * 2004-11-30 2010-09-07 Palo Alto Research Corporation Printing systems
US7305194B2 (en) * 2004-11-30 2007-12-04 Xerox Corporation Xerographic device streak failure recovery
US7162172B2 (en) * 2004-11-30 2007-01-09 Xerox Corporation Semi-automatic image quality adjustment for multiple marking engine systems
US7283762B2 (en) 2004-11-30 2007-10-16 Xerox Corporation Glossing system for use in a printing architecture
US7245856B2 (en) * 2004-11-30 2007-07-17 Xerox Corporation Systems and methods for reducing image registration errors
US20060114497A1 (en) * 2004-11-30 2006-06-01 Xerox Corporation Printing system
JP4450205B2 (en) * 2004-12-24 2010-04-14 ブラザー工業株式会社 Inkjet recording device
US20060173723A1 (en) * 2005-01-28 2006-08-03 Raytheon Company Scheduler
US7540484B2 (en) * 2005-02-02 2009-06-02 Xerox Corporation System of opposing alternate higher speed sheet feeding from the same sheet stack
US7226158B2 (en) * 2005-02-04 2007-06-05 Xerox Corporation Printing systems
US7791741B2 (en) * 2005-04-08 2010-09-07 Palo Alto Research Center Incorporated On-the-fly state synchronization in a distributed system
US8081329B2 (en) 2005-06-24 2011-12-20 Xerox Corporation Mixed output print control method and system
US7873962B2 (en) * 2005-04-08 2011-01-18 Xerox Corporation Distributed control systems and methods that selectively activate respective coordinators for respective tasks
US8819103B2 (en) * 2005-04-08 2014-08-26 Palo Alto Research Center, Incorporated Communication in a distributed system
US8014024B2 (en) 2005-03-02 2011-09-06 Xerox Corporation Gray balance for a printing system of multiple marking engines
US7416185B2 (en) * 2005-03-25 2008-08-26 Xerox Corporation Inverter with return/bypass paper path
US7258340B2 (en) * 2005-03-25 2007-08-21 Xerox Corporation Sheet registration within a media inverter
US7697151B2 (en) * 2005-03-25 2010-04-13 Xerox Corporation Image quality control method and apparatus for multiple marking engine systems
US7206536B2 (en) * 2005-03-29 2007-04-17 Xerox Corporation Printing system with custom marking module and method of printing
US7245844B2 (en) * 2005-03-31 2007-07-17 Xerox Corporation Printing system
US7444108B2 (en) * 2005-03-31 2008-10-28 Xerox Corporation Parallel printing architecture with parallel horizontal printing modules
US7272334B2 (en) * 2005-03-31 2007-09-18 Xerox Corporation Image on paper registration alignment
US7706007B2 (en) * 2005-04-08 2010-04-27 Palo Alto Research Center Incorporated Synchronization in a distributed system
US7566053B2 (en) * 2005-04-19 2009-07-28 Xerox Corporation Media transport system
US7593130B2 (en) * 2005-04-20 2009-09-22 Xerox Corporation Printing systems
US20060244980A1 (en) * 2005-04-27 2006-11-02 Xerox Corporation Image quality adjustment method and system
US20060268287A1 (en) * 2005-05-25 2006-11-30 Xerox Corporation Automated promotion of monochrome jobs for HLC production printers
US7486416B2 (en) * 2005-06-02 2009-02-03 Xerox Corporation Inter-separation decorrelator
US8004729B2 (en) * 2005-06-07 2011-08-23 Xerox Corporation Low cost adjustment method for printing systems
US7451697B2 (en) * 2005-06-24 2008-11-18 Xerox Corporation Printing system
US7387297B2 (en) * 2005-06-24 2008-06-17 Xerox Corporation Printing system sheet feeder using rear and front nudger rolls
US7310493B2 (en) * 2005-06-24 2007-12-18 Xerox Corporation Multi-unit glossing subsystem for a printing device
US7433627B2 (en) * 2005-06-28 2008-10-07 Xerox Corporation Addressable irradiation of images
US8259369B2 (en) 2005-06-30 2012-09-04 Xerox Corporation Color characterization or calibration targets with noise-dependent patch size or number
US8203768B2 (en) * 2005-06-30 2012-06-19 Xerox Corporaiton Method and system for processing scanned patches for use in imaging device calibration
US7647018B2 (en) * 2005-07-26 2010-01-12 Xerox Corporation Printing system
US7496412B2 (en) 2005-07-29 2009-02-24 Xerox Corporation Control method using dynamic latitude allocation and setpoint modification, system using the control method, and computer readable recording media containing the control method
US8719825B2 (en) * 2005-08-17 2014-05-06 Sap Ag Prompting for execution or delay of scheduled job
US7466940B2 (en) * 2005-08-22 2008-12-16 Xerox Corporation Modular marking architecture for wide media printing platform
US7474861B2 (en) * 2005-08-30 2009-01-06 Xerox Corporation Consumable selection in a printing system
US7356376B1 (en) 2005-09-08 2008-04-08 At&T Corp Work when ready load balancing using critical dates
US7911652B2 (en) * 2005-09-08 2011-03-22 Xerox Corporation Methods and systems for determining banding compensation parameters in printing systems
US7430380B2 (en) * 2005-09-23 2008-09-30 Xerox Corporation Printing system
US7495799B2 (en) * 2005-09-23 2009-02-24 Xerox Corporation Maximum gamut strategy for the printing systems
US7444088B2 (en) * 2005-10-11 2008-10-28 Xerox Corporation Printing system with balanced consumable usage
US7811017B2 (en) * 2005-10-12 2010-10-12 Xerox Corporation Media path crossover for printing system
US8711435B2 (en) * 2005-11-04 2014-04-29 Xerox Corporation Method for correcting integrating cavity effect for calibration and/or characterization targets
US7719716B2 (en) * 2005-11-04 2010-05-18 Xerox Corporation Scanner characterization for printer calibration
US7660460B2 (en) * 2005-11-15 2010-02-09 Xerox Corporation Gamut selection in multi-engine systems
US7280771B2 (en) * 2005-11-23 2007-10-09 Xerox Corporation Media pass through mode for multi-engine system
US7519314B2 (en) * 2005-11-28 2009-04-14 Xerox Corporation Multiple IOT photoreceptor belt seam synchronization
US7706737B2 (en) 2005-11-30 2010-04-27 Xerox Corporation Mixed output printing system
US7922288B2 (en) * 2005-11-30 2011-04-12 Xerox Corporation Printing system
US7636543B2 (en) * 2005-11-30 2009-12-22 Xerox Corporation Radial merge module for printing system
US7575232B2 (en) * 2005-11-30 2009-08-18 Xerox Corporation Media path crossover clearance for printing system
US7912416B2 (en) * 2005-12-20 2011-03-22 Xerox Corporation Printing system architecture with center cross-over and interposer by-pass path
US7756428B2 (en) * 2005-12-21 2010-07-13 Xerox Corp. Media path diagnostics with hyper module elements
US7826090B2 (en) * 2005-12-21 2010-11-02 Xerox Corporation Method and apparatus for multiple printer calibration using compromise aim
US8102564B2 (en) * 2005-12-22 2012-01-24 Xerox Corporation Method and system for color correction using both spatial correction and printer calibration techniques
US7746524B2 (en) * 2005-12-23 2010-06-29 Xerox Corporation Bi-directional inverter printing apparatus and method
US7624981B2 (en) * 2005-12-23 2009-12-01 Palo Alto Research Center Incorporated Universal variable pitch interface interconnecting fixed pitch sheet processing machines
US7963518B2 (en) * 2006-01-13 2011-06-21 Xerox Corporation Printing system inverter apparatus and method
US8477333B2 (en) * 2006-01-27 2013-07-02 Xerox Corporation Printing system and bottleneck obviation through print job sequencing
US7630669B2 (en) * 2006-02-08 2009-12-08 Xerox Corporation Multi-development system print engine
US7672006B2 (en) * 2006-02-22 2010-03-02 Xerox Corporation Multi-marking engine printing platform
US8194262B2 (en) * 2006-02-27 2012-06-05 Xerox Corporation System for masking print defects
US7965397B2 (en) * 2006-04-06 2011-06-21 Xerox Corporation Systems and methods to measure banding print defects
US8330965B2 (en) 2006-04-13 2012-12-11 Xerox Corporation Marking engine selection
US7681883B2 (en) * 2006-05-04 2010-03-23 Xerox Corporation Diverter assembly, printing system and method
US7679631B2 (en) 2006-05-12 2010-03-16 Xerox Corporation Toner supply arrangement
US7382993B2 (en) * 2006-05-12 2008-06-03 Xerox Corporation Process controls methods and apparatuses for improved image consistency
US7800777B2 (en) * 2006-05-12 2010-09-21 Xerox Corporation Automatic image quality control of marking processes
US8010216B2 (en) * 2006-05-18 2011-08-30 Roise Geoffrey J System and method for cutting-stock optimization across schedules and batches
US7865125B2 (en) * 2006-06-23 2011-01-04 Xerox Corporation Continuous feed printing system
US7856191B2 (en) * 2006-07-06 2010-12-21 Xerox Corporation Power regulator of multiple integrated marking engines
US7924443B2 (en) * 2006-07-13 2011-04-12 Xerox Corporation Parallel printing system
US8607102B2 (en) * 2006-09-15 2013-12-10 Palo Alto Research Center Incorporated Fault management for a printing system
US7766327B2 (en) * 2006-09-27 2010-08-03 Xerox Corporation Sheet buffering system
US7857309B2 (en) * 2006-10-31 2010-12-28 Xerox Corporation Shaft driving apparatus
US7819401B2 (en) * 2006-11-09 2010-10-26 Xerox Corporation Print media rotary transport apparatus and method
US7969624B2 (en) 2006-12-11 2011-06-28 Xerox Corporation Method and system for identifying optimal media for calibration and control
US8159713B2 (en) * 2006-12-11 2012-04-17 Xerox Corporation Data binding in multiple marking engine printing systems
US7945346B2 (en) * 2006-12-14 2011-05-17 Palo Alto Research Center Incorporated Module identification method and system for path connectivity in modular systems
US8100523B2 (en) 2006-12-19 2012-01-24 Xerox Corporation Bidirectional media sheet transport apparatus
US8145335B2 (en) 2006-12-19 2012-03-27 Palo Alto Research Center Incorporated Exception handling
US7559549B2 (en) 2006-12-21 2009-07-14 Xerox Corporation Media feeder feed rate
US8693021B2 (en) 2007-01-23 2014-04-08 Xerox Corporation Preemptive redirection in printing systems
US7934825B2 (en) * 2007-02-20 2011-05-03 Xerox Corporation Efficient cross-stream printing system
US7676191B2 (en) 2007-03-05 2010-03-09 Xerox Corporation Method of duplex printing on sheet media
US7894107B2 (en) 2007-04-27 2011-02-22 Xerox Corporation Optical scanner with non-redundant overwriting
US8253958B2 (en) * 2007-04-30 2012-08-28 Xerox Corporation Scheduling system
US8169657B2 (en) 2007-05-09 2012-05-01 Xerox Corporation Registration method using sensed image marks and digital realignment
US7925366B2 (en) * 2007-05-29 2011-04-12 Xerox Corporation System and method for real-time system control using precomputed plans
US7689311B2 (en) * 2007-05-29 2010-03-30 Palo Alto Research Center Incorporated Model-based planning using query-based component executable instructions
US7590464B2 (en) 2007-05-29 2009-09-15 Palo Alto Research Center Incorporated System and method for on-line planning utilizing multiple planning queues
US10621525B2 (en) * 2007-06-29 2020-04-14 Palo Alto Research Center Incorporated Method for solving model-based planning with goal utility dependencies
US8203750B2 (en) 2007-08-01 2012-06-19 Xerox Corporation Color job reprint set-up for a printing system
US7697166B2 (en) 2007-08-03 2010-04-13 Xerox Corporation Color job output matching for a printing system
US7590501B2 (en) 2007-08-28 2009-09-15 Xerox Corporation Scanner calibration robust to lamp warm-up
US8458712B2 (en) * 2008-04-30 2013-06-04 International Business Machines Corporation System and method for multi-level preemption scheduling in high performance processing
US20090299511A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation Method of releasing units in a production facility
US8145334B2 (en) * 2008-07-10 2012-03-27 Palo Alto Research Center Incorporated Methods and systems for active diagnosis through logic-based planning
US8165705B2 (en) * 2008-07-10 2012-04-24 Palo Alto Research Center Incorporated Methods and systems for continuously estimating persistent and intermittent failure probabilities for production resources
US8266092B2 (en) * 2008-07-10 2012-09-11 Palo Alto Research Center Incorporated Methods and systems for target value path identification
US8219437B2 (en) * 2008-07-10 2012-07-10 Palo Alto Research Center Incorporated Methods and systems for constructing production plans
US8169626B2 (en) 2008-08-29 2012-05-01 Xerox Corporation Using buffers to support uncertainties in marking engine execution
US8359110B2 (en) * 2009-03-23 2013-01-22 Kuhn Lukas D Methods and systems for fault diagnosis in observation rich systems
US7976012B2 (en) 2009-04-28 2011-07-12 Xerox Corporation Paper feeder for modular printers
US8464268B2 (en) * 2009-09-14 2013-06-11 Palo Alto Research Center Incorporated Dynamic scheduling of jobs/batches using earliest completion time algorithm in cellular manufacturing with batch-splitting of jobs above certain size
JP5222328B2 (en) * 2010-08-04 2013-06-26 日立Geニュークリア・エナジー株式会社 Work plan creation method and apparatus
US8769542B2 (en) 2010-10-26 2014-07-01 Palo Alto Research Center Incorporated System for adaptive lot sizing in cellular manufacturing for balancing workloads across multiple cells using split-then-merge operations and earliest completion route algorithm
US8521606B2 (en) * 2010-12-16 2013-08-27 Xerox Corporation System and method of determining price optimization for distributed demand
US20120185286A1 (en) * 2011-01-17 2012-07-19 Palo Alto Research Center Incorporated Online continual automated planning framework based on timelines
US10732913B2 (en) 2011-06-09 2020-08-04 Xerox Corporation System and method for multi-site cellular manufacturing with transportation delays
CN103092085B (en) * 2011-10-28 2015-03-11 上海宝信软件股份有限公司 Control method of multiple-step competing batch charging
EP2610746A1 (en) * 2011-12-30 2013-07-03 bioMérieux Job scheduler for electromechanical system for biological analysis
JP5900013B2 (en) * 2012-02-24 2016-04-06 株式会社リコー Information processing apparatus, file processing method, and program
JP5929949B2 (en) * 2014-03-13 2016-06-08 トヨタ自動車株式会社 Work plan creation system
DE102015003573B4 (en) * 2015-03-19 2017-07-13 Audi Ag Method for carrying out a production process by means of a processing station, and arrangement for carrying out the method
DE102016217377A1 (en) 2016-09-13 2018-03-15 Kba-Kammann Gmbh Processing machine with several processing stations for processing bodies
DE102016217378A1 (en) 2016-09-13 2018-03-15 Kba-Kammann Gmbh Processing machine with several processing stations for processing bodies
CN110633914A (en) * 2019-09-20 2019-12-31 中国银行股份有限公司 Batch job scheduling processing method and device
WO2022015497A2 (en) 2020-07-14 2022-01-20 Vicarious Fpc, Inc. Method and system for preemptive planning
US11941448B2 (en) 2020-09-03 2024-03-26 Hewlett Packard Enterprise Development Lp Allocating computing resources to data transfer jobs based on a completed amount and an estimated priority of system failure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0747795A2 (en) * 1995-06-07 1996-12-11 Xerox Corporation A system for generically describing and scheduling operation of a modular printing machine
US5604600A (en) * 1995-12-06 1997-02-18 Xerox Corporation Production trees for generic representation of document requirements for particular output terminals

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095342A (en) 1990-09-28 1992-03-10 Xerox Corporation Methods for sheet scheduling in an imaging system having an endless duplex paper path loop
JPH0528119A (en) * 1991-07-18 1993-02-05 Nippon Telegr & Teleph Corp <Ntt> Operating network system
US5159395A (en) 1991-08-29 1992-10-27 Xerox Corporation Method of scheduling copy sheets in a dual mode duplex printing system
US5559710A (en) * 1993-02-05 1996-09-24 Siemens Corporate Research, Inc. Apparatus for control and evaluation of pending jobs in a factory
US5557367A (en) 1995-03-27 1996-09-17 Xerox Corporation Method and apparatus for optimizing scheduling in imaging devices
US5890134A (en) * 1996-02-16 1999-03-30 Mcdonnell Douglas Corporation Scheduling optimizer
US5826104A (en) 1996-04-15 1998-10-20 Mci Communications Corporation Batch program status via tape data set information for dynamically determining the real time status of a batch program running in a main frame computer system
US6115646A (en) 1997-12-18 2000-09-05 Nortel Networks Limited Dynamic and generic process automation system
JP3724536B2 (en) * 1998-02-20 2005-12-07 富士ゼロックス株式会社 Image output control device and process execution control method thereof
JP2962319B1 (en) * 1998-07-16 1999-10-12 横河電機株式会社 Production system
JP2988472B1 (en) * 1998-08-06 1999-12-13 横河電機株式会社 Production system
JP3002776B1 (en) * 1998-07-16 2000-01-24 横河電機株式会社 Production system and processing apparatus selection method in production system
JP2000020599A (en) * 1998-07-06 2000-01-21 Yokogawa Electric Corp Agent producing system
US6400999B1 (en) * 1998-07-06 2002-06-04 Yokogawa Electric Corporation Production system and manufacturing equipment selecting method on production system
US6321133B1 (en) * 1998-12-04 2001-11-20 Impresse Corporation Method and apparatus for order promising
US6105520A (en) * 1999-02-26 2000-08-22 L&P Property Management Company Quilt making automatic scheduling system and method
US20020184291A1 (en) * 2001-05-31 2002-12-05 Hogenauer Eugene B. Method and system for scheduling in an adaptable computing engine
JP4206653B2 (en) * 2001-07-13 2009-01-14 日本電気株式会社 Task scheduling system and method, program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0747795A2 (en) * 1995-06-07 1996-12-11 Xerox Corporation A system for generically describing and scheduling operation of a modular printing machine
US5604600A (en) * 1995-12-06 1997-02-18 Xerox Corporation Production trees for generic representation of document requirements for particular output terminals

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092086A (en) * 2011-10-28 2013-05-08 上海宝信软件股份有限公司 Control method and control system of multiple-step competing batch charging
CN103092086B (en) * 2011-10-28 2014-12-31 上海宝信软件股份有限公司 Control method and control system of multiple-step competing batch charging

Also Published As

Publication number Publication date
JP4571819B2 (en) 2010-10-27
US6895292B2 (en) 2005-05-17
EP1473652A3 (en) 2005-02-02
US20040225394A1 (en) 2004-11-11
JP2004326788A (en) 2004-11-18

Similar Documents

Publication Publication Date Title
US6895292B2 (en) Predictive and preemptive planning and scheduling for different job priorities system and method
US7139629B2 (en) Planning and scheduling for failure recovery system and method
US6856845B2 (en) Monitoring and reporting incremental job status system and method
CA2447067C (en) Planning and scheduling reconfigurable systems with regular and diagnostic jobs
US8315898B2 (en) Planning and scheduling reconfigurable systems around off-line resources
US7230736B2 (en) Planning and scheduling reconfigurable systems with alternative capabilities
EP1600836B1 (en) Exception handling in manufacturing systems combining on-line planning and predetermined rules
EP1600837A2 (en) System and method utilizing temporal constraints to coordinate multiple planning sessions
EP2000899A2 (en) System and method for real-time system control using precomputed plans
US8769542B2 (en) System for adaptive lot sizing in cellular manufacturing for balancing workloads across multiple cells using split-then-merge operations and earliest completion route algorithm
CN109445929A (en) A kind of method and system of scheduler task
Ecker et al. Scheduling tasks on a flexible manufacturing machine to minimize tool change delays
US7310561B2 (en) Identifying critical operations of a production process
Xiao-Feng et al. A rule-based heuristic finite capacity scheduling system for semiconductor backend assembly
ElMaraghy et al. Deadlock-free rescheduling in flexible manufacturing systems
US20140058787A1 (en) Plan Choosing in Digital Commercial Print Workflows
JPH07175856A (en) Method and apparatus for provision of selection of installation
US20240020654A1 (en) Method for maintenance planning of aircraft engines
CN116897323A (en) System and method for providing short-term dispatch decisions for operating multiple resources involved in multiple production processes with consideration of long-term objectives
JPH07234898A (en) Method and apparatus for decision of initial time limit
Vieira Analytical models to estimate the performance of dynamic manufacturing systems operating under frequent rescheduling

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL HR LT LV MK

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL HR LT LV MK

17P Request for examination filed

Effective date: 20050802

AKX Designation fees paid

Designated state(s): DE FR GB

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20160707