THERMAL PRINTING APPARATUS AND METHOD

Abstract: A thermal printing apparatus includes a print head (56) arranged to be moved in a printing direction relative to a document (34) to be printed on during a printing operation. A take-up spool (66) for a thermal transfer ribbon (52) is driven by a stepping motor (82) which causes the ribbon to be advanced a constant amount in the printing direction following each printing operation. In order to avoid smudging of transferred ink on the document (34) and possible ribbon breakage during a printing operation, a predetermined amount of slack is introduced into the ribbon prior to a printing operation by causing a reverse rotation of the take-up spool (66). As the diameter of the coil of ribbon on the take-up spool (66) increases, the number of steps taken by the motor (82) in providing this slack progressively decreases so that substantially the same amount of slack is introduced prior to each printing operation.

Description: This invention relates to a thermal printing apparatus and method. Thermal printing apparatuses have been devel­ oped for many uses, including the printing of informa­ tion in various type fonts on documents such as plain paper check documents, using one-time thermal transfer ribbons. The thermal transfer ribbons may contain ink of the optically readable type (OCR) or may provide mag­ netic ink which is machine readable (MICR). A thermal printing apparatus capable of printing in a plurality of type fonts, such as font E-­ 13B, is known, for example, from U.S. Patent No. 4,531,132. The printing apparatus which forms the subject-matter of this patent has been developed to print various type fonts used in financial transactions on documents such as checks using a one-time thermal transfer ribbon which passes between a thermal print head and a cooperating platen, the ribbon extending from a supply spool to a take-up spool. To obtain the document throughput or speed necessary to make an item processing machine incorporating such apparatus commercially feasible, it is necessary that the financial font field be printed in a parallel fashion. Although the check or other document moves into the printing station in a horizontal direction, the thermal print head, which includes a horizontal line of thermal printing elements, moves in the vertical direction during the printing operation, while the check or other document remains stationary. Problems have been experienced with this apparatus in that, during a printing operation in which the print head moves upwards, relative to the document to be printed on, the print head tends to drag the ribbon upwards with it, resulting in a tend­ ency for smudging of the transferred ink on the document or even breakage of the ribbon. It is an object of the present invention to provide a printing apparatus of the kind including a print head arranged to move relative to a document to be printed on and in operative relation to a platen during a printing operation, in which the problems referred to above are substantially overcome. According to our aspect of the invention there is provided a printing apparatus including a platen engageable with a document to be printed upon when said document is in a printing position, a movable print head arranged to be moved relative to said document and in operative relation to said platen in a first, printing directon during a printing operation and in a second, return direction following the completion of a printing operation, an ink ribbon arranged to pass between said print head and said platen, a ribbon supply spool, a ribbon take-up spool, and stepping motor means for driving said ribbon take-up spool whereby said ribbon is advanced a constant amount in said printing direction past said platen following each printing operation, characterized by measuring means for measuring the movement of said ribbon from said supply spool to said take-up spool during an advancing movement of said ribbon, and control means coupled to said measuring means for controlling the operation of said stepping motor means, said control means being arranged to cause said stepping motor means to reverse the movement of said take-up spool to provide a predetermined amount of slack in said ribbon subsequent to an advancing movement of said ribbon and prior to the next printing operation, the number of steps taken by said stepping motor means in providing said slack being determined by said control means by utilizing the number of steps taken by said stepping motor means in the course of at least one advancing movement of said ribbon measured by said measuring means. According to another aspect of the invention there is provided a method of thermal printing employ­ ing a thermal transfer ribbon carrying ink material which is transferred to a document by thermal means arranged to be moved relative to said document in a printing direction during a printing operation, the said ribbon being advanced a constant amount in said printing direction by stepping motor means following each printing operation to provide a fresh portion of ribbon for the transferral of ink to a document to be printed upon, characterized by the steps of measuring the number of steps of said stepping motor means required for advancing said ribbon said constant dis­ tance in said printing direction, and reversing the ribbon by a predetermined amount subsequent to an advancing movement of said ribbon and prior to the next printing operation by operation of said stepping motor means in a reverse direction to provide a predetermined amount of slack in said ribbon, the number of steps taken by said stepping motor means in said reverse direction being determined by utilizing the number of steps taken by said stepping motor means in the course of at least one advancing movement of said ribbon. One embodiment of the invention will now be described by way of example with reference to the accompanying drawings, in which:- Fig. 1 is a plan view, in diagrammatic form, of part of an encoding and sorting machine incorporating a thermal printing apparatus in accordance with the present invention; Fig. 2A is a part-sectional elevational view showing a print head and platen operating mechanism, and a mechanism for advancing a thermal transfer ribbon from a supply spool to a take-up spool; Figs. 2B, 2C and 2D are views similar to part of Fig. 2A, showing the print head and platen operating mechanism and the mechanism for advancing the thermal transfer ribbon at different points in an operating cycle of the printing apparatus; Fig. 3 is a view similar to part of each of Figs. 2B to 2D, showing a portion of the printing apparatus after the ribbon take-up roll has been rotated in a reverse direction to provide slack in the thermal transfer ribbon just prior to a printing operation; Fig. 4 is a plan view of the printing apparatus showing the print head, the platen and the ribbon supply and take-up spools; Fig. 5 is a fragmentary perspective view, showing the thermal transfer ribbon and the measuring mechanism for measuring the travel of the ribbon; Figs. 6A and 6B together show a flow diagram illustrating a "Calculate Ribbon Motion Parameters" routine used in controlling movement of the thermal transfer ribbon; Fig. 7 shows a flow diagram illustrating an "Initialize Ribbon Mechanism" routine; Fig. 8 shows a flow diagram illustrating "Ribbon Slack" and "Take up Slack" routines for providing and removing slack in the thermal transfer ribbon; Fig. 9 shows a flow diagram illustrating a "Feed Ribbon" subroutine; and Fig. 10 shows a ribbon step time lookup table which is employed in controlling movement of the ribbon. Referring now to Fig. 1 of the drawings, there is shown therein a thermal printer module 20 incorporated into a business machine such as an encode and sort unit 22, which is capable of printing approp­ riate identification or other indicia on checks or other documents, and of performing a sorting operation on said documents. The printer module 20 could, of course, be used in other machines than the encode and sort unit 22, if desired. The printer module 20 is shown in dashed lines in Fig. 1 so as to orient it in relation to the encode and sort unit 22, which includes a document track 24 and transport rollers 26, 28 and 46 which cooperate with associated pinch rollers 30, 32 and 48, respectively, to provide a means for moving a document 34 such as a check to a print station 36 in the unit 22. The top edge of the document 34 is seen in Fig. 1, and it is fed on its lower edge 35 (Fig. 2A), with said lower edge gliding over the trough portion 38 of the track 24 which also includes vertical side walls 40 and 42 (Fig. 2A). These side walls 40 and 42 are secured to a frame 44 (shown diagrammatically) and are spaced apart to receive the documents therebetween and to guide a document 34 such as a check from a hand drop or a hopper feeder (not shown) to the print station 36 where the printer module 20 is located, and where the document 34 is controllably stopped, after being sensed by a position sensor 59. The document 34 and a thermal transfer ribbon 52 (Fig. 2A) are then sandwiched between a platen 54 and a thermal print head 56 by action of a cam 58 which moves the platen 54 into the track 24 to establish pressure contact between the document 34, the ribbon 52 and the print head 56. The print head 56 com­ prises a horizontal line of discrete and selectively energizable printing elements 61 (Fig. 3). The print head 56 is adjustably mounted on a gate 55 which is pivotally mounted by means of a pivot 57 (Figs. 2D and 4) on a carrier 74. Fig. 4 includes a dashed-lined showing of the gate 55 and the print head 56 in open position. Securing means such as a headed screw 53 is employed to retain the gate 55 and the print head 56 in closed position. The printer module 20 is utilized to print information such as a currency amount on the document 34. After printing has been completed, the document 34 is moved from the print station 36 by the drive roller 46 and its associated pinch roller 48, and is moved in the downstream direction shown by arrow 50, to other elements which are not important to an understanding of this invention. If multiple lines of printing are to take place upon the document 34, said document may be advanced slightly, in the direction of arrow 50, to print such additional data. Figs. 2A, 2B, 2C and 2D show a number of views of the printer module 20 during various stages of operation. In Fig. 2A, the platen 54 and the print head 56, both controlled by a cam 58, are shown in pre-­ printing or home positions, with the document 34 positioned therebetween in the track 24. Fig. 2A also shows the thermal transfer ribbon 52 extending from a supply spool 60 around a metering device 62, up between the track 24 and the print head 56 and over a guide cap 64 having a smooth upper surface and located on the print head 56, to a take-up spool 66. Fig. 2B shows the position of the platen 54 after a rise sector 68 of the cam 58 has extented the platen 54 to its maximum extent of travel in which position the thermal transfer ribbon 52 and the document 34 are sandwiched between the platen 54 and the thermal print head 56. At this point, the ribbon 52 is backed up to provide slack between the print head 56 and the take-up spool 66 to avoid smearing of the transferred ink and/or breakage of the ribbon. Continued movement of the cam 58 will cause the thermal print head 56 to move upwards in stepwise manner during a printing operation, via the carrier 74, in order to print successive lines of horizontal dots making up a line of printing. Fig. 2C shows the position of the platen 54, the print head 56 and the cam 58 at the end of a printing operation. The print head 56 has been pivoted about a shaft 70 to describe an arcuate motion during the printing operation due to the engagement of the sector 68 of the cam 58 with a follower 72 on the carrier 74 of the print head 56, said carrier being pivotally mounted on the shaft 70. At the end of the printing operation, take-up of the ribbon slack is commenced. Fig. 2D shows the position of the various elements after the platen 54 has been retracted from printing position. At this time, slack in the ribbon 52 is still being taken up. From the position of Fig. 2D, the print head 56 returns to the home position of Fig. 2A. Once the print head 56 reaches the home position, all of the ribbon slack will have been taken up, and a new ribbon advance operation may be started. It should be noted that the printer mechanism described above differs from some known printer mechanisms in which a record medium and a ribbon are moved during a printing operation. Such movement of the record medium during printing is unacceptable for applications in which documents such as checks are transported in a horizontal direction at high speeds on transports and are halted and imprinted by a print head moving in a vertical direction. If the document is not properly seated in the bottom of the track, unwanted document jams may occur. The mechanism of the present invention for advancing the thermal transfer ribbon used in such a printing apparatus has been designed to accommodate the specific requirements of the movement of the print head 56. Referring to Figs. 2A and 4, it will be noted that the ribbon supply spool 60 and the ribbon take-up spool 66 are mounted for rotational movement in a frame 76. Both spools 60 and 66 are removable from the frame. The take-up spool 66 is driven through a 96 to 15 gear ratio in the illustrated embodiment by a 7.5 degree permanent magnet stepping motor 82, which is secured to the frame 76 by screws 84. A pinion 86 driven by the motor 82 engages a gear 88 to effect the driving of the spool 66. Since the line of force is tangential to the intersection of the pinion 86 and gear 88, the motor mounting screws 84 are positioned along a line which is at an angle of 90 degrees with respect to the line of force to allow the pinion 86 the capability of flexing, so that if there is any mismatch between the gear teeth, it will easily be absorbed. To load the ribbon 52 into the ribbon mechanism, the supply spool 60 is first dropped into the lower bearings of the frame 76, the thermal print head 56 and the gate 55 are swung open on the pivot 57, and the ribbon 52 is passed around the metering device 62, and up over the top of the thermal protection cap 64, whereupon the gate 55 is closed. The ribbon 52 is then guided on to the take-up spool 66. The stepping motor 82 advances the take-up spool 66 until a pre­ determined number of counts have occurred on the meter­ ing device 62. In order to achieve the higher document throughputs required in a typical encode and sort system, it is necessary to control the stepping motor 82 to operate up to high stepping rates. A braking action is applied to the supply spool 60 to prevent it from un­ winding excessively. In the illustrated embodiment, this braking action is supplied by a metal leaf spring brake 94, which is secured to the frame 76, and which includes two arcuate portions 96, 98 which are urged into engagement with a cylindrical portion 100 of the supply spool 60. In a thermal transfer printing process, heat from energized thermal print head elements 61 is applied to the back or substrate side of a paper or plastic thermal transfer ribbon, which is in close pressure contact with a document such as a bank check 34, for example. The ink side of a ribbon such as the ribbon 52 is in close contact, under pressure, with the paper surface of the receiving check. The temperature pulses from the thermal print head 56 are conducted through the ribbon and locally raise the ink temperature above its melting point. The molten ink penetrates into the paper fibres and resolidifies. Since the paper surface of the document is usually much rougher than the smooth ribbon substrate, the resolidified ink adheres prefer­ entially to the document when the ribbon is peeled back from the document. Manufacturers of thermal transfer ribbons generally recommend a peel-back angle of approximately 135 degrees in order to effect proper ribbon separation from the paper being recorded upon, and to ensure that only a negligible amount of ink is left on the ribbon substrate in the area corresponding to the energized thermal print head elements. If the peel-back angle is not large enough, the bonding of the ribbon to the paper can be strong enough such that the document may actually be lifted out of the track when the ribbon is advanced, or excessive ink may remain on the ribbon substrate, resulting in voids in the print. It is possible to obtain such an optimal peel-back angle in a conventional thermal printer, since both the document and the ribbon are moving past the thermal print head, and the ribbon can be peeled backward as the document passes onward. On the other hand, the ideal peel-back angle is quite difficult to obtain in a printing apparatus, such as the present one, in which the document does not move in the same direction as the thermal print head. The following design guide­ lines arise from the ribbon peel-back requirements: first, the ribbon should be fed through the printing station from bottom to top to allow the ribbon to be peeled away from the document in as large an angle as possible; second, the thermal print head should be located as low as possible below the printed line after a printing operation in order to aid peel-back; and third, the thickness of the protective cap 64 should be no more than is necessary. This relationship is represented diagrammatically in Fig. 3, in which the print head 56 has been shifted downwardly to a position below the line just printed so as to increase the possible angle between the ribbon 52 and the check 34 as the path of the ribbon extends across the cap 64 and back to the take-up spool 66. In this design, in the home position of the print head 56 shown in Fig. 3, a line extending from the centre of the shaft 70 (Fig. 2D) to the line of print head elements 61 is at an angle of six degrees to the horizontal; this con­ figuration permits a peel-back angle of approximately 90 degrees, which has been determined experimentally to be acceptable. It will be seen from the various drawings that the thermal print head 56 could not be lowered appreciably from the position in which it is shown without causing interference with the document track 24. The arrangement by which the peel-back of the ribbon 52 is accomplished is shown in Fig. 2A. As previously mentioned, the take-up spool 66 is driven through a 96 to 15 gear ratio in the illustrated embodiment by the stepping motor 82. At the appropriate time, after the thermal print head 56 has returned to its home position, the motor 82 causes the take-up spool 66 to rotate in a counterclockwise direction, peeling the ribbon 52 off the document 34. The ribbon 52 is then advanced by further counterclockwise rotation of the take-up spool 66 to its next unused location, and the printed-upon document 34 is removed from the print station 36. The timing of the ribbon peel-back and the physical location of the thermal print head 56 when the peel-back is started are key features which result in successful peeling of the ribbon from the document 34. Shown in Fig. 5 is the metering device 62 which is employed to measure the movement of the ribbon 52. A free-running roller 100 is rotatably mounted in the framework of the printing apparatus in a position in which it engages the ribbon 52 and is driven thereby. The roller may be made from any suitable material, such as a plastic. Fixed to the roller 100 for rotation therewith is a metering cylinder 102, having well-defined "timing" lines 104 engraved or otherwise placed thereon about its circumference. A suitable sensing device 106, which may include a paired photodiode 108 and phototransistor 110, is used to monitor the rotation of the metering roller 100 and thus the movement of the ribbon 52. As illustrated in Fig. 2A, in order to maintain proper contact between the ribbon 52 and the roller 100, said roller is placed directly beneath the thermal print head 56, so that at least ninety degrees of wrap of the ribbon 52 around the roller 100 is obtained. As previously described in connection with Figs. 2A, 2B, 2C and 2D, the movement of the thermal print head 56 is upwards during a printing operation. After the ribbon 52 has been advanced to an unused portion with the print head 56 in its home position, the ribbon 52 is taut, from the supply spool 60, around the metering device 62, past the thermal print head 56, over the smooth upper surface of the cap 64, to the take-up roller 66. If no corrective action is taken to slacken the tension on the ribbon 52 prior to printing, the ribbon 52 can be dragged upwards by the upward movement of the thermal print head 56, causing unacceptable smearing of the ink on the document 34, as well as possible breakage of the ribbon 52. In order to avoid this possible document smearing and ribbon breakage, the take-up spool 66 is backed-up (i.e. reversed) prior to initiation of a print cycle of the cam 58. This provides slack in the ribbon 52 between the print head 56 and the take-up spool 66 to enable the thermal print head 56 to move upwards without interference. It is necessary to determine the number of steps the motor 82 must make at any time to produce the desired amount of slack, since a given number of steps of the motor 82 when the radius of the coil of ribbon on the take-up spool 66 is relatively small will provide a smaller amount of slack than when the radius of the collected coil on the take-up spool 66 is relatively large. In the illustrated embodiment, the pitch between character lines on the ribbon is four milli­ metres. The total rise of the thermal print head 56 during a cycle of printing is eight millimetres, although actual printing takes place over a distance of less than four millimetres. A four millimetre length of ribbon 52 is measured by the metering device 62 prior to a printing operation commencing. Therefore in order to obtain the desired eight millimetres of slack, the number of required motor steps to move the ribbon eight millimetres in the reverse direction can be determined by multiplying by two the number of motor steps required to advance the ribbon by four millimetres as determined by the metering device 62. In actual practice in the illustrated embodiment, the number of steps for a plurality of four-millimetre advancements are stored and averaged, and then multi­ plied by two in order to compute the number of motor steps in the reverse direction required to provide the desired eight millimetre amount of ribbon slack. If a 96:15 gear ratio between the take-up spool 66 and the motor 82 is assumed, then each 7.5 degree step of the motor 82 translates into a 1.17 degree step of the take-up spool 66. If it is further assumed that the coil of ribbon on the take-up spool 66 has a maximum diameter of 80 millimetres and a minimum diameter of 33 millimetres, then the maximum and minimum numbers of steps required to advance the ribbon by four millimetres can be calculated. In the case of the maximum taxe-up spool coil diameter of 80 milli­ metres, the ribbon travel per step equals 80 π (1.17/360), which equals 0.817 millimetre per step, so that 4/0.817 equals 4.90 steps per four millimetre ribbon advancement. Similarly, for a minimum take-up spool outside coil diameter of 33 millimetres, the ribbon travel per step equals 33 π (1.17/360), which equals 0.337 millimetre per step, so that 4/0.337 equals 11.87 steps per four millimetre ribbon advancement. Therefore the number of steps required to advance the ribbon by four millimetres will vary between five and twelve steps. These values will set the lower and upper limits for the number of required motor steps and will be used in the Calculate Ribbon Motion Parameters routine of Fig. 6A. It will thus be seen that the number of motor steps required to move the ribbon 52 a fixed distance (i.e. four millimetres or eight millimetres) will vary in accordance with the amount of ribbon on the take-up spool 66. It will also be seen that if the time between motor steps at which the motor 82 steps the take-up spool 66 remains constant, the rate at which the ribbon 52 moves along the ribbon path will increase as the outside diameter of the ribbon 52 on the take-up spool 66 increases. However, what is required is to maintain relatively constant the speed of ribbon advance regardless of the outer diameter of the ribbon on the take-up spool 66. The following requirements should therefore be included in a design for controlling the amount of reverse stepping of the motor 82 to produce the desired slack in the ribbon 52. 1. Automatically determine the number of ribbon motor steps required to advance the ribbon by four millimetres on a continual basis. Note that this number will be dependent upon the outside diameter of the coil of ribbon on the take-up spool 66. 2. Based upon the number of steps used to advance the ribbon by four millimetres, calculate the number of steps required to achieve the eight milli­ metres of ribbon slack prior to printing, and the eight millimetres of ribbon slack take-up after printing. 3. Maintain a relatively constant ribbon advance speed by varying the speed of the ribbon step motor 82. Fig. 1 includes a block representation of the means for controlling a printing apparatus which embodies the present invention. A printer controller 120 is generally conventional, and does not form a part of the present invention. The necessary instructions for operating the printer module 20 may be stored in a read-only memory (ROM) 122, or they may be loaded daily into a random access memory (RAM) 124 from some supplemental storage, such as a tape or disc file (not shown). A microprocessor (MP) 126 is used to process the instructions, and a keyboard (KB) 128 is used to make selections as to the type of font and as to the numerals to be used for printing and to control the printer module 20. An interface 130 is used to provide interconnections among the various components shown, including a print head interface 132, and also to interface the printer controller 120 with a host controller 134 associated with the encode and sort unit 22 or with some host system (not shown). In addition, the interface 130 receives signals from the metering device 62 and communicates these to the microprocessor 126, as well as communicating commands from the microprocessor 126 to the ribbon stepping motor 82. The firmware used to control the ribbon mechanism makes use of seven registers within the microprocessor 126. Each register is given a name which reflects its function or usage within the control firmware. A description of each of these registers appears below. The PULSE COUNT register is used to count the pulses being generated by the ribbon metering device 62 while the ribbon 52 is being advanced. If, for example, the metering device 62 includes a roller 100 having an outside diameter of ten millimetres and a cylinder 102 which generates 90 pulses per revolution, the number of pulses generated by the movement of approximately four millimetres of ribbon past the metering device 62 is given by the computation (4 × 90)/ 10 π, which equals 11.5 pulses, which is rounded up to 12 pulses. The FEED COUNT register is used to count the number of motor steps required to advance the ribbon 52 by four millimetres. Three registers which are used to maintain a history of prior FEED COUNT values are called FEED HISTORY, FEED HISTORY+1 and FEED HISTORY+2. These registers represent respectively, during operation of the ribbon control cycle, the three preceding feed counts. Thus as a new feed count is measured, the value of the FEED HISTORY+1 register is transferred to the FEED HISTORY+2 register, the value in the FEED HISTORY register is transferred into the FEED HISTORY+1 register, and the value of the FEED COUNT register is transferred to the FEED HISTORY register. At the beginning of each ribbon control cycle, the feed history is updated. The contents of these three registers are averaged with the contents of the FEED COUNT register to obtain an average of the last four FEED COUNT values. The SLACK COUNT register is used to store the number of ribbon motor steps required to input and then remove eight millimetres of ribbon slack. The slack count is twice the average FEED COUNT. The STEP COUNT register is used to count the ribbon motor steps when ribbon slack is being input or removed. The value contained in the SLACK COUNT register is copied into the STEP COUNT register before stepping of the ribbon motor 82 is started. Following each step, the STEP COUNT register is decremented by one. When the STEP COUNT register equals zero, stepping is halted. The RIBBON STEP TIME register is used to set the time period between ribbon motor steps. The value stored in this register is obtained from the ribbon motor step time lookup table (Fig. 10), where the pre­ calculated step times are stored. By increasing the time between steps as the outside diameter of the coil of ribbon on the take-up spool 66 increases, the speed at which the ribbon 52 moves over the metering device 62 remains relatively constant. At the start of each new ribbon control cycle, the SLACK COUNT and RIBBON STEP TIME registers are updated. The slack count is the number of steps required to take up eight millimetres of ribbon 52 on to the take-up spool 66. The ribbon step time represents the time period between successive steps of the motor 82, thereby dictating the speed at which the ribbon 52 moves along the ribbon path (Fig. 2A). The "Feed Ribbon" subroutine (Fig. 9), which will subsequently be described in detail, counts the number of motor steps taken each time the ribbon is advanced four millimetres. This motor step count is passed out of the "Feed Ribbon" subroutine via the FEED COUNT register. By keeping record of past FEED COUNT values, an average FEED COUNT value can be computed. This value will gradually decrease as the outside diameter of the take-up spool 66 increases. The SLACK COUNT is computed by multiplying the average of the last four feed counts by two. An advantage in computing the slack count in this fashion is that the averaging operation acts as a "filter" to minimize the effect of an erroneous feed count reading due to slippage of the ribbon 52 over the ribbon metering device 62. However, in an alternative embodiment, the SLACK COUNT value could be computed by multiplying only the last FEED COUNT value by two. The speed at which the take-up spool 66 must rotate is dependent upon the current diameter of the accumulated coil of ribbon on said spool. Since the SLACK COUNT is derived from the average FEED COUNT, it can be used to compute an offset into a lookup table to obtain the ribbon motor step time. The table of Fig. 10 contains the precalculated ribbon motor step time values. Figs. 6A and 6B, taken together, comprise a flow diagram illustrating the "Calculate Ribbon Motion Parameters" routine which computes the SLACK COUNT and then looks up the required motor step time. The routine first verifies that the previous FEED COUNT falls within acceptable limits. Entry into the routine is represented by block 140 and the verification of the FEED COUNT is represented by blocks 142, 144, 146 and 148. As previously described, the minimum number of steps that should be required is five, when the take-up spool 66 is nearly full. When said spool is nearly empty, no more than twelve steps should be required to advance the ribbon. It will be noted that if the feed count is outside of either of these limits, it is forced to the closest limit, that is, at least five and no more than twelve. Blocks 150, 152 (Fig. 6A) and 156 (Fig. 6B) (joined by connecting symbol 154) show how the slack count is computed. First the SLACK COUNT register is cleared (block 150), and then the FEED COUNTS for the four most recent four millimetre advancements are added to the SLACK COUNT register (block 152). The feed counts for the most recent advancements are contained in the FEED COUNT, FEED HISTORY, FEED HISTORY+1 and FEED HISTORY+2 registers, so that the FEED COUNT register contains the most recent advance step count. The contents of these registers are added together and the total is divided by two to yield the final SLACK COUNT (block 156). It will be noted that this operation will produce the same result as multiplying the average FEED COUNT by two. The next step (block 158) is to use the SLACK COUNT to compute a lookup offset address to access the ribbon motor step time lookup table (Fig. 10). The quantity ten is subtracted from the slack count to provide the offset, since the minimum feed count is five and therefore the slack count will never be less than ten (two times five), which makes an offset of zero possible. The result is added to the starting address in memory of the lookup table to obtain the address of the required RIBBON STEP TIME. The appropriate time value thus obtained can be loaded into the RIBBON STEP TIME register, as shown in block 160. The final task in this subroutine is to update the FEED HISTORY registers, as shown in block 162. The value of the FEED HISTORY+1 register is copied into the FEED HISTORY+2 register; the value in the FEED HISTORY register is copied into the FEED HISTORY+1 register; and the value in the FEED COUNT register is copied into the FEED HISTORY register. The subroutine is exited at block 164. The "Initialize Ribbon Mechanism" subroutine of Fig. 7 is entered at block 170. This subroutine is called on power up, immediately following a ribbon change, and immediately following the repairing of a torn ribbon 52. The purpose of the subroutine is to determine how many steps of the ribbon motor 82 are required to advance the ribbon 52 by four millimetres when the diameter of the take-up spool 66 is unknown. As shown in block 172, the RIBBON STEP TIME register is loaded with a timer value equivalent to 20 milliseconds. By stepping the ribbon 52 at this relatively slow rate, the speed at which the ribbon drives the metering device 62 will be well within safe operating limits. When the ribbon is taut between the supply spool 60 and the take-up spool 66, there will be no slippage between the ribbon and metering roller 100. The calibration operation is accomplished by a loop of two cycles shown in blocks 174, 176, 178 and 180. In the loop, a call is made to the "Feed Ribbon" subroutine (block 176), to be subsequently described, which steps the ribbon motor 82 until it counts twelve feedback pulses from the ribbon metering device 62, corresponding to four millimetres of ribbon advancement. A flag "First Pass" is incorporated in the subroutine to count the two separate "Feed Ribbon" calls for the two cycles, as shown in blocks 174, 178 and 180. The ribbon advance of the first cycle is done to ensure that the ribbon 52 is being held taut between the supply spool 60 and the take-up spool 66. The ribbon advance of the second cycle is done to measure the number of motor steps required to advance the ribbon 52 by four millimetres. The final operation of this initialization subroutine, as shown in flock 182, is to provide simulated data for the feed history, as required by the "Calculate Ribbon Motion Parameters" subroutine. As previously mentioned, the feed history registers are required in the calculation of the slack count value at the beginning of each ribbon cycle. To simulate this history, the value in the FEED COUNT register is copied into each of the three feed history registers: FEED HISTORY, FEED HISTORY+1, and FEED HISTORY+2. The subroutine is then exited at block 184. Three different operations are required to control the movement of the ribbon 52. These are handled by two firmware subroutines, which are shown in Figs. 8 and 9. The subroutine of Fig. 8 controls the input and remove ribbon slack operations. The subroutine of Fig. 9 is used to perform a four millimetre ribbon advance which provides a fresh segment of ribbon 52 for the next document or field to be printed. The slack control subroutine illustrated in Fig. 8 has two entry points designated "Ribbon Slack" (block 190) and "Take up Slack" (block 196). The "Ribbon Slack" entry point is called immediately prior to printing a field, after the document 34 is in position and while the thermal print head 56 is being moved toward the print position. As previously mentioned, slack in the ribbon 52 is necessary to allow the thermal print head 56 to rise over the print field without dragging or tearing the ribbon 52. In the illustrated embodiment, eight millimetres of ribbon slack is provided. The "Take up Slack"entry point is called to rewind the eight millimetres of slack ribbon 52. This operation also assists in the peel back of the ribbon 52 from the document 34. Upon entering the "Ribbon Slack" subroutine at block 190, the "Calculate Ribbon Motion Parameters" subroutine is called upon, as represented by block 192, to compute the SLACK COUNT and then to look up the appropriate ribbon step time. Following the set-up of these ribbon control variables, a flag called "Backstep" is set (block 194). This flag, as the name suggests, sets the direction of rotation of the ribbon step motor 82 so that the take-up spool 66 of the ribbon mechanism will be reversed or "backed-up", to provide slack in the ribbon 52. In block 200, the content of the SLACK COUNT register is copied into the STEP COUNT register. The step time is contained in the RIBBON STEP TIME register which was set by the "Calculate Ribbon Motion Parameters" subroutine of Figs. 6A and 6B. The ribbon step motor 82 begins stepping, moving the ribbon 52 in the direction specified by the "Backstep" flag, as shown in block 202. After each step, the STEP COUNT register is decremented by one. As indicated in block 204, stepping continues until the step count is reduced to zero. At this time, eight millimetres of ribbon 52 have been either rolled on to or off the take-up spool 66, depending upon the status of the "Backstep" flag. The routine is exited at block 206. When the subroutine of Fig. 8 is entered at the "Takes Slack" entry point (block 196), the "Backstep" flag is cleared (block 198). The subroutine then proceeds to rewind the ribbon 52 which was backed off the take-up spool 66 by the "Ribbon Slack" operation. From this point, the process proceeds through the steps represented by blocks 200, 202, 204 and 206, as described above. Illustrated in Fig. 9 is the "Feed Ribbon" subroutine which is used to advance the ribbon 52 by four millimetres following a print operation. A register called PULSE COUNT is used to count the number of pulsescoming from the ribbon metering device 62. Twelve feedback pulses are approximately equal to four millimetres of ribbon advancement. As the ribbon 52 is advanced, the number of motor steps taken are counted, using the FEED COUNT register. Upon entry into the subroutine of Fig. 9 at block 210, both the FEED COUNT and PULSE COUNT registers are set to zero (block 212), after which the ribbon advance begins (block 214). The ribbon motor 82 is stepped at a rate dictated by the contents of the RIBBON STEP TIME register. Each time a step is taken, the FEED COUNT register is incremented by one. While the ribbon motor 82 is being stepped, feedback from the ribbon metering device 62 is monitored, as shown by blocks 216, 218 and 220. Each time a feedback pulse is detected, the PULSE COUNT register is incremented by one. Cycling through the counting loop continues until a pulse count of 12 is reached (block 220), at which time the subroutine passes to block 222, where the step motor 82 is halted. Having completed the four millimetre ribbon advance, the subroutine is exited at block 224.

