WO2016067051A1 - Tape drive and transfer printer - Google Patents

Tape drive and transfer printer Download PDF

Info

Publication number
WO2016067051A1
WO2016067051A1 PCT/GB2015/053284 GB2015053284W WO2016067051A1 WO 2016067051 A1 WO2016067051 A1 WO 2016067051A1 GB 2015053284 W GB2015053284 W GB 2015053284W WO 2016067051 A1 WO2016067051 A1 WO 2016067051A1
Authority
WO
WIPO (PCT)
Prior art keywords
tape
spool
spools
diameter
motor
Prior art date
Application number
PCT/GB2015/053284
Other languages
French (fr)
Inventor
Philip Hart
Original Assignee
Videojet Technologies Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Videojet Technologies Inc. filed Critical Videojet Technologies Inc.
Publication of WO2016067051A1 publication Critical patent/WO2016067051A1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J17/00Mechanisms for manipulating page-width impression-transfer material, e.g. carbon paper
    • B41J17/02Feeding mechanisms
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J17/00Mechanisms for manipulating page-width impression-transfer material, e.g. carbon paper
    • B41J17/02Feeding mechanisms
    • B41J17/04Feed dependent on the record-paper feed, e.g. both moved at the same time
    • B41J17/07Feed dependent on the record-paper feed, e.g. both moved at the same time electromagnetically controlled
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J17/00Mechanisms for manipulating page-width impression-transfer material, e.g. carbon paper
    • B41J17/02Feeding mechanisms
    • B41J17/08Feed independent of the record-paper feed
    • B41J17/10Feed independent of the record-paper feed electromagnetically controlled
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J33/00Apparatus or arrangements for feeding ink ribbons or like character-size impression-transfer material
    • B41J33/14Ribbon-feed devices or mechanisms
    • B41J33/34Ribbon-feed devices or mechanisms driven by motors independently of the machine as a whole

