Tape drive and method
11801689 · 2023-10-31
Inventors
Cpc classification
B41J2/325
PERFORMING OPERATIONS; TRANSPORTING
B41F16/0026
PERFORMING OPERATIONS; TRANSPORTING
B41J35/36
PERFORMING OPERATIONS; TRANSPORTING
B41J33/16
PERFORMING OPERATIONS; TRANSPORTING
B41J33/36
PERFORMING OPERATIONS; TRANSPORTING
B41J17/07
PERFORMING OPERATIONS; TRANSPORTING
International classification
B41J2/325
PERFORMING OPERATIONS; TRANSPORTING
B41J17/07
PERFORMING OPERATIONS; TRANSPORTING
B41J17/10
PERFORMING OPERATIONS; TRANSPORTING
B41J33/16
PERFORMING OPERATIONS; TRANSPORTING
B41J33/36
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method of operating a transfer printer configured to transfer ink from a printer ribbon to a substrate which is transported along a predetermined substrate path adjacent to the printer. The printer comprises a tape drive comprising two tape drive motors, two tape spool supports on which said spools of ribbon may be mounted, each spool being drivable by a respective one of said motors. The printer further comprises a printhead being displaceable towards and away from the predetermined substrate path and being arranged to, during printing, contact one side of the ribbon to press an opposite side of the ribbon into contact with a substrate on the predetermined substrate path, and a printing surface. The printer further comprises a controller configured to control the tape drive to transport ribbon between the first and second ribbon spools. The method comprises controlling the tape drive to perform a ribbon movement in which ribbon is transported between first and second ribbon spools along a ribbon path, the ribbon path having a first length during a first part of said ribbon movement, and a second length during a second part of said ribbon movement, a transition from the first length to the second length being caused by a displacement of the printhead with respect to the printing surface, wherein control of at least one of the tape drive motors is based upon data indicative of the first and second lengths.
Claims
1. A method of operating a transfer printer configured to transfer ink from a printer ribbon to a substrate which is transported along a predetermined substrate path adjacent to the printer, the printer comprising: a tape drive comprising two tape drive motors, two tape spool supports on which said spools of ribbon may be mounted, each spool being drivable by a respective one of said motors; a printhead being displaceable towards and away from the predetermined substrate path and being arranged to, during printing, contact one side of the ribbon to press an opposite side of the ribbon into contact with a substrate on the predetermined substrate path, and a printing surface; and a controller configured to control the tape drive to transport ribbon between the first and second ribbon spools; the method comprising: controlling the tape drive to perform a ribbon movement in which ribbon is transported between first and second ribbon spools along a ribbon path, the ribbon path having a first length during a first part of said ribbon movement when the printhead is separated from the printing surface, and a second length during a second part of said ribbon movement when the printhead is in contact with one side of the ribbon, a transition from the first length to the second length being caused by a displacement of the printhead towards the printing surface, wherein control of at least one of the tape drive motors is based upon data indicative of a change in the length of the ribbon path between the first and second lengths.
2. A method according to claim 1, wherein control of the at least one of the tape drive motors is based upon data indicative of a position of the printhead.
3. A method according to claim 2, wherein the at least one tape drive motor is controlled based upon data indicative of a change in the length of the ribbon path, said data indicative of a change in the length of the ribbon path being determined based upon said data indicative of the position of the printhead.
4. A method according to claim 1, wherein when the printhead is displaced so as to cause the ribbon to come into contact with the substrate, the controller is configured to control the at least one tape drive motor to increase the amount of ribbon extending between the spools.
5. A method according to claim 1 wherein, when the printhead is displaced so as to cause the ribbon to come out of contact with the substrate, the controller is configured to control the at least one tape drive motor to reduce the amount of ribbon extending between the spools.
6. A method according to claim 1, wherein the printer further comprises a printhead drive apparatus, the method comprising: controlling the printhead drive apparatus to drive the printhead towards and away from the predetermined substrate path, and generating the data indicative of a change in the length of the ribbon path based upon a property of the printhead drive apparatus.
7. A method according to claim 6, wherein the printhead drive apparatus comprises a printhead motor.
8. A method according to claim 7, wherein the printer further comprises a sensor configured to generate a signal indicative of an angular position of the output shaft of the printhead motor.
9. A method according to claim 8, wherein the data indicative of the position of the printhead is based upon the generated signal indicative of the angular position of the output shaft of the printhead motor.
10. A method according to claim 9, wherein the data indicative of the position of the printhead is further based upon further data indicative of a printhead position.
11. A method according to claim 10, wherein when a predetermined condition is satisfied, the data indicative of the position of the printhead is based upon the generated signal indicative of the angular position of the output shaft of the motor, and when the predetermined condition is not satisfied, the data indicative of the position of the printhead is based upon the further data indicative of a printhead position.
12. A method according to claim 1, comprising, during a ribbon transport operation, controlling a first one of the tape drive motors to rotate at a first predetermined angular velocity to cause an amount of the ribbon to be paid out and a second one of the tape drive motors to rotate at a second predetermined angular velocity to cause an amount of the tape to be taken up, wherein at least one of the first and second predetermined angular velocities is modified during said ribbon transport operation based upon the data indicative of a position of the printhead.
13. A method according to claim 1, comprising controlling the tape drive motors to cause a length of tape to be added to or subtracted from a tape extending between the spools, the length of tape being calculated based upon the data indicative of the first and second lengths.
14. A method according to claim 1, wherein the method comprises performing a printing cycle, the printing cycle comprising the steps of: controlling the tape drive to perform a ribbon movement in which ribbon is transported between first and second ribbon spools along a ribbon path; displacing the printhead relative to the printing surface; generating data indicative of a change in the length of the ribbon path based upon data indicative of the position of the printhead during said displacing; modifying a control signal for at least one of the tape drive motors to cause the amount of ribbon between the first and second ribbon spools to be adjusted by an amount based upon the data indicative of a change in the length of the ribbon path.
15. A method according to claim 14, wherein the method comprises: displacing the printhead towards the printing surface; when the printhead is pressed against the printing surface, controlling the printhead to be energised to transfer ink from the ribbon to the substrate; generating data indicative of a first change in the length of the ribbon path based upon data indicative of the position of the printhead during said displacing of the printhead towards the printing surface; applying a first adjustment to the amount of ribbon between the first and second ribbon spools by energising at least one of the tape drive motors to cause the amount of ribbon between the first and second ribbon spools to be adjusted by a first amount based upon the data indicative of the first change in the length of the ribbon path; displacing the printhead away from the printing surface; generating data indicative of a second change in the length of the ribbon path based upon data indicative of the position of the printhead during said displacing of the printhead away from the printing surface; and applying a second adjustment to the amount of ribbon between the first and second ribbon spools by energising the tape drive motors to cause the amount of ribbon between the first and second ribbon spools to be adjusted by a second amount based upon the data indicative of the second change in the length of the ribbon path.
16. A method according to claim 15, wherein the method further comprises moving ribbon past the printhead in a printing direction when the printhead is pressed against the printing surface, wherein each of the first and second adjustments are applied during said movement of the ribbon.
17. A transfer printer configured to transfer ink from a printer ribbon to a substrate which is transported along a predetermined substrate path adjacent to the printer, the printer comprising: a tape drive comprising two tape drive motors, two tape spool supports on which said spools of ribbon may be mounted, each spool being drivable by a respective one of said motors; a printhead being displaceable towards and away from the predetermined substrate path and being arranged to, during printing, contact one side of the ribbon to press an opposite side of the ribbon into contact with a substrate on the predetermined substrate path, and a printing surface; and a controller configured to control the tape drive to transport ribbon between the first and second ribbon spools, the controller being further configured to: control the tape drive to perform a ribbon movement in which ribbon is transported between first and second ribbon spools along a ribbon path, the ribbon path having a first length during a first part of said ribbon movement when the printhead is separated from the printing surface, and a second length during a second part of said ribbon movement when the printhead is in contact with one side of the ribbon, a transition from the first length to the second length being caused by a displacement of the printhead towards the printing surface; wherein control of at least one of the tape drive motors is based upon a change in the length of the ribbon path between the first and second lengths.
Description
(1) Embodiments of the invention will now be described, by way of example, with reference to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11) Referring to
(12) During ribbon movement, ribbon paid out by the ribbon supply spool 3 passes a guide roller 8 before passing the printhead assembly 4 and a further guide roller 9 before being taken up by the ribbon take up spool 5. The motors 6, 7 are controlled by a controller 10. An encoder may be provided to generate a signal indicative of the position of the output shaft of one or both of the motors 6, 7. In an embodiment, an encoder 35 is provided to monitor the rotation of the take-up spool motor 7.
(13) The printhead assembly 4 comprises a printhead 11 which presses the ribbon 2, and a substrate 12 against a printing surface 13 to effect printing. The location at which the ribbon 2 is pressed against the printing surface 13 by the printhead assembly 4 defines a printing location L.sub.P. The printhead 11 is a thermal transfer printhead comprising a plurality of printing elements, each arranged to remove a pixel of ink from the ribbon 2 and to deposit the removed pixel of ink on the substrate 12.
(14) The printhead assembly 4 is moveable in a direction generally parallel to the direction of travel of the ribbon 2 and the substrate 12 past the printhead assembly 4, as shown by an arrow A. Thus, the printing location L varies in accordance with the movement of the printhead assembly 4 in the direction A. Further, at least a portion of the printhead assembly 4 is moveable towards and away from the substrate 12, so as to cause the ribbon 2 (when passing the printhead 11) to move into and out of contact with the substrate 12, as shown by arrow B.
(15) An encoder 14 may be provided which generates data indicative of the speed of movement of the substrate 12 at the printing location L.sub.P. The printer 1 further comprises a camera 15 and a light source 16 arranged on opposing sides of the ribbon path. The camera 15 and the light source 16 are each rigidly mounted to the base plate 24 of the printer 1. Thus the camera 15 and the light source 16 do not move with respect to the base plate 24 or other fixed components of the printer 1.
(16) Referring now to
(17) The position of the printhead carriage 21 in the direction of ribbon movement (and hence position of the printhead assembly 4) is controlled by a carriage motor 25 (see
(18) Thus rotation of the pulley wheel 26 in the clockwise direction drives printhead carriage 21 and hence the printhead assembly 4 to the left in
(19) The movement of the printhead 11 towards and away from the printing surface 13 (and hence the pressure of the printhead against the ribbon 2, the substrate 12, and the printing surface 13) is controlled by a motor 29. The motor 29 is also located behind the base plate 24 (see
(20)
(21) The motor 29 may be a stepper motor, and may be controlled in a closed loop manner by virtue of an encoder 36 which is associated with the motor shaft 29a. The encoder 36 may provide an output indicative of the angular position of the output shaft 29a of the motor 29. Such an output may be used to enable precise control of the motor 29, for example by controlling the stator field of the motor to have a predetermined angular relationship with respect to the motor shaft 29a.
(22) The pulley wheel 30 in turn drives a printhead rotation belt 31 extending around a further pulley wheel 32. The printhead assembly 4 comprises a first arm 33, and a second arm 34, which are arranged to pivot about the pivot 22. The first arm 33 is connected to the printhead rotation belt 31, such that when the printhead rotation belt 31 moves the first arm 33 is also caused to move. The printhead assembly 4 is attached to the second arm 34. Assuming that the pivot 22 remains stationary (i.e. that the printhead carriage 21 does not move), it will be appreciated that movement of the printhead rotation belt 31, causes movement of the first arm 33, and a corresponding movement of the second arm 34 about the pivot 22, and hence the printhead assembly 4 (and printhead 11). Thus, rotation of the pulley wheel 30 in the clockwise direction drives the first arm 33 in to the left in
(23) The belts 27, 31 may be considered to be a form of flexible linkage. However, the term flexible linkage is not intended to imply that the belts behave elastically. That is, the belts 27, 31 are relatively inelastic in a direction generally parallel to the direction of travel of the ribbon 2 and the substrate 12 past the printhead assembly 4 (i.e. the direction which extends between the pulley wheel 30 and the further pulley wheel 32). It will be appreciated, of course, that the belts 27, 31 will flex in a direction perpendicular to the direction of travel of the ribbon 2 and the substrate 12 past the printhead assembly 4, so as to allow the belts 27, 31 to move around the pulleys 26, 28, 30, 32. Further, the printhead rotation belt 31 will flex in a direction perpendicular to the direction of travel of the ribbon 2 and the substrate 12 past the printhead assembly 4, so as to allow for the arc of movement of the first 33 arm about the pivot 22.
(24) However, in general, it will be understood that the relative inelasticity ensures that any rotation of the pulley wheel 30 caused by the motor 29 is substantially transmitted to, and causes movement of, the first arm 33, and hence the printhead 11. The belts 27, 31 may, for example, be polyurethane timing belts with steel reinforcement. For example, the belts 27, 31 may be AT3 GEN III Synchroflex Timing Belts manufactured by BRECOflex CO., L.L.C., New Jersey, United States.
(25) The arc of movement of the printhead 11 with respect to the pivot 22 is determined by the location of the printhead 11 relative to the pivot 22. The extent of movement of the printhead 11 is determined by the relative lengths of the first and second arms 33, 34, and the distance moved by the printhead rotation belt 31. Thus, by controlling the motor 29 to cause the motor shaft 29a (and hence pulley wheel 30) to move through a predetermined angular distance, the printhead 11 can be moved by a corresponding predetermined distance towards or away from the printing surface 13.
(26) It will further be appreciated that a force applied to the first arm 33 by the printhead rotation belt 31 will be transmitted to the second arm 34 and the printhead 11. Thus, if movement of the printhead 11 is opposed by it coming into contact with a surface (such as, for example, the printing surface 13), then the force exerted by the printhead 11 on the printing surface 13 will be determined by the force exerted on the first arm 33 by the printhead rotation belt 31—albeit with adjustment for the geometry of the first and second arms 33, 34. Further, the force exerted on the first arm 33 by the printhead rotation belt 31 is in turn determined by the torque applied to the printhead rotation belt 31 by the motor 29 (via pulley wheel 30).
(27) Thus, by controlling the motor 29 to output a predetermined torque, a corresponding predetermined force (and corresponding pressure) can be established between the printhead 11 and the printing surface 13. That is, the motor 29 can be controlled to move the printhead 11 towards and away from the printing surface 13, and thus to determine the pressure which the printhead applies to the printing surface 13. The control of the applied pressure is important as it is a factor which affects the quality of printing. Of course, in some embodiments, the motor 29 may also be controlled in a conventional way (e.g. an open-loop position-controlled way).
(28) It is also noted that the position of the printhead 11 with respect to the printing surface 13 is also affected by the motor 25. That is, given the relationship between the motor 25 and the printhead assembly 4 (i.e. the coupling of the motor 25, via the belt 27, to the printhead carriage 21), movement of the motor 25 also has an impact on the position of the printhead relative to the printing surface 13.
(29) The motor 25 may also be a stepper motor, and may be controlled in a conventional (i.e. open-loop) manner. Of course, the motors 25, 29 may be other forms of motor (e.g. DC servo motors) which can be controlled in a suitable manner to control the position of the printhead 11 and printhead assembly 4.
(30) In a printing operation, ink carried on the ribbon 2 is transferred to the substrate 12 which is to be printed on. To effect the transfer of ink, the print head 11 is brought into contact with the ribbon 2. The ribbon 2 is also brought into contact with the substrate 12. The printhead 11 is caused to move towards the ribbon 2 by movement of the print head assembly 4, under control of the controller 10. The print head 11 comprises printing elements arranged in a one-dimensional linear array, which, when heated, whilst in contact with the ribbon 2, cause ink to be transferred from the ribbon 2 and onto the substrate 12. Ink will be transferred from regions of the ribbon 2 which correspond to (i.e. are aligned with) printing elements which are heated. The array of printing elements can be used to effect printing of an image on to the substrate 12 by selectively heating printing elements which correspond to regions of the image which require ink to be transferred, and not heating printing elements which require no ink to be transferred.
(31) There are generally two modes in which the printer of
(32) In continuous printing, during the printing phase the print head 11 is brought into contact with the ribbon 2, the other side of which is in contact with the substrate 12 onto which an image is to be printed. The print head 11 is held stationary during this process—the term “stationary” is used in the context of continuous printing to indicate that although the print head will be moved into and out of contact with the ribbon, it will not move relative to the ribbon path in the direction in which ribbon is advanced along that path. Both the substrate 12 and ribbon 2 are transported past the print head, generally but not necessarily at the same speed.
(33) Generally only relatively small lengths of the substrate 12 which is transported past the printhead 11 are to be printed upon and therefore to avoid gross wastage of ribbon it is necessary to reverse the direction of travel of the ribbon between printing cycles. Thus in a typical printing process in which the substrate is traveling at a constant velocity, the print head is extended into contact with the ribbon only when the print head 11 is adjacent regions of the substrate 12 to be printed. Immediately before extension of the print head 11, the ribbon 2 must be accelerated up to for example the speed of travel of the substrate 12. The ribbon speed is then generally maintained at a speed which is based upon the speed of the substrate (e.g. equal to, or proportional to the speed of the substrate 12) during the printing phase and, after the printing phase has been completed, the ribbon 2 must be decelerated and then driven in the reverse direction so that the used region of the ribbon is on the upstream side of the print head 11.
(34) As the next region of the substrate to be printed approaches, the ribbon 2 is then accelerated back up to the normal printing speed and the ribbon 2 is positioned so that an unused portion of the ribbon 2 close to the previously used region of the ribbon is located between the print head 11 and the substrate 12 when the print head 11 is advanced to the printing location L.sub.P. It is therefore desirable that the supply spool motor 6 and the take-up spool motor 7 can be controlled to accurately locate the ribbon so as to avoid a printing operation being conducted when a previously used portion of the ribbon is interposed between the print head 11 and the substrate 12.
(35) In intermittent printing, a substrate is advanced past the printhead 11 in a stepwise manner such that during the printing phase of each cycle the substrate 12 and generally but not necessarily the ribbon 2 are stationary. Relative movement between the substrate 12, the ribbon 2 and the printhead 11 are achieved by displacing the printhead 11 relative to the substrate and ribbon. Between the printing phases of successive cycles, the substrate 12 is advanced so as to present the next region to be printed beneath the print head and the ribbon 2 is advanced so that an unused section of ribbon is located between the printhead 11 and the substrate 12. Once again accurate transport of the ribbon 2 is necessary to ensure that unused ribbon is always located between the substrate 12 and printhead 11 at a time that the printhead 11 is advanced to conduct a printing operation. It will be appreciated that where the intermittent mode is used, the printhead assembly 4 is caused to move along the linear track 23 so as to allow its displacement along the ribbon path.
(36) In each of the aforementioned modes, during the transfer of tape from the supply spool 3 to the take up spool 5, both the supply spool motor 6 and the take-up spool motor 7 are energised in the same rotational direction. That is, the supply spool motor 6 is energised to turn the supply spool 3 to pay out an amount of tape while the take-up spool motor 7 is energised to turn the take-up spool 5 to take-up an amount of tape.
(37) The motors 6, 7 can therefore be said to operate in “push-pull” mode, with both motors being operated in a position (or speed) controlled manner. Where tension in the tape is to be maintained, it is important that the linear quantity of tape paid out by the supply spool is essentially equal to the linear quantity of tape taken up by the take-up spool. Additionally, as noted above it is desirable to transport a predetermined linear distance of tape between spools. This requires knowledge of the diameters of the spools given that the drive is applied to the spools and the linear length of tape transferred by a given rotational movement of the spools will vary in dependence upon the spool diameters. This knowledge can be obtained and updated in a variety of ways, several of which is are described in our earlier U.S. Pat. No. 7,150,572.
(38) As described above, during continuous printing operations, the ribbon 2 is controlled based upon the speed of the substrate 12 moving past the printhead 11. For example, data indicative of the speed of movement of the substrate 12 may be obtained from the encoder 14. Such data may be referred to as a substrate speed. During continuous printing, the supply and take up spool 3, 5 are caused to rotate by the motors 6, 7 so as to cause the ribbon 2 at the printing location L.sub.P to move at a linear speed which is substantially equal, or at least based upon, the substrate speed. For example, as described in our earlier patent application WO2016/067052 the ribbon speed may be controlled so as to be a percentage (e.g. 96%) of the substrate speed. The speed of the ribbon 2 at the printhead 11 during printing in continuous mode may be referred to as a ribbon speed.
(39) During ribbon movements, each of the motors 6, 7 are controlled by the controller so as to move at an angular speed which causes ribbon to be advance at a predetermined linear speed past the printhead 11. Where the motors 6, 7 are stepper motors, the control of the motors to move at a predetermined angular speed results in the each of the motors being controlled to advance at a predetermined step rate.
(40) It will be understood that, as is well known in the field of motor control, the stepper motors 6,7 may be controlled to advance in increments which correspond to full steps at the native resolution of the motor (e.g. 1.8 degrees per step, or 200 steps per full revolution), or sub-steps (e.g. half-, quarter-, or micro-steps). By controlling the motors to advance in micro-step increments, it is possible to control the angular position of the output shaft of the motor far more accurately than in full-step operation, thereby allowing more refined control of the ribbon movement. However, even where micro-stepping is used, the motors 6, 7 are each controlled by reference to a set of discrete output angular positions. In the following description, where reference is made to motors being advanced by ‘steps’, or ‘steps’ being applied to a motor, it will be understood that the motor may be advanced by an amount that corresponds to a full-step, a half-step, a quarter-step or a micro-step (e.g. an eighth-step), depending on the configuration.
(41) In order to achieve relatively smooth rotation of the motors, and the rapid accelerations and decelerations that are required in a printer tape drive, the motors are controlled by specifying times at which steps should be applied. The times at which these steps are applied may be determined based upon acceleration tables which are stored in a memory associated with the controller 10. The acceleration tables may contain data indicative of a set of motor speeds, and/or rates (which correspond to angular speeds) at which steps should be applied to the motors. In an embodiment the acceleration tables contain data indicative of a delay between motor steps for each of a set of motor speeds.
(42) Moreover, the acceleration tables define transitions between step rates (which correspond to speeds) which can be achieved while operating within the operational limits of the motors. That is, a stepper motor may stall if accelerations or decelerations are attempted to be applied which require torques to be applied which are greater than the motor capabilities (whilst taking into account the inertia of spools of ribbon driven by the motors). As such, the acceleration tables contain data which is indicative of the maximum safe acceleration rates which can be applied to a motor.
(43) The acceleration tables may be based upon data indicative of the maximum angular acceleration rate for each motor, and may, for example, be re-calculated for each printing cycle so as to take into account current spool diameters values. That is, at the time of use (i.e. during a printing cycle) each acceleration table may already have been re-calculated based upon current spool diameter values so as to contain step rate data for a particular motor in a particular winding condition operating at various linear ribbon speeds. Thus, no adjustment for spool diameter is needed at the time at which the acceleration tables are accessed. Of course, it will be appreciated that the adjustment for spool diameter could be made at run-time if preferred. Alternatively, the acceleration tables could be updated at a different rate, for example, after each time a predetermined length (e.g. 750 mm) of ribbon has been transferred between the spools.
(44) Further, the acceleration tables for each motor in a printer (taking into account the current diameter of spools of tape mounted on those motors) may be generated so as to generally correspond to one another. For example, rather than an acceleration table for a motor driving a first spool having small diameter (and therefore small linear distance per step) being generated which allows a significantly different acceleration profile than a corresponding acceleration table for a motor driving a second spool of the same printer which has a large diameter (and therefore larger linear distance per step), the acceleration tables for the two motors may be generated such that the maximum linear acceleration rates are generally consistent for the two motors.
(45) For example, a global maximum linear acceleration value (e.g. 25 m/s.sup.2) may be used to generate the acceleration tables for both motors at all spool diameters. Such a maximum linear acceleration value may be selected based upon a rate at which a motor driving a spool having a maximum allowable spool diameter can be safely accelerated and decelerated without causing the motor to stall.
(46) It will, however, be appreciated that even if acceleration tables generated for both of the motors 6, 7 provide a common maximum linear acceleration, for any particular actual motor speed, and a desired new ribbon speed, the two motors may have to respond to the speed demand differently. That is, given the different step sizes (in terms of linear distance of tape moved per step), the acceleration table for each motor will contain different speed entries, with different allowable speed steps based upon the current spool diameters.
(47) In use, where the desired ribbon speed changes, the updated desired ribbon speed is then converted into motor step rates by looking up the most suitable (and achievable) step rate in the relevant acceleration table. In particular, a modified step rate is determined with reference to the acceleration tables, the modified step rate being a step rate which is as close to the desired step rate as can be achieved without exceeding an allowable acceleration. Steps are then applied to each of the motors at the modified (i.e. achievable) step rates. Where the closest achievable step rate to a desired step rate (e.g. as determined based upon the desired ribbon speed) is below the desired step rate, the step rate will be updated again at the next refresh cycle (i.e. after a next step has been applied), so as to allow the motor to be accelerated towards the desired speed over two (or more) steps.
(48) For example, in a configuration in which a supply spool diameter is 50 mm, and a take up spool diameter is 100 mm, a maximum permitted acceleration rate is 25 m/s.sup.2 and in which the motors 6, 7 are each controlled in a ⅛.sup.th step manner, the acceleration table for each motor may include entries as shown in Table 1.
(49) TABLE-US-00001 TABLE 1 Extract of exemplary acceleration tables Supply Spool Take-up Spool (Spool diameter: 50 mm) (Spool diameter: 100 mm) Index Speed Index Speed 1 70.06 1 99.08 2 99.08 2 140.12 3 121.35 3 171.62 4 140.12 4 198.17 5 156.66 5 221.56 6 171.62 6 242.70 7 185.37 7 262.15 8 198.17 8 280.25 9 210.19 9 297.25 10 221.56 10 313.33 11 232.37 11 328.62 12 242.70 12 343.23 . . . . . . . . . . . .
(50) Each entry in each of the tables is representative of a linear ribbon speed. The speeds are calculated as the linear speed that is reached at the circumference of the spool by moving the motor a single step, with the spool being accelerated at the maximum permissible acceleration during that step, starting either a stationary position (entry 1), or the previous speed entry (entries 2 and onwards). For each current spool speed, and a desired spool speed, the tables can be consulted to determine an allowable next speed. It is not permitted to make more than a single speed jump in the table in a single step, so if a desired speed change exceeds the permitted change, the desired speed change is applied over two (or more) steps.
(51) Assuming that both spools are in motion with a current ribbon speed of 200 mm/s, the supply spool motor, driving a supply spool with a diameter of 50 mm, can be driven at a maximum speed of 210.19 mm/s for the next step (entry 9). This is on the basis that the closest table entry below the current speed is 198.17 mm/s (entry 8).
(52) It is noted that where a deceleration is required, the closest table entry above the current speed will be used as the starting point, so as to ensure that the maximum acceleration rate is not exceeded.
(53) The take up spool motor, driving a take-up spool with a diameter of 100 mm, and currently rotating at 200 mm/s also a closest table entry below the current speed of 198.17 mm/s (entry 4) can be driven at a maximum next speed of 221.56 mm/s (entry 5).
(54) Thus, in this example, if a new desired ribbon speed is 220 mm/s, the supply spool will not be able to achieve that speed in the next step, whereas the take up spool motor can achieve (and exceed) that speed.
(55) The next step applied to the motors will cause each motor to accelerate, but will cause the supply spool motor to accelerate to 210.19 mm/s (entry 9), whereas the take up spool motor will be caused to accelerate to the desired speed of 220 mm/s. However, the subsequent step for the supply spool will allow the speed to increase from 210.19 mm/s (entry 9) to up to 221.56 mm/s (entry 10). As such, a speed of 220 mm/s will be selected and, after two steps, the supply spool motor will also be at the desired speed.
(56) It is noted that the two steps required to be applied to the supply spool motor to reach the desired speed will be completed at around the same time as the single step required by the take-up spool motor has been completed. This is because the supply spool diameter is 50 mm, as compared to a take-up spool diameter of 100 mm, which results in a 2:1 step ratio for the same linear distance moved.
(57) Of course, it will be appreciated that the times at which steps are applied, and the step duration, will vary between the motors in dependence upon the spool diameters. Thus, during ongoing motor operations, the current speed, the next desired speed and permitted maximum and minimum speeds are continually changing for each motor, at different rates.
(58) In general terms, for each step performed, the controller may identify the step rate above and below the current rate in the relevant table. These rates are used as upper and lower limits for the next step. If a subsequent speed target is above the upper limit, the upper limit is used, and if a subsequent speed target is below the lower limit, the lower limit is used. If the subsequent speed target within the allowable range, the target speed is used. If the current speed corresponds to an entry in the relevant acceleration table, the allowable speed range may be a full step above or below the current speed.
(59) In this way, during ribbon transport operations, i.e. when attempting to drive the motors 6, 7 in accordance with a desired motion profile, it will be understood that the controller 10 will make frequent reference to the acceleration tables, and will continually update the rate at which steps are applied to the motors 6, 7 to attempt to ensure that the ribbon is moved as closely as possible to a desired speed as can be achieved within the limitations of the printer.
(60) In some embodiments the ribbon may be required to be advanced at a ribbon speed which is based upon a substrate speed (e.g. at a speed which is proportional to the substrate speed). In such an arrangement, the substrate speed may be referred to as a master speed. Changes in substrate speed (for example, which may be monitored by the encoder 14) may result in an updated desired ribbon speed being determined. The updated desired ribbon speed is then converted into motor step rates by looking up the most suitable (and achievable) step rate in the relevant acceleration table as described above.
(61) The use of acceleration tables in this way is now described with reference to
(62) Alternatively, the desired ribbon speed may be generated based upon a different reference speed, such as, for example, an internally generated reference speed (i.e. not the encoder data). In some embodiments, an internally generated reference speed is used during some ribbon movements, while an external reference (e.g. the substrate speed) is used during other ribbon movement. For example, in an embodiment an internally generated reference is used during deceleration, and ribbon rewind operations, with the substrate speed being used during the acceleration and printing phases of continuous printing operations. In some embodiments, the internally generated reference speed may also be used during ribbon acceleration. The reference speed V.sub.REF upon which the ribbon speed is based may be referred to as the “master” speed.
(63) Further, in some embodiments the ribbon movement may be controlled based upon substrate movement in different ways. For example, it is been realised that, in some instances, an image printed by the printer on the substrate having a first length may result in a negative image having a different length being formed on the ribbon. For example, a printed image of 70 mm in length may result in a negative image of 69 mm being formed. Thus the ribbon may be controlled during and between printing operations such that the portion of unused ribbon between adjacent negative images is minimised.
(64) For example, when attempting to place adjacent 70 mm long images at an offset of 70.5 mm (thereby allowing a 0.5 mm gap), an actual gap of 1.5 mm may be observed between adjacent negative images. Thus, the ribbon movement may be adjusted such that images are attempted to be placed at an offset of 69.5 mm, thereby allowing an actual gap of 0.5 mm, and reducing the wastage of ribbon by 1 mm for every 70 mm of printed image.
(65) Of course, different scaling factors may be used as appropriate. Any such adjustment of scaling factor may be made empirically, for example by monitoring the actual dimensions of negative ribbon images. Without wishing to be bound by theory, it is believed that the mismatch between negative image length and printing image length may be a result of the ‘ironing’ of ribbon between the printhead and the printing surface during printing.
(66) It will be understood that image scaling performed in order to allow comparison between the expected printed image and captured images (as described in more detail below) may also apply a scaling factor to compensate for this effect.
(67) The desired spool speeds V.sub.TU-D V.sub.SU-D are passed to a spool speed block 42, which also receives as inputs the current take-up spool speed V.sub.TU and the current supply spool speed V.sub.SU. The spool speed block 42 obtains, from a memory location, appropriate acceleration tables AC.sub.TU, AC.sub.SU for the take-up and supply spools (which have previously been generated based upon knowledge of the current spool diameters).
(68) Based upon the acceleration tables AC.sub.TU, AC.sub.SU, the current speeds V.sub.TU, V.sub.SU, and the desired spool speeds V.sub.TU-D V.sub.SU-D, the spool speed block 42 generates a commanded supply spool speed V.sub.SU-C and a commanded take-up spool speed V.sub.TU-C as described above in more detail.
(69) It will, of course, be appreciated that during ongoing operations the desired speed may change rapidly, and in a way which is beyond the capabilities of the motors 6, 7. In such circumstances the ribbon speed (as controlled by the spool speeds) may be adjusted in response to changes in substrate speed. However, there may be a lag between an updated substrate speed being detected, and an updated ribbon speed being achieved. Thus, while the actual ribbon speed is not equal to the desired spool speeds speed, the distance moved by the ribbon will not match the desired distance (which may, for example, be derived from the distance moved by the substrate).
(70) Moreover, even where any requested changes are well within the capabilities of the motors 6, 7, where the ribbon speed is adjusted in response to changes in substrate speed, there may be a lag between an updated substrate speed being detected, and an updated ribbon speed being achieved.
(71) Further, as described above, one motor may be able respond more quickly to a desired speed change than the other motor, resulting in discrepancies in the amount of ribbon fed by the two motors.
(72) Any discrepancy between the actual speed of a motor and the desired speed will result in the amount of ribbon fed by that motor deviating from the expected (or desired) amount. Thus, during each tape transport operation, the controller monitors the actual cumulative distance fed by each of the motors (for example by recording the number of steps applied to each motor). This monitored cumulative distance may be used to improve the control of the motors. For example, where motion is controlled with reference to substrate movement (e.g. by use of the encoder 14), the cumulative distance moved by the substrate 12 may be monitored and regarded as the “master” distance. Cumulative distances moved by each of the spools may also be monitored and compared to the “master” distance. If either of the monitored spool distances deviates by more than a predetermined amount from the master distance, an appropriate correction can be made.
(73) Further, as the desired speed changes during operation, the different step rates of the two motors (i.e. due to there being different spool sizes) result in the same speed change having a different effect on different motors. For example, a first motor having a high step rate (i.e. a small spool diameter) may “see” a temporary speed fluctuation which is not “seen” by a second motor having a lower step rate (i.e. a large spool diameter, and thus a lower speed refresh rate.
(74) More generally, the different step rates (due to different spool diameters) result in there being different effective sampling rates of the desired speed for each of the motors, and therefore different speed errors, resulting in different accumulated distance errors. Where a desired speed fluctuates rapidly (e.g. due to a noisy substrate encoder signal), this can have a significant cumulative effect where one motor can track the noise, whereas another cannot.
(75) For example during a substrate movement of 100 mm, the take-up spool 5 may be recorded as taking up 100.1 mm of ribbon, and the supply spool 3 may be recorded as paying out 99.7 mm of ribbon. In this case, the total ribbon paid out is less than that taken up by 0.4 mm, which will result in there being an increase in ribbon tension.
(76)
(77)
(78) In order to mitigate any negative effects associated with these errors in feed distances, corrections can be applied to the motor control signals during ongoing ribbon movements (but during the same print cycle) in order to correct the feed errors.
(79) For example, the controller 10 may be arranged to monitor the cumulative distances fed and compare to the master distance, and, if the differences exceeds a predetermined threshold, apply a correction. The correction may, for example, take the form of an increase or decrease in the target speed of the spool concerned. Thus, rather than correcting the distance instantaneously (which could potentially cause an abrupt change in ribbon tension and/or ribbon positioning), a speed scaling factor is applied to the relevant motor. Moreover, abrupt speed changes may not be within the physical capabilities of the motors.
(80) For example, a first distance error threshold T1 of ±0.1 mm may be provided. If the cumulative error exceeds this threshold T1, a first speed scaling factor S1 of 0.5% (positive or negative as required) may be applied. A similar process may be performed independently for each of the spools 3, 5.
(81) Further, if required, additional thresholds and corrections may be applied. For example a second threshold T2 of ±0.33 mm may be provided, and if this threshold is exceeded, a second speed scaling factor S2 of 1.8% applied, and so on. As greater errors are identified, corrections of greater magnitude may be required.
(82) The threshold (or thresholds) may be selected so as to maintain tension within predetermined limits. That is, a particular threshold may correspond to a tension deviation from a nominal ribbon tension that is known to provide reliable printing performance and tape drive operation. Moreover, the threshold (or thresholds) may be selected so as to allow the inevitable and transient errors in motor positioning to occur without correction. In particular, the different motor step rates (due to different spool diameters) result in there being an inevitable difference in apparent instantaneous relative motor shaft position throughout a ribbon movement operation. For example, while one motor may apply three steps, the other may apply one step for the same linear distance moved. In this situation, during the stepping process, the apparent position error between the motors will fluctuate. However, this position error will cancel itself out over several steps, assuming that the motors are moving substantially the same distance. If the threshold was set at a level which was triggered during every stepping cycle, corrections may be applied too quickly, and oscillations may occur.
(83) Of course, while the apparent motor shaft position may change immediately after each step command is issued, in practice, the shaft position will change more gradually, and may effectively be in continuous motion, rather than moving abruptly between stationary positions.
(84) The effect of such corrections is illustrated in
(85) In addition to the profile showing the speed of the supply spool V.sub.SU in
(86) In some embodiments the scaling factors may be removed as soon as the error value falls below the relevant threshold level. In alternative embodiments, one or more additional switch-off threshold levels may be provided. For example, where a first threshold T1 is set at ±0.1 mm, a first turn-off threshold TO1 may be set at ±0.08 mm. Similarly, where a second threshold T2 is set at ±0.33 mm, a second turn-off threshold TO2 (which triggers the switch from second speed scaling factor S2 to the first speed scaling factor S1) may be set at ±0.12 mm.
(87) The take-up spool can be controlled in a similar way. Further, the desired spool speeds can be calculated independently of the substrate speed (e.g. where the substrate speed is not provided as an input, or during intermittent printing operations).
(88) Furthermore, in some embodiments, the spool speeds can, during part of a printing cycle, be generated based upon the substrate speed (e.g. during printing), and at other times (e.g. during ribbon acceleration, deceleration, and positioning/rewind) be generated based upon a predetermined motion profile. In some embodiments, one of the motors is controlled based upon the current speed of the other motor (which is used as the reference speed V.sub.REF). That is, either of the supply or take-up spool motor can operate as the “master” motor, with the other motor acting as a “slave”.
(89) The control described above with reference to
(90) It will be appreciated, however, that even where the linear quantity of ribbon paid out and taken up by the spools 3, 5 is accurately controlled to be equal (for example, by controlling the spool speeds as described above), any change in the ribbon path length can cause variations in ribbon tension. For example, during printing operations, the printhead 11 is caused to deflect the ribbon 2 into and out of contact with the substrate 12. The distance moved by the printhead between a retracted position (which may be referred to as a ready to print location L.sub.RTP) and an extended position (when the printhead 11 is pressed against the printing surface, also referred to as a printing location L.sub.P) may be around 2 mm, and may vary between different printer configurations and installations. As such, the ribbon path length may be caused to vary during printing operations by an amount which has a material effect of the tension in the ribbon. Moreover, the deflection of the ribbon 2 by the printhead 11 may result in the portion of ribbon 2 which is printed on at the printing location L.sub.P being different to the portion of ribbon 2 intended or expected to be printed on.
(91) As such, and in order to further reduce any negative consequences associated with the error in ribbon positioning and tension control, data indicative of the increase (or decrease) of ribbon path length may be provided to the feed correction block 41. Such data may be referred to a printhead position data PH.sub.POS.
(92) Such data may be used to apply a further correction to the desired supply and take up spool speeds V.sub.SU-D, V.sub.TU-D. For example the desired supply and take up spool speeds V.sub.SU-D, V.sub.TU-D may be scaled by a further factor such that an adjusted feed speed is determined for each spool. Alternatively, the printhead position data PH.sub.POS may be added to either one or both of the position errors for the supply spool ERR.sub.SU and the take-up spool ERR.sub.TU. That is, the stored data indicating the cumulative error may be adjusted in anticipation of an expected printhead movement. On other words, an anticipated path length error may be injected into one or more of the error accumulators. In this way, the processing described above (e.g. using a threshold value and speed scaling factor) may be used to accommodate printhead movements.
(93) Further, in some embodiments, one or more of the threshold values and/or speed scaling factors may be modified in order to respond quickly to an expected disturbance. For example, the speed scaling factor S2 associated with the second threshold level T2 may be increased based upon the ribbon path length error to be injected. The scaling factor adjustment may, for example, be calculated based upon the magnitude of the path length adjustment to be made, the current ribbon target speed, and the anticipated time it will take the printhead to complete the movement. Further, the T2 off level TO2 may be adjusted prevent any overshoot. For example, if the speed scaling factor is increased, the likelihood of overshoot is increased. Therefore, the threshold at which the speed scaling factor is reduced may also be increased, so as to lessen any overshoot (i.e. so that the speed scaling reverts to the first speed scaling factor S1 more quickly).
(94) For example, where the speed scaling factor S2 is large (e.g. 50%), and the ribbon speed is also significant (e.g. 400 mm/s), when reverting from the second threshold to the first threshold, the motor may need to rapidly accelerate or decelerate when the turn off threshold TO2 is crossed. However, if this threshold TO2 is set at the level described above (e.g. 0.12 mm error) the adjustment will require a change of speed from a 50% scaled speed, to a 0.5% scaled speed. Moreover, with only 0.12 mm of error needing to be corrected at this stage, it is unlikely that a motor will be able to accelerate or decelerate quickly enough to reach the new target speed before an error has accumulated in the opposite direction. Thus, the second turn off threshold TO2 may be increased so as to provide a longer period in which the correction can be effected.
(95) It will be understood that the speed scaler factors S1, S2 and threshold levels T1, T2 may initially be configured to respond to the gradual accumulation of errors in distance that occur during normal ribbon feeding operations. Since these errors are generally fairly small in magnitude, and occur relatively slowly, the feed correction block 41 may react with small corrections over a relatively long period of time. In particular, it is not ordinarily expected or intended that there are sudden large changes in the ribbon speed during printing, as this could affect the print quality, and lead to print sizing defects.
(96) However, these concerns do not apply when the printhead is being withdrawn, since the printhead cannot be printing at this time. Moreover, the scaling factors used to respond to gradual error accumulations may not be large enough to correct the error introduced by the printhead movement before the ribbon feed has completed. Thus, one or more of the speed scaling factors (e.g. the second speed scaling factor S2) may be adjusted to correct the path length error that is about to be introduced in approximately the amount of time that the printhead movement is expected to take.
(97) In some embodiments, the second threshold T2 is reduced to the extent that it is the same as the first threshold T1. In such an arrangement, the second speed scaling factor S2 is applied as soon as the first threshold T1 (and second threshold T2) is reached. This may be preferred where any path length adjustment is small (e.g. where there is a small gap between the ready to print position and the printing position). For example, if no T2 adjustment was made, an error which is just below the second threshold T2 level (e.g. 0.3 mm) may only be corrected by a small (e.g. 0.5%) speed scaling factor, and may thus take some considerable time to be corrected. However, where the second speed scaling factor S2 is adjusted based upon the required correction (e.g. the magnitude of the error ERR.sub.SU), the second threshold may also be reduced to allow the second speed scaling factor S2 to be applied more quickly. In an embodiment, if an anticipated path length change would cause an effort between the first and second threshold T1, T2, the second threshold may be adjusted to fall between the anticipated error, and T1.
(98) More generally, it is noted that the path length disturbances which result from step timing errors (which gradually accumulate) are different in nature to those which result from printhead movements (which apply almost instantaneously). Thus, the response to each type of path length change may be optimised for each disturbance while still using the same underlying control algorithm.
(99) It is further noted that the speed scaling factors and thresholds may be adjusted only in the direction of the correction that is required. For example, for a printhead retraction movement (which requires ribbon to be removed from the path to avoid slack ribbon), only the second threshold and speed scaling factor for ribbon removal are adjusted. Of course, the opposite may apply during a printhead extension movements.
(100) In some embodiments, the data indicative of the printhead position PH.sub.POS may be used only to the adjust control of the supply spool motor 3. Such control may be considered to reduce the likelihood of rapid tension changes being caused between the take up spool 5 and the printhead 11, which could have a detrimental effect on ribbon peel angle, and therefore print quality.
(101) It will, of course, be appreciated that during each printing operation the printhead will be brought into contact with, and then out of contact with the printing surface. Thus, positive and negative adjustments may be made to ribbon path length (e.g. via adjustments to the position errors for the supply spool ERR.sub.SU) during a single printing cycle.
(102) Moreover, given the high speed at which steps may be applied to the motors 6, 7 (e.g. at stepping rates of up to several, or even several tens of, kilohertz), it is possible that printhead movements will be ongoing for more than a single step. That is, a printhead movement may span several motor steps. Indeed, in some embodiments, a printhead movement may take around 10 ms, which may, for example, span 500 tape drive motor steps.
(103) As such, in some circumstances, the printhead position data PH.sub.POS may be modified across several steps, so as to provide accurate and up to date information regarding the actual ribbon path length at every point in time (rather than assuming that the printhead movement is instantaneous). In this way, any speed adjustment made by the ribbon feed correction block 41 may be distributed over several motor steps.
(104) However, in a preferred embodiment, it is assumed that the printhead movement is instantaneous, on the basis that the maximum acceleration for the motors 6, 7 may limit the rate at which the tape drive can respond, and thus the response to the printhead position movement will effectively be distributed over several steps by the limited acceleration. In such an arrangement, the path length error is injected to the error accumulator as soon as the printhead movement begins.
(105) If the path length error was added gradually (for example based upon detected printhead position), it is possibly that there would be a significant delay during the initial part of the printhead movement whilst the error value accumulated, thereby delaying any corrective response. If is noted, however, that if the ribbon motors provided were capable of higher acceleration rates, and thus able to respond to an error more quickly, it may be preferred to for the path length adjustment block to use the printhead position data directly (rather than anticipating the path length change).
(106) The printhead position data PH.sub.POS may be generated in any convenient way. For example, the printhead position data PH.sub.POS may be generated with reference to the motor 29 which controls the movement of the printhead 11. In particular, the printhead position data PH.sub.POS may be generated by monitoring steps applied by the motor 29. Alternatively, the printhead movement data may be generated with reference to the encoder 36 associated with the motor 29. For example, it may be assumed that any movement of the motor shaft 29a will correspond to a movement of the printhead 11.
(107) Further, as noted above, given the relationship between the motor 25 and the printhead assembly (i.e. the coupling of the motor 25, via the belt 27 to the printhead carriage 21), movement of the motor 25 also has an impact on the position of the printhead relative to the printing surface.
(108) Thus, in general terms it will be understood that at any point in time, the position of the printhead 11 can be determined by reference to the motor 29, and the motor 25. That is, for a given angular position of the motor shafts 25a, 29a, there is a predictable angle of the arms 33, 34, and thus a predictable position of the printhead 11 with respect to the body of the printer 1.
(109) However, in use, the position of the printing surface 13 with respect to the body of the printer 1 may vary. It some prior art printers, it is known for a nominal platen separation to be programmed by a user during printer configuration. However, such a process may be inherently unreliable. Moreover, even if the initial platen separation was accurate, configuration changes may occur, resulting in the nominal separation becoming inaccurate.
(110) It is desirable, therefore, for a number of reasons to provide a more accurate indication of the gap between the printhead 11 and the printing surface 13 when the printhead 11 is in the ready to print location L.sub.RTP to the printer controller 10. Such data may be used as described above to adjust the control of the motors 6, 7, controlling the movement of ribbon between the spools. Alternatively, or additionally, such data may be used to allow more accurate tracking of regions of ribbon which are used for printing.
(111) A process by which accurate estimates of platen gap and printhead position during printing operations will now be described.
(112) It is possible to monitor the point at which the printhead makes contact with a printing surface by monitoring the power supplied to a motor driving the printhead (and thus the torque applied by that motor). However, it is been realised that there may be errors between the position of the printhead 11 as determined purely by reference to the point at which in the printhead 11 makes contact with the printing surface as indicated by the motor controlling that movement, and the actual deflection of the ribbon 2 during printing operations. For example, calculating the printing location L.sub.P on the basis of the position of motor shaft 29a alone can lead to an overestimate of the extension of the printhead 11. It is understood that the various belts and mechanical linkages, as well as the inherent compliance within the printing surface (e.g. a print roller) can contribute such errors.
(113) As such, it has been realised that by applying a negative offset to the apparent printhead position, a more accurate representation of the ribbon deflection can be achieved. The offset may be empirically determined to provide robust detection of the printing location L.sub.P. Moreover, the offset may vary depending upon the printing force and other configuration changes (e.g. a change in print roller).
(114) Various positions of the printhead can be understood by reference to
(115)
(116)
(117)
(118) A process by which printhead position data PH.sub.POS is generated will now be described with reference to
(119) At step S101, a data item indicative of the actual printing location L.sub.P-ACTUAL is initialised. Processing passes to step S102 where the printhead 11 is driven towards the printing surface 13 by the motor 29. During this movement, the motor 25 is held stationary, so as to prevent any movement of the carriage 21 in a direction parallel to the printing surface 13 along the linear track 23. During this movement of the printhead the motor 29 may be controlled to deliver a maximum torque which corresponds to a predetermined printing force being exerted on the printing surface 13.
(120) During the movement of the printhead at step S102, the encoder 36 associated with the motor 29 is monitored. Once the encoder output value PH.sub.ENC stops changing, indicating that an equilibrium (i.e. substantially stationary) position has been reached, with the predetermined printing force being exerted on the printing surface 13 by the printhead 11, processing passes to step S103.
(121) It will be understood that the encoder 36 may rarely be totally stationary. As such, a low pulse rate may be detected, and considered to be indicative of an equilibrium position being reached. Moreover, a processing delay may be inserted before the encoder output is monitored at step S102, so as to allow for any system latency (e.g. a delay after a move command is generated and before the encoder value begins to change).
(122) At step S103, the encoder value PH.sub.ENC when the equilibrium position is reached is stored as an apparent printing location L.sub.P-APPARENT. The apparent printing location L.sub.P-APPARENT is an encoder position which indicates the apparent position of the printing location.
(123) It will be understood that the apparent printing location (in terms of a physical position with reference to other components of the printer) may subsequently be generated with reference to the known angular position of the output shaft 25a of the motor (as indicated by the encoder data PH.sub.ENC/L.sub.P-APPARENT) and the known geometry of the printer (e.g. the position of the belts 27, 31, the length and alignment of the arms 33, 34 etc.). This conversion may be performed at any convenient time as required, for example, with reference to a lookup table containing known relationships between encoder values and actual printhead positions.
(124) Processing then passes to steps S104, where the apparent printing location L.sub.P-APPARENT is compared to reference data so as to determine if the apparent printing location L.sub.P-APPARENT is within an a acceptable range (e.g. a platen separations of 0 mm to 5 mm). Of course, where the apparent printing location L.sub.P-APPARENT is an encoder value, data indicating an acceptable range may be provided in terms of encoder values corresponding to acceptable physical positions. If the value is not in an acceptable range, a fault is raised to the user at step S105.
(125) Provided this apparent printing location L.sub.P-APPARENT is within an acceptable range, processing passes to step S106, where a predetermined offset value PH.sub.OFF is subtracted from the apparent printing location L.sub.P-APPARENT. That is, an offset is applied such that the apparent printing location L.sub.P-APPARENT as determined by the angular position of the encoder 36 (and therefore motor shaft 29a) is adjusted so as to correspond to an earlier position in the movement of the printhead 11 towards the printing surface 13. The offset value PH.sub.OFF may be a number of encoder pulses. The resulting position may be referred to as an actual printing location L.sub.P-ACTUAL.
(126) It will be understood that as the printhead 11 makes contact with the printing surface 13, the printing surface 13 may be compressed. Moreover, the belts 27, 31 may flex in a direction perpendicular to the direction of travel of the ribbon 2 and the substrate 12. Such flexion will result in some rotation of the motor 29a not being transferred to movement of the printhead. Moreover, once contact has been made between the printhead 11 and the printing surface 13, the portion of ribbon at the printing location L.sub.P will be somewhat restricted in its movement due to the friction forces between the various surfaces.
(127) It is been observed that by applying an empirically determined offset to the apparent printing location L.sub.P-APPARENT when the motor 29 stops rotating to generate the actual printing location L.sub.P-ACTUAL data, it is possible to obtain a more accurate indication of the actual location of the printing location L.sub.P, which more accurately reflects the actual ribbon deflection during printing operations.
(128) Once the actual printing location L.sub.P-ACTUAL has been determined, processing passes to step S107 where this data is stored for subsequent use.
(129) The processing of steps S102 to S107 is repeated for each subsequent printhead movement (e.g. during printing operations) and, for each movement of the printhead into contact with the printing surface 13, the actual printing location L.sub.P-ACTUAL is updated. For example, rather than simply relying upon a single measurement, in use the actual printing location data L.sub.P-ACTUAL may be based upon an average of a plurality (e.g. ten) of previous printhead movements. In this way, any changes in printing location L during ongoing printing operations can be monitored.
(130) During printing operations, a number of uses may be made of the actual printing location data L.sub.P-ACTUAL. For example, the actual printing location L.sub.P-ACTUAL may be passed to the ribbon feed controller 40 as printhead position data PH.sub.POS (as described above with reference to
(131) However, it will be understood that during movement of the printhead the printhead position will vary, and will not, therefore, be equal to the actual printing location L.sub.P-ACTUAL at all times.
(132) Processing performed by the controller 10 to generate an appropriate printhead position PH.sub.POS to provide to the ribbon feed controller 40 is now described with reference to
(133) At step S110, current printhead encoder value PH.sub.ENC is obtained. Processing passes to step S111 where the value is converted to an apparent printhead position PH.sub.POS-APPARENT. In an embodiment, the apparent printhead position PH.sub.POS-APPARENT is simply an encoder value. Alternatively, in other embodiments the apparent printhead position PH.sub.POS-APPARENT may be a physical position and may be generated with reference to a lookup table storing positional information, or by processing of the current encoder value PH.sub.ENC and known geometry data. However, in the described embodiment, the conversion from encoder values to actual distances is performed at a different processing step (e.g. within the ribbon feed controller 40).
(134) It is noted that, at the point at which the encoder output value PH.sub.ENC stops changing, the apparent printhead position PH.sub.POS-APPARENT value will be equal to the apparent printing location L.sub.P-APPARENT value generated at step S106. However, whereas the apparent printing location L.sub.P-APPARENT value represents a single location, the apparent printhead position PH.sub.POS-APPARENT value is a continually varying quantity.
(135) Processing then passes to step S112 where the apparent printhead position PH.sub.POS-APPARENT is compared with the currently stored actual printing location L.sub.P-ACTUAL (as generated in step S107). If the current apparent printhead position PH.sub.POS-APPARENT is smaller than the stored actual printing location L.sub.P-ACTUAL value, then the current position data item is used as the data indicative of printhead position PH.sub.POS. That is, if the apparent printhead position PH.sub.POS-APPARENT indicates that the printhead 11 has not yet reached the printing location L.sub.P, then processing passes to step S113 where the apparent printhead position PH.sub.POS-APPARENT is used in subsequent processing as the data indicative of printhead position PH.sub.POS.
(136) On the other hand, if the apparent printhead position PH.sub.POS-APPARENT is greater than the stored actual printing location L.sub.P-ACTUAL, then processing passes to step S114 where the stored actual printing location L.sub.P-ACTUAL is used as the data indicative of printhead position PH.sub.POS.
(137) In this way, an estimate of the actual printing location L.sub.P-ACTUAL is obtained and maintained during ongoing printing operations. This actual printing location L.sub.P-ACTUAL corresponds to an encoder value indicative of a platen separation (the platen separation being a distance to be moved by the printhead between the ready to print location L.sub.RTP and the printing location L.sub.P).
(138) Moreover, by using an offset value, allowance is made for various system compliances that could otherwise cause a discrepancy between the apparent printing location L.sub.P-APPARENT and the actual printing location L.sub.P-ACTUAL.
(139) Further, during ongoing movements of the printhead, the lesser of the apparent printhead position PH.sub.POS-APPARENT and the actual printing location L.sub.P-ACTUAL is passed to ribbon feed controller 40 (or other function within the printer controller 10) as the indicative printhead position PH.sub.POS. This allows the actual data to be used where the printhead is in a free space position (i.e. where it is not in contact with the printing surface 13) but uses the more robust offset and averaged printhead location data L.sub.P-ACTUAL when it is pressed against the printing surface 13.
(140) In this way, accurate and robust data is provided to the various functions of the printer controller 10 as required, allowing accurate ribbon control and more accurate tracking of regions of ribbon which are used for printing.
(141) Where references have been made to stepper motors herein, it will be appreciated that motors other than stepper motors could be used in alternative embodiments. Indeed, stepper motors are an example of a class of motors referred to position-controlled motors. A position-controlled motor is a motor controlled by a demanded output rotary position. That is, the output position may be varied on demand, or the output rotational velocity may be varied by control of the speed at which the demanded output rotary position changes. A stepper motor is an open loop position-controlled motor. That is, a stepper motor is supplied with an input signal relating to a demanded rotation position or rotational velocity and the stepper motor is driven to achieve the demanded position or velocity.
(142) Some position-controlled motors are provided with an encoder providing a feedback signal indicative of the actual position or velocity of the motor. The feedback signal may be used to generate an error signal by comparison with the demanded output rotary position (or velocity), the error signal being used to drive the motor to minimise the error. A stepper motor provided with an encoder in this manner may form part of a closed loop position-controlled motor.
(143) An alternative form of closed loop position-controlled motor comprises a DC motor provided with an encoder. The output from the encoder provides a feedback signal from which an error signal can be generated when the feedback signal is compared to a demanded output rotary position (or velocity), the error signal being used to drive the motor to minimise the error.
(144) It will be appreciated from the foregoing that various position controlled motors are known and can be employed in embodiments of a printing apparatus. It will further be appreciated that in yet further embodiments conventional DC motors may be used.
(145) While various disclosures herein describe that each of two tape spools is driven by a respective motor, it will be appreciated that in alternative embodiments tape may be transported between the spools in a different manner. For example a capstan roller located between the two spools may be used. Additionally or alternatively, the supply spool may be arranged to provide a mechanical resistance to tape movement, thereby generating tension in the tape.
(146) In general terms, ribbon is caused to advance between the spools in a controlled manner, so as to allow a predetermined portion of ribbon to be provided at the printing location and/or the imaging location at a particular point in time (e.g. during printing and/or imaging operations. Techniques described above relating to motor control compensation based upon printhead position data may be applied tape drives comprising to a single motor, or to a single motor of a tape drive.
(147) The terms ribbon and tape may be used interchangeably. For example, where the techniques described are applied to a transfer printer (such as a thermal transfer printer) the tape may be a ribbon. However, it will be understood that tape drive control techniques described herein may also be applied to a tape drive for transporting other forms of tape.
(148) The controller 10 has been described in the foregoing description (particularly with reference to
(149) Each controller device can take any suitable form, including ASICs, FPGAs, or microcontrollers which read and execute instructions stored in a memory to which the controller is connected.
(150) The described and illustrated embodiments are to be considered as illustrative and not restrictive in character, it being understood that only the preferred embodiments have been shown and described and that all changes and modifications that come within the scope of the inventions as defined in the claims are desired to be protected. In relation to the claims, it is intended that when words such as “a,” “an,” “at least one,” or “at least one portion” are used to preface a feature there is no intention to limit the claim to only one such feature unless specifically stated to the contrary in the claim. When the language “at least a portion” and/or “a portion” is used the item can include a portion and/or the entire item unless specifically stated to the contrary.