MULTI-CONFIGURATION CONTROL SYSTEM FOR A HIGH SPEED PRINTER INCLUDING MULTIPLE PRINT ENGINE CONTROLLERS AND ASSOCIATED METHOD
Cross-Reference to Related Applications
This application claims the benefit of U.S. Provisional Patent Application Serial No. 60/107,630, filed November 9, 1998, the entire specification of which is incorporated herein by reference.
Technical Field
The present invention relates to digital and print-on-demand printing systems; and more particularly, to a multiple print engine controller control system selectively configurable from print job to print job in at least two configurations for controlling a plurality of print engines in a high-speed printer, with at least two print engine controllers of the system being configured for selective operation in both a master state and a slave state.
Background
Similar to the computer industry, which has moved from awkward and incompatible machines and software to user friendly, cross-platform capable systems; the industrial and commercial printing industry is also moving toward software and systems which simplify the technical requirements for performing a print job. In the past, conventional print engine controllers were ineffective at controlling a plurality of print engines, especially a plurality of print engines having different marking technologies. Furthermore, conventional print engine controllers rasterize bitmap data at the resolution (i.e., dots per inch "DPI" or dot pitch) of the particular print engine which the controller is designed to operate. Thus, such print engine controllers could not simultaneously control a plurality of print engines with different resolutions. Fortunately, U.S. Patent No. 5,833,375, which is incorporated herein by reference, describes a system and method for interfacing an on-demand type raster printer
controller with a multitude of print engines, and which can dispatch the rasterized bitmap data to any of the print engines, in any order, and at any time. Furthermore, the described system allows the mixing of various print engines and/or marking technologies which can be operated from the same controller. The system includes a high-speed raster print engine controller for operating a plurality of print engines. Each print engine includes a customized print engine communication device, hereinafter referred to as a "target adapter board" ("TAB"), which provides a direct interface between the print engine electronics and the controller. The controller and each TAB include a fiber optic input port and a fiber optic output port. Therefore, both the controller and the plurality of TABs have full duplex communications via fiber optics. The controller is attached to the plurality of TABs in a ring or daisy-chained fashion, such that the controller will transmit commands and data to the first TAB on the daisy- chain, and the commands and data will flow in the same direction along the daisy-chain to the rest of the TABs, and will eventually flow back to the controller. Furthermore, the controller is adapted to transmit rasterized bitmap image data to the TABs, and in turn to the print engines, in an on-demand manner.
However, even with the above-identified daisy-chained scheme there is a limit to the number of print engines which can be controlled in a given system because known print engine controllers are generally only configured for controlling a limited number of print engines. As desired printing tasks become more complex there is a need to utilize more print engines. One solution would be to design a new print engine controller capable of controlling a larger number of print engines. However, this option would require a large amount of time, effort and expense. Further, this solution would undesirably tie all the print engines to one print engine controller.
Accordingly, there is a need in the digital print-on-demand industry for a printer controller system which can control a multitude of print engines using multiple print engine controllers in a manner which facilitates flexibility of the system. There is also a need for high speed printer with multiple print engines in which various combinations of the print engines may be used for a given printing operation as necessary. Furthermore, there is a need for a print engine controller which can
selectively operate in more than one state depending upon the needs of the print operation
Summary of the Invention
The present invention permits existing print engine controllers, when modified in accordance with the invention, to be utilized in combination with each other to control multiple print engines resulting in a control system having selectable configurations depending upon the print operation necessary. The need for designing an entirely new print engine controller is eliminated. However, the present invention is also applicable to, and may be implemented using new print engine controllers.
In one aspect of the present invention a control system selectively configurable from print job to print job in at least two configurations for controlling a plurality of print engines in a high-speed printer is provided and includes a host computer for storing print job data. A communication link is connected to the host computer and at least first and second print engine controllers are each connected to the communication link for retrieving print job data from the host computer. The first print engine controller is operatively connected to at least a first print engine for providing rasterized bit-map data thereto and the second print engine controller is operatively connected to at least a second print engine for providing rasterized bit-map data thereto. Each of the first and second print engine controllers is programmed for selective operation in at least both a master state and a slave state. In a first system configuration the first print engine controller operates in the master state and the second print engine controller operates in the slave state. In a second system configuration the second print engine controller operates in the master state and the first print engine controller operates in the slave state.
In a preferred embodiment each print engine controller includes an input/output module including a set of program instructions which enable operation in either of the two states. Further, each print engine controller is connected to its respective print engine through a print engine communication device such as a target adapter board (TAB).
The system enables either controller to operate in a master state to control the other controller as a slave. Further, in some print jobs only one of the print engine controllers might be used depending upon the number and location of the print engines needed.
In another aspect of the invention a control system selectively configurable for controlling a plurality of print engines during a high-speed printing operation includes a host computer for storing print job data and a communication link connected to the host computer. A plurality of print engine controllers are each connected to the communication link for retrieving print job files from the host computer, each print job file defining a corresponding printing operation. A plurality of print engine communication devices are provided, wherein each print engine controller is connected to at least one of the print engine communication devices. A plurality of print engines are also provided, wherein each of the print engine communication devices is connected to at least one of the print engines. Each of the print engine controllers is configured for selective operation in at least both a master state and a slave state according to a system configuration selected for a given printing operation and only one of the print engine controllers operates in the master state during a given printing operation defined by a corresponding print job file.
The print engines of the present invention may, in one aspect of the invention include an input/output module which is configured for enabling the print engine controller to selectively operate in at least both a master state and a slave state with the input/output module including means for controlling at least one slave print engine controller when operating in said master state, such means including means for providing communication between said slave print engine controller and an operator interface device connected to the communication link, and means for monitoring an online/offline status of said slave print engine controller. In a preferred embodiment the subject means are provided in a software module which is called upon only when the print engine controller is designated as a master controller for a given print operation.
In another aspect of the invention a method for controlling a plurality of print engines for a given print operation involves providing a plurality of print engine
controllers, each print engine controller operatively connected to at least one print engine for providing rasterized bit-map data thereto, each print engine controller selectively operable as at least both a master controller and a slave controller. A print job data file is provided for the given print operation at a storage location, the print job data file including information identifying each print engine to be used in the given print operation and its associated print engine controller. One of the print engine controllers is selected to operate as a master controller and the following steps are performed by the selected master controller: (i) the print job data file is retrieved from the storage location, (ii) any additional print engine controllers required for the given print operation are identified based upon the print job data file; and (iii) a slave control signal is sent to each of the identified print engine controllers to cause each of the identified print engine controllers to retrieve the print job data file from its storage location.
The various aspects of the present invention enable large numbers of print engines to be used in print operations. Further, different types of print engines may likewise be utilized in conjunction with the present invention.
Brief Description of the Drawings
Fig. 1 is a schematic block diagram of one embodiment of a printer system of the present invention, depicting a plurality of print engine controllers each connected for controlling one or more print engines;
Fig. 2 is a schematic block diagram of a raster image processing system of one embodiment of a print engine controller of the present invention;
Fig. 3 is a schematic block diagram of the configuration of an IOP of a print engine controller in accordance with one embodiment of the present invention;
Fig. 4 is a schematic block diagram another embodiment of a printer system of the present invention incorporating multiple operator input/control devices;
Fig. 5 is a schematic diagram of one arrangement providing synchronization of print engines associated with different print engine controllers; and
Fig. 6 is a schematic diagram of another arrangement providing synchronization between print engines associated with different print engine controllers.
Detailed Description
As shown in Fig. 1 , a typical high speed printing system incorporating the present invention includes multiple high speed print engine controllers 10A, 10B, 10C for sending processed page-maps or page-map blocks to at least one corresponding raster print engine 12A, 12B, 12C operatively connected thereto. The high speed print engine controllers 10A, 10B, 10C communicate with the print engines through a corresponding target adapter board 14A, 14B, 14C ("TAB") or other suitable print engine communication device. The high speed print engine controllers 10A, 10B, 10C may be identical print engine controllers or may include differences according to the type of print engine to be controlled by each. The TABs 14 are typically a custom designed circuit board for translating the page-map data generated by the high speed print engine controllers 10A, 10B, 10C to be acceptable by its corresponding print engines 12A, 12B, 12C. Each TAB 14A, 14B, 14C is situated between the high speed controller 10A, 10B, 10C and the print engines 12A, 12B, 12C on a data channel, such as a fiber optic data link 16A, 16B, 16C.
Each of the high speed print engine controllers 10A.10B, 10C may also have outputs to post-processing equipment 18 and verification systems 20, with such connections only being shown for print engine controller 10A for clarity.
The high speed printing system has a communications link, such as an ethernet communications link 22, set up between an operator display 24 or other operator interface device and a host computer 26. The host computer 26 provides the files that contain the data that is used by the high speed printing system during the printing operation. The files usually consist of: a job file, the contents of which describe the information needed to run a given print job; an engine configuration file, the contents of which define parameters of the marking engines and the marking engines necessary for the given print job; the PDL file(s), the contents of which are the PDL commands (such as Postscript) that define the templates of all the printed pages; and in some cases a merge file, the contents of which contains the variable data needed to be merged into the page templates. An optional log file and/or error file, the contents
of which consists of system status generated during the processing of the job file, may also be included. The host computer is typically in the form of a file server.
While systems incorporating one print engine controller to control a given print job based upon information retrieved from a host computer have been used in the past, such as the system described in U.S. Patent No. 5,740,338 which is incorporated herein by reference, the present invention allows more than one of the print engine controllers 10A, 10B, 10C to be used simultaneously to control print engines working on the same print operation or job.
The configuration of one exemplary print engine 10A is shown in Fig. 2 with the high speed print engine controller 10A having a series of processing units operating in a pipeline, parallel fashion. The processing units divide the interpreting, rendering and dispatching functions, thereby accelerating the processing and dispatching of the page-maps. The processing units utilize real-time/multi-tasking software which operates asynchronously of the software in the other processing units.
The first processing unit in the pipeline is an input/output processor or "IOP" 28A. This processing unit controls the input and output of data for the print operation. The IOP 28A receives a data stream 30 via the ethernet communications link 22. In addition, the IOP 28A may perform optional decompression of the data if it has been transmitted from the host computer in a compressed format. Each print engine controller 10A, 10B, 10C may include communication and protocol software for facilitating the present invention as will be described in greater detail below.
The IOP 28A is connected to a main processing unit or "MPU" 32A which controls the rendering operations. The MPU 32A interprets the PDL data stream, generates rendering commands and orders the rendering commands as a first stage banding operation.
The MPU 32A is connected to a graphics processing unit or "GPU" 34A which renders the page-maps in accordance to the rendering commands from the MPU 32A, and executes the second-stage banding of the page-maps. The details of one possible embodiment of the GPU 34A are disclosed in U.S. Patent No. 5,740,338. However, it is recognized that controllers having other GPU configurations could be
utilized in the present invention. Further, although the IOP and MPU are described as individual processing units herein, it is recognized that the functions of each of such units could be incorporated into a single unit such as a SUN motherboard including appropriate software routines or modules for each unit.
The control system of the present invention is selectively configurable from print job to print job as necessary. For example, in one configuration print engine controller 10A may operate as a master controller and print engine controllers 10B, 10C may act as slaves to the master. In another configuration print engine controller 10B may operate as the master with print engine controllers 10A, 10C acting as slaves. In a further configuration print engine controller 10C may operate as a master with print engine controllers 10A, 10B acting as slaves. Accordingly, each print engine controller 10A, 10B, 10C is programmed or otherwise configured for selective operation in both a master state and a slave state depending upon the state necessary or specified for a given print operation. Of course, the controllers may also be operable in other states during a print operation without departing from the scope of the present invention. For example, in some print operations one or more controllers may be set in an idle state where the print engines to which they are connected are not needed for the print operation. Further, system configurations are possible in which only one print engine controller operates to control its connected print engines.
Referring to Fig. 3 an exemplary IOP 28A is shown and includes a TCP/IP module 40A for handling the ethernet protocol, a simple network management protocol ("SNMP") module 42A for handling communications between controllers and communications with the operator display terminals 24, and a multi-controller manager ("MCM") module 44A which enables the print engine controller 28A to act as a master if necessary for a given printing operation.
Operation of a given print operation is described with reference to Fig. 1. A job control signal is initiated from the operator display terminal 24 and is directed to a particular one of the print engine controllers 10A, 10B, 10C. For example, the print job control signal may be provided to print engine controller 10A and includes information directing controller 10A to start a job and information identifying the storage
location of a job ticket file in the host computer as shown in the following exemplary
SNMP control signal:
SNMP (OPT)
JOB HOST JOB FILE USER'S NAME USER'S PASSWORD JOB RUN DESIRED
In response to receipt of ODT control signal the print engine controller 10A retrieves the job ticket file from the host computer. An exemplary job ticket file would be the following:
JOB TICKET FILE CONFIG FILE POSTSCRIPT FILES MERGE FILES
The configuration file includes information defining the print engines necessary for the job, the parameters of such print engines (such as width, offset on printed page, and offset from initial point for staged engines), and the controllers associated with such print engines as follows:
CONFIG FILE
[ENGINE1 PARAMETERS]
HOSTNAME="10A" [ENGINE2 PARAMETERS]
HOSTNAME="10A" [EMGINE3 PARAMETERS]
HOSTNAME="10B"
In this example the identifiers "10A" and "10B" represent the IP address given to respective print engine controllers on the communication link. After retrieval of the job ticket file the master (in this case print engine controller 10A) reviews the configuration file to determine what print engines are needed. When the master controller identifies a print engine having a hostname other than its own, a slave control signal is sent to that host. In the above example the host for ENGINE3 is print engine controller 10B and therefore print engine controller 10A would send the SNMP slave control signal to
print engine controller 10B. The SNMP slave control signal includes the same information as the job control signals and added information triggers controller 10B to act as a slave rather than a master. In this regard each controller may be default configured to operate as a master unless otherwise designated. The following represents an exemplary slave control signal:
SNMP (MASTER)
MASTERADDRESS="HIGH" JOB HOST JOB FILE USER'S NAME USER'S PASSWORD JOB RUN DESIRED
The MASTERADDRESS="HIGH" portion of the signal triggers controller 10B to act as a slave for the print operation. In response to receipt of the slave control signal print engine controller 10B retrieves the same job ticket file from the host computer and simply ignores the configuration information pertaining to print engines other than its own because it does not call upon the master control software of the MCM module.
The print operation is then run with both print engine controllers 10A, 10B controlling their individual print engines as necessary. In this example only one controller acts as a slave but as mentioned above multiple controllers could act as slaves in which case the master would send the slave control signal to each such slave controller and each slave controller would respond by retrieving the job ticket file.
Each print engine controller also has an associated variable ("master variable") that contains the master's IP address. When a print engine controller is not involved in an ongoing print job, its master variable is set to "0.0.0.0". When a job is submitted to a master controller, the master controller attempts to set the master variable for all other print engine controller's needed for the job to the master controller's IP address. (See discussion above regarding slave control signal setting
MASTERADDRESS="HIGH"). Slaves will only accept the set if their address is
"0.0.0.0", meaning they are not currently operating on another job, or if they are already slaves to that master. If the slaves cannot be assigned, the job fails. At the end of the job, the master address of all print engine controllers return to the "0.0.0.0" address.
Once a slave job is started on a print engine controller, the print engine may be configured such that the job must be completed or canceled before the master address can be changed or moved.
As master in the aforementioned example, print engine controller 10A takes on the additional task of acting as a communication interface between the ODT 24 and print engine controller 10B. In this manner ODT 24 may operate as normal for a one print engine controller system and need not recognize that more than one print engine controller is being used for the print operation. The ODT 24 normally monitors the print operation, looking for status information from each print engine. In the present system, print engine status queries from the ODT 24 are patched through the master with the master controller retrieving the status information from the appropriate slave controller and relaying it to the ODT 24. Other parameters can be monitored by the ODT 24 in a similar manner.
In order for a job to run smoothly each of the print engine controllers utilized and any of its associated print engines being utilized should operate simultaneously without interruption, particularly in high speed printing systems. In this regard the master control software of the MCM causes the acting master controller to repeatedly poll each of the acting slave controllers for status, with a HI response or binary 1 indicating on on-line status for a print engine controller with all print engines operating as desired. Accordingly, the master ANDs the status signals of all acting controllers together. If the result of the AND operation is LO rather than HI the indication is that one of the acting controllers is OFF-LINE and the master responds by taking all acting controllers OFF-LINE because the print operation cannot be properly completed without all necessary print engine controllers and print engines identified in the CONFIG FILE. The acting master controller then notifies the ODT 24 of the problem. Other system information is also monitored by the master and relayed to the ODT 24 as necessary including error status variables of the print engines. Generally any variables monitored in current single controller systems are likewise monitored in the control system of the present invention, with information being relayed from slaves to the ODT 24 through the acting master controller.
In the event of an interrupt in a print operation the acting master controller also calls upon software in the MCM for searching the job status of each print engine controller being utilized and its associated print engines being utilized. This search feature enables the acting master to ensure that when the print operation is restarted all needed print engine controllers and print engines start at the same point in the job. In other words, if only print engines 12A and 12C were being utilized and print engine 12A had finished printing through record 2117 and print engine 12C had only finished printing through record 2115, the correct restart point would be record 2116 for both print engines so that printing remains in sequence and is fully completed. Any partially printed records for the print operation would be scrapped.
Referring now to Fig. 4, in another aspect of the present invention a system including multiple print engine controllers 10A-10E as well as multiple operator display terminals 24A-24B is shown and would provide the capability of permitting multiple print operations to be run at one time. For example, a print operation directed by ODT 24A could specify a job ticket with a configuration file that requires print engine controllers 10A, 10C and 10D, with controller 10A acting as master and controllers 10C and 10D acting as slaves. A simultaneous print operation directed by ODT 24B could specify a job ticket with a configuration file that requires print engine controllers 10B and 10E, with controller 10E acting as master and controller 10B acting as slave. The most likely scenario for such multiple printing operations would involve print engines positioned along multiple webs. In some systems print engines might be movable between two or more webs and therefore the present control system would increase the flexibility of jobs which could be performed on each web. It is recognized that the number of print engine controllers in such a system could vary and that likewise the number of ODTs incorporated into such a system could vary.
In control systems of the present invention utilizing more than one print engine controller to run multiple print engines, synchronization of the print engine controllers and thus their associated print engines should preferably also be taken into account. In this regard, reference is made to Fig. 5 which shows one arrangement for providing such synchronization. In this arrangement each print engine includes an
associated optical detector 50A, 50B for detecting registration marks on the print media moving along web 52 as indicated by arrows 54. Each optical detector 50A, 50B is connected to a respective input of a synchronization box 56, the synchronization box having respective enabling outputs 58A, 58B running to each TAB 14A, 14B. Further, the master controller 10A includes a direct connection 60 to synchronization box 56 for providing an input thereto indicative of whether or not all necessary controllers for the print operation are on-line. If all necessary controllers are not on-line the enabling outputs 58A, 58B of the synchronization box 56 will be blocked so that the TABs 14A, 14B do not allow the print engines 12A, 12B to operate. In order to accommodate the variable configuration of the present invention each controller 10A, 10B could include an on-line indicator output connected to a common OR logic element 62 with the output of the OR logic element connected to the sync box 56 for indicating whether all necessary controllers are on-line, as shown in dashed lines. In this way either controller 10A, 10B could act as master and provide depending upon the system configuration desired and synchronization would still be facilitated.
Another embodiment of a synchronization arrangement is described with reference to Fig. 6 in which optical detectors 50A, 50B are again provide for each print engine except that in this arrangement the detectors are connected to respective TABs 14A, 14B. A direct, high speed fiber-optic link 64 is provided between the TABs 14A, 14B. Alternatively, link 64 may be a standard co-axial cable link or other electrical link. For this arrangement in the MCM of the master controller software is called upon which is passed to the GPU through the MPU and causes the GPU of the master to allow triggering by detection of registration marks. A registration mark detected by a detector associated with the acting master controller is passed to its TAB and then immediately passed to the other TABs used in the printing operation via the fiber link 66 to enable them as well. This configuration operates effectively when the latency of the signal delivered to the "slave" TABs is less than the time it takes for the registration mark to move to the "slave" print engine. It is recognized that the synchronization may typically only be necessary when more than one controller is triggering off pre-applied registration marks rather than marks applied by the first operating print engine of a
staged head system. Alternatively, a direct, high speed fiber-optic link 64' could be provided between the controllers 10A and 10B instead of the line 64 between the TABS. Alternative link 64' may be also be a standard co-axial cable link or other electrical link. Still further, other variations of synchronizing connections could be utilized without departing from the scope of the present invention.
While the systems described herein constitute preferred embodiments of the invention, it is to be understood that the present invention is not limited to its precise form, and that variations may be made without departing from the scope of the invention as set forth in the following claims.