Claims: 1. A printing apparatus including a platen (54) engageable with a document (34) to be printed upon when said document is in a printing position, a movable print head (56) arranged to be moved relative to said document and in operative relation to said platen in a first, printing direction during a printing operation and in a second, return direction following the completion of a printing operation, an ink ribbon (52) arranged to pass between said print head and said platen, a ribbon supply spool (60), a ribbon take-up spool (66), and stepping motor means (82) for driving said ribbon take-up spool whereby said ribbon (52) is advanced a constant amount in said printing direction past said platen (54) following each printing operation, characterized by measuring means (62) for measuring the movement of said ribbon from said supply spool to said take-up spool during an advancing movement of said ribbon, and control means (126) coupled to said measuring means for controlling the operation of said stepping motor means (82), said control means (126) being arranged to cause said stepping motor means to reverse the movement of said take-up spool (66) to provide a predetermined amount of slack in said ribbon subsequent to an advancing movement of said ribbon and prior to the next printing operation, the number of steps taken by said stepping motor means in providing said slack being determined by said control means by utilizing the number of steps taken by said stepping motor means in the course of at least one advancing movement of said ribbon measured by said measuring means (62). 2. A printing apparatus according to claim 1, characterized in that said control means (126) is arranged to determine the number of steps taken by said stepping motor means (82) in said reverse direction to provide said slack by utilizing the average of the numbers of steps taken by said stepping motor means in a plurality of movements of said given distance of said ribbon (52) in said printing direction measured by said sensing means (62). 3. A printing apparatus according to either claim 1 or claim 2, characterized by means (68, 74) arranged to move said print head (56) in said printing direction during a printing operation by a distance substantially equal to the amount of slack introduced into said ribbon (54) immediately prior to the printing operation, said slack being between said print head and said take-up spool. 4. A printing apparatus according to any one of the preceding claims, characterized in that said print head (56) is a thermal print head and said ribbon (52) is a thermal transfer ribbon. 5. A printing apparatus according to claim 4, characterized in that said ribbon (52) is arranged to be moved upwards relative to said platen (54) during a movement in said printing direction, and in that said print head (56) includes a horizontal line of thermal print elements (61) arranged to print a line of dot matrix characters during a printing operation, said line of thermal print elements being positioned below said line of characters following movement of said print head in said reverse direction. 6. A printing apparatus according to any one of the preceding claims, characterized in that said control means (126) is arranged to control the speed of said stepping motor means (82) so that the speed of movement of said ribbon (52) past said platen (54) during each advancing movement remains sub­ stantially constant. 7. A printing apparatus according to any one of the preceding claims, characterized in that said measuring means includes rotatable means (62) which carries a plurality of indicia (104) equally spaced around the axis of said rotatable means and which includes a roller element (100) arranged to engage said ribbon (52) and to be rotated thereby during an advancing movement of said ribbon past said platen (54), and sensing means (106) positioned in cooperative relationship with respect to said rotatable means (62) and arranged to sense the passage of said indicia past said sensing means, the number of said indicia sensed during an advancing movement of said ribbon being representative of the distance moved by said ribbon. 8. A printing apparatus according to any one of the preceding claims, characterized in that, following a printing operation, said control means (126) is arranged to cause said stepping motor means (82) to advance said take-up spool (66) by an amount equal to the reverse movement of said take-up spool so as to take up the slack in said ribbon (52). 9. A method of thermal printing employing a thermal transfer ribbon (52) carrying ink material which is transferred to a document (34) by thermal means (56) arranged to be moved relative to said document in a printing direction during a printing operation, the said ribbon being advanced a constant amount in said printing direction by stepping motor means (82) following each printing operation to provde a fresh portion of ribbon for the transferral of ink to a document to be printed upon, characterized by the steps of measuring the number of steps of said stepping motor means required for advancing said ribbon said constant distance in said printing direction, and reversing the ribbon by a predetermined amount subsequent to an advancing movement of said ribbon (52) and prior to the next printing operation by operation of said stepping motor means (82) in a reverse direction to provide a predetermined amount of slack in said ribbon, the number of steps taken by said stepping motor means in said reverse direction being determined by utilizing the number of steps taken by said stepping motor means in the course of at least one advancing movement of said ribbon. 10. A method according to claim 9, characterised in that, following a printing operation, the slack in said ribbon (52) is taken up prior to the next advancing movement of said ribbon.

Inventors: BROOKS, RALF MAYNARD, CONNELL, BRIAN PAUL, PAGOWSKI, STEFAN JERRY, SONNENBURG, DENNIS TIM
Applicants: NCR CANADA LTD - NCR CANADA LTEE
Application year: 1987
Main classification: B41J33
IPC codes: B41J2, B41J33