Definitions

  • the present invention relates to a tape drive, and more particularly, but not exclusively to a tape drive suitable for use in a transfer printer such as a thermal transfer printer.
  • Tape drives transfer tape from a first spool, often referred to a supply spool, to a second spool, often referred to as a take-up spool.
  • Tape drives find a wide variety of uses.
  • One such example is in transfer printers - in which ink is transferred from an ink carrying tape, often referred to as a ribbon - which require a means for transporting the ribbon from the first spool to the second spool past a print head.
  • Tape drives for use in transfer printers take a wide variety of forms, partially depending upon the nature of the printer in which the tape drive is used.
  • dot matrix printers often use a multi-use ribbon which passes between a supply spool and a take up spool. When the supply spool is exhausted the direction of ribbon travel is reversed. This process continues a number of times. In such a printer there is no need for accurate placement of the ribbon relative to the printhead given the reusable nature of the ribbon. Additionally many dot matrix printers operate at relatively low speeds and have modest requirements in terms of ribbon acceleration and deceleration.
  • thermal transfer printers make use of single use ribbon.
  • the ribbon to be used in a new printing operation is positioned adjacent to that used in a preceding printing operation thereby minimizing ribbon wastage.
  • single use ribbons it is important that unused ribbon is positioned at the print head during a printing operation as otherwise the printing operation will fail to transfer ink from the ribbon to a substrate thereby causing faulty printing.
  • thermal transfer printing often has relatively challenging requirements not only in terms of accuracy of ribbon movement - as discussed above - but also in terms of ribbon acceleration and deceleration.
  • Some tape drives require that the diameter of one or both of the spools is determined in order to allow the spools to be rotated in a controlled manner to cause predetermined movement of the tape between the spools. For example it is known to use an optical system to determine spool diameters.
  • a tape drive comprising: first and second motors; first and second spool supports, respectively receiving first and second spools of tape, the first spool support being driveable by the first motor and the second spool support being drivable by the second motor; a sensor arranged to provide a signal indicative of linear movement of tape between the tape spools along a predetermined tape path; and a controller arranged to control energization of said first and second motors for transport of the tape in at least one direction between the first and second spools of tape along the predetermined tape path; wherein the controller is arranged to generate data indicating the diameter of said first and second spools of tape based upon said signal provided by the sensor and data indicating rotation of each of said first and second spools.
  • the first aspect of the invention therefore provides a tape drive which is configured to determine the diameters of two tape spools based upon data indicating the rotation of those spools and a signal provided by a sensor which indicates linear movement of tape between the two tape spools.
  • Linear movement of the tape may be monitored by the sensor in any convenient way.
  • the sensor may comprise a roller and an encoder monitoring rotation of said roller, and tape may pass at least partially around said roller on said predetermined tape path. In this way rotation of the roller is indicative of the linear movement of the tape between the tape spools.
  • the encoder may generate a signal indicating a number of rotations of said roller. Where the diameter (or a parameter having a fixed relationship with the diameter) of the roller is known monitoring rotation of the roller allows a determination of the actual linear movement of the tape to be made.
  • the roller is preferably coated with a non-slip coating so as to cause movement of the roller to be accurately indicative of movement of the tape.
  • Each of the spools may be mounted on the output shaft of its respective motor.
  • each of the spools may be mounted for rotation about a respective shaft and each of the shafts may be coupled to the output shaft of a respective motor by an appropriate coupling (e.g. a belt drive).
  • the coupling between each spool and its motor may provide a fixed transmission ratio.
  • the controller may be arranged to provide a first signal to the first motor to cause rotation of the first spool of tape and movement of the tape between the spools along the predetermined path.
  • the data indicating rotation of the first spool may comprise said first signal. That is, rotation of the first spool may be monitored based upon a drive signal provided to the motor driving that spool.
  • the controller may be arranged to receive a second signal indicating rotation of the second spool.
  • the controller may be arranged to receive a signal from the second motor indicating rotation of the second spool of tape caused by movement of the tape along the predetermined path.
  • the data indicating rotation of the second spool may comprise said second signal. That is, the second spool may be monitored based upon a signal provided to the controller.
  • the signal may be provided by a motor coupled to the second spool.
  • the second motor may be de-energised.
  • the second signal may comprise a plurality of pulses generated by rotation of a rotor of the second motor within a stator of the second motor.
  • the second signal may comprise a plurality of pulses indicative of back-EMF signals generated by rotation of the rotor of the second motor within the stator of the second motor.
  • the controller may be arranged to receive a third signal being a signal provided by the sensor.
  • the controller may be arranged to generate said data indicating the diameter of each of said first and second spools based upon said first, second and third signals. That is, the diameters of the spools may be determined based upon a signal provided to drive a motor which rotates the first spool, a signal which indicates actual rotation of the second spool, and a signal which indicates linear movement of the tape.
  • Data indicating the diameter of the first spool may be generated based upon said first and third signals.
  • Data indicating the diameter of the second spool may be generated based upon the second signal and at least one of the first and third signals.
  • the first signal may indicate a number of rotations of the first spool.
  • the number may be any real number and need not be an integer.
  • the second signal may indicate a number of rotations of the second spool. Again, the number may be any real number and need not be an integer.
  • the first and second signals may each comprise a plurality of pulses and it may be known that a particular number of pulses corresponds to a single rotation of the respective spool. In this way each of the pluralities of pulses can be converted into a number of rotations of the respective spool.
  • the controller may be arranged to: monitor said second signal; generate a drive signal for said second motor based upon said second signal; and provide said drive signal to said second motor.
  • the drive signal may be synchronised with the second signal.
  • the second signal may be periodic and the generated drive signal may be periodic, the period of the drive signal (or a multiple thereof) being equal to the period of the second signal.
  • the period of the second signal may be a multiple of the period of the drive signal.
  • the second signal may comprise a plurality of pulses having substantially equal time intervals therebetween.
  • the controller may generate a drive signal comprising a plurality of drive pulses having the same substantially equal time intervals therebetween.
  • the plurality of pulses may have varying time intervals therebetween, the varying time intervals representing an acceleration or deceleration.
  • the drive signal may comprise a plurality of drive pulses which continues that acceleration or deceleration.
  • the controller may be arranged, during an operation to generate data indicating the diameter of said first and second spools, to energise the first motor and de-energise the second motor.
  • the de-energised second motor may provide resistance to tape movement thereby causing tension in the tape. That is, during such an operation the tape drive may operate in a pull-drag mode in which all motion is caused by the motor driving a take-up spool and the motor coupled to a supply spool can, in such cases, simply provide resistance to tape motion.
  • the operation to generate data indicating the diameter of the first second spools may comprise a termination phase in which the first motor is decelerated at a rate of deceleration selected to maintain said tension in the tape. That is, it will be appreciated that where a heavy spool is mounted to a de-energised motor, rapid deceleration may result in the spool continuing to rotate because of its moment of inertia. Such continuing rotation may result in the tape becoming slack (i.e. in tension in the tape becoming too low. Gradual deceleration of the motor driving the take-up spool, on the contrary, will tend to minimise any continuing rotation of the supply spool.
  • One or both of the first and second motors may be position controlled motors. That is, one or both of the first and second motors may be motors configured to receive and act upon a position-based control signal. For example, one or both of the first and second motors may be stepper motors.
  • a position controlled motor which may be used in some embodiments of the invention is a DC-servo motor which comprises an encoder which monitors the position of the motor's rotor and thereby provides positional control by way of closed-loop feedback.
  • other motors are used such as, for example, torque-controlled motors (e.g. DC motors).
  • the controller may be arranged, in a tape transport operation, to energise both of the motors in a common rotational direction. That is, both motors may be energised in the direction of tape transport to provide push-pull operation in which one motor drives a supply spool to pay out tape and another motor drives a take-up spool to take-up tape.
  • tape transport operation it is intended to indicate an operation having as its purpose the transfer of tape (perhaps a predetermined linear quantity of tape) from one spool to the other spool, not an operation intended to configure or otherwise initialise the tape drive.
  • the controller may be arranged, in a tape transport operation, to generate control signals for at least one of the first and second motors based upon said generated data indicating the diameter of said first and second spools.
  • the controller may be arranged to control energization of the first and second motors for transport of the tape in both directions between the first and second spools of tape along the predetermined tape path. That is, the tape drive may allow for bi-directional movement of the tape between the spools.
  • the data indicating the diameter of said first and second spools may comprise a first length indicative of the diameter of the first spool and a second length indicative of the diameter of the second spool.
  • the first length may be a radius or diameter of the first spool and the second length may be a radius or diameter of the second spool.
  • a transfer printer comprising: a tape drive according to any preceding claim, wherein the tape is an ink carrying ribbon; and a printhead arranged to transfer ink from the ink carrying ribbon to a substrate to be printed.
  • the transfer printer may be a thermal transfer printer, and the printhead may be a thermal printhead.
  • a method for generating data indicating the diameter of first and second spools of tape in a tape drive in which tape is transported in at least one direction between the first and second spools along a predetermined tape path, the spools being respectively drivable by first and second motors comprising: receiving a sensor signal indicating linear movement of tape between the tape spools along the predetermined tape path; and generating data indicating the diameter of said first and second spools of tape based upon said sensor signal and data indicating rotation of each of said first and second spools.
  • the method may further comprise the generation of said sensor signal by a sensor comprising a roller and an encoder monitoring rotation of said roller.
  • Tape may pass at least partially around said roller on said predetermined tape path and said sensor signal may indicate a number of rotations of said roller.
  • the method may further comprise providing a first signal to the first motor to cause rotation of the first spool of tape and movement of the tape between the spools along the predetermined path.
  • the data indicating rotation of the first spool may comprise said first signal.
  • the method may further comprise receiving a second signal from the second motor indicating rotation of the second spool of tape caused by movement of the tape along the predetermined path.
  • the data indicating rotation of the second spool may comprise said second signal.
  • the method may also comprise generating said data indicating the diameter of each of said first and second spools based upon said first, second and third signals, the third signal being the sensor signal.
  • the method may further comprise monitoring said second signal; generating a drive signal for said second motor based upon said second signal; and providing said drive signal to said second motor.
  • the drive signal may be synchronised with the second signal.
  • the method of the third aspect of the invention can be carried out in any convenient way.
  • the method may be carried out by a printer controller and such a printer controller is therefore provided by the invention.
  • the controller may be provided by any appropriate hardware elements.
  • the controller may be microcontroller which reads and executes instructions stored in a memory, the instructions causing the controller to carry out a method as described herein.
  • the controller may take the form of an ASIC or FPGA.
  • a method of determining the diameter of a first spool of tape in a tape drive in which tape is transferred between first and second spools of tape comprising obtaining first data indicative of the diameter of one of said first and second spools in a first winding condition; transferring tape between said first and second spools of tape such that said first and second spools of tape are in a second winding condition; obtaining second data indicative of tension in the tape extending between the first and second spools of tape at least one time; and generating output data indicative of the diameter of said first spool in said second winding condition of tape based upon said first and second data.
  • winding condition is used to refer to a particular configuration of the spools of tape in terms of the quantity of tape on each of the spools. Where tape is transported between the spools the length of tape within the tape drive will remain constant but different winding conditions will be adopted as tape is transferred from a supply spool to a take-up spool resulting in a reduction of the diameter of the supply spool and an increase in the diameter of the take-up spool.
  • the second data may be indicative of tension in the tape extending between the spools during said transfer of tape between said first and second spools of tape.
  • the second data may comprise a plurality of data items, each indicative of tension in the tape at a respective time during said transfer of tape.
  • the second data may be indicative of tension during transfer of tape between the spools on the basis that it is acquired during the transfer of tape or alternatively is acquired at a time somewhat before or after the transfer of tape (whether during another tape transport operation or otherwise). All that is required is that the second data is considered to be indicative of tension during the transfer of tape regardless of the exact time of its acquisition.
  • the second data may comprise an average tension value. That is the second data may be generated by obtaining a plurality of tension values and computing a mean tension value.
  • Generating output data indicating the diameter of said first spool may comprise processing said second data with respect to at least one reference value.
  • the at least one reference value may be a nominal tension value which it is desired to maintain in the tape be transferred or may be a pair of predetermined limits between which it is desired to maintain tape tension.
  • the method may further comprise obtaining encoder data indicating a quantity of tape transferred between said first and second spools and generating said first data based upon said encoder data.
  • the encoder data may be generated by a rotary encoder comprising a rotary sensing element of known diameter.
  • a sensor may comprise a roller and an encoder monitoring rotation of said roller, and tape may pass at least partially around said roller on said predetermined tape path. In this way rotation of the roller is indicative of the linear movement of the tape between the tape spools.
  • the encoder data may comprise a signal indicating a number of rotations of said roller.
  • the roller is preferably coated with a non-slip coating so as to cause movement of the roller to be accurately indicative of movement of the tape.
  • Generating said output data may be based upon further encoder data indicating a quantity of tape transferred between said first and second spools during said transfer of tape.
  • Said output data may be based upon data indicating rotation of at least one of said first and second spools of tape.
  • the output data may be based upon data indicating rotation of each of said first and second spools of tape.
  • Data indicating rotation of at least one of said first and second spools of tape may be based upon a command signal provided to a motor arranged to rotate a respective spool of tape.
  • the motors may be position controlled motors and the command signal may therefore be a positional control signal.
  • the motors may be stepper motors and the command signal may be signal arranged to cause the motor to turn through a predetermined number of steps.
  • the method may further comprise obtaining third data indicating relative diameters of said first and second spools in said first winding condition; and obtaining fourth data indicating relative diameters of said first and second spools of tape in said second winding condition; wherein generating output data indicating the diameter of said first spool of tape is based upon said first, second, third and fourth data.
  • the method may involve using a so-called conservation of area technique to determine the diameter of the first spool.
  • This technique involves determining the diameter of a spool of tape from knowledge of initial spool diameters (e.g. diameters measured using techniques described in the context of the first aspect of the present invention) and a ratio of spool diameters in a particular winding condition.
  • Generating said output data may comprise modifying said fourth data based upon said second data. That is, the data indicating the relative diameters of the first and second spools may be modified using the data indicating tension.
  • the fourth data may be modified where the second data indicates that tension has varied from some nominal tension value.
  • Said fourth data may be based upon data indicating rotation of said first and second spools of tape.
  • the fourth data may be based upon rotation of motors arranged to rotate said first and second spools of tape. If said second data indicates a variation in tension relative to a nominal value, the fourth data may be modified based upon the second data so as to generate modified fourth data indicating relative diameters of said first and second spools of tape in said second winding condition given said tension variation.
  • the modification may be based upon stretch in the tape associated with said tension variation.
  • initial fourth data indicating assumed relative diameters of the first and second spools in the second winding condition is modified to take into account a variation in the relative diameters of the spools based upon the second data indicating tension in the tape. More particularly the difference between the tension and a nominal tension and a variation in stretch in the tape which results from said difference are processed so as to determine an estimated effect on relative diameters of the spools.
  • an extension (or contraction) of the tape expressed as a length is determined based upon the difference between the tension and the nominal tension, the path length, a stretch associated with tape at nominal tension and a length of tape transported. This extension (or contraction) is converted into an estimated rotation of one or both of the first and second spools and thereby used to modify the fourth data.
  • Said modified fourth data may indicate relative diameters of the first and second spools of tape in the second winding condition which, given the rotation of said first and second spools of tape, would have caused the detected variation in tension. That is the modification of the fourth data may compensate for an error in values of the diameters of the first and second spools assumed when driving the spools.
  • the method may comprise monitoring tension in the tape extending between the spools and controlling motors arranged to rotate the first and second spools of tape to maintain tension between predetermined limits.
  • Controlling the motors arranged to drive the first and second spools of tape to maintain tension between predetermined limits may comprise determining whether the monitored tension satisfies a criterion; and if said monitored tension does not satisfy said criterion, adding or subtracting tape from the tape path extending between the first and second spools of tape.
  • Adding or subtracting tape from the tape path extending between the first and second spools of tape may comprise generating a control command for a motor arranged to rotate one of the spools to add or subtract tape.
  • the method may further comprise processing the monitored tension to determine a length of tape to be added to or subtracted from the tape path extending between the first and second spools of tape.
  • the method may further comprise performing a plurality of sets of tape transport operations; and obtaining a plurality of second data items each second data item being indicative of tension in the tape during a respective set of tape transport operations.
  • Generating said output data may comprise determining whether consecutively obtained second data items satisfy a predetermined criterion.
  • Each of said plurality of second data items may be an average tension value.
  • the method may comprise modifying said fourth data based upon said second data only if consecutively obtained second data items satisfy said predetermined criterion.
  • the tape may be transferred from the first spool of tape to the second spool of tape and/or the tape may be transferred from the second spool of tape to the first spool of tape.
  • the tape drive may be bidirectional.
  • the method may be carried out in a printing device and said transfer of tape may be carried out during a printing process.
  • the printing device may be a thermal transfer printer and said tape may be thermally sensitive ink carrying ribbon.
  • a tape drive comprising first and second spool supports, respectively receiving first and second spools of tape, the first spool support; at least one motor arranged to cause the transfer of tape between said first and second spools; and a controller arranged to control the at least one motor and to determine the diameter of the first spool of tape, by: obtaining first data indicating the diameter of one of said first and second spools in a first winding condition; transferring tape between said first and second spools of tape such that said first and second spools of tape are in a second winding condition; obtaining second data indicative of tension in the tape extending between the first and second spools of tape at least one time; and generating output data indicative of the diameter of said first spool in said second winding condition of tape based upon said first and second data.
  • the controller may be further arranged to carry out processing according to the fourth aspect of the invention described above, including its various optional features as set out above.
  • a method of determining the diameter of a first spool of tape in a tape drive in which tape is transferred between first and second spools of tape comprising: generating a first estimate of a quantity of tape transferred between said first and second spools in one or more tape transport operations; generating a second estimate of a quantity of tape transferred between said first and second spools in said one or more tape transport operations; generating an indication of the diameter of the first spool of tape based upon said first and second estimates.
  • the indication of the diameter of the first spool of tape may be based upon first and second estimates of the quantity of tape transferred between the spools, thereby providing an improvement in accuracy with which the diameter of the first spool of tape can be determined.
  • the first and second estimates of a quantity of tape transferred between the spools may each be based upon separate, and independent, inputs rather than one being derived from the other, or both being derived from a common input. That is, the first and second estimates may be entirely independent of one another, allowing the accuracy of control of the tape to be improved. For example, the first estimate may be improved based upon the second estimate where differences are identified therebetween.
  • Generating said indication of the diameter of the first spool of tape may be based upon data indicating a diameter of said first spool of tape in a first winding condition.
  • Said one or more tape transport operations may cause the first and second spools of tape to adopt a second winding condition, and said generated indication may be an indication of the diameter of the first spool of tape in the second winding condition.
  • Winding condition here has the general meaning set out above.
  • Said first estimate may be based upon rotation of said first spool.
  • Said first estimate may further be based upon an estimated diameter of said first spool.
  • Said first spool may be rotated by a first motor and said first estimate may be based upon a command signal provided to the first motor.
  • the method may further comprise generating said command by: obtaining data indicating a diameter of said first spool; obtaining data indicating a length of tape to be transported; generating said command signal based upon said obtained diameter and said obtained length.
  • the first motor may be a position controlled motor and said command signal may define a positional movement of the first motor.
  • a suitable position controlled motor is a stepper motor which can be controlled using the various techniques described herein.
  • Said second estimate may be based upon an output of an encoder indicating a quantity of tape transported between said first and second spools of tape in said one or more tape transport operations.
  • the encoder may be a rotary encoder comprising a rotary sensing element of known diameter.
  • a rotary encoder may comprise a roller and an encoder monitoring rotation of said roller, and tape may pass at least partially around said roller on said predetermined tape path. In this way rotation of the roller is indicative of the linear movement of the tape between the tape spools.
  • the encoder data may comprise a signal indicating a number of rotations of said roller.
  • the roller is preferably coated with a non-slip coating so as to cause movement of the roller to be accurately indicative of movement of the tape.
  • Said first estimate may comprise a plurality of first estimate values and said second estimate may comprise a plurality of second estimate values.
  • the method may further comprise comparing each first estimate value with a respective second estimate value to determine whether a predetermined criterion is satisfied; and generating said indication of diameter based upon first and second estimate values which satisfy said predetermined criterion.
  • Each of said first estimate values may be equal.
  • Generating said indication of the diameter of the first spool may comprise determining whether said first and second estimate values satisfy a predetermined criterion. If said criterion is satisfied, said indication may be generated based upon said second estimate. If said criterion is not satisfied said indication may be generated based upon said first estimate.
  • Generating said indication of the diameter of the first spool in said second winding condition may comprise obtaining a relationship relating the diameter of the first spool of tape in the second winding condition to the diameters of the first and second spools of tape in the first winding condition and the relative diameters of the first and second spools of tape in the second winding condition. If said criterion is satisfied, said relationship may include a term based upon a relationship between the first and second estimates.
  • the tape may be transferred from the first spool of tape to the second spool of tape and/or the tape may be transferred from the second spool of tape to the first spool of tape.
  • the tape drive may be bidirectional.
  • a tape drive comprising first and second spool supports, respectively receiving first and second spools of tape; at least one motor arranged to cause the transfer of tape between said first and second spools; and a controller arranged to control the at least one motor and to determine the diameter of the first spool of tape, by: generating a first estimate of a quantity of tape transferred between said first and second spools in one or more tape transport operations; generating a second estimate of a quantity of tape transferred between said first and second spools in said one or more tape transport operations; generating an indication of the diameter of the first spool of tape based upon said first and second estimates.
  • a further aspect of the invention provides a thermal transfer printer comprising a tape drive according to the fifth or seventh aspect of the invention arranged to transfer ink carrying tape between said first and second spools; and a printhead arranged to transfer ink from said ink carrying tape to a substrate.
  • Figure 1 is a schematic illustration of a thermal transfer printer in which embodiments of the invention may be implemented
  • Figure 2 is a flowchart showing processing carried out in the transfer printer of Figure 1 to determine the diameters of the spools;
  • Figure 2A is a flowchart showing an alternative to some of the processing shown in Figure 2;
  • Figure 3 is a schematic illustration of a motor of the printer of Figure 1 and its associated control circuitry;
  • Figure 4 is a schematic illustration of measurements of two spools of tape
  • Figure 5 is a flowchart showing processing used in the thermal transfer printer of Figure 1 to maintain up to date spool diameter measurements;
  • FIGS 6 and 7 are flowcharts showing processing which may be used in the processing of Figure 5;
  • Figure 8 is a flowchart showing alternative processing which may be used in the processing of Figure 5.
  • a thermal transfer printer 1 comprises an ink carrying ribbon 2 which extends between two spools, a supply spool 3 and a takeup spool 4.
  • ribbon 2 is transferred from the supply spool 3 to the takeup spool 4 around rollers 5, 6, past print head 7 mounted to a printhead carriage 8.
  • the supply spool 3 is mounted on a spool support 3a which is driven by a supply spool motor 3b.
  • the take-up spool 4 is mounted on a take-up spool support 4a which is driven by a take-up spool motor 4b.
  • Each of the supply spool motor 3b and the take up spool motor 4b are controlled by a printer controller 9.
  • each of the supply spool motor 3b and the take-up spool motor 4b are hybrid stepper motors (as opposed to variable reluctance or permanent magnet stepper motors).
  • the use of a hybrid stepper motor is preferred as it gives a higher resolution (typically 1 .8 degrees per full step) than other types of stepper motor, and can operate at high stepping rates with excellent holding and dynamic torque capability.
  • the stepper motor may be for example a Portescap motor having part number 34H1 18D30B.
  • the controller 9 can also energise the motors so as to cause the ribbon 2 to be transferred from the take-up spool 4 to the supply spool 3. This can be useful in some printing modes as is described further below.
  • the rollers 5, 6 may be idler rollers, and serve to guide the ribbon 2 along a predetermined ribbon path as shown in Figure 1 .
  • Rotation of the roller 5 is monitored by a sensor 5a.
  • the roller 5 is provided with a magnetic element.
  • the sensor 5a can then monitor changes in magnetic field caused by rotation of the roller 5.
  • the sensor 5a provides a signal to the printer controller 9 comprising a number of pulses sensed by the sensor 5a. Given knowledge of the number of pulses generated by a single rotation of the roller 5, the pulses provided to the printer controller 9 by the sensor 5a can be processed to determine a number of rotations (which will usually not be an integer number) of rotations of the roller 5.
  • the magnetic element may be a magnetic multipole ring as supplied by Austria Microsystems with part number AS5000-MR20-44.
  • the sensor 5a may be a rotary magnetic position sensor, also supplied by Austria Microsystems and having part number AS5304.
  • the roller 5 comprises an aluminum shaft of diameter 8mm and is coated with a non- slip coating.
  • the non-slip coating may be a polyurethane material having a Shore A hardness of 50-70 and a thickness of 3.5mm.
  • the non-slip coating may be a silicone rubber having a Shore A hardness of 50-55, and a thickness of 2.75mm.
  • the provision of a non-slip coating has the effect of ensuring that the roller 5 rotates consistently as the tape moves along the predetermined path. This means that the rotation of the roller 5 is an accurate indicator of tape movement. Rotation of the roller 5 is used in processing carried out by the printer controller 9 in the manner described below.
  • the diameter of the roller 5 is known to the printer controller 9. In one embodiment the roller 5 has a diameter of 15mm.
  • the roller 5 has low rotational inertia, and it is for this reason that the shaft is made from aluminum.
  • ink carried on the ribbon 2 is transferred to a substrate 10 which is to be printed on.
  • the print head 7 is brought into contact with the ribbon 2.
  • the ribbon 2 is also brought into contact with the substrate 10.
  • the print head 7 may be caused to move towards the ribbon 2 by movement of the print head carriage 8, under control of the printer controller 9.
  • the print head 7 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 10. Ink will be transferred from regions of the ribbon 2 which correspond to (i.e.
  • the array of printing elements can be used to effect printing of an image on to the substrate 10 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.
  • the printer of Figure 1 There are generally two modes in which the printer of Figure 1 can be used, which are sometimes referred to as a “continuous” mode and an “intermittent” mode. In both modes of operation, the apparatus performs a regularly repeated series of printing cycles, each cycle including a printing phase during which ink is transferred to the substrate 10, and a further non-printing phase during which the printer is prepared for the printing phase of the next cycle.
  • the print head 7 In continuous printing, during the printing phase the print head 7 is brought into contact with the ribbon 2, the other side of which is in contact with the substrate 10 onto which an image is to be printed.
  • the print head 7 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 10 and ribbon 2 are transported past the print head, generally but not necessarily at the same speed.
  • the print head is extended into contact with the ribbon only when the print head 7 is adjacent regions of the substrate 10 to be printed.
  • the ribbon 2 must be accelerated up to for example the speed of travel of the substrate 10. The ribbon speed must then be maintained at the constant speed of the substrate 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.
  • the ribbon 2 must then be accelerated back up to the normal printing speed and the ribbon 2 must be 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 7 and the substrate 10 when the print head 7 is advanced to the printing position. It is therefore desirable that the supply spool motor 3b and the take-up spool motor 4b 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 7 and the substrate 10.
  • a substrate is advanced past the print head 7 in a stepwise manner such that during the printing phase of each cycle the substrate 10 and generally but not necessarily the ribbon 2 are stationary. Relative movement between the substrate 10, the ribbon 2 and the print head 7 are achieved by displacing the print head 7 relative to the substrate and ribbon. Between the printing phases of successive cycles, the substrate 10 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 print head 7 and the substrate 10. Once again accurate transport of the ribbon 2 is necessary to ensure that unused ribbon is always located between the substrate 10 and print head 7 at a time that the print head 7 is advanced to conduct a printing operation.
  • both the supply spool motor 3b and the take-up spool motor 4b are energised in the same rotational direction. That is, the supply spool motor 3b is energised to turn the supply spool 3 to pay out an amount of tape while the take-up spool motor 4b is energised to turn the take-up spool 4 to take-up an amount of tape.
  • the motors can therefore be said to operate in "push-pull" mode.
  • the take-up motor 4b is commanded to turn the take- up spool 4 at a relatively slow speed.
  • the diameter of the take-up spool 4 is assumed to be a maximum diameter which the printer supports, for example 90 mm or 95mm. Using this assumed take-up spool diameter the take-up motor 4b is commanded to turn the take-up spool 4 at a rotational speed which corresponds to a linear ribbon speed of 350 mm/s.
  • the motion of the supply spool motor 3b caused by the movement of tape caused by rotation of take-up spool motor 4b will cause the supply spool motor 3b to generate a voltage across its windings.
  • the voltage across the windings of the supply spool motor 3b will take the form of a periodic signal, which can be processed to generate a series of pulses, there being a predetermined number of pulses in a single rotation of the rotor of the supply spool motor 3b. This is described in more detail below.
  • the printer controller 9 determines whether it has received the expected pulses from the supply spool motor 3b. For example, the printer controller may wait until the pulses received from the supply spool motor 3b indicate that the supply spool motor 3b has rotated 1/3 of a full rotation.
  • the nature of the pulses received from the supply spool motor 3b is such that a known number of pulses correspond to a single rotation of the supply spool motor 3b and consequently of the supply spool 3. If no pulses have been received, this indicates that the supply spool motor 3b has not moved, thereby indicating that there is no ribbon between the supply spool 3 and take up spool 4.
  • steps S4 and S5 which preferably operate in parallel.
  • a timer is maintained of the duration for which steps are provided by the printer controller 9 to the take-up spool motor 4b at a known step rate which corresponds to linear movement at 350mm/s based upon the assumption as to take-up spool diameter noted above.
  • a count is maintained of pulses received by the printer controller 9 from the sensor 5a.
  • the take-up motor 4b is driven at the constant speed determined above (i.e. steps are applied at a constant step rate), and it is assumed that there is sufficient tension in the tape to cause the roller 5 to also rotate at a constant speed.
  • Processing passes from each of steps S4 and S5 to step S6, where a determination is made whether a predetermined number of pulses corresponding to an entire rotation of the roller 5 have been received from the sensor 5a.
  • the nature of the pulses provided by the sensor 5a is such that a known, predetermined number of pulses correspond to a single rotation of the roller 5, this being a function of the magnet which is fitted to the roller 5.
  • processing passes to step S7.
  • processing returns to steps S4 and S5 until the predetermined number of pulses associated with a complete revolution is reached.
  • the diameter of the take-up spool 4 is determined. It will be appreciated that the nature of the number of steps provided to the take-up spool motor 4b is such that a known number of steps corresponds to a single rotation of the take-up spool motor 4b and consequently of the take-up spool 4. Furthermore, given the knowledge of the constant rate at which steps are applied to the take-up spool motor 4b, the time for which the take-up spool motor 4b is driven can be used to calculate a number of rotations through which the take-up spool motor 4b has been driven.
  • a time which would be expected to elapse at step S4 can be determined.
  • a ratio between this expected time and the actual elapsed time is equal to the inverse of the ratio between the assumed spool diameter (90mm) and the spool diameter which is to be determined.
  • This principle is used to determine the diameter of the take-up spool 4 at step S7 according to equation (1 ):
  • D T is the diameter of the take-up spool 4;
  • DAssumed is the diameter of the take-up spool 4 assumed for the purposes of the processing described above (90mm in the example);
  • TActuai is the time which elapsed at step S4; Assumed is the time which would have been expected to elapse for a single rotation of the roller 5 where the take-up spool 4 had the assumed diameter (90mm in the example), this is given by:
  • Viinear is the assumed linear speed used during the processing described above (350mm/s in the example); and D R is the diameter of the roller 5.
  • the number of pulses received from sensor 5a will be known to correspond to a single rotation, although the processing described herein is equally applicable for different numbers of pulses received from the sensor 5a (i.e. different numbers of rotations of the roller 5).
  • the inverse ratio of the number of rotations of each of the roller 5 and the take up spool 4 should be equal to the ratio of the diameters of the roller 5 and the take-up spool 4.
  • the information provided to the printer controller 9 at steps S4 and S5 together with the known diameter of the roller 5, and the known step rate of the steps applied to the take-up spool motor 4b, allows the diameter of the take-up spool 4 to be determined.
  • N T is the (known) number of steps required to cause a single rotation of the take-up motor 4b;
  • N R is the (known) number of pulses generated in a single rotation of the roller 5;
  • P R is the number of pulses received from the sensor 5a in step S5;
  • R T is the rate at which the steps are applied to the take-up motor 4b during steps S4 and S5;
  • T T is the time measured at step S4.
  • processing passes to step S8, where the take-up spool 4 is driven at a speed which corresponds to a known linear ribbon speed. For example, a linear ribbon speed of 350 mm/s may be selected. It will be appreciated that while the ribbon was earlier driven at a target speed of 350 mm/s based on an assumed spool diameter, the take-up spool diameter now being known allows an accurate linear ribbon speed of 350 mm/s to be achieved. As such, the speed at which the take-up motor 4b is driven at step S8 is likely to be different from the speed at which the take-up spool motor was driven at during steps S4 and S5. That is, it should be noted that while the target ribbon speed is maintained at 350 mm/s in both cases in this example, the target ribbon speed may well not be equal in both cases, given that initially the diameter of the take-up spool 4 is not known.
  • Step S9 the printer controller 9 monitors the pulses received from the supply spool motor 3b.
  • the take-up spool motor 4b is driven until the pulses received from the supply spool motor 3b indicate that the supply spool motor 3b has rotated a predetermined amount (or otherwise until a predetermined number of rotations of the take-up spool (e.g. three) have occurred, whereupon an error condition is notified).
  • This predetermined amount of rotation of the supply spool motor 3b is sufficient to allow any speed change between the former ribbon speed and the newly controlled ribbon speed to settle.
  • the take-up spool motor 4b may be driven until the pulses received indicate that the supply spool motor 3b has rotated for two-fifths of a full rotation.
  • processing passes to each of steps S10 and S1 1 which preferably operate in parallel.
  • steps S10 and S1 1 which preferably operate in parallel.
  • a timer is maintained of the duration for which steps are provided by the printer controller 9 to the take-up spool motor 4b.
  • a count is maintained of pulses received by the printer controller 9 from the supply spool motor 3b.
  • steps S10 and S1 1 the take-up motor 4b is driven at the constant speed determined above (i.e. steps are applied at a constant step rate), and it is assumed that there is sufficient tension in the tape to cause the supply spool 3 to also rotate at a constant speed.
  • Processing passes from each of steps S10 and S1 1 to step S12, where a determination is made whether a predetermined number of pulses has been received from the supply spool motor 3b.
  • the predetermined number of pulses may correspond to a single rotation of the supply spool motor 3b. Allowing a whole rotation of the supply spool motor 3b ensures that the effect of any eccentricity in the winding of the tape on the supply spool 3 is eliminated from calculations of spool diameters.
  • the diameter of the supply spool 3 is determined.
  • the number of steps provided to the take-up spool motor 4b is such that a known number of steps corresponds to a single rotation of the take-up spool motor 4b and consequently of the take-up spool 4. Furthermore, given the knowledge of the constant rate at which steps are applied to the take-up spool motor 4b, the time for which the take-up spool motor 4b is driven can be used to calculate a number of rotations through which the take-up spool motor 4b driven.
  • the inverse ratio of the number of rotations of each of the take-up spool 4 and the supply spool 3 should be equal to the ratio of the diameters of the take-up spool 4 and the supply spool 3.
  • the information provided to the printer controller 9 at steps S10 and S1 1 together with the known diameter of the take-up spool 4, and the known step rate of the steps applied to the take-up spool motor 4b, allows the diameter of the supply spool 3 to be determined by the printer controller 9 at step S13 according to equation (4): where: D s is the diameter of the supply spool 3; D T is the diameter of the take-up spool 4 determined at step S7;
  • N s is the (known) number of pulses generated in a single rotation of the supply spool 3;
  • N T is the (known) number of steps required to cause a single rotation of the take-up motor 4b; R T is the rate at which the steps are applied to the take-up motor 4b during steps S10 and S1 1 ; the time measured at step S10; and
  • P s is the number of pulses received from the supply spool 3 in step S1 1 It will be appreciated that in the process described above the number of pulses received from the supply spool motor 3b will be known to correspond to one rotation. However, different predetermined numbers of pulses may be used at step S12.
  • step S14 Processing then passes from step S13 to step S14.
  • the processing of step S14 is intended to generate pulses to actively drive the supply spool motor 3b at the rate at which it is currently moving, and in a synchronised way. Pulses are generated at a rate based upon the known linear velocity of tape, and the calculated supply spool diameter.
  • the printer controller 9 monitors the pulses received from the supply motor 3b so as synchronise the application of the generated pulses to the supply spool motor 3b, with the pre-existing rotation of the supply spool caused by the driven rotation of the takeup spool 4.
  • drive pulses at step S14 these are applied to the supply spool motor 3b.
  • a number of further pulses may be received from the supply spool motor 3b before the drive pulses are applied. For example, a further three pulses may be observed before the drive pulses are applied to the supply spool motor 3b.
  • the phase of the controller of the supply spool motor 3b is reset to be in a known phase. This is described in more detail below with reference to Figure 3.
  • the transport of tape is controlled in a push-pull manner, the motion of the supply spool motor 3b being coordinated with that of the take-up spool motor 4b.
  • tension in the tape is monitored at step S15 and if necessary corrected.
  • the monitoring of tension can be carried out based upon the monitoring of power consumed by the supply spool motor 3b and the take-up spool motor 4b using the techniques described in our earlier patents, for example US7, 150,572, the contents of which are incorporated herein by reference.
  • tension can be monitored using a tension monitoring device such as a load cell positioned such that that ribbon (directly or indirectly) bears against the load cell such that the tension in the ribbon is measured by the load cell.
  • Other tension monitoring techniques are of course well known in the art.
  • Step S15 Processing passes from step S15 to step S16 where the supply spool motor 3b and the take-up spool motor 4b are controlled so as to cause the ribbon to come to a controlled stop. This is important in ensuring that tension in the tape is maintained during the deceleration process.
  • steps S4 to S6 may be replaced with processing shown in Figure 2A which is now described.
  • step S4a a timer is maintained of the duration for which steps are provided by the printer controller 9 to the take-up spool motor 4b at a known step rate.
  • step S5a a count is maintained of pulses received by the printer controller 9 from the sensor 5a.
  • Processing passes from each of steps S4a and S5a to step S6a, where a determination is made whether a predetermined number of pulses corresponding to a partial rotation (e.g. a quarter rotation) of the roller 5 have been received from the sensor 5a. If the number of pulses counted has not reached the predetermined number, then processing returns to steps S4a and S5a until the predetermined number of pulses associated with a complete revolution is reached.
  • a partial rotation e.g. a quarter rotation
  • step S6a When it is determined at step S6a that the predetermined number of pulses has been received from the sensor 5a, an initial estimate of take-up spool diameter is determined at step S7a using techniques described above based upon the relationship between rotation of the take-up spool 4 and roller 5 and upon the known diameter of the roller 5. Processing then passes to steps S4b and S5b which again operate in parallel as described above.
  • a timer is maintained of the duration for which steps are provided by the printer controller 9 to the take-up spool motor 4b at a known step rate.
  • a count is maintained of pulses received by the printer controller 9 from the sensor 5a. Processing passes from each of steps S4b and S5b to step S6b, where a determination is made whether a predetermined number of pulses have been received from the sensor 5a.
  • the predetermined number of pulses is a number of pulses indicating that the roller 5a has turned through a number of rotations which correspond to a full rotation of the take-up spool 4, the number being based upon the initial estimate of the diameter of the take-up spool 4 as determined at step S7a.
  • step S7 which operates in the general manner described above.
  • processing returns to steps S4b and S5b until the predetermined number of pulses associated with a complete revolution is reached.
  • the processing described with reference to Figure 2A may be preferred as it bases a determination of take-up spool diameter upon a full rotation of the take-up spool, thereby allowing any eccentricity in the winding of the take-up spool 4 to be properly taken into account.
  • the diameter of the supply spool 3 can alternatively be calculated based upon the diameter of the roller 5 and a number of pulses received from each of the sensor 5a and the supply spool motor 3b for a given movement of tape.
  • the diameters of the supply spool 3 and the take up spool 4 could be determined in parallel processing steps (i.e. not requiring the take-up spool 4 diameter to be determined before determining the supply spool 3 diameter).
  • FIG. 3 shows the control circuit for the supply spool motor 3b.
  • the take-up spool motor 4b and its control may have similar form.
  • the rotor of the supply spool motor 3b (not shown) has a number of teeth equally spaced around its circumference.
  • the supply spool motor 3b has two windings 12, 13. Each of the windings 12, 13 is a bipolar winding, and the windings 12, 13 are connected in an ⁇ -bridge' configuration.
  • Respective first ends 12a, 13a of the windings 12, 13 are connected to either a positive rail 14 of a power supply through a respective switch 16a, 18a, or to a negative rail 15 of a power supply through a respective switch 17a, 19a.
  • Respective second ends 12b, 13b of the windings 12, 13 are connected to either the positive rail 14 of the power supply through a respective switch 16b, 18b, or to the negative rail 15 of a power supply through a respective switch 17b, 19b.
  • Switches 16a, 16b, 17a, 17b, 18a, 18b, 19a, 19b are controlled by a stepper motor controller 20 to connect the respective ends 12a, 12b, 13a, 13b of the windings 12, 13 to the power supply, causing current to flow in the windings 12, 13 when connected.
  • the stepper motor controller 20 may, in some embodiments, be a Trinamic TMC262 controller. It will be appreciated that current can be caused to flow in either direction in the windings 12, 13 by closing of a pair of diagonally opposed switches. For example, current can be made to flow in a first direction in the winding 12 by closing switches 16a and 17b, and current can be made to flow in a second direction, opposite to the first direction in the winding 12, by closing switches 16b and 17a.
  • energising the windings 12, 13 Causing current to flow in the windings 12, 13 in this way (in either direction) will be referred to as energising the windings 12, 13. It will be appreciated that energisation of the windings 12, 13 causes magnetic poles to be created on a subset of the poles of the stator.
  • the teeth of the rotor align with the poles created by the energisations.
  • the windings 12, 13 are energised in a repeating sequence of energisations (e.g. winding 12 in a first direction, winding 13 in a first direction, winding 12 in a second direction, winding 13 in a second direction) causing the poles to rotate.
  • the rotor correspondingly rotates, and alignment of the rotor with the moving poles causes rotation of the rotor.
  • the windings 12, 13 may be energised in full-step or half-step operation where they are switched On' or 'off.
  • the windings 12, 13 may be energised in micro-step operation, where the windings 12, 13 are switched partially on (i.e. by pulsing the switches 16a, 16b, 17a, 17b, 18a, 18b, 19a, 19b), to achieve a rotation of the rotor which is less than a full-step or a half-step, i.e. a micro-step.
  • the position of the rotor may thus be advanced in steps, half -steps or micro-steps.
  • One-eighth-stepping operation is an example of micro-step operation and allows the division of each full- step into eight micro-steps.
  • the driving of a motor in micro-step operation will be well known to one of ordinary skill in the art.
  • the driving of the motor in such micro-step operation is controlled by the stepper motor controller 20.
  • the sinusoid created across the winding 12 is processed to generate a pulse-wave form. It will be appreciated that the number of pulses generated by such processing for a single rotation of the rotor of the motor will be determined by the structure of the rotor and stator of the stepper motor. It will further be appreciated that a drive signal to the stepper motor controller 20 can be based upon the pulse-wave form generated from the sinusoids. For example, if one-eighth-step is operation preferred, then a series of 'micro-step' signals are provided to the stepper motor controller 20 so as to drive the stepper motor a series of one-eighth steps.
  • the processing to generate said stepper motor drive signal is now described in more detail.
  • the first and second ends 12a, 12b of the winding 12 are connected to the inputs of a differential amplifier 21 .
  • the actual signals on each of the differential amplifier inputs is a half-wave rectified signal since each of the switches 17a, 17b, 19a, 19b is a MOSFET transistor which has an inherent diode characteristic that connects any negative-going voltage to the negative rail 15 of the power supply through this forward conductive diode.
  • the output of the differential amplifier 21 has the form of a half-wave signal and is connected to the input of a comparator 22 which acts as a zero crossing detector.
  • the signal may have the form of a trapezoid half-wave signal.
  • the output of the zero crossing detector has the form of a square wave, which has a first value when the output of the differential amplifier 21 is positive and a second value when the output of the differential amplifier 21 is at the negative rail 15 voltage.
  • the output of the zero crossing detector is connected to the input of a controller 23.
  • the controller 23 is an FPGA.
  • the FPGA 23 processes the output of the zero crossing detector to generate a signal which is provided to an input of the stepper motor controller 20.
  • the stepper motor controller 20 in response to the signal generated by the controller 23, controls the energisation of the windings 12, 13 so as to drive the motor 3b in synchronisation with the detected movement of the rotor.
  • the stepper motor controller 20 has a plurality of inputs which allow the energisation of the windings 12, 13 to be controlled to effect micro-step operation of the stepper motor 3b.
  • a step input is controlled by pulses for each commanded step or micro-step movement of the stepper motor.
  • a step-mode input determines whether each movement of the stepper motor should be a full-, half- or micro-step movement of the stepper motor 3b. For example, if the step-mode input is set to one-eighth-step, then each pulse on the step input will cause the motor windings 12, 13 to be energised so as to cause the motor to advance by an eighth-step.
  • An enable input to the stepper motor controller 20 can be provided with an 'enable' signal. If the enable signal is not provided, then any step command signals applied to the step input will not cause the motor windings 12, 13 to be energised.
  • the stepper motor controller 20 will maintain an internal reference position such that when a step signal is received on the step input the stepper motor controller 20 knows which energisation in the repeating sequence is to be next applied. For each step executed, the internal reference position is advanced by one energisation in the sequence.
  • the output of the zero-crossing detector 22 is a periodic signal, the period of which is the same as the period of the repeating sequence of energisations (e.g. four full-steps, or 32 one-eighth-steps).
  • the threshold of the zero-crossing detector e.g. whether there is any non-zero offset
  • the threshold of the zero-crossing detector allows a determination to made as to how the monitored voltage corresponds to a voltage which may be applied by the stepper motor controller 20 (i.e. if the motor were to be energised).
  • the voltage induced in one of the windings 12, 13 of the motor when unpowered may be 'matched' to a particular one of the energisations which may be applied by the stepper motor controller 20 and from this the stepper motor controller 20 can determine which of the regularly repeating pattern of energisations should next be applied to the stepper motor.
  • the controller 23 interrogates an interface of the stepper motor controller 20, which provides an output which is indicative of the internal reference position of the stepper motor controller 20.
  • the internal reference position corresponds to the energisation before the energisation which corresponds to the pulse generated by the zero crossing detector 22, then applying a step command to the stepper motor controller 20 at the same time as the pulse is received from the zero- crossing detector 22 will cause the windings 12, 13 to be energised in the correct manner so as to synchronise the commanded movement of the stepper motor 3b with the rotation of the stepper motor 3b by the external force.
  • the internal reference position of the stepper motor controller 20 is not the correct energisation (as described above) then applying a step command to the stepper motor controller 20 will not cause the windings 12, 13 to be energised in the correct fashion.
  • the internal reference position of the stepper motor controller 20 can be advanced by applying step commands to the step input while the outputs of the stepper motor controller are not enabled (i.e. by not providing an enable signal to the enable input).
  • the controller 23 to advance the internal reference position of the stepper motor controller 20 to correspond to the known step (and micro-step) position of the pulses created by the zero-crossing detector 22, such that the commanded movement of the stepper motor 3b can be synchronised with the rotation of the stepper motor 3b by the external force.
  • an enable signal can be provided on the enable input, and a further step command applied to the step input. This further step command will cause the windings 12, 13 to be energised in synchronisation with the angular position of the rotor of the stepper motor 3b.
  • the stepper motor controller 20 may allow the internal reference position of the stepper motor controller to be reset, and this can be used to allow pulses to be correctly applied to the stepper motor controller 20. It will be appreciated that once a first synchronised step command is applied, subsequent step commands will cause the motor to advance in a synchronised fashion, with the internal reference position of the stepper motor controller 20 being advanced as the rotor of the stepper motor 3b is also advanced.
  • a drive signal is provided to the supply spool motor 3b. Having provided this drive signal the printer controller has control over rotation of each of the spools and can therefore bring the spools to a controlled stop by decelerating the motors in synchronisation with each other at step S1 1 .
  • This is useful in that if no drive signal is provided to the supply spool motor 3b during deceleration, the inertia of the supply spool 3 may cause the supply spool 3 to continue to rotate after the take-up spool 4 has come to rest, thereby causing the tape to become slack between the supply spool 3 and the take-up spool 4.
  • a deceleration over a period of at least one second might be appropriate in some embodiments, providing a deceleration of 0.35m/s 2 or less.
  • a process for determining the diameters of two spools may comprise first and second phases.
  • the take-up motor may be driven through a predetermined number of steps and a number of rotations of the roller 5 may be monitored, the relationship between steps provided and rotations of the roller 5 being used in the manner described above to determine the diameter of the take-up spool.
  • the supply spool motor 3b may be driven through a predetermined number of steps in a direction opposite to that in which the take-up spool motor 4b was driven in the first phase and a number of rotations of the roller 5 may be monitored, the relationship between steps provided and rotations of the roller 5 being used in the manner described above to determine the diameter of the supply spool 3. While reference is made here to rotation of each of the motors through a predetermined number of steps, it will be appreciated that in alternative implementations the motors may be driven through a number of steps required to cause a predetermined number of rotations of the roller 5.
  • rotation of the roller 5 is monitored by virtue of a magnet provided on the roller 5, rotation of which is sensed by a sensor 5a. It will be appreciated that other methods can be used to monitor rotation of the roller 5. Indeed, any rotary encoder can be mounted on the roller 5 to monitor its rotation. Some such encoders are optical encoders.
  • the supply spool may be fitted with an encoder (which may be a magnetic arrangement of the type described with reference to the roller 5 or alternatively an optical encoder) the encoder generating a known number of pulses in a single revolution of the supply spool 3.
  • the diameters of spools of tape can be determined. It will be appreciated that during printing the winding conditions of the spools (by which it is meant the quantity of tape on each spool) will change. Specifically in an initial winding condition, the supply spool will have a relatively large diameter and the take-up spool will have a relatively small diameter. However as tape is transferred from the supply spool to the take up spool the spools will adopt different winding conditions as the diameter of the supply spool decreases and the diameter of the take- up spool increases. Methods for ongoing spool diameter measurement, suitable for use during printing, are now described.
  • each of the motors 3b, 4b is energised so as to rotate a respective spool in the direction of tape-transport. That is the motors operate in "push-pull" mode.
  • the motors operate in "push-pull" mode.
  • some variations in tension are likely to arise because of, for example, imperfections in the winding of the ribbon on the spools and also because of the trauma to which the ribbon is exposed at the printhead.
  • the applicant's earlier patent application WO02/22371 (the contents of which are herein incorporated by reference) describes suitable methods for monitoring tape tension.
  • a small step adjustment can be made to either or both of the motors to add a short section of tape to the length of tape between the spools, if the derived measure of tension is too low (e.g. below a different predetermined limit), then a short section of tape can be removed from the length of tape between the spools so as to cause an increase in tension.
  • the control algorithms used to determine the correction amounts of tape added to or removed from the length of tape between the spools may be of conventional form, for example the algorithms known as proportional integral (PI) or proportional integral derivative (PID) control algorithms,
  • PI proportional integral
  • PID proportional integral derivative
  • the algorithms make it possible to compare the measured tension with predetermined upper and lower limits (the so-called deadband) and, if the measured tension is outside these limits, the difference between the measured tension and a nominal tension which is set at a level between the upper and lower limits may be calculated, the result of that calculation being regarded as an error signal.
  • This error signal is then mathematically processed through the PI or PID algorithm.
  • the mathematical processing results in a "correction" amount of tape that needs to be added to or removed from the tape path between the spools during the next tape feed. This addition or removal of tape maintains ribbon tension within acceptable limits.
  • the correction value may be calculated by calculating the error (the difference between the nominal tension and the measured tension) and dividing the error by a gain factor which depends upon the tape width.
  • the gain factor is dependent upon the ribbon width as the gain constants are changed to take account of different ribbon widths. This is because a tension which might cause considerable stretch in a narrow tape would cause minimal stretch in a wide tape and therefore the effects of adding or removing tape from the length of tape between the spools is radically affected by ribbon stiffness (which is affected by ribbon width).
  • the gains and target tensions may be kept constant regardless of ribbon width and any measured value of ribbon tension is multiplied by a ribbon width factor which takes into account the effect of ribbon width on tape tension. This processing constitutes the proportional component of a PI algorithm.
  • Successive cycles may adjust the gain factor from a value nominally of 100 or 125 (tight) to a value of nominally 80 or 100 (slack). For every consecutive tight or slack reading after a first reading, an extra 0.1 mm correction can be added. An error accumulator is also maintained, and if the accumulated corrections (which are negative for tight and positive for slack) exceed plus or minus 2mm then an additional 0,1 mm is added to the correction.
  • the tape drive splits the correction evenly between the motors 3b, 4b driving the spools 3, 4 in the sense that approximately half the correction is applied to one of the motors with the remaining correction being applied to the other of the motors. This avoids large gaps between prints or over-printing on the ribbon,
  • the system does this by calculating a positional movement (e.g. a number of steps) that half the correction amounts to for the motor with the largest spool diameter.
  • This positional movement is then recalculated as a distance (relying upon the known spool diameter of the largest spool) and subtracted from the original correction amount.
  • the resultant value is then used to calculate the correction for the motor driving the smaller diameter spool. Because the motor driving the smaller diameter spool provides the greatest linear accuracy for a particular positional movement this motor can most accurately feed the remaining distance.
  • the mechanism adjusts the tension by an amount that is as near as possible to that demanded by the original correction.
  • a + A s constant (5) where A T is the area of tape on the take-up spool 4 and A s is the area of tape on the supply spool 3.
  • allowance is made for the ink removed from the tape during printing. Specifically a number of pixels printed may be counted a length of tape fed past the printhead may be monitored. Given a known ribbon width an area of ribbon fed past the printhead may be calculated, and given knowledge of pixel size a fraction indicating ink removed from the ribbon can be calculated and multiplied by a nominal thickness of ink provided on the ribbon (e.g. 0.000835 mm in some embodiments). The result of the multiplication - which is a reduction in the total area of ribbon caused by printing - is subtracted from the right hand side of equation (5). It will be apparent to the skilled person how such a modification a straightforwardly affects the following equations.
  • D s is the diameter of the supply spool 3
  • d is the diameter of the spool core.
  • D T , D s and d are illustrated in Figure 4.
  • Equation (6) Equation (6) can be rewritten, thus:
  • equation (9) can be seen to be a constant. If the right hand side of equation (9) is defined to be equal to X, equation (9) can be rewritten as:
  • Equation (10) is a general expression for the diameters of the supply spool 3 and the take-up spool 4.
  • a particular case of equation (10) is that which occurred during the determination of spool diameters described above with reference to Figure 2. That is:
  • DTC 2 + D SC 2 X (1 1 ) where D Tc and D Sc are the diameters of the take-up spool 4 and supply spool 3, respectively, as determined using the processing of Figure 2.
  • the diameter of the take up spool at that particular point in time and thus in that particular winding condition can be determined.
  • the ratio of spool diameters at the particular point in time can then be straightforwardly used to determine the diameter of the supply spool.
  • the method described above can be used to determine the diameter of the supply spool at the particular point in time and the ratio then used to determine the diameter of the take-up spool.
  • the ratio of spool diameters at a particular point in time is determined based upon the number of steps through which each of the spool motors 3b, 4b has been commanded to move. It will be appreciated that, given the monitoring of and correction of tension as described above such that tension is maintained substantially constant, the ratio of the number of steps through which the motors are driven is the inverse of the ratio of the diameters of the spools 3, 4. It will further be appreciated that the ratio of spool diameters calculated as described above is based upon the numbers of steps through which each of the spool motors 3b, 4b has been commanded to move during a previous transfer of tape.
  • the ratio of spool diameters calculated in this way represents the average ratio of spool diameters throughout the transfer of tape during which the numbers of steps was monitored.
  • the ratio of spool diameters calculated in this way represents the ratio of spool diameters at the midpoint of the transfer of tape during which the numbers of steps was monitored.
  • This method may provide an adequate estimate of the current ratio of spool diameters, which may then be used to calculate required numbers of steps for subsequent tape transfers.
  • knowledge of the tape thickness it is possible to determine a predicted spool diameter ratio for a subsequent tape transfer operation. In some embodiments knowledge of the tape thickness is thus used to determine a predicted spool diameter ratio measurement which allows more accurate control of subsequent tape transfer operations.
  • the area of tape on the supply spool 3 is reduced by an amount equal to the area of tape transferred. Therefore, during a transfer of a length of tape, the area of tape A s on the supply spool 3 is modified as follows:
  • A's A S - L t t t (22) where A' s is the predicted area of tape on the supply spool 3 after the transfer;
  • L is the length of tape transferred
  • t t is thickness of the tape.
  • equation (22) can be re- as: where D' s is the predicted diameter of the supply spool 3 after the transfer of tape.
  • the predicted spool diameter values D' s , D' T represent the spool diameter midway through a subsequent tape transfer operation, and can allow that subsequent tape transfer operation to be controlled more accurately.
  • subsequent processing can make use of the predicted spool diameter values D's, D'T based upon the calculations described above to determine a more accurate set of predicted step sizes for each of the motors 3b, 4b, rather than step sizes based upon the historical diameter values.
  • the number of steps driven by each motor can be calculated on the basis of the predicted step sizes.
  • Spool diameter values D S , D T as calculated according to equations (5) to (21 ) may provide sufficient accuracy for reliable tape transfers to be carried out.
  • initial diameters are determined using the processing described with reference to Figure 2.
  • the motors 3b, 4b are controlled to transfer tape from the supply spool 3 to the take-up spool 4 by providing step commands to each of the motors 3b, 4b, the ratio of the number of steps provided to the motors being in inverse proportion to the spool diameters as determined at step S20.
  • Each transfer of tape is typically associated with a printing operation.
  • tension in the tape is measured at step S22 and at step S23 a check is carried out to determine whether the measured tension is within predetermined limits.
  • step S24 a quantity of tape to be added to or subtracted from the tape path is determined, and converted into a number of motor steps (using the spool diameters as determined at step S20) as described above. These motor steps will be added to the steps applied to the take up and supply spool during the next tape transport operation at step S21. Processing passes from step S24 to step S25. If it is determined that tension is within predetermined limits at step S23 processing passes directly from step S23 to step S25. At step S25 a check is carried out to determine whether a predetermined quantity of tape has been transferred between the spools. In some embodiments the predetermined quantity of tape is 750mm although any suitable quantity of tape may be used.
  • step S26 This quantity of tape is that which is to be transported before spool diameters (as used in the processing of step S20) are updated. If it is determined that the predetermined quantity of tape has not yet been transported, processing returns to step S21. Otherwise, processing passes from step S25 to step S26 where the diameters of the spools are updated.
  • the processing of step S26 involves processing the spool diameters as previously determined together with a current ratio of spool diameters based upon the number of steps which has been provided to each motor since the spool diameters were last updated using equation (21 ).
  • step S26 Processing returns from step S26 to step S21 where the motors are driven using the newly-updated spool diameters.
  • the preceding method has been found to work well in allowing the diameters of the spools to be monitored on an on-going basis, so as to allow sufficiently accurate control of tape transport.
  • various techniques can be used to improve the methods described above. These techniques are now described. For example, in some embodiments the predetermined length of tape fed between diameter updates and tension correction operations may be varied. Moreover, a first diameter update or tension correction based upon one variable may be performed after a first predetermined length of tape is fed, while a second diameter update or tension correction based upon a second variable may be performed after a second predetermined length of tape is fed.
  • a first diameter update may be considered to be a minor diameter update, which is performed more regularly than a second, or major, diameter update.
  • relatively long lengths of tape are moved in each printing operation (e.g. 300 mm) it may be preferred to perform some diameter updates more frequently than described above. That is, it will be appreciated that the relative change in spool diameter during an operation which causes 300 mm of tape to be transferred will be significantly greater than the relative change in spool diameter during an operation which causes 15 mm of tape to be transferred.
  • tension corrections performed after every printing operation as described above with reference steps S22 to S24
  • tension corrections performed after every printing operation can allow some error in diameters (which lead to tension errors) to be accommodated, during longer tape transport operations such errors can lead to incorrect tape positioning and tensioning.
  • a printing operation in which a 300 mm long image is printed around 330 mm of tape may be caused to be transferred between the two spools 3, 4 (allowing for some tape to be transferred during acceleration and deceleration).
  • the spool diameters are accurately known at the beginning of such an operation and, in this example, the starting diameters are 33.3 mm for the take up spool 4 and 90 mm for the supply spool 3.
  • an error of up to around 0.25 mm may occur between the amount of tape paid out by the supply spool 3 and taken up by the take up spool 4 (e.g.
  • the accumulated error across that tape feed distance may be approximately 1 .2 mm (e.g. comprising a total over-feed of approximately 1 mm by the take up spool 4 and a total under-feed of approximately 0.2 mm by the supply spool 3).
  • Such a discrepancy between the amount of tape paid out by the supply spool 3 and taken up by the take up spool 4 may have a significant detrimental effect on the performance of the printer 1 .
  • the nominal tension in the tape 2 for optimal printing may correspond to around 2-2.5 mm of tape stretch.
  • the diameter discrepancies described above may lead to an increase or decrease in the nominal tension of up to 60 % of that amount, potentially leading to a significant degradation in print quality.
  • the check at step S25 to determine whether a predetermined quantity of tape has been transferred between the spools may use a predetermined quantity of tape being rather more than the example given above (750mm).
  • the check at step S25 may determine whether a predetermined number of printing operations have been carried out.
  • the predetermined number of printing operations is ten, although any suitable number of printing operations may be used.
  • the check at step S25 may determine whether a predetermined linear quantity of tape has been transferred between the spools and a predetermined number of printing operations have been carried out.
  • the predetermined linear quantity of tape may be 750 mm and the predetermined number of printing operations may be ten printing operations.
  • This will allow the tension error accumulator described above to effectively regulate the tension in the tape, and thus allow the diameter updates which are performed based upon the total steps moved by each of the motors during the preceding printing operations to be more accurately representative of the actual spool diameters. That is, where long images (e.g. 300 mm) are printed, the error accumulator will be allowed to accumulate errors over a longer transfer of tape (e.g. 3000 mm).
  • a minor diameter update may be performed after every printing operation (e.g. after 300 mm of tape has been transferred) so as to prevent the significant changes in the spool diameters from negatively affecting the ability to control tape position and tension.
  • minor diameter updates may be performed after every printing operation based upon the expected length of tape fed. For example, given the knowledge of the thickness of the tape, and the knowledge of a length of tape fed between the spools during a printing operation, a minor diameter update may simply adjust the spool diameters based upon the expected change which would be experienced during that printing operation (e.g. by addition or subtraction of a multiple of the known thickness of tape to the diameters based upon the length of tape advanced and the current diameters). Such a minor diameter update is not based upon feedback indicating actual tape fed or steps advanced by the motors, but instead is simply based upon the length of tape expected to be fed. A minor diameter update of this type may be referred to as being based upon dead reckoning.
  • step S30 the tension measurements obtained at step S22 of Figure 5 since the processing of step S26 was last carried out (or since step S20 if the diameters have not yet been updated since initialisation) are obtained and an average tension value is calculated for use in further processing.
  • the average tension value of step S30 is calculated by summing all tension measurements obtained at step S22 and dividing the sum by the number of tension measurements. The determined average tension value is classified as being 'tight', 'slack' or 'perfect' based upon a correction between the determined average and a nominal tension value.
  • step S31 a check is carried out to determine whether the classification of the average tension value obtained at step S30 is the same as that of the immediately preceding average, and whether both values are in error (i.e. there is a check to determine whether there are two or more consecutive 'tight' or 'slack' average tension values). If the check of step S31 indicates that there are not two consecutive average tension values having the same classification, processing passes to step S32 where diameters of the spools are updated using the processing described above, based upon the ratio of steps which have been provided to each of the motors.
  • step S31 finds two or more consecutive tension measurements which are too tight or too slack, processing passes to step S33.
  • a proportional correction in the form of a length is calculated, according to equation (27): where: P is the proportional correction;
  • t is the average tension value
  • s is the nominal ribbon stretch expressed as a length
  • I is the length of ribbon which has been transferred between the spools 3, 4 by the processing of step S21 ;
  • p is the path length between the spools 3, 4;
  • G p is a proportional gain constant.
  • G p is an integral gain constant.
  • the value of the integrator i is set to zero where an average tension value is processed which does not have the same classification as the previously processed average tension value (e.g. the integrator sum extends only over consecutive average tension values having the same classification).
  • the correction to be applied expressed as a length is then determined at step S35 as the sum of P and I.
  • step S35 Processing passes from step S35 to step S36 where the determined length is converted into a number of steps for each motor using the approach set out above.
  • the number of steps that half the correction amounts to for the stepper motor with the largest spool diameter is determined. These steps are then re-calculated as a distance (relying upon the known spool diameter of the largest spool) and subtracted from the original correction amount. The resultant value is then used to calculate a correction number of steps for the motor driving the smaller diameter spool.
  • the previously determined diameters are obtained (either the diameters determined by the processing of Figure 2 at step S20 or otherwise the diameters as previously updated at step S26).
  • the steps through which each spool has been driven are obtained, and at step S39 the obtained steps are modified using the correction determined at step S36. This modified number of steps is then used in processing based upon equation (21 ) to determine the updated spool diameters at step S40.
  • the processing described above, in particular with reference to equation (27) can be understood as calculating a difference between a nominal length of ribbon, and an actual length of ribbon transferred onto the take-up spool 4. That is, by dividing the average measured tension t throughout the transfer of ribbon by the nominal tension t n and subtracting 1 , a fractional tension difference is calculated. This fractional tension difference is multiplied by the nominal stretch value s, to generate a stretch difference value. That is, at nominal tension, the ribbon between the spools is stretched by the nominal stretch s. However, where the tension t differs from this nominal tension t n , the ribbon will be stretched by a different amount. Therefore, the stretch difference value provides a measure of the actual ribbon stretch above or below the nominal stretch s.
  • the effect of varying tension on ribbon stretch is taken into account when the length of ribbon which is wound onto the take-up spool 4 is calculated.
  • the nominal tension t n has as a value of 2400
  • the nominal ribbon stretch has a value of 20 (representing a nominal stretch of 2 mm)
  • the path length p between the spools 3, 4 has a value of 4720 (representing a path length of 472 mm).
  • the proportional gain constant G p may, for example, have a value of 0.30.
  • the integral gain constant G may, for example, have a value of 0.005.
  • additional processing may limit the value of average tension t used in the calculations described above to being within a predetermined amount of the nominal tension t n .
  • the average tension t may be limited to being within ⁇ 300 of a nominal tension t n of 2400 (i.e. average tension t having a value between 2100 and 2700). That is, if the calculated average tension t is outside of this range, the value used in subsequent processing steps (and in equations (27)-(29)), may be adjusted to fall within the stated allowable range.
  • Such an approach prevents outlying values from having an undue effect on subsequent processing. That is, this processing effectively provides a noise rejection system.
  • FIG. 7 Another modification of the processing of Figure 5 is now described with reference to Figure 7.
  • the processing of Figure 7 uses an accumulator have four elements each storing a pair of accumulator values as is now described.
  • each value of each pair of accumulator values is initialised to a zero value, and a first element of the accumulator is selected for use.
  • step S50 corresponds to the processing of step S21 of Figure 5 where the motors are driven to cause the transfer a predetermined length of tape between the spools.
  • step S51 the output of the sensor 5a providing information as to a number of rotations of the roller 5 is monitored. Given knowledge of the diameter of the roller 5 a length of tape corresponding to the monitored rotations of the roller 5 can be determined (as described above in the context of the processing of Figure 2). It will be appreciated that it would be expected that this length of tape should correspond to the predetermined length of tape which the motors were driven to move between the spools during the period for which the sensor 5a is monitored.
  • the tension in the tape may be subject to fluctuations (some of which may be abrupt) caused by the interaction of the tape 2, the printhead 7 and the substrate 10. Any such tension fluctuations may result in slipping between the roller 5 and the tape.
  • the output of the sensor 5a (which provides information as to a number of rotations of the roller 5) is monitored during a predetermined portion (e.g. the reverse portion) of the movement of the tape which is effected in order to cause the predetermined length of tape to be transferred between the spools.
  • a predetermined portion e.g. the reverse portion
  • the length of tape indicated by the output of the sensor should correspond to the movement of the motors during the same predetermined portion of the movement of the tape (e.g. the predetermined length of tape which the motors were driven to move between the spools in the reverse direction).
  • all movement of the tape in the reverse direction is monitored.
  • acceleration and deceleration rates during reverse movement of the tape may be selected so as to minimise the likelihood of the tape slipping with respect to the roller 5.
  • a typical tape acceleration rate for a forward print feed may be 65 - 100 m/s 2
  • the rate of acceleration and deceleration during reverse tape movements may be limited to a maximum of around 20 m/s 2 .
  • different rates of acceleration or deceleration may be used.
  • only a predetermined portion of the reverse feed may be used (e.g. a constant speed portion) so as to avoid monitoring the tape during periods of (excess) acceleration or deceleration.
  • an optional check is made to determine whether the length of tape determined based upon the output of the sensor 5a is within a predetermined range (for example ⁇ 5%) of the predetermined length of tape which the motors were driven to move.
  • a further optional check is made at step S52 to determine whether, during the transfer of tape, there was sufficient tension in the tape (for example whether tension in the tape was at least 75% of some nominal value).
  • the check to determine whether the tension during the transfer of tape was "low” may be performed based upon a different tension threshold. Further, the tension threshold may be varied based upon the tape width. For example, tension may be classified as "low” when it falls below 75% of the nominal tension value for a 1 10 mm tape width. On the other hand, tension may be classified as "low” when it falls below 87.5% of the nominal tension value for a 55 mm tape width.
  • T L is the low tension threshold for a given tape width
  • T N is the nominal tension for the given tape width
  • w is the tape width (in mm);
  • an appropriate "low” tension threshold can be determined.
  • other techniques for determining an appropriate "low” tension threshold e.g. empirical determination, reference to a look-up table.
  • step S52 If the checks of step S52 are not satisfied (where either or both of those checks are performed), the output of the sensor 5a is deemed to be in error and processing passes to step S53 where the reading is discarded before processing returns to step S50. If, however, the length of tape determined based upon the output of the sensor is within the predetermined range of the predetermined length of tape and/or the tension is acceptable, processing passes to step S54 where the length of tape determined based upon the output of the sensor 5a is added to a first value of an element of the accumulator, while the predetermined length of tape is added to a second value of that element of the accumulator. Processing then passes to step S55 where a check is carried out to determine whether a total predetermined length of tape (e.g. 500 mm) has been fed.
  • a total predetermined length of tape e.g. 500 mm
  • the length of tape transferred between the spools may be understood to correspond to tape transferred in the forward or reverse direction.
  • the transfer of the total predetermined length of tape between the spools may refer to all movements of tape which are brought about in order to cause the predetermined length of tape to be advanced from the supply spool to the take up spool.
  • the rotations of the roller 5 may be monitored only during the portions of that movement which are in the reverse direction so as to avoid discrepancies caused by significant and abrupt tension variations (which may, for example, be caused as a result of interactions with the printhead).
  • the check is carried out at step S55 to determine whether the total predetermined length of tape (e.g. 500 mm) has been fed, this check may, for example, determine whether the total predetermined length of tape has been transferred between the spools in the reverse direction.
  • a check may be carried out to determine whether a total predetermined number of printing operations (e.g. two) have been carried out since the accumulator element was initialised. If the total predetermined length of tape has been fed, processing returns to step S50 where further tape is transferred between the spools. On the other hand, if the total predetermined length of tape has been fed, processing passes to step S56 where a check is carried out to determine whether all elements of the accumulator values have been appropriately populated. If this is not the case, a next element of the accumulator is selected and initialised at step S57, before processing returns to step S50 where further tape is transferred between the spools (subject to the processing discussed with reference to Figure 5).
  • a total predetermined number of printing operations e.g. two
  • processing passes to step S58 where the values in the accumulator are averaged by summing the first values in each of the pairs and dividing by the number of pairs (e.g. four) to give a first average value and summing the second values in each of the pairs and dividing by the number of pairs (e.g. four) to give a second average value.
  • the averaging generates a pair of values a first indicating an average distance determined based upon output of the sensor 5a and a second indicating an average distance determined based upon the lengths of tape fed.
  • an additional validation check may be performed to ensure that each of the first values is within some predetermined range of an immediately preceding first value and each of the second values is within some predetermined range of an immediately preceding second value. If this is not the case a value is deemed to be an outlier and is not used for subsequent processing.
  • Processing passes to step S59 where a comparison is made between the first average value and the second average value. Specifically a comparison is made to determine whether the two average values are sufficiently different from one another to warrant correction while at the same time being sufficiently close to one another to not seem erroneous. For example in one embodiment a check is made to determine whether the difference between the two average values is greater than 0.25% but less than 3%. If this is the case, processing passes from step S59 to step S60 where the spool diameters are updated as is now described. Recall equation (20) :
  • the left hand side of the equation is an expression for the total area of the two spools
  • EDF and RDF are the average of the values as determined at step S58.
  • Equation (20) can then be modified, thus: which, analogously to equation (21 ) above can be rewritten, thus:
  • the spool diameters can be determined at step S26 of Figure 5 in a manner which takes into account the output of the sensor 5a which detects rotation of the roller 5.
  • step S60 Processing passes from step S60 to step S61 where all elements of the accumulator are reset to zero and the first element of the accumulator is again selected for use before processing once again passes to step S50, and more tape is transferred. If the checks of step S59 are not satisfied, processing passes directly from step S59 to step S61 .
  • the accumulator is populated with pairs of values which correspond to a first estimate of a length of transferred tape based on steps supplied to the motors, and a second estimate of a length of transferred tape which is based on an encoder output.
  • the first and second estimates of a length of transferred tape are each based upon separate, and independent, inputs. That is, the first and second estimates are entirely independent of one another. The first and second estimates are not derived from the one another, nor are they both derived from a common input. In this way, the accuracy of control of the tape can be improved. For example, the first estimate can be improved based upon the second estimate where differences are identified therebetween.
  • the accumulator Once the accumulator is populated with four such pairs of values, these values can be used to update the spool diameters, as described above. Once one spool diameter update has been made, based upon the accumulator values (if deemed necessary), all elements (i.e. pairs of values) in the accumulator are removed, and are initialised to zero, before processing is repeated. As such, the accumulator, and associated processing as described above, allows a rolling average measure of the amount of tape to be maintained and used to improve tape transfer accuracy. It will be appreciated that the accumulator may have different numbers of elements than four. For example, in some embodiments an accumulator may be arranged to accumulate readings based upon twenty tape feeds. It will be appreciated that the accumulator may be arranged in any convenient form.
  • each accumulator element may be arranged to store data associated with two tape feeds, with new accumulator elements being initialised and populated until ten such elements are populated.
  • processing may instead simply consider the total of each of the accumulated readings, with step S58 being omitted.
  • step S59 the checks at step S59 are omitted entirely, and it is assumed that the encoder readings accurately reflect the movement of tape. In such embodiments, processing passes directly from step S58 (if performed) to step S60.
  • steps S69 to S74 generally corresponds to the processing described above with reference to steps S49 to S54 of Figure 7 respectively.
  • step S74 Processing passes from step S74 to step S75 where a check is carried out to determine whether at least two entries have been added to the current accumulator element. That is, each tape feed operation will result in a single entry being added to an accumulator element at step S74 (provided any checks at step S72 are satisfied).
  • processing returns to step S70 where further tape is transferred between the spools.
  • processing proceeds to step S76.
  • step S76 a further check is carried out to determine whether all elements (e.g. ten) of the accumulator have been appropriately populated. If this is not the case, a next element of the accumulator is selected and initialised at step S77, before processing returns to step S70 where further tape is transferred between the spools. If however all (e.g. ten) elements of the accumulator have been appropriately populated, processing passes to step S78 where the values in the accumulator are summed together. That is, each of the (e.g. twenty - ten accumulator elements each containting two values) first values in each of the pairs is added together to give a first total value and each of the (e.g.
  • each of the first values is within some predetermined range of an immediately preceding first value and each of the second values is within some predetermined range of an immediately preceding second value. If this is not the case a value is deemed to be an outlier and is not used for subsequent processing.
  • Processing then passes to step S79 where a check is performed to determine if a total predetermined length of tape (e.g. 500 mm) has been fed.
  • a total predetermined length of tape e.g. 500 mm
  • the total predetermined distance may refer to a distance in the reverse tape feed direction.
  • step S77 If the total predetermined distance has not been fed, processing passes to step S77 where the next accumulator element is re-initialised, before processing again returns to step S70 where further tape is transferred between the spools.
  • step S77 there will already be a full set (e.g. ten) of accumulator elements initialised and populated (this being a condition which is checked at step S76).
  • a next accumulator element is required to be initialised at step S77 (when arrived at from step S79) the first accumulator element is re-initialised, and repopulated during subsequent tape feeds. Should further processing result in processing again passing from step S79 to step S77 a second, or further, accumulator element may be re-initialised.
  • step S80 If the checks of step S80 are not satisfied, processing passes from step S80 to step S77 where the next accumulator element is re-initialised (as described above).
  • the accumulator is populated with pairs of values which correspond to a first estimate of a length of transferred tape based on steps supplied to the motors, and a second estimate of a length of transferred tape which is based on an encoder output.
  • the accumulator having ten elements may be replaced with an accumulator having a single element.
  • the processing at step S75 may be modified to check whether or not there is data relating to a larger number of tape feeds (e.g. twenty) in the accumulator. Further, in such an embodiment the processing at step S76 may be omitted entirely.
  • the printer controller 9 has been described above, as has a stepper motor controller 20 and various circuitry associated therewith. It will be appreciated that the printer controller 9 can take any suitable form (e.g. it may be a programmable microprocessor in communication with a memory storing appropriate instructions, or it may comprise bespoke hardware elements such as an ASIC).
  • the stepper motor controller may be integral with the printer controller 9, although in some embodiments the stepper motor controller 20 is a controller dedicated to control of one or more stepper motors which communicates with the printer controller 9. It will be appreciated that the printer controller 9 may be provided by a plurality of discrete devices. As such, where functions have been attributed to the printer controller 9, it will be appreciated that such functions can be provided by different devices which together provide the printer controller 9.

Abstract

A method of determining the diameter of a first spool (3) of tape (2) in a tape drive in which tape (2) is transferred between first (3) and second (4) spools of tape, the method comprising: generating a first estimate of a quantity of tape (2) transferred between said first and second spools in one or more tape transport operations; generating a second estimate of a quantity of tape transferred between said first and second spools in said one or more tape transport operations; generating an indication of the diameter (D) of the first spool of tape based upon said first and second estimates.

Description

TAPE DRIVE AND TRANSFER PRINTER
The present invention relates to a tape drive, and more particularly, but not exclusively to a tape drive suitable for use in a transfer printer such as a thermal transfer printer.
Tape drives transfer tape from a first spool, often referred to a supply spool, to a second spool, often referred to as a take-up spool.
Tape drives find a wide variety of uses. One such example is in transfer printers - in which ink is transferred from an ink carrying tape, often referred to as a ribbon - which require a means for transporting the ribbon from the first spool to the second spool past a print head. Tape drives for use in transfer printers take a wide variety of forms, partially depending upon the nature of the printer in which the tape drive is used. For example dot matrix printers often use a multi-use ribbon which passes between a supply spool and a take up spool. When the supply spool is exhausted the direction of ribbon travel is reversed. This process continues a number of times. In such a printer there is no need for accurate placement of the ribbon relative to the printhead given the reusable nature of the ribbon. Additionally many dot matrix printers operate at relatively low speeds and have modest requirements in terms of ribbon acceleration and deceleration.
In contrast, thermal transfer printers make use of single use ribbon. In order to avoid ribbon wastage it is desirable to transport the ribbon between the spools, past the print head, in such a way that the position of the ribbon relative to the printhead can be accurately controlled. In this way the ribbon to be used in a new printing operation is positioned adjacent to that used in a preceding printing operation thereby minimizing ribbon wastage. Additionally, where single use ribbons are used it is important that unused ribbon is positioned at the print head during a printing operation as otherwise the printing operation will fail to transfer ink from the ribbon to a substrate thereby causing faulty printing.
The differing requirements of different types of printing technologies influence the choice of tape drive which is employed. For example, thermal transfer printing often has relatively challenging requirements not only in terms of accuracy of ribbon movement - as discussed above - but also in terms of ribbon acceleration and deceleration.
Some tape drives require that the diameter of one or both of the spools is determined in order to allow the spools to be rotated in a controlled manner to cause predetermined movement of the tape between the spools. For example it is known to use an optical system to determine spool diameters.
It is an object of some embodiments of the present invention to provide a tape drive which allows the diameters of the tape spools to be determined.
According to a first aspect of the present invention, there is provided, a tape drive comprising: first and second motors; first and second spool supports, respectively receiving first and second spools of tape, the first spool support being driveable by the first motor and the second spool support being drivable by the second motor; a sensor arranged to provide a signal indicative of linear movement of tape between the tape spools along a predetermined tape path; and a controller arranged to control energization of said first and second motors for transport of the tape in at least one direction between the first and second spools of tape along the predetermined tape path; wherein the controller is arranged to generate data indicating the diameter of said first and second spools of tape based upon said signal provided by the sensor and data indicating rotation of each of said first and second spools.
The first aspect of the invention therefore provides a tape drive which is configured to determine the diameters of two tape spools based upon data indicating the rotation of those spools and a signal provided by a sensor which indicates linear movement of tape between the two tape spools.
Linear movement of the tape may be monitored by the sensor in any convenient way. For example the sensor may comprise a roller and an encoder monitoring rotation of said roller, and tape may pass at least partially around said roller on said predetermined tape path. In this way rotation of the roller is indicative of the linear movement of the tape between the tape spools. The encoder may generate a signal indicating a number of rotations of said roller. Where the diameter (or a parameter having a fixed relationship with the diameter) of the roller is known monitoring rotation of the roller allows a determination of the actual linear movement of the tape to be made. The roller is preferably coated with a non-slip coating so as to cause movement of the roller to be accurately indicative of movement of the tape. Each of the spools may be mounted on the output shaft of its respective motor. Alternatively, each of the spools may be mounted for rotation about a respective shaft and each of the shafts may be coupled to the output shaft of a respective motor by an appropriate coupling (e.g. a belt drive). The coupling between each spool and its motor may provide a fixed transmission ratio.
The controller may be arranged to provide a first signal to the first motor to cause rotation of the first spool of tape and movement of the tape between the spools along the predetermined path. The data indicating rotation of the first spool may comprise said first signal. That is, rotation of the first spool may be monitored based upon a drive signal provided to the motor driving that spool.
The controller may be arranged to receive a second signal indicating rotation of the second spool. For example, the controller may be arranged to receive a signal from the second motor indicating rotation of the second spool of tape caused by movement of the tape along the predetermined path. The data indicating rotation of the second spool may comprise said second signal. That is, the second spool may be monitored based upon a signal provided to the controller. The signal may be provided by a motor coupled to the second spool. The second motor may be de-energised. The second signal may comprise a plurality of pulses generated by rotation of a rotor of the second motor within a stator of the second motor. The second signal may comprise a plurality of pulses indicative of back-EMF signals generated by rotation of the rotor of the second motor within the stator of the second motor. The controller may be arranged to receive a third signal being a signal provided by the sensor. The controller may be arranged to generate said data indicating the diameter of each of said first and second spools based upon said first, second and third signals. That is, the diameters of the spools may be determined based upon a signal provided to drive a motor which rotates the first spool, a signal which indicates actual rotation of the second spool, and a signal which indicates linear movement of the tape. Data indicating the diameter of the first spool may be generated based upon said first and third signals. Data indicating the diameter of the second spool may be generated based upon the second signal and at least one of the first and third signals.
The first signal may indicate a number of rotations of the first spool. The number may be any real number and need not be an integer. The second signal may indicate a number of rotations of the second spool. Again, the number may be any real number and need not be an integer. The first and second signals may each comprise a plurality of pulses and it may be known that a particular number of pulses corresponds to a single rotation of the respective spool. In this way each of the pluralities of pulses can be converted into a number of rotations of the respective spool.
The controller may be arranged to: monitor said second signal; generate a drive signal for said second motor based upon said second signal; and provide said drive signal to said second motor. The drive signal may be synchronised with the second signal.
For example, the second signal may be periodic and the generated drive signal may be periodic, the period of the drive signal (or a multiple thereof) being equal to the period of the second signal. The period of the second signal may be a multiple of the period of the drive signal.
The second signal may comprise a plurality of pulses having substantially equal time intervals therebetween. The controller may generate a drive signal comprising a plurality of drive pulses having the same substantially equal time intervals therebetween. Alternatively, the plurality of pulses may have varying time intervals therebetween, the varying time intervals representing an acceleration or deceleration. In such a case the drive signal may comprise a plurality of drive pulses which continues that acceleration or deceleration.
The controller may be arranged, during an operation to generate data indicating the diameter of said first and second spools, to energise the first motor and de-energise the second motor. The de-energised second motor may provide resistance to tape movement thereby causing tension in the tape. That is, during such an operation the tape drive may operate in a pull-drag mode in which all motion is caused by the motor driving a take-up spool and the motor coupled to a supply spool can, in such cases, simply provide resistance to tape motion.
The operation to generate data indicating the diameter of the first second spools may comprise a termination phase in which the first motor is decelerated at a rate of deceleration selected to maintain said tension in the tape. That is, it will be appreciated that where a heavy spool is mounted to a de-energised motor, rapid deceleration may result in the spool continuing to rotate because of its moment of inertia. Such continuing rotation may result in the tape becoming slack (i.e. in tension in the tape becoming too low. Gradual deceleration of the motor driving the take-up spool, on the contrary, will tend to minimise any continuing rotation of the supply spool.
One or both of the first and second motors may be position controlled motors. That is, one or both of the first and second motors may be motors configured to receive and act upon a position-based control signal. For example, one or both of the first and second motors may be stepper motors. Another example of a position controlled motor which may be used in some embodiments of the invention is a DC-servo motor which comprises an encoder which monitors the position of the motor's rotor and thereby provides positional control by way of closed-loop feedback. In some embodiments of the invention other motors are used such as, for example, torque-controlled motors (e.g. DC motors).
The controller may be arranged, in a tape transport operation, to energise both of the motors in a common rotational direction. That is, both motors may be energised in the direction of tape transport to provide push-pull operation in which one motor drives a supply spool to pay out tape and another motor drives a take-up spool to take-up tape. By reference to tape transport operation it is intended to indicate an operation having as its purpose the transfer of tape (perhaps a predetermined linear quantity of tape) from one spool to the other spool, not an operation intended to configure or otherwise initialise the tape drive.
The controller may be arranged, in a tape transport operation, to generate control signals for at least one of the first and second motors based upon said generated data indicating the diameter of said first and second spools. The controller may be arranged to control energization of the first and second motors for transport of the tape in both directions between the first and second spools of tape along the predetermined tape path. That is, the tape drive may allow for bi-directional movement of the tape between the spools.
The data indicating the diameter of said first and second spools may comprise a first length indicative of the diameter of the first spool and a second length indicative of the diameter of the second spool. The first length may be a radius or diameter of the first spool and the second length may be a radius or diameter of the second spool.
According to a second aspect of the invention, there is provided, a transfer printer comprising: a tape drive according to any preceding claim, wherein the tape is an ink carrying ribbon; and a printhead arranged to transfer ink from the ink carrying ribbon to a substrate to be printed.
The transfer printer may be a thermal transfer printer, and the printhead may be a thermal printhead.
According to a third aspect of the invention, there is provided a method for generating data indicating the diameter of first and second spools of tape in a tape drive in which tape is transported in at least one direction between the first and second spools along a predetermined tape path, the spools being respectively drivable by first and second motors, the method comprising: receiving a sensor signal indicating linear movement of tape between the tape spools along the predetermined tape path; and generating data indicating the diameter of said first and second spools of tape based upon said sensor signal and data indicating rotation of each of said first and second spools.
The method may further comprise the generation of said sensor signal by a sensor comprising a roller and an encoder monitoring rotation of said roller. Tape may pass at least partially around said roller on said predetermined tape path and said sensor signal may indicate a number of rotations of said roller.
The method may further comprise providing a first signal to the first motor to cause rotation of the first spool of tape and movement of the tape between the spools along the predetermined path. The data indicating rotation of the first spool may comprise said first signal.
The method may further comprise receiving a second signal from the second motor indicating rotation of the second spool of tape caused by movement of the tape along the predetermined path. The data indicating rotation of the second spool may comprise said second signal.
The method may also comprise generating said data indicating the diameter of each of said first and second spools based upon said first, second and third signals, the third signal being the sensor signal.
The method may further comprise monitoring said second signal; generating a drive signal for said second motor based upon said second signal; and providing said drive signal to said second motor. The drive signal may be synchronised with the second signal.
It will be appreciated that features discussed in the context of one aspect of the invention can be applied to other aspects of the invention. In particular, where features are described as being carried out by the controller in the first aspect of the invention it will be appreciated that such features can be used in combination with a method according to the third aspect of the invention.
The method of the third aspect of the invention can be carried out in any convenient way. In particular the method may be carried out by a printer controller and such a printer controller is therefore provided by the invention. The controller may be provided by any appropriate hardware elements. For example the controller may be microcontroller which reads and executes instructions stored in a memory, the instructions causing the controller to carry out a method as described herein. Alternatively the controller may take the form of an ASIC or FPGA.
According to a fourth aspect of the invention, there is provided a method of determining the diameter of a first spool of tape in a tape drive in which tape is transferred between first and second spools of tape, the method comprising obtaining first data indicative of the diameter of one of said first and second spools in a first winding condition; transferring tape between said first and second spools of tape such that said first and second spools of tape are in a second winding condition; obtaining second data indicative of tension in the tape extending between the first and second spools of tape at least one time; and generating output data indicative of the diameter of said first spool in said second winding condition of tape based upon said first and second data.
The term "winding condition" is used to refer to a particular configuration of the spools of tape in terms of the quantity of tape on each of the spools. Where tape is transported between the spools the length of tape within the tape drive will remain constant but different winding conditions will be adopted as tape is transferred from a supply spool to a take-up spool resulting in a reduction of the diameter of the supply spool and an increase in the diameter of the take-up spool.
The second data may be indicative of tension in the tape extending between the spools during said transfer of tape between said first and second spools of tape. The second data may comprise a plurality of data items, each indicative of tension in the tape at a respective time during said transfer of tape. The second data may be indicative of tension during transfer of tape between the spools on the basis that it is acquired during the transfer of tape or alternatively is acquired at a time somewhat before or after the transfer of tape (whether during another tape transport operation or otherwise). All that is required is that the second data is considered to be indicative of tension during the transfer of tape regardless of the exact time of its acquisition.
The second data may comprise an average tension value. That is the second data may be generated by obtaining a plurality of tension values and computing a mean tension value.
Generating output data indicating the diameter of said first spool may comprise processing said second data with respect to at least one reference value. The at least one reference value may be a nominal tension value which it is desired to maintain in the tape be transferred or may be a pair of predetermined limits between which it is desired to maintain tape tension.
The method may further comprise obtaining encoder data indicating a quantity of tape transferred between said first and second spools and generating said first data based upon said encoder data. The encoder data may be generated by a rotary encoder comprising a rotary sensing element of known diameter. For example a sensor may comprise a roller and an encoder monitoring rotation of said roller, and tape may pass at least partially around said roller on said predetermined tape path. In this way rotation of the roller is indicative of the linear movement of the tape between the tape spools. The encoder data may comprise a signal indicating a number of rotations of said roller. Where the diameter (or a parameter having a fixed relationship with the diameter) of the roller is known monitoring rotation of the roller allows a determination of the actual linear movement of the tape to be made. The roller is preferably coated with a non-slip coating so as to cause movement of the roller to be accurately indicative of movement of the tape.
Generating said output data may be based upon further encoder data indicating a quantity of tape transferred between said first and second spools during said transfer of tape.
Said output data may be based upon data indicating rotation of at least one of said first and second spools of tape. The output data may be based upon data indicating rotation of each of said first and second spools of tape. Data indicating rotation of at least one of said first and second spools of tape may be based upon a command signal provided to a motor arranged to rotate a respective spool of tape. The motors may be position controlled motors and the command signal may therefore be a positional control signal. For example the motors may be stepper motors and the command signal may be signal arranged to cause the motor to turn through a predetermined number of steps.
The method may further comprise obtaining third data indicating relative diameters of said first and second spools in said first winding condition; and obtaining fourth data indicating relative diameters of said first and second spools of tape in said second winding condition; wherein generating output data indicating the diameter of said first spool of tape is based upon said first, second, third and fourth data.
In this way the method may involve using a so-called conservation of area technique to determine the diameter of the first spool. This technique, which is described in further detail below, involves determining the diameter of a spool of tape from knowledge of initial spool diameters (e.g. diameters measured using techniques described in the context of the first aspect of the present invention) and a ratio of spool diameters in a particular winding condition.
Generating said output data may comprise modifying said fourth data based upon said second data. That is, the data indicating the relative diameters of the first and second spools may be modified using the data indicating tension. For example, the fourth data may be modified where the second data indicates that tension has varied from some nominal tension value. Said fourth data may be based upon data indicating rotation of said first and second spools of tape. The fourth data may be based upon rotation of motors arranged to rotate said first and second spools of tape. If said second data indicates a variation in tension relative to a nominal value, the fourth data may be modified based upon the second data so as to generate modified fourth data indicating relative diameters of said first and second spools of tape in said second winding condition given said tension variation. The modification may be based upon stretch in the tape associated with said tension variation.
In this way initial fourth data indicating assumed relative diameters of the first and second spools in the second winding condition is modified to take into account a variation in the relative diameters of the spools based upon the second data indicating tension in the tape. More particularly the difference between the tension and a nominal tension and a variation in stretch in the tape which results from said difference are processed so as to determine an estimated effect on relative diameters of the spools. In one embodiment an extension (or contraction) of the tape expressed as a length is determined based upon the difference between the tension and the nominal tension, the path length, a stretch associated with tape at nominal tension and a length of tape transported. This extension (or contraction) is converted into an estimated rotation of one or both of the first and second spools and thereby used to modify the fourth data.
Said modified fourth data may indicate relative diameters of the first and second spools of tape in the second winding condition which, given the rotation of said first and second spools of tape, would have caused the detected variation in tension. That is the modification of the fourth data may compensate for an error in values of the diameters of the first and second spools assumed when driving the spools. During said transfer of tape between said first and second spools, the method may comprise monitoring tension in the tape extending between the spools and controlling motors arranged to rotate the first and second spools of tape to maintain tension between predetermined limits. Controlling the motors arranged to drive the first and second spools of tape to maintain tension between predetermined limits may comprise determining whether the monitored tension satisfies a criterion; and if said monitored tension does not satisfy said criterion, adding or subtracting tape from the tape path extending between the first and second spools of tape. Adding or subtracting tape from the tape path extending between the first and second spools of tape may comprise generating a control command for a motor arranged to rotate one of the spools to add or subtract tape. The method may further comprise processing the monitored tension to determine a length of tape to be added to or subtracted from the tape path extending between the first and second spools of tape.
The method may further comprise performing a plurality of sets of tape transport operations; and obtaining a plurality of second data items each second data item being indicative of tension in the tape during a respective set of tape transport operations. Generating said output data may comprise determining whether consecutively obtained second data items satisfy a predetermined criterion. Each of said plurality of second data items may be an average tension value. The method may comprise modifying said fourth data based upon said second data only if consecutively obtained second data items satisfy said predetermined criterion. The tape may be transferred from the first spool of tape to the second spool of tape and/or the tape may be transferred from the second spool of tape to the first spool of tape. The tape drive may be bidirectional.
The method may be carried out in a printing device and said transfer of tape may be carried out during a printing process. The printing device may be a thermal transfer printer and said tape may be thermally sensitive ink carrying ribbon.
According to a fifth aspect of the invention, there is provided a tape drive comprising first and second spool supports, respectively receiving first and second spools of tape, the first spool support; at least one motor arranged to cause the transfer of tape between said first and second spools; and a controller arranged to control the at least one motor and to determine the diameter of the first spool of tape, by: obtaining first data indicating the diameter of one of said first and second spools in a first winding condition; transferring tape between said first and second spools of tape such that said first and second spools of tape are in a second winding condition; obtaining second data indicative of tension in the tape extending between the first and second spools of tape at least one time; and generating output data indicative of the diameter of said first spool in said second winding condition of tape based upon said first and second data. The controller may be further arranged to carry out processing according to the fourth aspect of the invention described above, including its various optional features as set out above.
According to a sixth aspect of the invention, there is provided, a method of determining the diameter of a first spool of tape in a tape drive in which tape is transferred between first and second spools of tape, the method comprising: generating a first estimate of a quantity of tape transferred between said first and second spools in one or more tape transport operations; generating a second estimate of a quantity of tape transferred between said first and second spools in said one or more tape transport operations; generating an indication of the diameter of the first spool of tape based upon said first and second estimates. That is, the indication of the diameter of the first spool of tape may be based upon first and second estimates of the quantity of tape transferred between the spools, thereby providing an improvement in accuracy with which the diameter of the first spool of tape can be determined. The first and second estimates of a quantity of tape transferred between the spools may each be based upon separate, and independent, inputs rather than one being derived from the other, or both being derived from a common input. That is, the first and second estimates may be entirely independent of one another, allowing the accuracy of control of the tape to be improved. For example, the first estimate may be improved based upon the second estimate where differences are identified therebetween.
Generating said indication of the diameter of the first spool of tape may be based upon data indicating a diameter of said first spool of tape in a first winding condition. Said one or more tape transport operations may cause the first and second spools of tape to adopt a second winding condition, and said generated indication may be an indication of the diameter of the first spool of tape in the second winding condition. Reference to "winding condition" here has the general meaning set out above.
Said first estimate may be based upon rotation of said first spool. Said first estimate may further be based upon an estimated diameter of said first spool. Said first spool may be rotated by a first motor and said first estimate may be based upon a command signal provided to the first motor. The method may further comprise generating said command by: obtaining data indicating a diameter of said first spool; obtaining data indicating a length of tape to be transported; generating said command signal based upon said obtained diameter and said obtained length.
The first motor may be a position controlled motor and said command signal may define a positional movement of the first motor. As noted above a suitable position controlled motor is a stepper motor which can be controlled using the various techniques described herein.
Said second estimate may be based upon an output of an encoder indicating a quantity of tape transported between said first and second spools of tape in said one or more tape transport operations. The encoder may be a rotary encoder comprising a rotary sensing element of known diameter. For example a rotary encoder may comprise a roller and an encoder monitoring rotation of said roller, and tape may pass at least partially around said roller on said predetermined tape path. In this way rotation of the roller is indicative of the linear movement of the tape between the tape spools. The encoder data may comprise a signal indicating a number of rotations of said roller. Where the diameter (or a parameter having a fixed relationship with the diameter) of the roller is known monitoring rotation of the roller allows a determination of the actual linear movement of the tape to be made. The roller is preferably coated with a non-slip coating so as to cause movement of the roller to be accurately indicative of movement of the tape.
Said first estimate may comprise a plurality of first estimate values and said second estimate may comprise a plurality of second estimate values. The method may further comprise comparing each first estimate value with a respective second estimate value to determine whether a predetermined criterion is satisfied; and generating said indication of diameter based upon first and second estimate values which satisfy said predetermined criterion. Each of said first estimate values may be equal.
Generating said indication of the diameter of the first spool may comprise determining whether said first and second estimate values satisfy a predetermined criterion. If said criterion is satisfied, said indication may be generated based upon said second estimate. If said criterion is not satisfied said indication may be generated based upon said first estimate. Generating said indication of the diameter of the first spool in said second winding condition may comprise obtaining a relationship relating the diameter of the first spool of tape in the second winding condition to the diameters of the first and second spools of tape in the first winding condition and the relative diameters of the first and second spools of tape in the second winding condition. If said criterion is satisfied, said relationship may include a term based upon a relationship between the first and second estimates.
The tape may be transferred from the first spool of tape to the second spool of tape and/or the tape may be transferred from the second spool of tape to the first spool of tape. The tape drive may be bidirectional.
According to a seventh aspect of the invention, there is provided a tape drive comprising first and second spool supports, respectively receiving first and second spools of tape; at least one motor arranged to cause the transfer of tape between said first and second spools; and a controller arranged to control the at least one motor and to determine the diameter of the first spool of tape, by: generating a first estimate of a quantity of tape transferred between said first and second spools in one or more tape transport operations; generating a second estimate of a quantity of tape transferred between said first and second spools in said one or more tape transport operations; generating an indication of the diameter of the first spool of tape based upon said first and second estimates.
The controller may be further arranged to carry out processing according to the sixth aspect of the invention described above, including its various optional features as set out above. A further aspect of the invention provides a thermal transfer printer comprising a tape drive according to the fifth or seventh aspect of the invention arranged to transfer ink carrying tape between said first and second spools; and a printhead arranged to transfer ink from said ink carrying tape to a substrate.
Features discussed in the context of one aspect of the invention can be applied to other aspects of the invention. The various aspects of the invention can all be used alongside one another, for example is a single printing device.
Embodiments of the invention are now described, by way of example, with reference to the accompanying drawings, in which:
Figure 1 is a schematic illustration of a thermal transfer printer in which embodiments of the invention may be implemented; Figure 2 is a flowchart showing processing carried out in the transfer printer of Figure 1 to determine the diameters of the spools;
Figure 2A is a flowchart showing an alternative to some of the processing shown in Figure 2;
Figure 3 is a schematic illustration of a motor of the printer of Figure 1 and its associated control circuitry;
Figure 4 is a schematic illustration of measurements of two spools of tape;
Figure 5 is a flowchart showing processing used in the thermal transfer printer of Figure 1 to maintain up to date spool diameter measurements;
Figures 6 and 7 are flowcharts showing processing which may be used in the processing of Figure 5; and
Figure 8 is a flowchart showing alternative processing which may be used in the processing of Figure 5.
Referring to Figure 1 , a thermal transfer printer 1 comprises an ink carrying ribbon 2 which extends between two spools, a supply spool 3 and a takeup spool 4. In use, ribbon 2 is transferred from the supply spool 3 to the takeup spool 4 around rollers 5, 6, past print head 7 mounted to a printhead carriage 8. The supply spool 3 is mounted on a spool support 3a which is driven by a supply spool motor 3b. Similarly, the take-up spool 4 is mounted on a take-up spool support 4a which is driven by a take-up spool motor 4b. Each of the supply spool motor 3b and the take up spool motor 4b are controlled by a printer controller 9. In the embodiment described here each of the supply spool motor 3b and the take-up spool motor 4b are hybrid stepper motors (as opposed to variable reluctance or permanent magnet stepper motors). The use of a hybrid stepper motor is preferred as it gives a higher resolution (typically 1 .8 degrees per full step) than other types of stepper motor, and can operate at high stepping rates with excellent holding and dynamic torque capability.
The stepper motor may be for example a Portescap motor having part number 34H1 18D30B.
While during operation the ribbon 2 is generally transferred from the supply spool 3 to the take-up spool 4, the controller 9 can also energise the motors so as to cause the ribbon 2 to be transferred from the take-up spool 4 to the supply spool 3. This can be useful in some printing modes as is described further below.
The rollers 5, 6 may be idler rollers, and serve to guide the ribbon 2 along a predetermined ribbon path as shown in Figure 1 . Rotation of the roller 5 is monitored by a sensor 5a. Specifically, the roller 5 is provided with a magnetic element. The sensor 5a can then monitor changes in magnetic field caused by rotation of the roller 5. The sensor 5a provides a signal to the printer controller 9 comprising a number of pulses sensed by the sensor 5a. Given knowledge of the number of pulses generated by a single rotation of the roller 5, the pulses provided to the printer controller 9 by the sensor 5a can be processed to determine a number of rotations (which will usually not be an integer number) of rotations of the roller 5.
The magnetic element may be a magnetic multipole ring as supplied by Austria Microsystems with part number AS5000-MR20-44. The sensor 5a may be a rotary magnetic position sensor, also supplied by Austria Microsystems and having part number AS5304.
The roller 5 comprises an aluminum shaft of diameter 8mm and is coated with a non- slip coating. The non-slip coating may be a polyurethane material having a Shore A hardness of 50-70 and a thickness of 3.5mm. Alternatively the non-slip coating may be a silicone rubber having a Shore A hardness of 50-55, and a thickness of 2.75mm. The provision of a non-slip coating has the effect of ensuring that the roller 5 rotates consistently as the tape moves along the predetermined path. This means that the rotation of the roller 5 is an accurate indicator of tape movement. Rotation of the roller 5 is used in processing carried out by the printer controller 9 in the manner described below. The diameter of the roller 5 is known to the printer controller 9. In one embodiment the roller 5 has a diameter of 15mm. It is preferable that the roller 5 has low rotational inertia, and it is for this reason that the shaft is made from aluminum. In a printing operation, ink carried on the ribbon 2 is transferred to a substrate 10 which is to be printed on. To effect the transfer of ink, the print head 7 is brought into contact with the ribbon 2. The ribbon 2 is also brought into contact with the substrate 10. The print head 7 may be caused to move towards the ribbon 2 by movement of the print head carriage 8, under control of the printer controller 9. The print head 7 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 10. 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 10 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.
There are generally two modes in which the printer of Figure 1 can be used, which are sometimes referred to as a "continuous" mode and an "intermittent" mode. In both modes of operation, the apparatus performs a regularly repeated series of printing cycles, each cycle including a printing phase during which ink is transferred to the substrate 10, and a further non-printing phase during which the printer is prepared for the printing phase of the next cycle.
In continuous printing, during the printing phase the print head 7 is brought into contact with the ribbon 2, the other side of which is in contact with the substrate 10 onto which an image is to be printed. The print head 7 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 10 and ribbon 2 are transported past the print head, generally but not necessarily at the same speed.
Generally only relatively small lengths of the substrate 10 which is transported past the print head 7 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 7 is adjacent regions of the substrate 10 to be printed. Immediately before extension of the print head 7, the ribbon 2 must be accelerated up to for example the speed of travel of the substrate 10. The ribbon speed must then be maintained at the constant speed of the substrate 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. As the next region of the substrate to be printed approaches, the ribbon 2 must then be accelerated back up to the normal printing speed and the ribbon 2 must be 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 7 and the substrate 10 when the print head 7 is advanced to the printing position. It is therefore desirable that the supply spool motor 3b and the take-up spool motor 4b 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 7 and the substrate 10.
In intermittent printing, a substrate is advanced past the print head 7 in a stepwise manner such that during the printing phase of each cycle the substrate 10 and generally but not necessarily the ribbon 2 are stationary. Relative movement between the substrate 10, the ribbon 2 and the print head 7 are achieved by displacing the print head 7 relative to the substrate and ribbon. Between the printing phases of successive cycles, the substrate 10 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 print head 7 and the substrate 10. Once again accurate transport of the ribbon 2 is necessary to ensure that unused ribbon is always located between the substrate 10 and print head 7 at a time that the print head 7 is advanced to conduct a printing operation. It will be appreciated that where the intermittent mode is used, a mechanism is provided to allow the print head 7 to be moved along a linear track so as to allow its displacement along the ribbon path. Such a mechanism is not shown in Figure 1 but is described in our earlier patent no. US7, 150,572.
In each of the aforementioned modes, during the transfer of tape from the supply spool 3 to the take up spool 4, both the supply spool motor 3b and the take-up spool motor 4b are energised in the same rotational direction. That is, the supply spool motor 3b is energised to turn the supply spool 3 to pay out an amount of tape while the take-up spool motor 4b is energised to turn the take-up spool 4 to take-up an amount of tape. The motors can therefore be said to operate in "push-pull" mode. 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. A technique for determining spool diameters is now described.
Referring to Figure 2, at step S1 the take-up motor 4b is commanded to turn the take- up spool 4 at a relatively slow speed. In determining a speed at which to drive the take- up motor 4b, the diameter of the take-up spool 4 is assumed to be a maximum diameter which the printer supports, for example 90 mm or 95mm. Using this assumed take-up spool diameter the take-up motor 4b is commanded to turn the take-up spool 4 at a rotational speed which corresponds to a linear ribbon speed of 350 mm/s. At this initial stage no information is available as to the actual diameter of either of the supply spool 3 or the take-up spool 4 meaning that the supply spool 3 cannot be driven without the risk that rotation of the take-up spool 4 and the supply spool 3 will not be properly synchronised which may result in the ribbon 2 becoming unacceptably loose or unacceptably tight so as to break. As such the supply spool motor 3b is not energised at this initial stage. Rather, the supply spool 3 is allowed to 'free wheel'. The supply spool motor 3b has an inherent detent torque which resists rotation, and this torque opposes the motion caused by the take-up spool motor 4b thereby causing tension in the ribbon 2.
The motion of the supply spool motor 3b caused by the movement of tape caused by rotation of take-up spool motor 4b will cause the supply spool motor 3b to generate a voltage across its windings. The voltage across the windings of the supply spool motor 3b will take the form of a periodic signal, which can be processed to generate a series of pulses, there being a predetermined number of pulses in a single rotation of the rotor of the supply spool motor 3b. This is described in more detail below.
At step S2 the printer controller 9 determines whether it has received the expected pulses from the supply spool motor 3b. For example, the printer controller may wait until the pulses received from the supply spool motor 3b indicate that the supply spool motor 3b has rotated 1/3 of a full rotation. The nature of the pulses received from the supply spool motor 3b is such that a known number of pulses correspond to a single rotation of the supply spool motor 3b and consequently of the supply spool 3. If no pulses have been received, this indicates that the supply spool motor 3b has not moved, thereby indicating that there is no ribbon between the supply spool 3 and take up spool 4. It may be determined that the supply spool motor 3b has not moved if no pulses are received from the supply spool motor 3b in the time taken for the take-up spool 4 to rotate three rotations (determined based upon knowledge of the number of steps in a single revolution and the number of steps provided to the take-up spool motor 4b). In this case an error condition is generated at step S3.
If, however, the printer controller 9 determines at step S2 that pulses have been received from the supply spool motor 3b, processing passes to each of steps S4 and S5 which preferably operate in parallel. At step S4 a timer is maintained of the duration for which steps are provided by the printer controller 9 to the take-up spool motor 4b at a known step rate which corresponds to linear movement at 350mm/s based upon the assumption as to take-up spool diameter noted above. At step S5 a count is maintained of pulses received by the printer controller 9 from the sensor 5a. During steps S4 and S5, the take-up motor 4b is driven at the constant speed determined above (i.e. steps are applied at a constant step rate), and it is assumed that there is sufficient tension in the tape to cause the roller 5 to also rotate at a constant speed.
Processing passes from each of steps S4 and S5 to step S6, where a determination is made whether a predetermined number of pulses corresponding to an entire rotation of the roller 5 have been received from the sensor 5a. The nature of the pulses provided by the sensor 5a is such that a known, predetermined number of pulses correspond to a single rotation of the roller 5, this being a function of the magnet which is fitted to the roller 5. Once the predetermined number of pulses is received from the sensor 5a, processing passes to step S7. Alternatively, if the number of pulses counted has not reached the predetermined number, then processing returns to steps S4 and S5 until the predetermined number of pulses associated with a complete revolution is reached.
At step S7 the diameter of the take-up spool 4 is determined. It will be appreciated that the nature of the number of steps provided to the take-up spool motor 4b is such that a known number of steps corresponds to a single rotation of the take-up spool motor 4b and consequently of the take-up spool 4. Furthermore, given the knowledge of the constant rate at which steps are applied to the take-up spool motor 4b, the time for which the take-up spool motor 4b is driven can be used to calculate a number of rotations through which the take-up spool motor 4b has been driven.
For the assumed linear speed at which the tape is moved, a time which would be expected to elapse at step S4 can be determined. A ratio between this expected time and the actual elapsed time is equal to the inverse of the ratio between the assumed spool diameter (90mm) and the spool diameter which is to be determined. This principle is used to determine the diameter of the take-up spool 4 at step S7 according to equation (1 ):
T Assumed
DT — ^Assumed
T Actual (1 ) where: DT is the diameter of the take-up spool 4;
DAssumed is the diameter of the take-up spool 4 assumed for the purposes of the processing described above (90mm in the example);
TActuai is the time which elapsed at step S4; Assumed is the time which would have been expected to elapse for a single rotation of the roller 5 where the take-up spool 4 had the assumed diameter (90mm in the example), this is given by:
Assumed ~ (2)
Figure imgf000022_0001
where:
Viinear is the assumed linear speed used during the processing described above (350mm/s in the example); and DR is the diameter of the roller 5.
It will be appreciated that in the process described above the number of pulses received from sensor 5a will be known to correspond to a single rotation, although the processing described herein is equally applicable for different numbers of pulses received from the sensor 5a (i.e. different numbers of rotations of the roller 5). In general terms, given the coupling of the take-up spool 4 and the roller 5 by the tape 2, the inverse ratio of the number of rotations of each of the roller 5 and the take up spool 4 should be equal to the ratio of the diameters of the roller 5 and the take-up spool 4. As such, the information provided to the printer controller 9 at steps S4 and S5 together with the known diameter of the roller 5, and the known step rate of the steps applied to the take-up spool motor 4b, allows the diameter of the take-up spool 4 to be determined. The processing carried out at step S7 can therefore be adapted to handle varying rotations of the roller 5 during the processing to determine the diameter of the take-up spool 4 by using equation (3): DT = DR x ^ x \-^-l (3) where: DT is the diameter of the take-up spool; DR is the (known) diameter of the roller 5;
NT is the (known) number of steps required to cause a single rotation of the take-up motor 4b; NR is the (known) number of pulses generated in a single rotation of the roller 5;
PR is the number of pulses received from the sensor 5a in step S5;
RT is the rate at which the steps are applied to the take-up motor 4b during steps S4 and S5; and
TT is the time measured at step S4. Once the take-up spool diameter has been determined, processing passes to step S8, where the take-up spool 4 is driven at a speed which corresponds to a known linear ribbon speed. For example, a linear ribbon speed of 350 mm/s may be selected. It will be appreciated that while the ribbon was earlier driven at a target speed of 350 mm/s based on an assumed spool diameter, the take-up spool diameter now being known allows an accurate linear ribbon speed of 350 mm/s to be achieved. As such, the speed at which the take-up motor 4b is driven at step S8 is likely to be different from the speed at which the take-up spool motor was driven at during steps S4 and S5. That is, it should be noted that while the target ribbon speed is maintained at 350 mm/s in both cases in this example, the target ribbon speed may well not be equal in both cases, given that initially the diameter of the take-up spool 4 is not known.
Processing then passes from step S8 to step S9 where the printer controller 9 monitors the pulses received from the supply spool motor 3b. The take-up spool motor 4b is driven until the pulses received from the supply spool motor 3b indicate that the supply spool motor 3b has rotated a predetermined amount (or otherwise until a predetermined number of rotations of the take-up spool (e.g. three) have occurred, whereupon an error condition is notified). This predetermined amount of rotation of the supply spool motor 3b is sufficient to allow any speed change between the former ribbon speed and the newly controlled ribbon speed to settle. For example, the take-up spool motor 4b may be driven until the pulses received indicate that the supply spool motor 3b has rotated for two-fifths of a full rotation. Once the printer controller 9 determines at step S9 that the predetermined number of pulses have been received from the supply spool motor 3b, processing passes to each of steps S10 and S1 1 which preferably operate in parallel. At step S10 a timer is maintained of the duration for which steps are provided by the printer controller 9 to the take-up spool motor 4b. At step S1 1 a count is maintained of pulses received by the printer controller 9 from the supply spool motor 3b. During steps S10 and S1 1 , the take-up motor 4b is driven at the constant speed determined above (i.e. steps are applied at a constant step rate), and it is assumed that there is sufficient tension in the tape to cause the supply spool 3 to also rotate at a constant speed.
Processing passes from each of steps S10 and S1 1 to step S12, where a determination is made whether a predetermined number of pulses has been received from the supply spool motor 3b. The predetermined number of pulses may correspond to a single rotation of the supply spool motor 3b. Allowing a whole rotation of the supply spool motor 3b ensures that the effect of any eccentricity in the winding of the tape on the supply spool 3 is eliminated from calculations of spool diameters. Once the predetermined number of pulses is received from the supply spool motor 3b, processing passes to step S13. Alternatively, if the number of pulses counted has not reached the predetermined number, then processing returns to steps S10 and S1 1 until the predetermined number of pulses is received from the supply spool motor 3b.
At step S13 the diameter of the supply spool 3 is determined. The number of steps provided to the take-up spool motor 4b is such that a known number of steps corresponds to a single rotation of the take-up spool motor 4b and consequently of the take-up spool 4. Furthermore, given the knowledge of the constant rate at which steps are applied to the take-up spool motor 4b, the time for which the take-up spool motor 4b is driven can be used to calculate a number of rotations through which the take-up spool motor 4b driven. Given the coupling of the take-up spool 4 and the supply spool 3 by the tape 2, the inverse ratio of the number of rotations of each of the take-up spool 4 and the supply spool 3 should be equal to the ratio of the diameters of the take-up spool 4 and the supply spool 3. As such, the information provided to the printer controller 9 at steps S10 and S1 1 together with the known diameter of the take-up spool 4, and the known step rate of the steps applied to the take-up spool motor 4b, allows the diameter of the supply spool 3 to be determined by the printer controller 9 at step S13 according to equation (4):
Figure imgf000025_0001
where: Ds is the diameter of the supply spool 3; DT is the diameter of the take-up spool 4 determined at step S7;
Ns is the (known) number of pulses generated in a single rotation of the supply spool 3;
NT is the (known) number of steps required to cause a single rotation of the take-up motor 4b; RT is the rate at which the steps are applied to the take-up motor 4b during steps S10 and S1 1 ; the time measured at step S10; and
Ps is the number of pulses received from the supply spool 3 in step S1 1 It will be appreciated that in the process described above the number of pulses received from the supply spool motor 3b will be known to correspond to one rotation. However, different predetermined numbers of pulses may be used at step S12.
Processing then passes from step S13 to step S14. The processing of step S14 is intended to generate pulses to actively drive the supply spool motor 3b at the rate at which it is currently moving, and in a synchronised way. Pulses are generated at a rate based upon the known linear velocity of tape, and the calculated supply spool diameter. The printer controller 9 monitors the pulses received from the supply motor 3b so as synchronise the application of the generated pulses to the supply spool motor 3b, with the pre-existing rotation of the supply spool caused by the driven rotation of the takeup spool 4.
Having generated drive pulses at step S14, these are applied to the supply spool motor 3b. A number of further pulses may be received from the supply spool motor 3b before the drive pulses are applied. For example, a further three pulses may be observed before the drive pulses are applied to the supply spool motor 3b. Furthermore, before any drive pulses are applied to the supply spool motor 3b, the phase of the controller of the supply spool motor 3b is reset to be in a known phase. This is described in more detail below with reference to Figure 3. At this stage, the transport of tape is controlled in a push-pull manner, the motion of the supply spool motor 3b being coordinated with that of the take-up spool motor 4b. During this motion tension in the tape is monitored at step S15 and if necessary corrected. The monitoring of tension can be carried out based upon the monitoring of power consumed by the supply spool motor 3b and the take-up spool motor 4b using the techniques described in our earlier patents, for example US7, 150,572, the contents of which are incorporated herein by reference. Alternatively tension can be monitored using a tension monitoring device such as a load cell positioned such that that ribbon (directly or indirectly) bears against the load cell such that the tension in the ribbon is measured by the load cell. Other tension monitoring techniques are of course well known in the art.
Processing passes from step S15 to step S16 where the supply spool motor 3b and the take-up spool motor 4b are controlled so as to cause the ribbon to come to a controlled stop. This is important in ensuring that tension in the tape is maintained during the deceleration process. In an alternative embodiment, the processing described with reference to steps S4 to S6 may be replaced with processing shown in Figure 2A which is now described. At step S4a a timer is maintained of the duration for which steps are provided by the printer controller 9 to the take-up spool motor 4b at a known step rate. At step S5a a count is maintained of pulses received by the printer controller 9 from the sensor 5a. Processing passes from each of steps S4a and S5a to step S6a, where a determination is made whether a predetermined number of pulses corresponding to a partial rotation (e.g. a quarter rotation) of the roller 5 have been received from the sensor 5a. If the number of pulses counted has not reached the predetermined number, then processing returns to steps S4a and S5a until the predetermined number of pulses associated with a complete revolution is reached.
When it is determined at step S6a that the predetermined number of pulses has been received from the sensor 5a, an initial estimate of take-up spool diameter is determined at step S7a using techniques described above based upon the relationship between rotation of the take-up spool 4 and roller 5 and upon the known diameter of the roller 5. Processing then passes to steps S4b and S5b which again operate in parallel as described above.
At step S4b a timer is maintained of the duration for which steps are provided by the printer controller 9 to the take-up spool motor 4b at a known step rate. At step S5b a count is maintained of pulses received by the printer controller 9 from the sensor 5a. Processing passes from each of steps S4b and S5b to step S6b, where a determination is made whether a predetermined number of pulses have been received from the sensor 5a. The predetermined number of pulses is a number of pulses indicating that the roller 5a has turned through a number of rotations which correspond to a full rotation of the take-up spool 4, the number being based upon the initial estimate of the diameter of the take-up spool 4 as determined at step S7a. Once the predetermined number of pulses is received from the sensor 5a, processing continues at step S7 which operates in the general manner described above. Alternatively, if the number of pulses counted has not reached the predetermined number, then processing returns to steps S4b and S5b until the predetermined number of pulses associated with a complete revolution is reached.
The processing described with reference to Figure 2A may be preferred as it bases a determination of take-up spool diameter upon a full rotation of the take-up spool, thereby allowing any eccentricity in the winding of the take-up spool 4 to be properly taken into account. It will be appreciated that the diameter of the supply spool 3 can alternatively be calculated based upon the diameter of the roller 5 and a number of pulses received from each of the sensor 5a and the supply spool motor 3b for a given movement of tape. Furthermore, the diameters of the supply spool 3 and the take up spool 4 could be determined in parallel processing steps (i.e. not requiring the take-up spool 4 diameter to be determined before determining the supply spool 3 diameter).
The generation of pulses by the supply spool motor 3b caused by rotation of the supply spool motor 3b occasioned by the movement of tape caused by the take-up spool motor 4b will now be described in more detail with reference to Figure 3.
Figure 3 shows the control circuit for the supply spool motor 3b. The take-up spool motor 4b and its control may have similar form. The rotor of the supply spool motor 3b (not shown) has a number of teeth equally spaced around its circumference. The supply spool motor 3b has two windings 12, 13. Each of the windings 12, 13 is a bipolar winding, and the windings 12, 13 are connected in an Ή-bridge' configuration. Respective first ends 12a, 13a of the windings 12, 13 are connected to either a positive rail 14 of a power supply through a respective switch 16a, 18a, or to a negative rail 15 of a power supply through a respective switch 17a, 19a. Respective second ends 12b, 13b of the windings 12, 13 are connected to either the positive rail 14 of the power supply through a respective switch 16b, 18b, or to the negative rail 15 of a power supply through a respective switch 17b, 19b.
Switches 16a, 16b, 17a, 17b, 18a, 18b, 19a, 19b are controlled by a stepper motor controller 20 to connect the respective ends 12a, 12b, 13a, 13b of the windings 12, 13 to the power supply, causing current to flow in the windings 12, 13 when connected. The stepper motor controller 20 may, in some embodiments, be a Trinamic TMC262 controller. It will be appreciated that current can be caused to flow in either direction in the windings 12, 13 by closing of a pair of diagonally opposed switches. For example, current can be made to flow in a first direction in the winding 12 by closing switches 16a and 17b, and current can be made to flow in a second direction, opposite to the first direction in the winding 12, by closing switches 16b and 17a.
Causing current to flow in the windings 12, 13 in this way (in either direction) will be referred to as energising the windings 12, 13. It will be appreciated that energisation of the windings 12, 13 causes magnetic poles to be created on a subset of the poles of the stator.
During drive of the stepper motor 3b, when the windings 12, 13 are energised the teeth of the rotor align with the poles created by the energisations. The windings 12, 13 are energised in a repeating sequence of energisations (e.g. winding 12 in a first direction, winding 13 in a first direction, winding 12 in a second direction, winding 13 in a second direction) causing the poles to rotate. The rotor correspondingly rotates, and alignment of the rotor with the moving poles causes rotation of the rotor.
The windings 12, 13 may be energised in full-step or half-step operation where they are switched On' or 'off. Alternatively, the windings 12, 13 may be energised in micro-step operation, where the windings 12, 13 are switched partially on (i.e. by pulsing the switches 16a, 16b, 17a, 17b, 18a, 18b, 19a, 19b), to achieve a rotation of the rotor which is less than a full-step or a half-step, i.e. a micro-step. The position of the rotor may thus be advanced in steps, half -steps or micro-steps. One-eighth-stepping operation is an example of micro-step operation and allows the division of each full- step into eight micro-steps. The driving of a motor in micro-step operation will be well known to one of ordinary skill in the art. The driving of the motor in such micro-step operation is controlled by the stepper motor controller 20.
When the motor windings 12, 13 are not energised, movement of the rotor of supply spool motor 3b caused by an external force applied to the rotor - here the "pull" of the ribbon 2 caused by the take-up spool motor 4b - causes the rotor teeth to move past the stator windings 12, 13. This movement causes a voltage to be generated in the stator windings, 12, 13. That is, the supply spool motor 3b is operated as a generator. The created voltage is referred to as a back-EMF. As the rotor teeth pass the stator windings 12, 13 the back-EMF will have the form of a sinusoid. Each of the windings 12, 13 of a stepper motor will exhibit a sinusoidal back- EMF waveform when the rotor is rotated by an external force.
The sinusoid created across the winding 12 is processed to generate a pulse-wave form. It will be appreciated that the number of pulses generated by such processing for a single rotation of the rotor of the motor will be determined by the structure of the rotor and stator of the stepper motor. It will further be appreciated that a drive signal to the stepper motor controller 20 can be based upon the pulse-wave form generated from the sinusoids. For example, if one-eighth-step is operation preferred, then a series of 'micro-step' signals are provided to the stepper motor controller 20 so as to drive the stepper motor a series of one-eighth steps.
The processing to generate said stepper motor drive signal is now described in more detail. The first and second ends 12a, 12b of the winding 12 are connected to the inputs of a differential amplifier 21 . In practice the actual signals on each of the differential amplifier inputs is a half-wave rectified signal since each of the switches 17a, 17b, 19a, 19b is a MOSFET transistor which has an inherent diode characteristic that connects any negative-going voltage to the negative rail 15 of the power supply through this forward conductive diode. As such, the output of the differential amplifier 21 has the form of a half-wave signal and is connected to the input of a comparator 22 which acts as a zero crossing detector. In some embodiments the signal may have the form of a trapezoid half-wave signal. The output of the zero crossing detector has the form of a square wave, which has a first value when the output of the differential amplifier 21 is positive and a second value when the output of the differential amplifier 21 is at the negative rail 15 voltage. The output of the zero crossing detector is connected to the input of a controller 23.
The controller 23 is an FPGA. The FPGA 23 processes the output of the zero crossing detector to generate a signal which is provided to an input of the stepper motor controller 20. The stepper motor controller 20, in response to the signal generated by the controller 23, controls the energisation of the windings 12, 13 so as to drive the motor 3b in synchronisation with the detected movement of the rotor.
The stepper motor controller 20 has a plurality of inputs which allow the energisation of the windings 12, 13 to be controlled to effect micro-step operation of the stepper motor 3b.
A step input is controlled by pulses for each commanded step or micro-step movement of the stepper motor. A step-mode input determines whether each movement of the stepper motor should be a full-, half- or micro-step movement of the stepper motor 3b. For example, if the step-mode input is set to one-eighth-step, then each pulse on the step input will cause the motor windings 12, 13 to be energised so as to cause the motor to advance by an eighth-step. An enable input to the stepper motor controller 20 can be provided with an 'enable' signal. If the enable signal is not provided, then any step command signals applied to the step input will not cause the motor windings 12, 13 to be energised.
It will be appreciated that depending on the step-mode selected, the number of energisations in the repeating sequence described above will vary. For example, given that the motor 3b has two bipolar windings, in full-step operation, there are four distinct energisations of the two windings 12, 13. However, the same motor operating in one- eighth-step mode will have 32 distinct energisations of the two windings 12, 13. Therefore, to ensure the correct energisation sequence is achieved, the stepper motor controller 20 will maintain an internal reference position such that when a step signal is received on the step input the stepper motor controller 20 knows which energisation in the repeating sequence is to be next applied. For each step executed, the internal reference position is advanced by one energisation in the sequence.
It will also be appreciated that the output of the zero-crossing detector 22 is a periodic signal, the period of which is the same as the period of the repeating sequence of energisations (e.g. four full-steps, or 32 one-eighth-steps). For a particular one of the windings 12, 13, when the motor is unpowered, the threshold of the zero-crossing detector (e.g. whether there is any non-zero offset), and whether a rising edge or falling edge of the periodic signal is observed allows a determination to made as to how the monitored voltage corresponds to a voltage which may be applied by the stepper motor controller 20 (i.e. if the motor were to be energised). That is, the voltage induced in one of the windings 12, 13 of the motor when unpowered may be 'matched' to a particular one of the energisations which may be applied by the stepper motor controller 20 and from this the stepper motor controller 20 can determine which of the regularly repeating pattern of energisations should next be applied to the stepper motor. To drive the stepper motor 3b it will be necessary to synchronise the actual angular position of rotor of the stepper motor (as determined by the comparison of the induced voltage and the voltage associated with the different energisations) with the internal reference position of the stepper motor controller 20, such that the commanded step signals applied to the step input of the stepper motor controller 20 cause the correct energisation to be applied to the windings 12, 13 when the drive to the motor is enabled. To achieve this synchronisation, the controller 23 interrogates an interface of the stepper motor controller 20, which provides an output which is indicative of the internal reference position of the stepper motor controller 20. If the internal reference position corresponds to the energisation before the energisation which corresponds to the pulse generated by the zero crossing detector 22, then applying a step command to the stepper motor controller 20 at the same time as the pulse is received from the zero- crossing detector 22 will cause the windings 12, 13 to be energised in the correct manner so as to synchronise the commanded movement of the stepper motor 3b with the rotation of the stepper motor 3b by the external force.
On the other hand, if the internal reference position of the stepper motor controller 20 is not the correct energisation (as described above) then applying a step command to the stepper motor controller 20 will not cause the windings 12, 13 to be energised in the correct fashion. However, the internal reference position of the stepper motor controller 20 can be advanced by applying step commands to the step input while the outputs of the stepper motor controller are not enabled (i.e. by not providing an enable signal to the enable input). In this way, it is possible for the controller 23 to advance the internal reference position of the stepper motor controller 20 to correspond to the known step (and micro-step) position of the pulses created by the zero-crossing detector 22, such that the commanded movement of the stepper motor 3b can be synchronised with the rotation of the stepper motor 3b by the external force. Once the correct internal reference position has been achieved, an enable signal can be provided on the enable input, and a further step command applied to the step input. This further step command will cause the windings 12, 13 to be energised in synchronisation with the angular position of the rotor of the stepper motor 3b.
In alternative implementations the stepper motor controller 20 may allow the internal reference position of the stepper motor controller to be reset, and this can be used to allow pulses to be correctly applied to the stepper motor controller 20. It will be appreciated that once a first synchronised step command is applied, subsequent step commands will cause the motor to advance in a synchronised fashion, with the internal reference position of the stepper motor controller 20 being advanced as the rotor of the stepper motor 3b is also advanced.
It has been explained above that at step S9 a drive signal is provided to the supply spool motor 3b. Having provided this drive signal the printer controller has control over rotation of each of the spools and can therefore bring the spools to a controlled stop by decelerating the motors in synchronisation with each other at step S1 1 . This is useful in that if no drive signal is provided to the supply spool motor 3b during deceleration, the inertia of the supply spool 3 may cause the supply spool 3 to continue to rotate after the take-up spool 4 has come to rest, thereby causing the tape to become slack between the supply spool 3 and the take-up spool 4. If, however, it is desired to bring the spools to rest without providing a drive signal to the supply spool motor 3b, this can be achieved by applying a very slow deceleration to the take-up motor 4b thereby minimising the risk that the supply spool 3 will continue to rotate after the take-up spool 4 has been brought to rest. For example, a deceleration over a period of at least one second might be appropriate in some embodiments, providing a deceleration of 0.35m/s2 or less.
The preceding description has been based upon an arrangement in which rotation of the supply spool is monitored based upon back-EMF induced by movement of the motor while de-energised. It will be appreciated that rotation of the supply spool 3 may be monitored in other ways. For example in some embodiments a process for determining the diameters of two spools may comprise first and second phases. In a first phase the take-up motor may be driven through a predetermined number of steps and a number of rotations of the roller 5 may be monitored, the relationship between steps provided and rotations of the roller 5 being used in the manner described above to determine the diameter of the take-up spool. In a second phase, the supply spool motor 3b may be driven through a predetermined number of steps in a direction opposite to that in which the take-up spool motor 4b was driven in the first phase and a number of rotations of the roller 5 may be monitored, the relationship between steps provided and rotations of the roller 5 being used in the manner described above to determine the diameter of the supply spool 3. While reference is made here to rotation of each of the motors through a predetermined number of steps, it will be appreciated that in alternative implementations the motors may be driven through a number of steps required to cause a predetermined number of rotations of the roller 5.
It has been described above that rotation of the roller 5 is monitored by virtue of a magnet provided on the roller 5, rotation of which is sensed by a sensor 5a. It will be appreciated that other methods can be used to monitor rotation of the roller 5. Indeed, any rotary encoder can be mounted on the roller 5 to monitor its rotation. Some such encoders are optical encoders. As an alternative to monitoring rotation of the supply spool 3 based upon pulses (e.g. Back-EMF pulses generated by the supply spool motor 3b), the supply spool may be fitted with an encoder (which may be a magnetic arrangement of the type described with reference to the roller 5 or alternatively an optical encoder) the encoder generating a known number of pulses in a single revolution of the supply spool 3.
The preceding description has explained how the diameters of spools of tape can be determined. It will be appreciated that during printing the winding conditions of the spools (by which it is meant the quantity of tape on each spool) will change. Specifically in an initial winding condition, the supply spool will have a relatively large diameter and the take-up spool will have a relatively small diameter. However as tape is transferred from the supply spool to the take up spool the spools will adopt different winding conditions as the diameter of the supply spool decreases and the diameter of the take- up spool increases. Methods for ongoing spool diameter measurement, suitable for use during printing, are now described. As noted above, it is preferred that during transport of tape between the spools each of the motors 3b, 4b is energised so as to rotate a respective spool in the direction of tape-transport. That is the motors operate in "push-pull" mode. Experience shows that some variations in tension are likely to arise because of, for example, imperfections in the winding of the ribbon on the spools and also because of the trauma to which the ribbon is exposed at the printhead. As such it is known to monitor the tension in the ribbon as it is transferred between the spools and to effect appropriate correction when tension is not at a desired value so as to maintain tension substantially constant (or at least within a predetermined range of acceptable tension values). The applicant's earlier patent application WO02/22371 (the contents of which are herein incorporated by reference) describes suitable methods for monitoring tape tension.
If the derived measure of tension is too high (e.g. above a predetermined limit), then a small step adjustment can be made to either or both of the motors to add a short section of tape to the length of tape between the spools, if the derived measure of tension is too low (e.g. below a different predetermined limit), then a short section of tape can be removed from the length of tape between the spools so as to cause an increase in tension. The control algorithms used to determine the correction amounts of tape added to or removed from the length of tape between the spools may be of conventional form, for example the algorithms known as proportional integral (PI) or proportional integral derivative (PID) control algorithms, The algorithms make it possible to compare the measured tension with predetermined upper and lower limits (the so-called deadband) and, if the measured tension is outside these limits, the difference between the measured tension and a nominal tension which is set at a level between the upper and lower limits may be calculated, the result of that calculation being regarded as an error signal. This error signal is then mathematically processed through the PI or PID algorithm. The mathematical processing results in a "correction" amount of tape that needs to be added to or removed from the tape path between the spools during the next tape feed. This addition or removal of tape maintains ribbon tension within acceptable limits.
In greater detail, the correction value may be calculated by calculating the error (the difference between the nominal tension and the measured tension) and dividing the error by a gain factor which depends upon the tape width. The gain factor is dependent upon the ribbon width as the gain constants are changed to take account of different ribbon widths. This is because a tension which might cause considerable stretch in a narrow tape would cause minimal stretch in a wide tape and therefore the effects of adding or removing tape from the length of tape between the spools is radically affected by ribbon stiffness (which is affected by ribbon width). Alternatively, the gains and target tensions may be kept constant regardless of ribbon width and any measured value of ribbon tension is multiplied by a ribbon width factor which takes into account the effect of ribbon width on tape tension. This processing constitutes the proportional component of a PI algorithm.
Successive cycles may adjust the gain factor from a value nominally of 100 or 125 (tight) to a value of nominally 80 or 100 (slack). For every consecutive tight or slack reading after a first reading, an extra 0.1 mm correction can be added. An error accumulator is also maintained, and if the accumulated corrections (which are negative for tight and positive for slack) exceed plus or minus 2mm then an additional 0,1 mm is added to the correction. These are the two integral components which enable the system to operate in a stable manner and maintain tape tension at or close to the nominal tension.
The tape drive splits the correction evenly between the motors 3b, 4b driving the spools 3, 4 in the sense that approximately half the correction is applied to one of the motors with the remaining correction being applied to the other of the motors. This avoids large gaps between prints or over-printing on the ribbon, The system does this by calculating a positional movement (e.g. a number of steps) that half the correction amounts to for the motor with the largest spool diameter. This positional movement is then recalculated as a distance (relying upon the known spool diameter of the largest spool) and subtracted from the original correction amount. The resultant value is then used to calculate the correction for the motor driving the smaller diameter spool. Because the motor driving the smaller diameter spool provides the greatest linear accuracy for a particular positional movement this motor can most accurately feed the remaining distance. Thus the mechanism adjusts the tension by an amount that is as near as possible to that demanded by the original correction.
Of course many other methods of monitoring tape tension, and effecting appropriate correction can alternatively be used. For example it is also known to cause the ribbon to pass over a roller which bears against a load cell such that increased tension causes an increase in force provided against the load cell, thereby allowing the output of the load cell to be an indicator of tension. Tension measured in this way can be processed by the correction algorithm described above.
When tape is transferred between the two spools it is assumed that the total quantity of tape remains constant. It is therefore assumed that the sum of the areas of the tape (as generally defined by a circle centred upon the axis of rotation of the spool) on the supply spool and tape on the take up spool is also a constant. While ink is removed from the tape during printing it has been found to be acceptable approximation to assume that this removal of ink does not affect the total area of tape on the tape spools. That is:
A + As = constant (5) where AT is the area of tape on the take-up spool 4 and As is the area of tape on the supply spool 3.
In some embodiments, allowance is made for the ink removed from the tape during printing. Specifically a number of pixels printed may be counted a length of tape fed past the printhead may be monitored. Given a known ribbon width an area of ribbon fed past the printhead may be calculated, and given knowledge of pixel size a fraction indicating ink removed from the ribbon can be calculated and multiplied by a nominal thickness of ink provided on the ribbon (e.g. 0.000835 mm in some embodiments). The result of the multiplication - which is a reduction in the total area of ribbon caused by printing - is subtracted from the right hand side of equation (5). It will be apparent to the skilled person how such a modification a straightforwardly affects the following equations.
Using the well known formula for area of a circle, equation (5) can be re-written as: π (τ)2 - π ©2 + π2 - π ©2 = constant (6) where DT is the diameter of the take-up spool 4;
Ds is the diameter of the supply spool 3; and
d is the diameter of the spool core. DT, Ds and d are illustrated in Figure 4.
Equation (6) can be rewritten, thus:
^ (DT 2 - d2 + Ds 2 - d2) = constant (7) ^ (DT 2 + Ds 2) - ^ = constant (8)
DT 2 + Ds 2 = constant + (9)
The right hand side of equation (9) can be seen to be a constant. If the right hand side of equation (9) is defined to be equal to X, equation (9) can be rewritten as:
DT 2 + DS 2 = X (10)
Equation (10) is a general expression for the diameters of the supply spool 3 and the take-up spool 4. A particular case of equation (10) is that which occurred during the determination of spool diameters described above with reference to Figure 2. That is:
DTC2 + DSC 2 = X (1 1 ) where DTc and DSc are the diameters of the take-up spool 4 and supply spool 3, respectively, as determined using the processing of Figure 2.
From equations (10) and (11 ) it can be seen that
DT 2 + DS 2 = DTC 2 + DSC 2 (12) The ratio R of spool diameters at a particular time is defined as follows:
* = ? (13) Rearranging (13) gives:
(14)
Λ R And also:
DT = RDS (15) Substituting equations (14) and (15) into equation (12) and simplifying gives:
(DT 2 +^) = (DTC 2 + DSC 2) (16)
( +¾¾ = (RC 2¾C 2C 2) (17)
(DT 2 +^) = (DSC 2(RC 2 + 1)) (18) Define:
Dn _ (19) such that Rc is the ratio of take-up to the supply spool diameters as determined using the processing of Figure 2.
Substituting (19) into (18) gives: (^ l) = (Dsc^ + 1)) (20) which can be rewritten, thus: = (^) *c 2 + i)) <2 )
As such, given knowledge of the diameters (DTc and DSc) of the take-up and supply spools as determined using the processing of Figure 2, and given a ratio of spool diameters at a particular point in time corresponding to a particular winding condition, the diameter of the take up spool at that particular point in time and thus in that particular winding condition can be determined. The ratio of spool diameters at the particular point in time can then be straightforwardly used to determine the diameter of the supply spool. As an alternative, the method described above can be used to determine the diameter of the supply spool at the particular point in time and the ratio then used to determine the diameter of the take-up spool.
The ratio of spool diameters at a particular point in time is determined based upon the number of steps through which each of the spool motors 3b, 4b has been commanded to move. It will be appreciated that, given the monitoring of and correction of tension as described above such that tension is maintained substantially constant, the ratio of the number of steps through which the motors are driven is the inverse of the ratio of the diameters of the spools 3, 4. It will further be appreciated that the ratio of spool diameters calculated as described above is based upon the numbers of steps through which each of the spool motors 3b, 4b has been commanded to move during a previous transfer of tape. It will therefore be understood that the ratio of spool diameters calculated in this way represents the average ratio of spool diameters throughout the transfer of tape during which the numbers of steps was monitored. Put another way, the ratio of spool diameters calculated in this way represents the ratio of spool diameters at the midpoint of the transfer of tape during which the numbers of steps was monitored. This method may provide an adequate estimate of the current ratio of spool diameters, which may then be used to calculate required numbers of steps for subsequent tape transfers. However, using knowledge of the tape thickness, it is possible to determine a predicted spool diameter ratio for a subsequent tape transfer operation. In some embodiments knowledge of the tape thickness is thus used to determine a predicted spool diameter ratio measurement which allows more accurate control of subsequent tape transfer operations.
As described above, as tape is transferred, the area of tape on the supply spool 3 is reduced by an amount equal to the area of tape transferred. Therefore, during a transfer of a length of tape, the area of tape As on the supply spool 3 is modified as follows:
A's = AS - Lttt (22) where A's is the predicted area of tape on the supply spool 3 after the transfer;
L, is the length of tape transferred; and
tt is thickness of the tape.
Using the well-known formula for the area of a circle, equation (22) can be re- as:
Figure imgf000040_0001
where D's is the predicted diameter of the supply spool 3 after the transfer of tape.
Rearranging and simplifying (23) gives:
D's = -^ (25)
Further, the area of tape on the supply and take-up spools 3, 4 remains constant (subject to any correction for ink-removal), with any reduction in the area of the tape on the supply spool 3 having a corresponding increase in the area of tape on the take-up spool 4. Therefore, the predicted diameter D'T of the take-up spool 4 after the transfer of tape can be similarly calculated, resulting in equation (26) : Mttt
D'T = DT 2 + (26)
Thus, while the 'current' spool diameter values Ds, DT in fact represent the spool diameter midway through the previous tape transfer operation, the predicted spool diameter values D's, D'T represent the spool diameter midway through a subsequent tape transfer operation, and can allow that subsequent tape transfer operation to be controlled more accurately.
That is, subsequent processing can make use of the predicted spool diameter values D's, D'T based upon the calculations described above to determine a more accurate set of predicted step sizes for each of the motors 3b, 4b, rather than step sizes based upon the historical diameter values. When subsequent tape transfer operations are carried out, the number of steps driven by each motor can be calculated on the basis of the predicted step sizes.
It will, of course, be appreciated that the use of predicted spool diameters D'S, D'T and predicted step sizes, as described above is optional. Spool diameter values DS, DT as calculated according to equations (5) to (21 ) may provide sufficient accuracy for reliable tape transfers to be carried out.
The processing described above can be incorporated into an overall control algorithm for a tape drive, as is now described with reference to Figure 5.
At step S20 initial diameters are determined using the processing described with reference to Figure 2. At step S21 the motors 3b, 4b are controlled to transfer tape from the supply spool 3 to the take-up spool 4 by providing step commands to each of the motors 3b, 4b, the ratio of the number of steps provided to the motors being in inverse proportion to the spool diameters as determined at step S20. Each transfer of tape is typically associated with a printing operation. After each transfer of tape, tension in the tape is measured at step S22 and at step S23 a check is carried out to determine whether the measured tension is within predetermined limits. If tension is not within predetermined limits, processing passes to step S24 where a quantity of tape to be added to or subtracted from the tape path is determined, and converted into a number of motor steps (using the spool diameters as determined at step S20) as described above. These motor steps will be added to the steps applied to the take up and supply spool during the next tape transport operation at step S21. Processing passes from step S24 to step S25. If it is determined that tension is within predetermined limits at step S23 processing passes directly from step S23 to step S25. At step S25 a check is carried out to determine whether a predetermined quantity of tape has been transferred between the spools. In some embodiments the predetermined quantity of tape is 750mm although any suitable quantity of tape may be used. This quantity of tape is that which is to be transported before spool diameters (as used in the processing of step S20) are updated. If it is determined that the predetermined quantity of tape has not yet been transported, processing returns to step S21. Otherwise, processing passes from step S25 to step S26 where the diameters of the spools are updated. The processing of step S26 involves processing the spool diameters as previously determined together with a current ratio of spool diameters based upon the number of steps which has been provided to each motor since the spool diameters were last updated using equation (21 ).
Processing returns from step S26 to step S21 where the motors are driven using the newly-updated spool diameters. The preceding method has been found to work well in allowing the diameters of the spools to be monitored on an on-going basis, so as to allow sufficiently accurate control of tape transport. However various techniques can be used to improve the methods described above. These techniques are now described. For example, in some embodiments the predetermined length of tape fed between diameter updates and tension correction operations may be varied. Moreover, a first diameter update or tension correction based upon one variable may be performed after a first predetermined length of tape is fed, while a second diameter update or tension correction based upon a second variable may be performed after a second predetermined length of tape is fed. The use of different length scales to perform different diameter updates (and/or tension corrections) allows more accurate control of the tape position to be achieved. In some cases a first diameter update may be considered to be a minor diameter update, which is performed more regularly than a second, or major, diameter update. Where relatively long lengths of tape are moved in each printing operation (e.g. 300 mm) it may be preferred to perform some diameter updates more frequently than described above. That is, it will be appreciated that the relative change in spool diameter during an operation which causes 300 mm of tape to be transferred will be significantly greater than the relative change in spool diameter during an operation which causes 15 mm of tape to be transferred. As such, while tension corrections performed after every printing operation (as described above with reference steps S22 to S24) can allow some error in diameters (which lead to tension errors) to be accommodated, during longer tape transport operations such errors can lead to incorrect tape positioning and tensioning.
For example, during a printing operation in which a 300 mm long image is printed around 330 mm of tape may be caused to be transferred between the two spools 3, 4 (allowing for some tape to be transferred during acceleration and deceleration). It will be assumed that the spool diameters are accurately known at the beginning of such an operation and, in this example, the starting diameters are 33.3 mm for the take up spool 4 and 90 mm for the supply spool 3. In such an operation, an error of up to around 0.25 mm may occur between the amount of tape paid out by the supply spool 3 and taken up by the take up spool 4 (e.g. comprising an over-feed of approximately 0.2 mm by the take up spool 4 and an under-feed of approximately 0.05 mm by the supply spool 3). Moreover, where a diameter update distance of 750 mm is used, the accumulated error across that tape feed distance may be approximately 1 .2 mm (e.g. comprising a total over-feed of approximately 1 mm by the take up spool 4 and a total under-feed of approximately 0.2 mm by the supply spool 3). Such a discrepancy between the amount of tape paid out by the supply spool 3 and taken up by the take up spool 4 may have a significant detrimental effect on the performance of the printer 1 . For example, in some embodiments, the nominal tension in the tape 2 for optimal printing may correspond to around 2-2.5 mm of tape stretch. However, the diameter discrepancies described above may lead to an increase or decrease in the nominal tension of up to 60 % of that amount, potentially leading to a significant degradation in print quality.
Moreover, when short image lengths are used, such errors can be dealt with by use of an error accumulator (as also described above), with a large number of printing operations being allowed to occur before the error accumulator is reset when the total tape fed reaches the diameter update distance (e.g. 750 mm).
However, where only a small number of tape feeds (e.g. three) are possible between diameter updates (e.g. 300 mm tape feeds, with diameters updates after every 750 mm of tape fed), the integral terms used to correct accumulated errors in tension are prevented from operating effectively. That is, where the error accumulator is reset each time a diameter update is performed after 750 mm of tape has been fed, information related to accumulated errors is not acted upon.
As such, in some embodiments, the check at step S25 to determine whether a predetermined quantity of tape has been transferred between the spools may use a predetermined quantity of tape being rather more than the example given above (750mm). Alternatively, rather than the predetermined quantity being a length of tape, the check at step S25 may determine whether a predetermined number of printing operations have been carried out. In some embodiments the predetermined number of printing operations is ten, although any suitable number of printing operations may be used. For example the check at step S25 may determine whether a predetermined linear quantity of tape has been transferred between the spools and a predetermined number of printing operations have been carried out. For example, the predetermined linear quantity of tape may be 750 mm and the predetermined number of printing operations may be ten printing operations. In such an arrangement, the diameter updates will only be performed where both conditions are satisfied. This may result in a significantly larger amount of tape being transferred between diameter updates (e.g. ten printing operations x 300 mm = 3000 mm). This will allow the tension error accumulator described above to effectively regulate the tension in the tape, and thus allow the diameter updates which are performed based upon the total steps moved by each of the motors during the preceding printing operations to be more accurately representative of the actual spool diameters. That is, where long images (e.g. 300 mm) are printed, the error accumulator will be allowed to accumulate errors over a longer transfer of tape (e.g. 3000 mm). However, by allowing more tape to be transported between diameter updates, it will be appreciated that significant changes may occur in the spool diameters during such a transfer of tape (which may be as much as e.g. 3000 mm). Therefore, in some embodiments, a minor diameter update may be performed after every printing operation (e.g. after 300 mm of tape has been transferred) so as to prevent the significant changes in the spool diameters from negatively affecting the ability to control tape position and tension.
That is, minor diameter updates may be performed after every printing operation based upon the expected length of tape fed. For example, given the knowledge of the thickness of the tape, and the knowledge of a length of tape fed between the spools during a printing operation, a minor diameter update may simply adjust the spool diameters based upon the expected change which would be experienced during that printing operation (e.g. by addition or subtraction of a multiple of the known thickness of tape to the diameters based upon the length of tape advanced and the current diameters). Such a minor diameter update is not based upon feedback indicating actual tape fed or steps advanced by the motors, but instead is simply based upon the length of tape expected to be fed. A minor diameter update of this type may be referred to as being based upon dead reckoning.
By performing both major and minor diameter updates as described above, a compromise can be found between the need to allow the error accumulator to operate, and the need to ensure accurate diameters are used for each printing operation. Of course, it will be appreciated that different predetermined quantities of tape and/or predetermined numbers of printing operations may be used between major and minor diameter updates.
The preceding processing assumes that tension is maintained substantially constant. Where some variation in tension occurs the processing described above becomes, to some extent, inaccurate. This is particularly so when tension is monitored only relatively infrequently because of operation of the tape drive (e.g. where relatively long lengths of tape are moved in each printing operation and tension is monitored only between printing operations). This makes the integral component of a proportional- integral (PI) or proportional-integral-derivative (PID) algorithm relatively ineffective where the integral term operates only over tension measurements taken between successive spool diameter updates, because there are an insufficient number of operations over which to monitor the effect of corrections. It is therefore possible to modify the ratio of the diameters of the spools 3, 4 used in the processing of step S26 (as determined by the number of steps through which each of the motors 3b, 4b has turned) based upon tension measurements.
Referring to Figure 6, processing carried out at step S26 in some embodiments is now described. At step S30 the tension measurements obtained at step S22 of Figure 5 since the processing of step S26 was last carried out (or since step S20 if the diameters have not yet been updated since initialisation) are obtained and an average tension value is calculated for use in further processing. The average tension value of step S30 is calculated by summing all tension measurements obtained at step S22 and dividing the sum by the number of tension measurements. The determined average tension value is classified as being 'tight', 'slack' or 'perfect' based upon a correction between the determined average and a nominal tension value.
At step S31 a check is carried out to determine whether the classification of the average tension value obtained at step S30 is the same as that of the immediately preceding average, and whether both values are in error (i.e. there is a check to determine whether there are two or more consecutive 'tight' or 'slack' average tension values). If the check of step S31 indicates that there are not two consecutive average tension values having the same classification, processing passes to step S32 where diameters of the spools are updated using the processing described above, based upon the ratio of steps which have been provided to each of the motors.
If, however, the check of step S31 finds two or more consecutive tension measurements which are too tight or too slack, processing passes to step S33.
At step S33 a proportional correction, in the form of a length is calculated, according to equation (27):
Figure imgf000046_0001
where: P is the proportional correction;
t is the average tension value;
tn is the nominal tension;
s is the nominal ribbon stretch expressed as a length;
I is the length of ribbon which has been transferred between the spools 3, 4 by the processing of step S21 ;
p is the path length between the spools 3, 4; and
Gp is a proportional gain constant.
Processing then passes to step S34 where an integral correction I is determined according to equations (28) and (29): i = i + (t - tn (28) I = Gii (29) where:
Gp is an integral gain constant.
It should be noted that the value of the integrator i is set to zero where an average tension value is processed which does not have the same classification as the previously processed average tension value (e.g. the integrator sum extends only over consecutive average tension values having the same classification).
The correction to be applied, expressed as a length is then determined at step S35 as the sum of P and I.
Processing passes from step S35 to step S36 where the determined length is converted into a number of steps for each motor using the approach set out above.
That is, the number of steps that half the correction amounts to for the stepper motor with the largest spool diameter is determined. These steps are then re-calculated as a distance (relying upon the known spool diameter of the largest spool) and subtracted from the original correction amount. The resultant value is then used to calculate a correction number of steps for the motor driving the smaller diameter spool. At step S37 the previously determined diameters are obtained (either the diameters determined by the processing of Figure 2 at step S20 or otherwise the diameters as previously updated at step S26). At step S38 the steps through which each spool has been driven are obtained, and at step S39 the obtained steps are modified using the correction determined at step S36. This modified number of steps is then used in processing based upon equation (21 ) to determine the updated spool diameters at step S40.
The processing described above, in particular with reference to equation (27) can be understood as calculating a difference between a nominal length of ribbon, and an actual length of ribbon transferred onto the take-up spool 4. That is, by dividing the average measured tension t throughout the transfer of ribbon by the nominal tension tn and subtracting 1 , a fractional tension difference is calculated. This fractional tension difference is multiplied by the nominal stretch value s, to generate a stretch difference value. That is, at nominal tension, the ribbon between the spools is stretched by the nominal stretch s. However, where the tension t differs from this nominal tension tn, the ribbon will be stretched by a different amount. Therefore, the stretch difference value provides a measure of the actual ribbon stretch above or below the nominal stretch s. By scaling this actual ribbon stretch by the ratio of the length of ribbon transferred I, and the path length p, a measure of the difference in the linear amount of ribbon which is wound onto the take-up spool 4 to that which would have been wound onto the take- up spool if nominal tension was maintained is established.
In other words, by taking into account the difference between average tension t and nominal tension tn, the effect of varying tension on ribbon stretch is taken into account when the length of ribbon which is wound onto the take-up spool 4 is calculated. In an embodiment, the nominal tension tn has as a value of 2400, the nominal ribbon stretch has a value of 20 (representing a nominal stretch of 2 mm), the path length p between the spools 3, 4 has a value of 4720 (representing a path length of 472 mm). The proportional gain constant Gp may, for example, have a value of 0.30. The integral gain constant G, may, for example, have a value of 0.005. Further, additional processing may limit the value of average tension t used in the calculations described above to being within a predetermined amount of the nominal tension tn. For example, the average tension t may be limited to being within ±300 of a nominal tension tn of 2400 (i.e. average tension t having a value between 2100 and 2700). That is, if the calculated average tension t is outside of this range, the value used in subsequent processing steps (and in equations (27)-(29)), may be adjusted to fall within the stated allowable range. Such an approach prevents outlying values from having an undue effect on subsequent processing. That is, this processing effectively provides a noise rejection system.
Another modification of the processing of Figure 5 is now described with reference to Figure 7. The processing of Figure 7 uses an accumulator have four elements each storing a pair of accumulator values as is now described. At step S49 each value of each pair of accumulator values is initialised to a zero value, and a first element of the accumulator is selected for use.
The processing of step S50 corresponds to the processing of step S21 of Figure 5 where the motors are driven to cause the transfer a predetermined length of tape between the spools. During this transfer, at step S51 the output of the sensor 5a providing information as to a number of rotations of the roller 5 is monitored. Given knowledge of the diameter of the roller 5 a length of tape corresponding to the monitored rotations of the roller 5 can be determined (as described above in the context of the processing of Figure 2). It will be appreciated that it would be expected that this length of tape should correspond to the predetermined length of tape which the motors were driven to move between the spools during the period for which the sensor 5a is monitored.
As discussed briefly above, generally only relatively small lengths of the substrate 10 which is transported past the print head 7 are to be printed upon and it is thus necessary to reverse the direction of travel of the ribbon between printing cycles. It will be understood therefore that the transfer of tape between the spools will involve movement of the tape both in a forward direction and in a reverse direction. The transfer of tape 2 during which rotations of the roller 5 are monitored can correspond to a movement in the forward direction and/or in the reverse direction. Thus reference to the length of tape transferred between the spools may be taken to correspond to tape transferred in the forward and/or reverse direction.
Moreover, it will further be appreciated that during printing operations (i.e. when the printhead 7 is in contact with the tape) the tension in the tape may be subject to fluctuations (some of which may be abrupt) caused by the interaction of the tape 2, the printhead 7 and the substrate 10. Any such tension fluctuations may result in slipping between the roller 5 and the tape. As such, it may be preferred to monitor the output of the sensor 5a providing information as to a number of rotations of the roller 5 when tape 2 is transported only in the reverse direction (i.e. when the printhead 7 is not in contact with the tape 2 and the tape 2 is not in contact with the substrate 10).
Thus, the output of the sensor 5a (which provides information as to a number of rotations of the roller 5) is monitored during a predetermined portion (e.g. the reverse portion) of the movement of the tape which is effected in order to cause the predetermined length of tape to be transferred between the spools. Further, it would be expected that the length of tape indicated by the output of the sensor should correspond to the movement of the motors during the same predetermined portion of the movement of the tape (e.g. the predetermined length of tape which the motors were driven to move between the spools in the reverse direction). In an embodiment, all movement of the tape in the reverse direction (including during acceleration and deceleration) is monitored. Further, acceleration and deceleration rates during reverse movement of the tape may be selected so as to minimise the likelihood of the tape slipping with respect to the roller 5. For example, while a typical tape acceleration rate for a forward print feed may be 65 - 100 m/s2, the rate of acceleration and deceleration during reverse tape movements may be limited to a maximum of around 20 m/s2. Of course, it will be appreciated that different rates of acceleration or deceleration may be used. Similarly, only a predetermined portion of the reverse feed may be used (e.g. a constant speed portion) so as to avoid monitoring the tape during periods of (excess) acceleration or deceleration. At step S52 an optional check is made to determine whether the length of tape determined based upon the output of the sensor 5a is within a predetermined range (for example ±5%) of the predetermined length of tape which the motors were driven to move.
Alternatively or additionally, if a measure of tape tension was determined during the transfer of ribbon a further optional check is made at step S52 to determine whether, during the transfer of tape, there was sufficient tension in the tape (for example whether tension in the tape was at least 75% of some nominal value). The check to determine whether the tension during the transfer of tape was "low" may be performed based upon a different tension threshold. Further, the tension threshold may be varied based upon the tape width. For example, tension may be classified as "low" when it falls below 75% of the nominal tension value for a 1 10 mm tape width. On the other hand, tension may be classified as "low" when it falls below 87.5% of the nominal tension value for a 55 mm tape width.
A "low" tension value may, for example, be determined based upon the following relationship: rt = ¾ - ¾ (30) where:
TL is the low tension threshold for a given tape width;
TN is the nominal tension for the given tape width; and
w is the tape width (in mm);
It will be appreciated, therefore, that for any given tape width an appropriate "low" tension threshold can be determined. Of course, other techniques for determining an appropriate "low" tension threshold (e.g. empirical determination, reference to a look-up table).
If the checks of step S52 are not satisfied (where either or both of those checks are performed), the output of the sensor 5a is deemed to be in error and processing passes to step S53 where the reading is discarded before processing returns to step S50. If, however, the length of tape determined based upon the output of the sensor is within the predetermined range of the predetermined length of tape and/or the tension is acceptable, processing passes to step S54 where the length of tape determined based upon the output of the sensor 5a is added to a first value of an element of the accumulator, while the predetermined length of tape is added to a second value of that element of the accumulator. Processing then passes to step S55 where a check is carried out to determine whether a total predetermined length of tape (e.g. 500 mm) has been fed.
As mentioned above, reference to the length of tape transferred between the spools may be understood to correspond to tape transferred in the forward or reverse direction. Moreover, the transfer of the total predetermined length of tape between the spools may refer to all movements of tape which are brought about in order to cause the predetermined length of tape to be advanced from the supply spool to the take up spool. However, as set out above, in some embodiments, the rotations of the roller 5 may be monitored only during the portions of that movement which are in the reverse direction so as to avoid discrepancies caused by significant and abrupt tension variations (which may, for example, be caused as a result of interactions with the printhead). As such, where the check is carried out at step S55 to determine whether the total predetermined length of tape (e.g. 500 mm) has been fed, this check may, for example, determine whether the total predetermined length of tape has been transferred between the spools in the reverse direction.
Alternatively, a check may be carried out to determine whether a total predetermined number of printing operations (e.g. two) have been carried out since the accumulator element was initialised. If the total predetermined length of tape has been fed, processing returns to step S50 where further tape is transferred between the spools. On the other hand, if the total predetermined length of tape has been fed, processing passes to step S56 where a check is carried out to determine whether all elements of the accumulator values have been appropriately populated. If this is not the case, a next element of the accumulator is selected and initialised at step S57, before processing returns to step S50 where further tape is transferred between the spools (subject to the processing discussed with reference to Figure 5).
If however the all elements of the accumulator have been appropriately populated, processing passes to step S58 where the values in the accumulator are averaged by summing the first values in each of the pairs and dividing by the number of pairs (e.g. four) to give a first average value and summing the second values in each of the pairs and dividing by the number of pairs (e.g. four) to give a second average value. As such the averaging generates a pair of values a first indicating an average distance determined based upon output of the sensor 5a and a second indicating an average distance determined based upon the lengths of tape fed. In some embodiments an additional validation check may be performed to ensure that each of the first values is within some predetermined range of an immediately preceding first value and each of the second values is within some predetermined range of an immediately preceding second value. If this is not the case a value is deemed to be an outlier and is not used for subsequent processing.
Processing then passes to step S59 where a comparison is made between the first average value and the second average value. Specifically a comparison is made to determine whether the two average values are sufficiently different from one another to warrant correction while at the same time being sufficiently close to one another to not seem erroneous. For example in one embodiment a check is made to determine whether the difference between the two average values is greater than 0.25% but less than 3%. If this is the case, processing passes from step S59 to step S60 where the spool diameters are updated as is now described. Recall equation (20) :
Figure imgf000053_0001
The left hand side of the equation is an expression for the total area of the two spools
3, 4 at a current point in time, while the right hand side of the equation is an expression for the total area of the two spools when spool diameters were determined using the processing of Figure 2. Given the difference in tape transport which has been detected using the output of the sensor 5a which monitors rotation of the roller 5, the total area of the spools is modified by a factor F given by equation (31 ) :
EOF RDF (31 ) where EDF and RDF are the average of the values as determined at step S58.
Equation (20) can then be modified, thus:
Figure imgf000053_0002
which, analogously to equation (21 ) above can be rewritten, thus:
(33) Thus, by appropriately computing F using the processing described above, the spool diameters can be determined at step S26 of Figure 5 in a manner which takes into account the output of the sensor 5a which detects rotation of the roller 5.
Processing passes from step S60 to step S61 where all elements of the accumulator are reset to zero and the first element of the accumulator is again selected for use before processing once again passes to step S50, and more tape is transferred. If the checks of step S59 are not satisfied, processing passes directly from step S59 to step S61 .
In this way, the accumulator is populated with pairs of values which correspond to a first estimate of a length of transferred tape based on steps supplied to the motors, and a second estimate of a length of transferred tape which is based on an encoder output. The first and second estimates of a length of transferred tape are each based upon separate, and independent, inputs. That is, the first and second estimates are entirely independent of one another. The first and second estimates are not derived from the one another, nor are they both derived from a common input. In this way, the accuracy of control of the tape can be improved. For example, the first estimate can be improved based upon the second estimate where differences are identified therebetween.
Once the accumulator is populated with four such pairs of values, these values can be used to update the spool diameters, as described above. Once one spool diameter update has been made, based upon the accumulator values (if deemed necessary), all elements (i.e. pairs of values) in the accumulator are removed, and are initialised to zero, before processing is repeated. As such, the accumulator, and associated processing as described above, allows a rolling average measure of the amount of tape to be maintained and used to improve tape transfer accuracy. It will be appreciated that the accumulator may have different numbers of elements than four. For example, in some embodiments an accumulator may be arranged to accumulate readings based upon twenty tape feeds. It will be appreciated that the accumulator may be arranged in any convenient form. For example, each accumulator element may be arranged to store data associated with two tape feeds, with new accumulator elements being initialised and populated until ten such elements are populated. Moreover, while an averaging step is described above as being performed at step S58, the processing may instead simply consider the total of each of the accumulated readings, with step S58 being omitted.
Similarly, in some embodiments, the checks at step S59 are omitted entirely, and it is assumed that the encoder readings accurately reflect the movement of tape. In such embodiments, processing passes directly from step S58 (if performed) to step S60.
In an alternative embodiment the processing described above with reference to Figure 7 may be modified as now described with reference to Figure 8. The processing of Figure 8 uses an accumulator having ten elements each storing two pairs of accumulator values.
The processing of steps S69 to S74 generally corresponds to the processing described above with reference to steps S49 to S54 of Figure 7 respectively.
Processing passes from step S74 to step S75 where a check is carried out to determine whether at least two entries have been added to the current accumulator element. That is, each tape feed operation will result in a single entry being added to an accumulator element at step S74 (provided any checks at step S72 are satisfied).
As such, it there are fewer than two entries in the current accumulator element, processing returns to step S70 where further tape is transferred between the spools. On the other hand, if data relating to at least two tape feeds has been added to the current accumulator element, processing proceeds to step S76.
At step S76 a further check is carried out to determine whether all elements (e.g. ten) of the accumulator have been appropriately populated. If this is not the case, a next element of the accumulator is selected and initialised at step S77, before processing returns to step S70 where further tape is transferred between the spools. If however all (e.g. ten) elements of the accumulator have been appropriately populated, processing passes to step S78 where the values in the accumulator are summed together. That is, each of the (e.g. twenty - ten accumulator elements each containting two values) first values in each of the pairs is added together to give a first total value and each of the (e.g. twenty) second values in each of the pairs is added together to give a second total value. As such the summing generates a pair of total values a first indicating a total distance determined based upon output of the sensor 5a and a second indicating a total distance determined based upon the lengths of tape fed. In some embodiments an additional validation check may be performed to ensure that each of the first values is within some predetermined range of an immediately preceding first value and each of the second values is within some predetermined range of an immediately preceding second value. If this is not the case a value is deemed to be an outlier and is not used for subsequent processing.
Processing then passes to step S79 where a check is performed to determine if a total predetermined length of tape (e.g. 500 mm) has been fed. As described in more detail above with reference to step S55 of Figure 7 (which generally corresponds to step S79 of Figure 8), the total predetermined distance may refer to a distance in the reverse tape feed direction.
If the total predetermined distance has not been fed, processing passes to step S77 where the next accumulator element is re-initialised, before processing again returns to step S70 where further tape is transferred between the spools. It will be appreciated that when processing passes to step S77 from step S79, there will already be a full set (e.g. ten) of accumulator elements initialised and populated (this being a condition which is checked at step S76). As such, where a next accumulator element is required to be initialised at step S77 (when arrived at from step S79) the first accumulator element is re-initialised, and repopulated during subsequent tape feeds. Should further processing result in processing again passing from step S79 to step S77 a second, or further, accumulator element may be re-initialised.
On the other hand, if the total predetermined distance has been fed, processing passes to step S80 where a comparison is made between the first total value and the second total value. Specifically a comparison is made to determine whether the two total values are sufficiently different from one another to warrant correction while at the same time being sufficiently close to one another to not seem erroneous. For example in one embodiment a check is made to determine whether the difference between the two total values is greater than 0.1 % but less than 3%. If this is the case, processing passes from step S80 to step S81 where the spool diameters are updated as described above with reference to step S60 (with average values replaced by total values where appropriate). Processing passes from step S81 to step S82 where all elements of the accumulator are reset to zero and the first element of the accumulator is again selected for use before processing once again passes to step S70, and more tape is again transferred.
If the checks of step S80 are not satisfied, processing passes from step S80 to step S77 where the next accumulator element is re-initialised (as described above).
In this way, the accumulator is populated with pairs of values which correspond to a first estimate of a length of transferred tape based on steps supplied to the motors, and a second estimate of a length of transferred tape which is based on an encoder output.
In an alternative embodiment, the accumulator having ten elements may be replaced with an accumulator having a single element. In such an embodiment the processing at step S75 may be modified to check whether or not there is data relating to a larger number of tape feeds (e.g. twenty) in the accumulator. Further, in such an embodiment the processing at step S76 may be omitted entirely.
The printer controller 9 has been described above, as has a stepper motor controller 20 and various circuitry associated therewith. It will be appreciated that the printer controller 9 can take any suitable form (e.g. it may be a programmable microprocessor in communication with a memory storing appropriate instructions, or it may comprise bespoke hardware elements such as an ASIC). The stepper motor controller may be integral with the printer controller 9, although in some embodiments the stepper motor controller 20 is a controller dedicated to control of one or more stepper motors which communicates with the printer controller 9. It will be appreciated that the printer controller 9 may be provided by a plurality of discrete devices. As such, where functions have been attributed to the printer controller 9, it will be appreciated that such functions can be provided by different devices which together provide the printer controller 9.
While various embodiments of the invention have been described above, it will be appreciated that various modifications can be made to the described embodiments without departing from the spirit and scope of the present invention.

Claims

CLAIMS:
1. A method of determining the diameter of a first spool of tape in a tape drive in which tape is transferred between first and second spools of tape, the method comprising:
generating a first estimate of a quantity of tape transferred between said first and second spools in one or more tape transport operations;
generating a second estimate of a quantity of tape transferred between said first and second spools in said one or more tape transport operations;
generating an indication of the diameter of the first spool of tape based upon said first and second estimates.
2. A method according to claim 1 , wherein generating said indication of the diameter of the first spool of tape is based upon data indicating a diameter of said first spool of tape in a first winding condition.
3. A method according to claim 2, wherein said one or more tape transport operations cause the first and second spools of tape to adopt a second winding condition, and said generated indication is an indication of the diameter of the first spool of tape in the second winding condition.
4. A method according to any preceding claim, wherein said first estimate is based upon rotation of said first spool.
5. A method according to claim 4, wherein said first estimate is further based upon an estimated diameter of said first spool.
6. A method according to claim 4 or 5, wherein said first spool is rotated by a first motor and said first estimate is based upon a command signal provided to the first motor.
7. A method according to claim 6, further comprising generating said command by:
obtaining data indicating a diameter of said first spool;
obtaining data indicating a length of tape to be transported; generating said command signal based upon said obtained diameter and said obtained length.
8. A method according to claim 6 or 7, wherein said first motor is a position controlled motor and said command signal defines a positional movement of the first motor.
9. A method according to any preceding claim, wherein said second estimate is based upon an output of an encoder indicating a quantity of tape transported between said first and second spools of tape in said one or more tape transport operations.
10. A method according to any preceding claim, wherein said first estimate comprises a plurality of first estimate values and said second estimate comprises a plurality of second estimate values, wherein the method further comprises:
comparing each first estimate value with a respective second estimate value to determine whether a predetermined criterion is satisfied; and
generating said indication of the diameter based upon first and second estimate values which satisfy said predetermined criterion.
11 . A method according to any preceding claim, wherein each of said first estimate values are equal.
12. A method according to any preceding claim, wherein generating said indication of diameter of the first spool comprises determining whether said first and second estimate values satisfy a predetermined criterion and wherein:
if said criterion is satisfied, generating said indication based upon said second estimate; and
if said criterion is not satisfied generating said indication based upon said first estimate.
13. A method according to claim 12 as dependent upon claim 3 or any claim dependent thereon, wherein generating said indication of the diameter of the first spool in said second winding condition comprises:
obtaining a relationship relating the diameter of the first spool of tape in the second winding condition to the diameters of the first and second spools of tape in the first winding condition and the relative diameters of the first and second spools of tape in the second winding condition; and
if said criterion is satisfied, said relationship includes a term based upon a relationship between the first and second estimates.
14. A method according to any preceding claim, wherein the tape is transferred from the first spool of tape to the second spool of tape.
15. A method according to any preceding claim, wherein the tape is transferred from the second spool of tape to the first spool of tape.
16. A method according to any preceding claim, wherein said one or more tape transport operations comprise a predetermined portion of the tape transport operations which cause tape to be transferred between the first and second spools of tape.
17. A method according to any preceding claim, wherein during printing operations the tape is transferred from the first spool of tape to the second spool of tape, and wherein during said one or more tape transport operations the tape is transferred from the second spool of tape to the first spool of tape.
18. A method according to claim 17 as dependent upon claim 16, wherein said predetermined portion of the tape transport operations comprise said one or more tape transport operations.
19. A method according to any preceding claim, wherein said first estimate is generated independently of said second estimate.
20. A tape drive comprising:
first and second spool supports, respectively receiving first and second spools of tape;
at least one motor arranged to cause the transfer of tape between said first and second spools; and
a controller arranged to control the at least one motor and to determine the diameter of the first spool of tape, by: generating a first estimate of a quantity of tape transferred between said first and second spools in one or more tape transport operations;
generating a second estimate of a quantity of tape transferred between said first and second spools in said one or more tape transport operations;
generating an indication of the diameter of the first spool of tape based upon said first and second estimates.
21 . A tape drive according to claim 20 wherein the controller is further arranged to carry out processing according to any one of claims 2 to 19.
22. A thermal transfer printer comprising:
a tape drive according to claim 20 or 21 arranged to transfer ink carrying tape between said first and second spools; and
a printhead arranged to transfer ink from said ink carrying tape to a substrate.
PCT/GB2015/053284 2014-10-31 2015-10-30 Tape drive and transfer printer WO2016067051A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1419464.1 2014-10-31
GBGB1419464.1A GB201419464D0 (en) 2014-10-31 2014-10-31 Tape drive and transfer printer

Publications (1)

Publication Number Publication Date
WO2016067051A1 true WO2016067051A1 (en) 2016-05-06

Family

ID=52118549

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2015/053284 WO2016067051A1 (en) 2014-10-31 2015-10-30 Tape drive and transfer printer

Country Status (2)

Country Link
GB (1) GB201419464D0 (en)
WO (1) WO2016067051A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10347282B2 (en) 2017-06-23 2019-07-09 International Business Machines Corporation Tape transport control with suppression of time-varying tension disturbances
JP2021008059A (en) * 2019-06-28 2021-01-28 ブラザー工業株式会社 Printer
CN113386475A (en) * 2021-04-30 2021-09-14 深圳市博思得科技发展有限公司 Paper feeding precision calibration method and calibration system
US11260650B2 (en) 2017-06-28 2022-03-01 Videojet Technologies Inc. Transfer printer and method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61199972A (en) * 1985-03-01 1986-09-04 Toshiba Corp Image former
WO2003029013A1 (en) * 2001-09-28 2003-04-10 Zipher Limited Tape drive
GB2404896A (en) * 2003-08-14 2005-02-16 Markem Tech Ltd Ribbon transport mechanism having tensioning means
WO2008107646A1 (en) * 2007-03-07 2008-09-12 Zipher Limited Tape drive
EP2730422A1 (en) * 2012-11-09 2014-05-14 Markem-Imaje Limited Tape drive and method of operation of a tape drive

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61199972A (en) * 1985-03-01 1986-09-04 Toshiba Corp Image former
WO2003029013A1 (en) * 2001-09-28 2003-04-10 Zipher Limited Tape drive
GB2404896A (en) * 2003-08-14 2005-02-16 Markem Tech Ltd Ribbon transport mechanism having tensioning means
WO2008107646A1 (en) * 2007-03-07 2008-09-12 Zipher Limited Tape drive
EP2730422A1 (en) * 2012-11-09 2014-05-14 Markem-Imaje Limited Tape drive and method of operation of a tape drive

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10347282B2 (en) 2017-06-23 2019-07-09 International Business Machines Corporation Tape transport control with suppression of time-varying tension disturbances
US11260650B2 (en) 2017-06-28 2022-03-01 Videojet Technologies Inc. Transfer printer and method
US11801689B2 (en) 2017-06-28 2023-10-31 Videojet Technologies Inc. Tape drive and method
US11919320B2 (en) 2017-06-28 2024-03-05 Videojet Technologies Inc. Transfer printer and method
JP2021008059A (en) * 2019-06-28 2021-01-28 ブラザー工業株式会社 Printer
JP7283270B2 (en) 2019-06-28 2023-05-30 ブラザー工業株式会社 printer
CN113386475A (en) * 2021-04-30 2021-09-14 深圳市博思得科技发展有限公司 Paper feeding precision calibration method and calibration system

Also Published As

Publication number Publication date
GB201419464D0 (en) 2014-12-17

Similar Documents

Publication Publication Date Title
WO2016067051A1 (en) Tape drive and transfer printer
US11571919B2 (en) Printer
EP2134549B1 (en) Tape drive
US20080219743A1 (en) Tape drive
US9975366B2 (en) Motor control system
WO2008146002A1 (en) Tape drive
JP6039329B2 (en) Recording device
CN110831772B (en) Tape drive and method
CN108349264B (en) Printing apparatus and method
US9272531B2 (en) Tape drive and method of operation of a tape drive
US9770930B2 (en) Tape drive and transfer printer
EP3328652B1 (en) Printing apparatus and method
US9145000B2 (en) Printing apparatus and method of operating a printing apparatus
CN112313081B (en) Printer with a printer body

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15790234

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15790234

Country of ref document: EP

Kind code of ref document: A1