# Patent

## Title
Method and apparatus for multicolor printing, particularly on textiles

## Abstract

This application is a continuation of application Ser. No. 077/978,106, filed Nov. 18,, 1992, now abandoned.

## Background
The present invention is concerned with a machine including a base adapted to have mounted thereon a printer, and improved structure for diagnosing malfunctions in and adjusting drive systems and control structures therefor.

This application is related to the following four, U.S. patent applications concurrently filed by A. Eckert, Jr. et. al., Feb. 25, 1992, and assigned to the assignee of the present invention: Ser. No. 07/841,911 for Mailing Machine Including Sheet Feeding Speed Calibrating Means; Ser. No. 07/724,304 for Mailing Machine Including Printing Speed Calibrating Means; Ser. No. 07/841,915 for Mailing Machine Including Skewed Sheet Detection Means and Ser. No. 07/841,912 for Mailing Machine Including Short Sheet Length Detecting Means.

As shown in U.S. Pat. No. 4,774,446, for a Microprocessor Controlled D.C. Motor For Controlling Printing Means, issued Sep. 27, 1988 to Salazar, et. al. and assigned to the assignee of the present invention, there is described a mailing machine which includes a closed loop, sampled data, feed back control system for continuously matching the peripheral speed of a postage printing drum to the feeding speed of a sheet.

As shown in U.S. Pat. No. 4,864,505 for a Postage Meter Drive System, issued Sep. 5, 1989 to Miller, et. al. and assigned to the assignee of the present invention, there is described a mailing machine including three separate motors for driving the sheet feeding, shutter bar moving and postage printing drum driving structures

As shown in U.S. Pat. No. 4,787,311, for a Mailing Machine Envelope Transport System, issued Nov. 29, 1988 to Hans C. Mol and assigned to the assignee of the present invention, there is disclosed a microprocessor driven stepper motor in a mailing machine base for driving a postage printing drum at a peripheral speed which matches the speed of a sheet fed therebeneath.

As shown in U.S. Pat. No. 4,639,918 for a Diagnostic Keyboard For a Mailing Machine, issued Jan. 27, 1987 to Linkowski and assigned to the assignee of the present invention, it is known in the art to provide a mailing machine which includes a microcomputer for controlling structures for feeding a sheet downstream in a path of travel and printing postage indicia on the sheet, and which includes a sensor for sensing the leading edge of a sheet fed through the machine, wherein the microprocessor is programmed to respond to a signal from the sensor to delay indicia printing for a predetermined time interval to locate the postage indicia a predetermined distance upstream from the leading edge of the sheet. Further, as shown in the '918 patent, it is known in the art to connect a plurality of selectively manually actuatable switches to the microprocessor and program the microprocessor to respond to actuation of one or more of the switches to select one of a plurality of different delay time intervals for locating the postage indicia different distances from the leading edge of a sheet. And, as shown in the ' 918 patent it is known in the art to provide a mailing machine control panel which includes a plurality of machine operating keys which are normally selectively actuatable for operating the mailing machine in a sheet processing mode, but, in response to depressing a separate test key, which switches the machine to a test mode of operation, the keys are selectively actuatable for implementing a variety of diagnostic test routines.

Accordingly: sheet feeding and printing drum drive systems in a machine; structure; marginal distance from the leading edge of a sheet at which indicia is to be printed thereon; operational noise level, machine including structure for accounting for malfunction conditions; feeding, shutter bar moving and postage printing drum driving structures in a mailing machine base including structure for storing data corresponding to malfunctions; timely accelerating a postage meter drum from rest, in its home position, to a substantially constant velocity, maintaining the velocity constant, decelerating the drum from constant velocity to rest in its home position and storing an error code if during such drum movement the drum does not timely transition to and from the constant velocity thereof; sheets fed to a mailing machine base and storing an error code corresponding thereto; insufficient length fed to a mailing machine for printing postage indicia thereon and storing an error code corresponding thereto; conditions indicating unacceptable differences between actual and desired movements of components of a mailing machine base and a sheet fed thereby; historical error conditions, and alternatively, displaying each of a plurality of selected marginal distances of displacement from the leading edge of a sheet at which postage indicia is printed, and condition of various sensors in a mailing machine base in response to energization thereof and storing an error code corresponding to each malfunction condition found in the course of such testing.

In a machine including means for printing indicia on a sheet, and means for feeding the sheet in a path of travel to the printing means, wherein the feeding and printing means each include a plurality of components, apparatus for accounting for malfunction conditions of the machine, the apparatus comprising, means for controlling the machine, the controlling means including a microprocessor, the controlling means including a random access memory (RAM) and a non-volatile memory (NVM) respectively connected to the microprocessor, the microprocessor programmed for causing a plurality of desired movements of the respective components of the sheet feeding and printing means and thus of a sheet in the path of travel, a plurality of sensors respectively connected to the microprocessor for sensing actual movements corresponding to the desired movements of the respective components of the sheet feeding and printing means and of a sheet in the path of travel and providing signals to the microprocessor, the microprocessor programmed for determining whether the differences between corresponding desired and actual movements are acceptable, and the microprocessor programmed for storing data in both the RAM and NVM corresponding to malfunction conditions identifying respective unacceptable differences.

As shown in the drawings wherein like reference numerals designate like or corresponding parts throughout the several views:

FIG. 1 is a schematic elevation view of a mailing machine according to the invention, including a base having a postage meter mounted thereon, showing the sheet feeding structure of the base and the postage printing drum of the meter, and showing a microprocessor for controlling the motion of the sheet feeding structure and the drum;

FIG. 2 is a schematic end view of the mailing machine of FIG. 1, showing the postage printing drum, drum drive gear and shutter bar of the meter, and showing the shutter bar and drum drive systems of the base;

FIG. 3 is a schematic view of structure for sensing the angular position of the shutter bar cam shaft of FIG. 2, and thus the location of the shutter bar relative to the drum drive gear;

FIG. 4 is a schematic view of structure for sensing the angular position of the printing drum idler shaft of FIG. 2, and thus the location of the postage printing drum relative to its home position;

FIG. 5 is a schematic view of the substantially trapezoidal-shaped velocity versus time profile of desired rotary motion of the postage printing drum of FIG. 1;

FIG. 5A is a list of error codes corresponding to data stored in the mailing machine base in response to detecting malfunction conditions occuring therein, cross-referenced to the corresponding malfunction conditions;

FIG. 6 is a flow chart of the main line program of the microprocessor of the mailing machine base of FIG. 1, showing the supervisory process steps implemented in the course of controlling sheet feeding, and shutter bar and postage printing drum motion;

FIG. 7 is a flow chart of the sheet feeder routine of the microprocessor of FIG. 1, showing the process steps implemented for accelerating the sheet feeding rollers to a constant feeding speed, and thereafter maintaining the speed constant;

FIG. 8 is a flow chart of the shutter bar routine of the microprocessor of FIG. 1, showing the process steps implemented for controlling shutter bar movement out of and into locking engagement with the postage printing drum drive gear;

FIG. 9 is a flow chart of the postage meter drum acceleration and constant velocity routine of the microprocessor of FIG. 1, showing the process steps implemented for controlling the rate of acceleration of the postage printing drum, from rest in its home position to a substantially constant sheet feeding and printing speed, and thereafter controlling the drum to maintain the speed constant;

FIG. 10 is a flow chart of the postage printing drum deceleration and coasting routine of the microprocessor of FIG. 1, showing the process steps implemented for controlling the rate of deceleration of the postage printing drum, from the substantially constant sheet feeding and printing speed, to rest in its home position;

FIG. 11 is a flow chart of the power-up routine of the microprocessor of FIG. 1, showing the process steps implemented for selectively testing the condition of various sensors and storing data corresponding to malfunction conditions thereof, and then causing the sheet feeding and drum driving speed calibration routine(s) to be implemented;

FIG. 12 is a flow chart of the sheet feeder calibration routine of the microprocessor of FIG. 1, showing the self-testing process steps implemented by the machine before causing the sheet feeding speed of the sheet feeding rollers to be conformed to a predetermined sheet feeding speed;

FIG. 13 is a flow chart of the rotary printing drum calibration routine of the microprocessor of FIG. 1, showing the process steps implemented for causing the printing speed of the postage printing drum to be conformed to a predetermined sheet feeding speed;

FIG. 13A is a flow chart of the service mode routine of the microprocessor of FIG. 1, showing the process steps implemented for causing the data corresponding to error codes stored therein to be sequentially accessed and displayed;

FIG. 13B is a flow chart of the margin selecting routine of the microprocessor of FIG. 1, showing the process steps implemented in the course of selecting any one of a plurality of marginal distances from the leading edge of a sheet for printing postage indicia thereon;

FIG. 14 is a partial, schematic, top plan, view of the mailing machine of FIG. 1, showing successive positions of a sheet relative to the registration fence as the sheet is fed to the sheet sensing structure;

FIG. 15 is a diagram showing a typical voltage versus time profile of the magnitude of the voltage of the signal provided to the microprocessor of FIG. 1 by the sheet sensing structure of FIG. 14 as the sheet is fed into blocking relationship with the sensing structure;

FIG. 16 is a partial, schematic, top plan, view of the mailing machine of FIG. 1, showing successive positions of a sheet which is typically skewed relative to the registration fence as the sheet is fed to the sheet sensing structure;

FIG. 17 is a diagram showing a typical voltage versus time profile of the signal provided to the microprocessor of FIG. 1 by the sheet sensing structure of FIG. 16 as the typically skewed sheet is fed into blocking relationship with the sensing structure;

FIG. 18 is a flow chart of the sheet skew detection routine of the microprocessor of FIG. 1, showing the process steps implemented for detecting successive unskewed, and typically skewed, sheets fed to the mailing machine base;

FIG. 19 is a partial, schematic, top plan view of the mailing machine of FIG. 1, showing successive positions of a sheet which is of insufficient length, are measured in the direction of the path of travel thereof, for example due to being atypically skewed relative to the registration fence, as the sheet is fed to the sheet sensing structure; and

FIG. 20 is a diagram showing a typical voltage versus time profile of the signal provided to the microprocessor of FIG. 1 by the sheet sensing structure of FIG. 19 as a sheet of a predetermined minimum length, as measured in the direction of the path of travel, is fed to the sheet sensing structure.

As shown in FIG. 1, the apparatus in which the invention may be incorporated comprises a mailing machine 10 including a base 12 and a postage meter 14 which is removably mounted on the base 12.

The base 12 (FIG. 1) generally includes suitable framework 16 for supporting the various component thereof including a housing 18, having a cover 17 which is conventionally removably mountable thereon, and thus on the framework 16, as by means of a plurality of fasteners 17A, and includes a horizontally-extending deck 20 for supporting sheets 22 such as cut tapes 22A, letters, envelopes 22B, cards or other sheet-like materials, which are to be fed through the machine 10. Preferably, the base 12 also includes conventional structure 24 for selectively deflecting an envelope flap 26 from an envelope body 28 together with suitable structure 30 for moistening the strip of glue 32 adhered to the envelope flap 26, preparatory to feeding the envelope 22B through the machine 10. In addition, the base 12 preferably includes an elongate angularly-extending deck 34 for receiving and guiding cut tapes 22A past the moistening structure 30 preparatory to being fed through the machine 10. When mounted on the base 12, the postage meter 14 forms therewith a 36 slot through which the respective cut tapes 22A, envelopes 22B and other sheets 22 are fed downstream in a path of travel 38 through the machine 10.

For feeding sheets 22 into the machine 10, the base 12 preferably includes input feeding structure 40 including opposed, upper and lower, drive rollers, 42 and 44, which are axially spaced parallel to one another and conventionally rotatably connected to the framework 16, as by means of shafts, 46 and 48, so as to extend into and across the path of travel 38, downstream from the cut tape receiving deck 34. In addition, the base 12 includes conventional intermediate feeding structure 50, including a postage meter input roller 52, known in the art as an impression roller, which is suitably rotatably connected to the framework 16, as by means of a shaft 54 so as to extend into and across the path of travel 38, downstream from the lower input drive roller 44. Still further, for feeding sheets 22 from the machine 10, the base 12 includes conventional output feeding structure 55, including an output feed roller 56 which is suitably rotatably connected to the framework 16, as by means of a shaft 58, so as to extend into and across the path of travel 38, downstream from the impression roller 52.

As shown in FIG. 2, the postage meter 14 comprises framework 60 for supporting the various components thereof including rotary printing structure 62. The rotary printing structure 62 includes a conventional postage printing drum 64 and a drive gear 66 therefor, which are suitably spaced apart from one another and mounted on a common drum drive shaft 68 which is located above and axially extends parallel to the impression roller drive shaft 54, when the postage meter 14 is mounted on the base 12. The printing drum 64 is conventionally constructed and arranged for feeding the respective sheets 22 (FIG. 1) in the path of travel 38 beneath the drum 64, and for printing postage data, registration data or other selected indicia 69 (FIG. 14) on the upwardly disposed surface 69A of each sheet 22. Preferably, the indicia 69 is displaced upstream from the leading edge 100 of the sheet 22 a predetermined marginal distance 69B which may be selectively changed as hereinafter discussed in detail. When the postage meter 14 (FIG. 2) is mounted on the base 12, the printing drum 64 is located in a home position thereof which is defined by an imaginary vertical line L extending through the axis thereof, and the impression roller 52 is located for urging each sheet 22 into printing engagement with the printing drum 64 and for cooperating therewith for feeding sheets 22 through the machine 10. The drum drive gear 66 (FIG. 2) has a key slot 70 formed therein, which is located vertically beneath the drum drive shaft 68 and is centered along an imaginary vertical line L.sub.1 which extends parallel to the home position line L of the printing drum 64. Thus, when the key slot 70 is centered beneath the axis of the drum drive shaft 68 the postage meter drum 64 and drive gear 66 are located in their respective home positions. The postage meter 14 additionally includes a shutter bar 72, having an elongate key portion 74 which is transversely dimensioned to fit into the drive gear's key slot 70. The shutter bar 72, which is conventionally slidably connected to the framework 60 within the meter 14, is reciprocally movable toward and away from the drum drive gear 66, for moving the shutter bar's key portion 74 into and out of the key slot 70, under the control of the mailing machines base 12, when the drum drive gear 66 is located in its home position. To that end, the shutter bar 72 has a channel 76 formed therein from its lower surface 78, and, the base 12 includes a movable lever arm 80, having an arcuately-shaped upper end 82, which extends upwardly through an aperture 84 formed in the housing 18. When the meter 14 is mounted on the base 10, the lever arm's upper end 82 fits into the channel 76, in bearing engagement with the shutter bar 72, for reciprocally moving the bar 72. As thus constructed and arranged, the shutter bar 72 is movable to and between one position, wherein shutter bar's key portion 74 is located in the drum drive gear' key slot 70, for preventing rotation of the drum drive gear 66, and thus the drum 64, out of their respective home positions, and another position, wherein the shutter bar's key portion 74 is located out of the key slot 70, for permitting rotation of the drum drive gear 66, and thus the drum 64.

The postage meter 14 (FIG. 1) additionally includes an output idler roller 90 which is suitably rotatably connected to the framework 60, as by means of an idler shaft 92 which axially extends above and parallel to the output roller drive shaft 58, for locating the roller 90 above and in cooperative relationship with respect to the output feed roller 56, when the postage meter 14 is mounted on the base 12. Further, the base 12 additionally includes conventional sheet aligning structure including a registration fence 95 defining a direction of the path of travel 38, i.e., extending parallel to the fence 95, and against which an edge 96 (FIG. 2) of a given sheet 22 is normally urged when fed to the mailing machine 10 for aligning the given sheet 22 with the direction of the path of travel 38. Moreover, the base 12 (FIG. 1) preferably includes sheet detection structure 97, including a suitable sensor 97A, located upstream from the input feed rollers, 42 and 44, for detecting the presence of a sheet 22 being fed to the machine 10. And, the base 12 preferably includes sheet feeding trip structure 99, including a suitable sensor 99A, located downstream from the input feed rollers, 42 and 44, and preferably substantially one-half of an inch from, and thus closely alongside of, the registration fence 94, for sensing the leading edge 100 and trailing edge 100A of each sheet 22 fed thereby into the mailing machine 10.

As shown in FIG. 1, for driving the input, intermediate and output sheet feeding structures 40, 50 and 55, the mailing machine base 12 preferably includes a conventional d.c. motor 110 having an output shaft 112, and a suitable timing belt and pulley drive train system 114 interconnecting the drive roller shafts 48, 54 and 58 to the motor shaft 112. In this connection, the drive train system 114 includes, for example, a timing pulley 116 fixedly secured to the motor output shaft 112 for rotation therewith and a suitable timing belt 118 which is looped about the pulley 116 and another timing pulley of the system 114 for transmitting motive power from the pulley 116, via the remainder of the belt and pulley system 114, to the drive roller shafts 48, 54 and 58.

As shown in FIG. 1, for controlling the angular velocity of the sheet feeding rollers 44, 52 and 56, and thus the speed at which sheets 22 are fed into, through and from the machine 10, the mailing machine base 12 preferably includes a field effect transistor (FET) power switch 120 which is conventionally electrically connected to the d.c. motor 110 for energization and deenergization thereof. In addition, for controlling the sheet feeding speed, the base 12 includes the sheet detection structure 97 and sheet feeding trip structure 99, a microprocessor 122 to which the FET power switch 120, sheet detection structure 97 and sheet feeding structure 99 are conventionally electrically connected, and a voltage comparing circuit 124 which is conventionally electrically interconnected between the microprocessor 122 and d.c. motor 110. Preferably, the microprocessor 122 is of a type which includes a relatively large capacity random access memory (RAM) 123 to permit repeatedly storing therein data corresponding to a plurality of error codes indicative of malfunction condition which may occur while the base 12 is energized and to permit repeatedly clearing such codes when the base 12 is re-energized. In addition, the voltage comparing circuit 124 preferably includes a conventional solid state comparator 125, having the output terminal thereof connected to the microprocessor 122. Moreover, the comparator 125 has one of the input terminals thereof connected to the d.c. motor 110, for sampling the motor's back-e.m.f. voltage and providing a signal, such as the signal 126, to the comparator 125 which corresponds to the magnitude of the back-e.m.f. voltage. And, the comparator 125 has the other of the input terminals thereof connected to the microprocessor 122 via a suitable digital to analog converter 128, for providing the comparator 125 with a signal, such as the signal 127, which corresponds to a predetermined reference voltage. Further, the base 12 includes a conventional d.c. power supply 130, to which the FET power switch 120 and microprocessor 122 are suitably connected for receiving d.c. power. Moreover, the base 12 includes a manually operable on and off power switch 132, which is electrically connected to the d.c. supply 130 and is conventionally adapted to be connected to an external source of supply of a.c. power for energizing and deenergizing the d.c. supply 130 in response to manual operation of the power switch 132. In addition, for controlling the sheet feeding speed, the microprocessor 122 is preferably programmed, as hereinafter discussed in greater detail, to respond to receiving an analog sheet detection signal, such as the signal 134, from the sensor 97A, and to receiving an analog sheet feeding signal, such as the signal 135 from the sensor 99A, and converting such signals to corresponding digital signals by means of suitable analog to digital circuits 134A and 135A included in the microprocessor 122, and to receiving successive positive or negative comparison signals, such as the signal 136 from the comparator 125, for causing the d.c. motor 110 to drive each of the sheet feeding rollers 44, 52 and 56 at the same peripheral speed for feeding sheets 22 through the machine 10 at a constant speed.

As shown in FIG. 2, for driving the shutter bar 1ever arm 80, the mailing machine base 12 preferably includes a conventional d.c. motor 140, having an output shaft 142, and includes a drive system 144 interconnecting the lever arm 80 to the motor shaft 142. The drive system 144 preferably includes a timing pulley 146 which is suitably fixedly connected to the output shaft 142 for rotation therewith. In addition, the drive system 144 includes a cam shaft 148, which is conventionally journaled to the framework 16 for rotation in place, and includes a rotary cam 150, which is conventionally connected to the cam shaft 148 for rotation therewith. Moreover, the drive system 144 includes a timing pulley 152, which is suitably fixedly connected to the cam shaft 148 for rotation thereof. Preferably, the rotary cam 150 and pulley 152 are integrally formed as a single piecepart which is injection molded from a suitable plastic material. In addition, the drive system 144 includes a conventional timing belt 154, which is suitably looped about the pulleys, 146 and 152, for transmitting rotary motion of the motor drive shaft 142 to the cam shaft 148, and thus to the rotary cam 150. Still further, the drive system 144 includes the 1ever arm 80, which is preferably conventionally pivotally attached to the framework 16, as by means of a pin 156, and includes a yoke portion 158 depending therefrom. Preferably, the rotary cam 150 is disposed in bearing engagement with the yoke portion 158 for pivoting the yoke portion 158, and thus the lever arm 80, both clockwise and counterclockwise about the pin 156.

For controlling movement of the shutter bar 1ever arm 80 (FIG. 2), and thus movement of the shutter bar 72, into and out of the drum drive gear slot 70, the mailing machine 12 includes the microprocessor 122, and includes the sheet feeding trip structure 99 (FIG. 1) which is conventionally electrically connected to the microprocessor 122. In addition, for controlling shutter bar movement, the machine 10 (FIG. 2) includes a power switching module 160 which is connected between the d.c. motor 140 and microprocessor 122. Preferably, the switching module 160 includes four FET power switches arranged in an H-bridge circuit configuration for driving the d.c. motor 140 in either direction. In addition, the switching module 160 preferably includes conventional logic circuitry for interconnecting the FET bridge circuit to the d.c. motor 140 via two electrical leads, rather than four, and for interconnecting the FET bridge circuit to the microprocessor 140 via two electrical leads, 161A and 161B, rather than four, such that one of the leads, 161A or 161B, may be energized, and the other of the leads, 161B or 161A, deenergized, as the case may be, for driving the d.c. motor 140 in either direction. In addition, for controlling movement of the shutter bar 72, the base 12 includes cam shaft sensing structure 162 electrically connected the microprocessor 122. The structure 162 includes a cam-shaped disk 164, which is conventionally fixedly mounted on the cam shaft 148 for rotation therewith. The disk 164 (FIG. 3) includes an elongate arcuately-shaped lobe 166, having an arcuately-extending dimension d.sub.1 which corresponds to a distance which is slightly less than, and thus substantially equal to, a predetermined linear distance d.sub.2 (FIG. 2) through which the shutter bar key portion 74 is preferably moved for moving the shutter bar 72 out of locking engagement with the drum drive gear 66. Preferably however, rather than provide the disk 164, the rotary cam 150 is provided with a lobe portion 166A which is integrally formed therewith when the cam 150 and pulley 152 are injection molded as a single piecepart. And, the shaft position sensing structure 162 includes conventional lobe sensing structure 168 having a sensor 170 (FIG. 3) located in the path of travel of lobe, 166 or 166A as the case may be. As thus constructed and arranged, when the cam shaft 148 (FIG. 2) is rotated counter-clockwise, the lever arm 80 is pivoted thereby about the pin 156 to move the shutter bar 72 through the distance d.sub.2 and out of locking engagement with the drum drive gear 66. Concurrently, the lobe, 166 or 166A (FIG. 3), is rotated counter-clockwise through the distance d.sub.2, causing the leading edge 172 thereof, followed by the trailing edge 174 thereof, to be successively detected by the sensor 170, for providing first and second successive transition signals, such as the signal 175 (FIG. 2), to the microprocessor 122, initially indicating that movement of the shutter bar 72 has commenced and that the shutter bar 72 lobe 166 or 166A (FIG. 3) is blocking the sensor 170, followed by indicating that movement of the shutter bar 72 (FIG. 2) has been completed and that the sensor 170 (FIG. 3) is unblocked. Thereafter, when the cam shaft 148 (FIG. 2) is rotated clockwise, the lever arm 80 is pivoted thereby about the pin 156 to move the shutter bar 72 back through the distance d.sub.2 and into locking engagement with the drum drive gear 66. And, concurrently, the lobe, 166 or 166A (FIG. 3), is rotated clockwise, through the distance d.sub.2, causing the trailing edge 174 thereof, followed by the leading edge 172 thereof, to be successively detected by the sensor 170, for providing third and fourth successive transition signals 175 to the microprocessor 122 which again successively indicate that movement of the shutter bar 72 has commenced and that the sensor 170 (FIG. 3) is blocked, and movement of the shutter bar 72 (FIG. 2) has been completed and the sensor 170 (FIG. 3) is unblocked. In addition, for controlling movement of the shutter bar 72 (FIG. 2), the microprocessor 122 is preferably programmed, as hereinafter described in greater detail, to respond to receiving an analog sheet feeding signal 135 from the sensor 99A and converting the signal 135 to an analog signal as hereinbefore discussed, and to receiving successive sets of transition signals 175 (FIG. 2) from the sensing structure 168 and converting such signals 175 to corresponding digital signals by means of a suitable analog to digital circuit 175A included in the microprocessor 122; for timely causing the FET module 160 to drive the d.c. motor 140 to rotate the cam 150 counter-clockwise, for moving the shutter bar 72 through the distance d.sub.2 and thus out of locking engagement with the drum drive gear 66, until the second of the successive transition signals 175 is received, and, after a predetermined time interval during which the printing drum 64 is driven through a single revolution as hereinafter discussed, for causing the FET module 160 to then drive the d.c. motor 140 to rotate the cam 150 clockwise, for moving the shutter bar 72 back through the distance d.sub.2 until the fourth of the successive transitions signals 175 is received to indicate that the shutter bar 72 has been moved into locking engagement with the drum drive gear 66.

As shown in FIG. 2, for driving the drum drive gear 66 and thus the drum 64, the mailing machine base 12 preferably includes a conventional d.c. motor 180, having an output shaft 182, and includes a drive system 184 for interconnecting the drum drive gear 66 to the motor shaft 182 when the postage meter 14 is mounted on the mailing machine base 12. The drive system 184 preferably includes a timing pulley 186 which is suitably fixedly connected to the motor output shaft 182 for rotation therewith. In addition, the drive system 184 includes an idler shaft 188, which is conventionally journaled to the framework 16 for rotation in place, and includes a timing pulley 190, which is conventionally fixedly connected to the idler shaft 188 for rotation thereof. Moreover, the drive system 184 includes a conventional timing belt 192, which is suitably looped about the pulleys, 190 and 186, for transmitting rotary motion of the motor drive shaft 182 to the idler shaft 188, and thus to the pulley 190. Preferably, the base 12 additionally includes a pinion gear 194, which is conventionally mounted on, or integrally formed with, the idler shaft 188 for rotation therewith. Further, the base 12 also includes an idler shaft 196, which is conventionally journaled to the framework 16 for rotation in place, and includes a drive system output gear 198. Preferably, the output gear 198 is suitably dimensioned relative to the drum drive gear 66 such that the gear ratio therebetween is one-to-one. And, the drive system output gear 198 is conventionally fixedly mounted on the idler shaft 196 for rotation thereof and is dimensioned so as to extend upwardly through an aperture 199 formed in the housing 18 to permit the drum drive gear 66 to be disposed in meshing engagement with the drive system output gear 198, when the postage meter 14 is mounted on the base 12, for driving thereby to rotate the printing drum 64 into and out of engagement with respective sheets 22 fed into the machine 10.

For controlling rotation of the drive system output gear 198 (FIG. 2), and thus rotation of the printing drum 64, the mailing machine base 12 includes the microprocessor 122, and includes power switching structure 200 connected between the d.c. motor 180 and the microprocessor 122. Preferably, the switching structure 200 includes a first FET power switch 202, nominally called a run switch, which is energizeable for driving the motor 180 in one direction, i.e., clockwise, and includes a second FET power switch 204, nominally called a brake switch, connected in shunt with the first FET power switch 202, which is energizeable for dynamically braking the motor 180. In addition, for controlling rotation of the printing drum 64, the base 12 includes a voltage comparing circuit 206, which is conventionally electrically interconnected between the microprocessor 122 and d.c. motor 180. Preferably, the voltage comparing circuit 206 includes a solid state comparator 208, having the output terminal thereof connected to the microprocessor 122. In addition, the comparator 208 has one of the input terminals thereof connected to the d.c. motor 180, for sampling the motor's back-e.m.f. voltage and providing a signal, such as the signal 210 to the comparator 208 which corresponds to the magnitude of the back-e.m.f. voltage. And, the comparator 208 has the other of the input terminals thereof connected to the microprocessor 122, via a suitable digital to analog converter 212 for providing the comparator 208 with an analog signal, such as the signal 214, which corresponds to a predetermined reference voltage. In addition, for controlling rotation of the printing drum 64, the base 12 includes idler shaft position sensing structure 220 electrically connected to the microprocessor 122. The structure 220 preferably includes a cam-shaped disk 222, which is conventionally fixedly mounted on the idler shaft 196 for rotation therewith and thus in step with counter-clockwise rotation of the drum 64, due to the one-to-one gear ratio between the drive system output gear 198 and drum drive gear 66. The disk 222 (FIG. 4) includes two, elongate, arcuately-shaped lobes, 224 and 226. The lobes 224 and 226 are preferably separated from one another by a two degree gap 228 which is bisected by a vertical line L.sub.2 which extends through the axis of the disk 222 when the disk 222 is located in its home position, which home position corresponds to the home position of the drum drive gear slot 70 (FIG. 2) and thus to the home position of the printing drum 64. The lobe 224 (FIG. 4) has an arcuately-extending dimension d.sub.3, which corresponds to a distance which is preferably slightly less than, and thus substantially equal to, the linear distance d.sub.4 (FIG. 1) through which the outer periphery of the printing drum 64 is initially driven counter-clockwise from the home position thereof before being rotated into engagement with a sheet 22 fed into the machine 10. And, the lobe 226 (FIG. 4) has an arcuately-extending dimension d.sub.5 which corresponds to a distance which is preferably slightly less than, and thus substantially equal to, the linear distance d.sub.6 (FIG. 1) through which the outer periphery of the printing drum 64 is driven counter-clockwise upon being rotated out of engagement with a sheet 22 fed thereby through the machine 10. Further, the shaft position sensing structure 220 includes conventional lobe sensing structure 230 having a sensor 232 (FIG. 4) located in the path of travel of the lobes, 224 and 226. As thus constructed and arranged, assuming the shutter bar 72 (FIG. 2) is moved out of locking engagement with the drum drive gear 66, when the drive system output gear 198 commences driving the drum drive gear 66 and printing drum 64 from their respective home positions, the disk 222 (FIG. 4) is concurrently rotated counter-clockwise from its home position. As the lobe 224 is rotated through the distance d.sub.3, causing the leading edge 234 of the lobe 224, followed by the trailing edge 236 thereof, to be successively detected by the sensor 232, successive first and second transition signals, such as the signal 240 (FIG. 2), are provided to the microprocessor 122 and converted thereby to corresponding digital signals by means of a suitable analog to digital circuit 240A included in the microprocessor 122, to initially indicate that the drum 64 (FIG. 2) has commenced rotation from the home position thereof, followed by indicating that the drum 64 has rotated 40.degree. through the distance d.sub.4. In addition, the transition signal 240 provided by the sensor 232 detecting the lobe's trailing edge 236 indicates that the drum 64 has rotated into feeding engagement with a sheet 22 fed into the machine 10. Thereafter, the disk 222 and thus the drum 64 (FIG. 1) continue to rotate counter-clockwise, and the printing drum 64 prints indicia on the sheet 22 as the sheet 22 is fed thereby through the machine 10, until such rotation causes the leading edge 242 (FIG. 4) of the lobe 226, followed by the trailing edge 244 thereof, to be successively detected by the sensor 232. Whereupon the sensor 232 provides successive third and fourth transition signals 240 to the microprocessor 122, initially indicating that the drum 24 has rotated 335.degree. and out of feeding engagement with the sheet 22, followed by indicating that the drum 64 has rotated through 359.degree., and thus substantially through the distance d.sub.6 and back to the home position thereof. Still further, for controlling rotation of the printing drum 64, the microprocessor 122 is preferably programmed, as hereinafter described in greater detail, to timely respond to the completion of movement of the shutter bar 72 out of locking engagement with drum drive gear 66, to timely respond to the transition signals 240 from the idler shaft sensing structure 230 and to timely respond to receiving successive positive or negative comparison signals, such as the signal 248 from the comparator 208, to cause the FET switch 202 to drive the d.c. motor 180 for initially accelerating the drum 64 through an angle of 40.degree., followed by driving the drum 64 at a constant velocity through an angle of 295.degree., to drive each of the rollers 44, 52 and 56 at the same peripheral, sheet feeding, speed. Moreover, the microprocessor 122 is preferably programmed to timely deenergize the FET run switch 202, and to energize the FET brake switch 204 to thereafter decelerate and dynamically brake rotation of the motor 180 to return the drum 64 through an angle of 25.degree. to the home position thereof at the end of a single revolution of the drum 64.

In addition, for controlling normal operation of the base 12 (FIG. 1) and thus the machine 10, the base 12 preferably includes a conventional keyboard 250 which is suitably electrically connected to the microprocessor 122 by means of a serial communications link 252, including a data input lead 254, for providing signals, such as the signal 255, to the microprocessor 122, a data output lead 256, for providing signals, such as the signals 257 to the keyboard 250, and a clock lead 258 for providing clock signals to the keyboard 250 to synchronize communication between the keyboard 250 and microprocessor 122. The keyboard 250, which has a plurality of manually actuatable switching keys 260, preferably includes a print mode key 262, which is manually actuatable for causing the base 12 to enter into a sheet feeding and printing mode of operation, and a no-print mode key 264, which is manually actuatable for causing the base 12 to enter into a sheet feeding but no printing mode of operation. Further, for providing a visual indication to an operator concerning a trouble condition in the machine 10, the keyboard 260 preferably includes a service lamp 266 which is preferably intermittently energized in a light blinking mode of operation in response to signals 257 from the microprocessor 122 whenever the base 12 is in need of servicing, for example, due to the occurrence of a jam condition event in the course of operation thereof.

Moreover, for controlling operation of the base 12, the base 12 preferably includes a manually actuatable test key 270, which is disposed within the housing 18 of the base 12 for access upon removal of the cover 17, to normally permit use solely by manufacturing and maintenance, i.e., service, personnel. Accordingly, the test key 270 is preferably connected to the framework 16 beneath the cover 17 for normally preventing access to the test key 270 by an operator of the machine 10. The test key 270 is conventionally electrically connected to the microprocessor 122 and is manually actuatable when the base 12 is initially energized to provide a signal, such as the signal 272, to the microprocessor 122 for causing the base 12 to enter into one or more calibration modes of operation, wherein the sheet feeding and printing speeds of the base 12 and postage meter 14 are calibrated to ensure that the postage indicia printed on a given sheet 22 is acceptably located thereon. In addition, for storing critical data utilized for operation of the base 12 in various modes of operation thereof, including the calibration mode(s), the base 12 preferably includes a suitable non-volatile memory (NVM) 274 which is conventionally electrically connected to the microprocessor 122 and operable thereby for storing therein data, including error codes 275 without loss thereof due to power failure or during power-down conditions. And, to that end, the microprocessor 122 is preferably one of the type which includes an electrically erasable, programmable, read only, memory (EEPROM).

According to the invention, the test key 270 is also actuatable to provide the signal 272 to the microprocessor 122 for causing the base 12 to enter into a service mode of operation wherein data corresponding to a plurality of error codes 275 (FIG. 5A) which correspond, in turn, to a like number of malfunction conditions which may occur while the base 12 (FIG. 1) is energized, can be retrieved from storage. Further, the base 12 and, in particular the keyboard 250, preferably includes two additional keys 273 and 273A, each of which is preferably located beneath the cover 17. The key 273, which, for the purposes of this disclosure is referred to as the margin adjusting or margin selecting key, is manually actuatable, when the base 12 is in the service mode of operation thereof, for causing the base 12 to enter into a mode of operation wherein one of the print or no-print keys, 262 or 264, is actuatable for increasing the marginal distance from the leading edge of a sheet 22 for printing postage indicia thereon, and the other of the print or no-print keys, 262 or 264, is actuatable for decreasing the aforesaid marginal distance for printing indicia. And the key 273A, which for the purposes of this disclosure is referred to as the "clear" key is manually actuatable, when the base 12 is in the service mode of operation thereof, for clearing from both the RAM 123 and NVM 274 the data corresponding to all error codes stored therein. Moreover, for the purposes of this disclosure actuation of a given key 262, 264, 270, 273 or 273A means that the relevant key has been moved a single time whether or not it is held moved for any length of time before being released.

According to the invention, the base 12 (FIG. 1) additionally includes structure 274B for on the one hand displaying error codes 275 (FIG. 5A) and on the other hand displaying increments of marginal displacement of the postage indicia from the leading edge of the sheet 22. The displaying structure 274B preferably includes six light emitting diodes (LEDs) 274C which are preferably connected to the framework 16 beneath the cover 17 to normally deny access by an operator of the machine 10 and permit access by maintenance and manufacturing personnel. The LEDs 274C are preferably arranged in a linearly-extending array 274D including a first set, 274E (FIG. 5A), of three LEDs 274C to the left in the array 274D, and a second set, 274F, of three LEDs 274C to the right in the array 274D, to facilitate permitting manufacturing and maintenance personnel to read from the first LED set 274E a first octal code, corresponding to the first digit of a two digit error code 275 and to read from the second LED set 274F the second digit of the two digit error code 275. Although the LED array 274D may be used for the display of 64 different error codes 275, the codes "00" and "77" are not used, due to their display being susceptible of interpretation that the displaying structure 274 (FIG. 1) is inoperative. Further, the codes 01 through 07 are not used as "error" codes but rather as codes which identify different machine models. Moreover, as shown in FIG. 5A, some of the error codes 275 are not shown as being assigned to functional errors. For the purposes of this disclosure it may be assumed that they are either reserved for future use or assigned to functions which are substantial equivalents of one of the functions listed in FIG. 5A, for example, low line voltage, high line voltage, short-circuit, drum acceleration too slow, drum deceleration too slow, or shutter bar bounce. In addition, it is noted that whenever the base 12 is energized, and an error condition occurs as hereinafter discussed, the appropriate data corresponding to error code 275 is stored in both the RAM 123 and NVM 274 as data corresponding to a current malfunction condition code. On the other hand, whenever the base 12 is deenergized and thereafter re-energized the data corresponding to current malfunctions condition error codes 275 stored in the RAM 123 are cleared therefrom, and the data corresponding to error codes 275 which were concurrently stored in the NVM and remain stored therein are data corresponding to historical malfunction condition codes. For the purposes of this disclosure when referenced is made to storing an error codes, such phraseology should be understood to mean that data corresponding to such error code is stored. Accordingly, error codes 275 stored in both the RAM 123 and NVM 274 correspond to current malfunction condition codes whereas error codes, 275 stored only in the NVM 274 correspond to historical malfunction condition codes.

As shown in FIG. 6, in accordance with the invention the microprocessor 122 is preferably programmed to include a main line program 300, which comprises an idle loop routine 306 which commences with the step 310 of determining whether or not the sheet feeding or printing speed calibration flag is set, due to the test key 270 (FIG. 1) having been previously actuated, as hereinafter discussed, in the course of implementation of the power-up routine 800 (FIG. 11) and not having been cleared due to such implementation not having been completed. Assuming the calibration flag has not been set step 310 (FIG. 6), the program 300 implements the step 312 311 of determining whether or not the test key 270 (FIG. 1) has been actuated after completion of the power-up routine 800 (FIG. 11). Assuming that the test key is actuated, step 311, then, the routine 300 implements the step 311A of calling up and causing implementation of the service mode routine 950 (FIG. 13A) as hereinafter discussed. Assuming however that the test key 270 (FIG. 1) was not actuated, step 311, after completion of the power-up routine 800, then, the routine 300 implements the step 311B of determining whether or not a a machine error flag has been set, due to the occurrence of various events, hereinafter discussed in greater detail, including, for example, the sheet feeding structures 40, 50 or 55 (FIG. 1) being Jammed in the course of feeding a sheet 22 through the machine 10, the shutter bar 72 (FIG. 2) not being fully moved through the distance d.sub.2 in the course of movement thereof either out of or into locking engagement with the drive gear 66, or the meter drive system 184 being jammed in the course of driving the same. Assuming a machine error flag has been set, step 308 (FIG. 6), the program 300 returns processing to idle 306, until the condition causing the error flag to be set is cured and the error flag is cleared, and a determination is thereafter made that an error flag is not set, step 311B. Whereupon, the microprocessor 122 causes the program 300 to implement the step 312 of determining whether or not a sheet detection signal 134 (FIG. 1) has been received from the sensor 97A of the sheet detection structure 97, and, assuming that it has not been received, step 312 (FIG. 6), the program 300 loops to idle, step 306, and continuously successively implements steps 310, 311, 311B and 312 until the sheet detection signal 134 is received. Whereupon, the program 300 implements the step 314 of setting the sheet feeder routine flag "on", which results in the routine 300 calling up and implementing the sheet feeder routine 400 (FIG. 7), hereinafter discussed in detail.

As the routine 400 (FIG. 7) is being implemented, the program 300 (FIG. 6) concurrently implements the step 316 of determining whether or not the sheet detection signal 134 has ended, and if it has not, then implements the step 316A of setting the skew detection routine flag "on", which results in calling up and implementing the sheet skew detection routine 1000 (FIG. 18) hereinafter described in detail. As the skew detection routine 1000 is being implemented, the program 300 (FIG. 6) concurrently implements the step 317 of determining whether a skew flag has been set, as hereinafter discussed in detail, indicating that the sheet 22 (FIG. 1) being fed into the machine 10 is askew relative to the direction of the path of travel 38 defined by the registration fence 95. Assuming the inquiry of step 317 is affirmative, then the routing 300 (FIG. 6) implements the step 317A of setting a machine error flag, storing an error code 275 (FIG. 5A) in both the RAM 123 (FIG. 1) and NVM 274 and causing the service light 266 to commence blinking, followed by the step 340 of implementing a conventional shut-down routine, and, thereafter, implementing the steps 341, 342 and 344 hereafter discussed in detail. Assuming, however as is the normal case that the skew flag is not set, step 317, then, the program 300 (FIG. 6) implements the step 318 of determining whether the sheet feeding trip signal flag has been set, indicating that a sheet feeding trip signal 135 (FIG. 1) has been received from the sensor 99A of the sheet feeding trip structure 99. Assuming that it is determined that the sheet detection signal 134 has not ended, step 316 (FIG. 6) and, in addition, it is determined that the sheet feeding trip signal flag has not been set, step 318 indicating that the microprocessor 122 has not received the sheet feeding trip signal 135, then, the program 400 returns processing to step 316 and continuously successively implements steps 316, 317 and 318 until the sheet feeding trip signal 135 is received, step 318, before the sheet detection signal 134 is ended, step 316. If, in the course of such processing, the sheet detection signal ends, step 316, before the sheet feeding trip signal is received, step 318, then, the program 300 implements the step 319, of setting the sheet feeder routine flag "off" followed by returning processing to step 312. Thus the program 300 makes a determination as to whether or not both sensors 97A and 99A (FIG. 1) are concurrently blocked by a sheet 22 fed to the machine 10 and, if they are not, causes sheet feeding to be ended. As a result, if an operator has fed a sheet 22 to the mailing machine base 12 and it is sensed by the sensor 97A, but is withdrawn before it is sensed by the sensor 99A, although the sheet feeding routine 400 (FIG. 7) has been called up and started, step 314 (FIG. 6), it will be turned off, step 319, until successive implementations of step 312 result in a determination that another sheet detection signal, step 312, has been received and the program 300 again implements the step 314 of setting the sheet feeder routine flag "on". Assuming however, that both the sheet detection and feeding signals, 134 and 135, are received, steps 316 and 318, before the sheet detection signal 134 is ended, step 316, then, the program 300 implements the step 320 of determining whether the base 12 is in the no-print mode of operation, as a result of the operator having actuated the no-print key 264 (FIG. 1). Assuming that the no-print key 264 has been actuated, step 320 (FIG. 6), due to the operator having chosen to use the base 12 (FIG. 1) for sheet feeding purposes and not for the purpose of operating the postage meter 14, then, the program 300 (FIG. 6) by-passes the drum driving steps thereof and implements the step 320A of causing program processing to be delayed for a time interval sufficient to permit the sheet 12 being fed by the base 12 to exit the machine 10. Assuming however, that the base 12 is not in the no-print mode of operation, step 320, then the program 300 implements the step 320B of determining whether the base 12 (FIG. 1) is in the print mode of operation, as a result of the operator having actuated the print key 262. Assuming, the inquiry of step 320B (FIG. 6) is negative, due to the operator not having chosen to use the base 12 for both sheet feeding and postage printing purposes, then, the program 300 returns processing to step 320 and continuously successively implements steps 320 and 320B until the operator actuates either the print or no-print key, 262 or 264 (FIG. 1) to cause the inquiry of one or the other of steps 320 or 320B (FIG. 6) to be affirmatively determined. Assuming that the print key 262 is actuated, causing the inquiry of step 320B to be affirmative, then the program 300 implements the step 321 of starting a time interval counter for counting a predetermined time interval t.sub.d (FIG. 5), of substantially 80 milliseconds, from the time instant that a sheet 22 (FIG. 1) is detected by the sensing structure 99 to the predetermined time instant that the printing drum 64 preferably commences acceleration from its home position in order to rotate into engagement with the leading edge 100 of the sheet 22 as the sheet 22 is fed therebeneath.

Thereafter, the program 300 (FIG. 6) implements the step 322 of setting the shutter bar routine flag "on", which results in the program 300 calling up and implementing the shutter bar routine 500 (FIG. 8), hereinafter discussed in detail, for driving the shutter bar 72 (FIG. 2) through the distance d.sub.2 and thus out of locking engagement with the drum drive gear 66. After the routine 500 (FIG. 8) commences driving the shutter bar 72 (FIG. 2) out of locking engagement with the drum drive gear 66, the program 300 (FIG. 6) implements the step 324 of determining whether or not a shutter bar time-out flag has been set, indicating at this juncture that either the postage meter 14 (FIG. 2) is improperly mounted on the base 12 or has for reasons beyond the scope of this invention prevented movement of the shutter bar 72 out of locking engagement with the drum drive gear 66, or the shutter bar 72 has stopped in the course of being driven through the distance d.sub.2 and is thus not located out of locking engagement with the drum drive gear 66. Assuming that the shutter bar time-out flag is set, step 324 (FIG. 6), then, the program 300 (FIG. 6) implements the step 326 of setting a machine error flag, storing an error code 275 (FIG. 5A), i.e., octal error code 16, in the both the RAM 123 (FIG. 1) and NVM 274 and causing the keyboard service lamp 266 to commence blinking, followed by the step 340 (FIG. 6) of implementing a conventional shut-down routine and, thereafter, successive steps 341, 342 and 344 hereinafter discussed in detail. If however, as is the normal case, the inquiry of step 324 is affirmatively answered then, the program 300 (FIG. 6) implements the step 328 of determining whether or not the time interval count, started in step 321, has ended. And, assuming that it has not, the program 300 continuously loops through step 328 until the time interval t.sub.d is ended. Thereafter, before the program 300 implements the step 330 of setting the postage meter routine flag "on" which results in the program 300 calling up and implementing the postage meter acceleration and constant velocity, or postage printing, routine 600 (FIG. 9), the program 300 preferably implements the step 329, hereinafter discussed in greater detail of determining whether the sheet feeding trip signal flag found to be set in step 318 is still set, to determine whether the sheet 22 (FIG. 1) disposed in blocking relationship with the sensor 99A is still disposed in blocking relationship therewith after the time delay interval t.sub.d of 80 milliseconds, and thus to determine whether the sheet 22 is of sufficient length for printing purposes. Assuming that the inquiry of step 329 is negatively answered, indicating that the sheet 22 is of insufficient length, then, the routine 300 (FIG. 6) implements the step 329A of setting a machine error flag, storing are error code 275 (FIG. 5A) i.e., octal error code 14, in both the RAM 123 (FIG. 1) and NVM 274 and causing the services light 266 to commence blinking, followed by the step 340 (FIG. 6) of implementing a conventional shut-down routine, and, thereafter, implementing the successive step 341, 342 and 344 hereinafter discussed in detail. Assuming, however, as is the normal case that the inquiry of Step 329 is affirmative, indicating that the sheet 22 is of sufficient length, then, the program 300 implements the step 330 of setting the postage meter acceleration and constant velocity routine flag "on", which results in the program 300 calling up and implementing the postage meter acceleration and constant velocity, or postage printing, routine 600 (FIG. 9).

As the routine 600 (FIG. 9) is being implemented, the program 300 (FIG. 6) concurrently implements the step 332 of clearing a time interval counter for counting a first predetermined fault time interval, of preferably 100 milliseconds, during which the microprocessor 122 (FIG. 2) preferably receives the initial transition signal 240 from the sensing structure 220, due to the printing lobe's leading edge 234 (FIG. 4) being sensed by the sensor 232, indicating that the postage printing drum 64 (FIG. 2) has commenced being driven from its home position by the drum drive gear 66. Accordingly, after clearing the time interval counter, step 332 (FIG. 6), the program 300 implements the step 334 of determining whether or not the printing drum 64 has commenced movement from its home position. And, assuming that it has not, the program 300 continuously successively implements the successive steps of determining whether or not the first fault time interval has ended, step 336, followed by determining whether or not the drum 64 has moved from its home position, step 334, until either the drum 64 has commenced moving before the first fault time interval ends, or the first fault time interval ends before the drum has commenced moving. Assuming the first fault time interval ends before the drum has moved, then, the program 300 implements the step 338 of setting a machine error flag, storing an error code 275 (FIG. 5A), i.e., error code 67, in both the RAM 123 (FIG. 1) and NVM 274, and causing the keyboard service lamp 266 to commence blinking, followed by the step 340 (FIG. 6) of causing a conventional shut-down routine to be implemented. Accordingly, if the postage printing drum 64 is not timely driven from its home position at the end of the time delay interval t.sub.d (FIG. 5) of substantially 80 milliseconds, and after commencement of implementation of the postage meter acceleration and constant velocity routine, step 330 (FIG. 6), the program 300 causes processing to be shut down, and a blinking light 266 (FIG. 1) to be energized to provide a visual indication to the operator that the mailing machine base 12 or postage meter 14, or both, are in need of servicing. At this Juncture, the operator of the machine 10 may find, for example, that the drum 64 did not move from its home position due to the postage meter 14 having insufficient funds to print the postage value entered therein by the operator for printing purposes, or some other error condition has occurred in the meter 14 which preludes driving the drum 64 from its home position. Alternatively, the operator may find that a Jam condition exists in the base 12 which prevents the drum drive gear 66 from driving the drum 64. Whatever may be the reason for the drum 64 not being timely moved from its home position during the time interval, the operator would normally attempt to cure the defect, failing which a service person would be called in to cure the defect in machine operation. Accordingly, as shown in FIG. 6, after implementation of the shut-down routine, step 340, the program 300 implements the step 311 of determining whether or not the test key 270, which is located beneath the cover 17 and not normally accessable to an operator of the machine 10, has been actuated. Assuming the test key 270 has not been actuated, step 341, which would normally occur due to a service person not having been called in to cure the defect in operation, then, the program 300 implements the step 342 of making a determination as to whether or not either of the print or no-print mode keys, 262 or 264, (FIG. 1) is actuated. And, assuming that a mode key, 262 or 264, has not been actuated, which determination would normally indicate that the trouble condition which resulted in implementation of the shut down routine, step 340 (FIG. 6) had not as yet been cured, then the program 300 causes processing to continuously loop through steps 341 and 342 until one of mode keys, 262 or 264, is actuated indicating that the defect in operation has been cured. Whereupon the program 300 implements the step 344 of causing the error flag to be cleared, followed by returning processing to idle, step 306. Assuming the inquiry of 341 is affirmative which normally indicates that a service person has removed the cover 17 to actuate the test key 270, then, the program 300 calls-up and causes the service mode routine 950 (FIG. 13A) to be implemented as hereinafter discussed, followed, by implementation of the successive steps 342 and 344 as discussed above.

Referring back to step 334 (FIG. 6), and assuming as is the normal case that the postage printing drum 64 is timely moved from its home position, i.e., before the first predetermined fault time interval is ended, step 336 (FIG. 6), then, the program 300 causes the time interval counter to be cleared, step 346, and to commence counting a second predetermined fault time interval, of preferably 100 milliseconds, during which the microprocessor 122 (FIG. 2) preferably receives the next transition signal 240 from the sensing structure 220, due to the printing lobe's trailing edge 236 (FIG. 4) being sensed by the sensor 232, indicating that the postage printing drum 64 (FIG. 2) has rotated through the initial 40.degree. of rotation thereof from its home position (FIG. 5). Accordingly, after clearing the time interval counter, step 346 (FIG. 6), the program 300 implements the step 348 of determining whether or not the 40.degree. transition signal 240 has been received. And, assuming that it has not, the program 300 continuously successively implements the successive steps of determining whether or not the second fault time interval has ended, step 350, followed by determining whether or not the 40.degree. transition signal 240 has been received, step 348, until either the 40.degree. transition signal 240 is received before the second fault time interval ends, or the second fault time interval ends before the 40.degree. transition signal 240 is received. Assuming that the second fault time interval ends before the 40.degree. transition signal 240 is received, then, the program 300 implements the step 352, corresponding to step 338, of setting a machine error flag, storing an error code 275 (FIG. 5A), i.e., error code 67, and causing the keyboard service lamp 266 (FIG. 1) to commence blinking, followed by implementing the successive machine shut-down and start-up steps 340, 341, 341A, 342 and 344 hereinbefore discussed and returning processing to idle, step 306.

On the other hand, assuming as is the normal case that a determination is made in step 348 (FIG. 6) that the 40.degree. transition signal was timely received, i.e., at the end of the time interval t.sub.1 (FIG. 5) of preferably 40 milliseconds, and thus before the second predetermined fault time interval is ended, step 350 (FIG. 6), then, the program 300 implements the step 354 of causing the time interval counter to be cleared and to commence counting a third predetermined fault time interval, of preferably 500 milliseconds, during which the microprocessor 122 (FIG. 2) preferably receives the next transition signal 240 from the sensing structure 220, due to the printing lobe's leading edge 242 (FIG. 4) being sensed by sensor 232, indicating that the postage printing drum 64 (FIG. 2) has rotated through 335.COPYRGT.of rotation thereof from its home position. Thereafter, the program 300 implements the successive steps of clearing a second time interval counter, step 356, for counting the duration of actual constant speed of rotation of the postage printing drum 64, followed by the step 358 of making a determination as to whether or not the 335.degree. transition signal 240 has been received, step 350. Assuming that the 335.degree. transition signal 240 is not received, the program 300 continuously successively implements the successive steps of determining whether or not the third fault time interval has ended, step 360, followed by determining whether or not the 335.degree. transition signal 240 has been received, step 358, until either the 335.degree. transition signal 240 is received before the third fault time interval ends, or the third fault time interval ends before the 335.degree. transition signal 240 is received. Assuming the third fault time interval ends before the 335.degree. transition signal 240 is received, then, the program 300 implements the step 362, corresponding to step 338, of setting a machine error flag, storing an error code 275 (FIG. 5A), i.e., error code 67, and causing the keyboard service lamp 266 (FIG. 1) to commence blinking, followed by implementing the successive machines shut-down and start-up steps 340, 341, 341A, 342 and 344 hereinbefore discussed, and returning processing to idle, step 306. However, assuming as is the normal case that a determination is made in step 358 that the 335.degree. transition signal 240 was timely received, i.e., at the end of the time interval t.sub.2 (FIG. 5) of preferably 292 milliseconds, and thus before the third predetermined fault time interval is ended, step 360, then, the program 300 implements the step 363 of storing the actual time interval of duration of constant speed rotation of the postage printing drum 64, followed by the step 364 of setting the postage meter deceleration and coasting routine flag "on" which results in the program 300 calling up and implementing the postage meter deceleration and coasting routine 700 (FIG. 10).

As the routine 700 (FIG. 10) is being implemented, the program 300 (FIG. 6) concurrently implements the step 366 of clearing the time interval counter for counting a fourth predetermined fault time interval, of preferably 100 milliseconds, during which the microprocessor 122 (FIG. 2) preferably receives the last transition signal 240 from the sensing structure 220, due to the printing lobe's trailing edge 244 (FIG. 4) being sensed by the sensor 232, indicating that the postage printing drum 64 (FIG. 2) has rotated through 359.degree. of rotation thereof from its home position and is thus one degree from returning thereto. Thereafter, the program 300 implements the step 368 of making a determination as to whether or not the 359.degree. transition signal 240 has been received. Assuming that it has not, the program 300 continuously successively implements the successive steps of determining whether or not the fourth fault time interval has ended, step 370, followed by determining whether or not the 359.degree. transition signal 240 has been received, step 368, until either the 359.degree. transition signal 240 is received before the fourth fault time interval ends, or the fourth fault time interval ends before the 359.degree. transition signal 240 is received. Assuming the fourth fault time interval ends before the 359.degree. transition signal 240 is received, then, the program 300 implements the step 372, corresponding to step 338, of setting a machine error flag, storing an error code 275 (FIG. 5A), i.e., error code 67, and causing the keyboard service lamp 266 to commence blinking, followed by implementing the successive machine shut-down and start-up steps 340, 341, 341A, 342 and 344 hereinbefore discussed, and returning processing to idle, step 306. However, assuming as is the normal case that a determination is made in step 368 that the 359.degree. transition signal 240 was timely received, i.e., substantially at the end of the time interval t.sub.3 of preferably 40 milliseconds, and thus before the fourth predetermined fault time interval is ended, step 370, then, the program 300 implements the step 374 of determining whether or not the postage meter cycle ended flag has been set, i.e., whether or not the postage meter deceleration and coasting routine 700 (FIG. 10) has been fully implemented. Assuming that the postage meter cycle ended flag has not been set, step 374, then, the program 300 (FIG. 6) continuously implements step 374 until the postage meter cycle ended flag has been set. Whereupon, the program 300 implements the step 378 of setting a postage meter trip cycle complete flag.

As thus constructed and arranged, in the course acceleration of the postage meter drum 64 (FIG. 1) from its home position to a constant velocity for printing purposes and then decelerating the drum 64 back to rest at its home position, the microprocessor program 300 repeatedly determines whether the difference between desired and actual movements of the drum 64 are acceptable, failing which an error code 275 is stored in memory, 123 and 274, and a shut-down routine implemented.

Thereafter, the program 300 (FIG. 6) implements the step 380 of setting the shutter bar routine flag "on", which results in the program 300 calling up and implementing the shutter bar routine 500 (FIG. 8), as hereinafter discussed in detail, for driving the shutter bar 72 (FIG. 2) back through the distance d.sub.2 and into locking engagement with the drum drive gear 66. After commencement of implementation of the routine 500 the program 300 (FIG. 6) concurrently implements the step 382 of determining whether or not the shutter bar time out flag is set, indicating at this juncture that the shutter bar 12 (FIG. 2) has stopped in the course of being driven back through the distance d.sub.2 and, therefore, has not been driven into locking engagement with the drum drive gear 66. Assuming the shutter bar 72 is stopped, then, the program 300 (FIG. 6) implements the step 384 of setting the machine error flag, storing an error code 275 (FIG. 5A), i.e., error code 44, and causing the keyboard service lamp 266 to commence blinking, followed by implementing the successive machine shut-down and start-up steps 340, 341, 341A, 342 and 344 hereinbefore discussed, and returning processing idle, step 306. If however, as is the normal case, a determination is made that the shutter bar 72 time-out flag is not set and, therefore, that the shutter bar 72 has been driven back into locking engagement with the drum drive gear, then, the program 300 implements the step 386 of deenergizing the FET brake switch 204 (FIG. 2), to remove the shunt from across the postage meter drive system's d.c. motor 180. Thereafter, the program 300 implements the step 320A of causing processing to be delayed for a predetermined time interval, of preferably 500 milliseconds, to permit the sheet 22 being processed by the machine 10 to exit the base 12, followed by the successive steps 390 and 392, hereinafter discussed in detail, of initially determining whether the stored, actual time intervals of acceleration and deceleration of the postage printing drum 64 (FIG. 2), and the actual movement time interval of the shutter bar 72 in either direction, is not equal to the design criteria therefor, followed by incrementally changing the actual time intervals, as needed, to cause the same to respectively be equal to their design criteria value. Thereafter, the program 300 returns processing to idle, step 306.

As shown in FIG. 7, according to the invention, the sheet feeding routine 400 commences with the step 401 of determining whether or not the sheet feeder routine flag setting is "off" due to an error event occurring, such as the sheet feeder jam condition hereinafter discussed, in the course of operation of the mailing machine base 12. Assuming that the sheet feeder routine flag setting is "off" step 401 the routine 400 continuously loops through step 401 until the sheet feeder routine "off" flag has been cleared, i.e., reset to "on" for example, due to the jam condition having been cured. However, assuming that the sheet feeder routine flag setting is "on" then, the routine 400 implements the step 402 of clearing a time interval timer and setting the same for counting a first predetermined time interval, of preferably 30 milliseconds, during which the d.c. motor 110 (FIG. 1) is preferably energized for slowly accelerating the sheet feeding rollers, 44, 50 and 55, at a substantially constant rate during the predetermined time interval to a sheet feeding speed of twenty six inches per second for feeding one sheet 22 each 480 milliseconds. Thus the routine 400 (FIG. 7) causes the microprocessor 122 to implement the step 404 of energizing and deenergizing the FET power switch 120 (FIG. 1) with a fixed, pulse-width-modulated, signal, such as the signal 405, which preferably includes 10 positive duty cycle energization pulses of one millisecond each in duration, separated by 10 deenergization time intervals of two milliseconds each in duration, so as to provide one energization pulse during each successive three millisecond time interval for 10 successive time intervals, or a total of 30 milliseconds. The energization pulses are successively amplified by the FET switch 120 (FIG. 1) and applied thereby to the d.c. motor 110 for driving the rollers 44, 52 and 56, via the belt and pulley system 114. Thereafter, the routine 400 (FIG. 7) implements the step 408 of determining whether or not the acceleration time interval has ended. Assuming the acceleration interval has not ended, step 408, the routine 400 loops to step 404 and successively implements steps 404 and 408 until the acceleration time interval is ended, step 408. In this connection it is noted that the preferred acceleration time interval of 30 milliseconds is not critical to timely accelerating the sheet feeding rollers 44, 52 and 56 (FIG. 1) to the desired sheet feeding speed of 26 inches per second, since the time interval required for a given sheet 22 to be detected by the sensor 97A to the time instant it is fed to the nip of the upper and lower input feed rollers, 42 and 44, is much greater than 30 milliseconds. Assuming the time interval has ended, step 408, the routine 400 then implements the step 410 of initializing an event counter for counting a maximum predetermined number of times the counter will be permitted to be incremented before it is concluded that a jam condition exists in the sheet feeding structure. Thereafter, the routine 400 causes the microprocessor 122 to implement the step 412 of determining whether or not the sheet feeder routine flag setting is "off", due to an error event occurring, such as one of the jam conditions hereinbefore discussed, in the course of operation of the mailing machine base 12. Assuming that the sheet feeder routine flag setting is "off", step 412, the routine 400 returns processing the step 401. Whereupon, the routine 400 continuously loops through step 401, as hereinbefore discussed, until the flag is reset to "on". Assuming, however that the sheet feeder routine flag setting is "on", for example due to the jam condition having been cleared, then, the routine 400 implements the step 414 of delaying routine processing for a predetermined time interval, such as two milliseconds, to allow for any transient back e.m.f. voltage discontinuities occurring incident to deenergization of the d.c. motor 110 to be damped. Thereafter, the routine 400 causes the microprocessor 122 (FIG. 1) to sample the output signal 136 from the comparator 125 to determine whether or not the d.c. motor back e.m.f. voltage signal 126 is greater than the reference voltage signal 127, step 416 (FIG. 7).

Assume as in normal case that the back e.m.f. voltage is greater the reference voltage, step 416 (FIG. 7), due to the rollers 44, 52 and 56 having been accelerated to a sheet feeding speed which is slightly greater than the desired sheet feeding speed of 26 inches per second, because the rollers 44, 52 and 56 are not then under a load. At this juncture the sheet feeding speed is substantially equal to the desired sheet feeding speed, and, in order to maintain the desired sheet feeding speed, the routine 400 implements the successive steps of delaying processing one-half a millisecond, followed by the step 420 of clearing the jam counter, i.e., resetting the count to zero, and again implementing the step 416 of determining whether or not the motor back e.m.f. voltage is greater than the reference voltage. Assuming that the inquiry of step 416 remains affirmative, the routine 400 repeatedly implements steps 418, 420 and 416 until the back e.m.f. voltage is not greater than the reference voltage, at which juncture it may be concluded that the sheet feeding speed of the rollers 42, 52 and 56 is no longer substantially at the desired sheet feeding speed. Accordingly, the routine 400 then implements the step 424 of incrementing the jam counter by a single count, followed by the step 426 of determining whether or not the number of times the jam counter has been incremented is equal to a predetermined maximum count of, for example, 100 counts. And, assuming that the maximum count has not been reached, step 426, the microprocessor 122 causes the FET power switch 120 to be energized, step 428, for applying a d.c. voltage, such as the power supply voltage 134, to the motor 110, followed by delaying processing for a fixed time interval, step 430, of preferably two milliseconds, and then deenergizing the FET switch 431, step 431, whereby the FET power switch 120 is energized for a predetermined time interval of preferably two milliseconds. Thereafter, processing is returned to step 412. Accordingly, each time the routine 400 successively implements steps 414, 416, 424, 426, 428, 430 and 431, the FET switch 120 and thus the d.c. motor 110, is energized for a fixed time interval, steps 428, 430 and 431, and the jam counter is incremented, step 424, unless there is a determination made in step 416 that the d.c. motor back e.m.f. voltage is greater than the reference voltage, i.e., that the d.c. motor 110 is being driven substantially at the constant sheet feeding speed.

Referring back to step 416 (FIG. 7), and assuming that the comparison initially indicates that the back e.m.f. is not greater than the reference voltage, indicating that the sheet feeding rollers 44, 52 and 56 were not accelerated substantially to the desired sheet feeding speed of 26 inches per second in the course of implementation of steps 402, 404, and 408, then, the routine 400 continuously successively implements step 424, 426, 428, 430, 431, 412, 414 and 416 until, as hereinbefore discussed the back e.m.f. voltage exceeds the reference voltage, step 416, before the jam count maximizes, step 426, or the jam count maximizes, step 426, before the back e.m.f. voltage exceeds the reference voltage.

Since each of such jam counts, step 426 (FIG. 7), is due to a determination having been made that the d.c. motor back e.m.f. voltage is not greater than the reference voltage, step 416, it may be concluded that there is no d.c. motor back e.m.f. voltage when the jam count reaches the maximum count, step 426. That is, it may be concluded that the d.c. motor 110 is stalled due to a sheet feeding jam condition occurring in the mailing machine 10. Accordingly, if the jam count has reached the maximum count, the routine 400 implements the successive steps of setting the sheet feeder flag "off" step 432 causing the keyboard service lamp 266 to commence blinking, step 434, storing an error code 275 (FIG. 5A), i.e., error code 41, in both the RAM 123 (FIG. 1) and NVM 274 corresponding to a current malfunction condition in the machine 10 and setting a machine error flag, step 436, for the main line program 300 (FIG. 6), step 384. Thereafter, the routine (FIG. 7) 400 returns processing to step 401. Whereupon, assuming that the motor jam condition is not cleared, the routine 400 will continuously loop through step 401 until the jam condition is cured and the "off" flag setting is cleared.

As shown in FIG. 8, according to the invention, the shutter bar routine 500 commences with the step 502 of determining whether or not the shutter bar routine flag setting is "off" due to an error event occurring, such as the shutter bar 72 (FIG. 2) having been stopped in the course of being driven out of or into locking engagement with the drive gear 66 in the course of prior operation thereof. Assuming that the shutter bar routine flag setting is "off", the routine 500 continuously loops through step 502 until the shutter bar routine flag "off" setting has been cleared, i.e., reset to "on" for example due to jam condition thereof having been cured. Assuming as is the normal case that the shutter bar routine flag setting is "on" then, the routine 500 implements the step 503 of clearing a counter for counting the number of positive duty cycle energization pulses the microprocessor 122 (FIG. 2) thereafter applies to the FET power switching module 160 for driving the d.c. motor 140. Thereafter the routine 500 implements the successive steps 504 and 506 of energizing the appropriate lead, 161A or 161B, of FET power switch module 160 (FIG. 2), depending upon the desired direction of rotation of the d.c. motor 140, with a first, fixed, pulse-width-modulated, signal, such as the signal 505, which preferably includes a single positive duty cycle energization pulse of from 500 to 800 microseconds in duration, step 504, followed by a single deenergization time interval of from 500 to 200 microseconds in duration, step 506, so as to provide one energization pulse during a one millisecond time interval. The signal 505, which is amplified by the FET switching module 160 and applied thereby to the d.c. motor 140, thus drives the motor 140 in the appropriate direction of rotation corresponding to the selected lead 161A or 161B, to cause the cam 150 to pivot the shutter bar lever arm 80 in the proper direction about the pivot pin 156 for causing the arm 80 to slidably move the shutter bar 70 partially through the distance d.sub.2 for movement thereof either out of or into locking engagement with the drum drive gear 66. Thereafter, the routine 500 (FIG. 8) implements the step 507 of incrementing the pulse counter, cleared in step 503, a single count, followed by the step 508 of determining whether or not the shutter bar sensor 170 (FIG. 3) is blocked due to the shutter bar lobe's leading edge 172, or 174, being sensed thereby, indicating that the movement of the shutter bar 72 (FIG. 2) either out of or into locking engagement with the drum drive gear 66 has commenced. Assuming the shutter bar sensor 170 (FIG. 3) is not blocked, then, the routine 500 (FIG. 8) implements the step 510 of determining whether or not a count of the number of energization pulses applied to the FET switch 140, step 504, has reached a first maximum count of preferably 15 pulses. Assuming the pulse count is less than the maximum count, then, the routine 500 causes processing to be returned to step 504 and to continuously successively implement steps 504, 506, 507, 508 and 510, until either the shutter bar sensor 170 is blocked, step 508, before the pulse count maximizes, step 510, or the pulse count maximizes, step 510, before the shutter bar sensor 170 is blocked, step 508. Assuming the shutter bar sensor 170 is blocked, step 508, before the pulse count maximizes, step 510, then, the routine 500 implements the step 512 of setting a shutter bar sensor blocked flag and returning processing to step 510. Whereupon the routine 500 continuously successively implements steps 510, 504, 506, 507, 508, and 512 until the pulse count maximizes, step 510, followed by implementing the successive steps 514 and 516 of again energizing the appropriate lead, 161A or 161B, of FET switching module 160, depending on the desired direction of rotation of the d.c. motor 140, with a second, fixed, pulse-width-modulated, signal 505, which preferably includes a single positive duty cycle energization pulse of from 250 to 400 microseconds in duration, step 514, and thus a duty cycle which is a predetermined percentage of, i.e., preferably 50% of, the duty cycle of the first pulse-width-modulated signal 505, followed by a single deenergization time interval of from 750 to 600 microseconds in duration, step 516, so as to provide one energization pulse during a one millisecond time interval. On the other hand, with reference to step 508, assuming the shutter bar sensor 170 is not blocked, before the pulse count maximizes, step 510, then, the routine 500 directly implements the successive steps 514 and 516 without having set the shutter bar sensor blocked flag in step 512. Accordingly, whether or not the shutter bar sensor blocked flag is set, step 512, the routine 500 implements the successive steps 514 and 516 of energizing the FET switching module 160 with the second pulse-width-modulated signal 505 hereinbefore discussed. Accordingly, during the initial 15 millisecond time interval of energization of the FET switch, the sensor 170 may or may not have been blocked by the shutter bar 72, that is, the shutter bar 72 may or may not have commenced movement in either direction. And, in either eventuality the FET switching module 160 is again energized to either initially move or continue to move the shutter bar 72. Thereafter, the routine 500 implements the step 517 of incrementing the pulse counter, cleared in step 503, a single count, followed by the 518 determining whether or not the shutter bar sensor 170 is then or was previously blocked. Assuming the shutter bar sensor 170 is not blocked, then, the routine 500 implements the step 520 of determining whether or not the sensor 170 is unblocked and, in addition, whether or not the sensor blocked flag is also set. Thus, the inquiry of step 520 is concerned with the occurrence of two events, that is, that the shutter bar sensor 170 (FIG. 3) becomes blocked and, thereafter, becomes unblocked by the lobe, 166 or 166A. Assuming that the shutter bar sensor 170 is not unblocked, whether or not the blocked sensor flag is set, or that the sensor 170 is unblocked but the blocked sensor flag is not set, then the routine 500 implements the step 522 of determining whether or not the total count of the number of energization pulses applied to the FET switch 140, step 514, has reached a total maximum fault count of preferably 75 pulses. Assuming the total pulse count has not maximized, then, the routine 500 causes processing to be returned to step 514 and to continuously successively implement steps 514, 516, 517, 518, 520 and 522 until the shutter bar sensor is blocked and thereafter unblocked, step 520. Assuming as is the normal case that the shutter bar sensor is blocked, step 518, before the total pulse count has maximized, step 522, then, the routine 500 implements the step 523 of setting the sensor blocked flag before implementing step 520. If however, the shutter bar sensor is not thereafter additionally unblocked, step 520, before the total pulse count has maximized, step 522, the routine 500 concludes that either a fault in the postage meter 14 or a jam condition in the base 12 is preventing shutter bar movement. Accordingly, the routine 500 implements the step 524 of setting a shutter bar time out flag in the main line routine 300 (FIG. 6), step 324 or 382, depending upon the direction of attempted movement of the shutter bar 72, followed by the step 526 of setting the shutter bar routine flag "off" and returning processing to step 502. Whereupon, processing will continuously loop through step 502 until the postage meter fault or jam condition is cured as hereinbefore discussed in connection with the discussion of the mail line program 300 (FIG. 6) and the shutter bar routine flag is set "on" step 502 (FIG. 8) At this juncture it will be assumed, as is the normal case, that before the total pulse count has maximized, step 522, the shutter bar sensor 170 is timely unblocked after having been blocked, step 520, i.e. typically at the end of a desired predetermined time interval of preferably 30 milliseconds and thus typically when the pulse count is equal to 30. Thus the routine 500 answers the inquiry of step 520, and implements the step 527 of storing the pulse count which, due to each count occurring during successive time intervals of one millisecond, corresponds to the actual time interval required to drive the shutter bar 72 (FIG. 2) through substantially the distance d.sub.2, without seating the same, and thus substantially either out of or into locking engagement with drum drive gear 66. Thereafter, in order to slow down movement of the shutter bar 72 (FIG. 2), before the positively seating the same, the routine 500 preferably implements the step 528 (FIG. 8) of causing the microprocessor 122 (FIG. 2) to apply a two millisecond reverse energization pulse, to the FET switch lead 161A or 161B, as the case may be, which is opposite to the lead 161A or 161B to which the energization pulses of steps 504 and 514, were applied. Thereafter, the routine 500 implements the step 530 of delaying routine processing for a fixed time interval, of preferably twenty milliseconds, followed by the step 531 of clearing the pulse counter. Whereupon, in order to positively seat the shutter bar while at the same time easing the shutter bar 72 to a stop to reduce the audible noise level thereof, the routine 500 implements the successive steps 532 and 534 of energizing the FET switching module 160 with a third fixed pulse width-modulated signal, of preferably a single positive duty cycle energization pulse of 500 microseconds in duration, followed by a single deenergization time interval of 10 milliseconds in duration, step 534. Thereafter, the routine 500 implements the step 535 of incrementing the pulse counter cleared in step 531 by a single count, followed by the step 536 of determining whether or not the number of energization pulses applied in step 532 is equal to a predetermined maximum count, of preferably four pulses. Assuming that the pulse count has not maximized, then, the routine 500 returns processing to step 532 and continuously successively implements steps 532, 534 and 536 until the pulse count maximizes step 536. Whereupon the routine implements the step 526 of setting the shutter bar routine flag "off" and returning processing to step 502, which, as hereinbefore discussed, is continuously implemented by the routine 500 until the shutter bar routine flag setting is "on".

As shown in FIG. 9, according to the invention, the postage meter acceleration and constant velocity routine 600 commences with the step 602 of determining whether or not the postage meter acceleration and constant velocity routine flag setting is "off" as is the normal case, until, in the course of execution of the main line program 300 (FIG. 6), the program 300 implements the step 330 of setting the acceleration and constant velocity routine flag "on". Assuming that the acceleration routine flag setting is "off", step 602 (FIG. 9), then, the routine 600 continuously implements step 602 until the "off" flag setting is cleared. Whereupon, the routine 600 implements the step 603 of clearing and starting a time interval timer for measuring the actual time interval required to accelerate the postage printing drum 64 (FIG. 1) from its home position and into printing and feeding engagement with a sheet 22 fed therebeneath. Thereafter, the routine 600 (FIG. 9) implements the successive steps 604 and 606 of energizing the FET run switch 202 (FIG. 2) with a fixed, pulse-width-modulated, signal, such as the signal 605, which preferably includes a single positive duty cycle energization pulse of 1.5 milliseconds in duration, step 604, followed by a single deenergization time interval of 2 milliseconds in duration, step 606, so as to provide one energization pulse having a positive polarity duty cycle during a 3.5 millisecond time interval. Thereafter, the routine 600 implements the step 608 of causing the microprocessor 122 (FIG. 2) to sample the output signal 248 from the comparator 208 to determine whether or not the d.c. motor back e.m.f. voltage signal 210 is greater than the reference voltage signal 214. If the comparator signal 248 indicates that the back e.m.f. voltage is not greater than the reference voltage, step 608 (FIG. 9), it may be concluded that the postage printing drum 24 has not yet completed acceleration to the predetermined constant velocity (FIG. 5), since the reference voltage corresponds to the predetermined constant velocity that the drum 24 (FIG. 1) is preferably driven for feeding and printing postage indicia on sheets 22 at a speed corresponding to the sheet feeding speed of the sheet feeding rollers 44, 52 and 56. Thus if the inquiry of step 608 (FIG. 9) is negative, the routine 600 returns processing to step 604, followed by continuously successively implementing steps 604, 606 and 608 until the d.c. motor back e.m.f. voltage is greater than the reference voltage. Whereupon it may be concluded that the postage printing drum 64 is being driven substantially at the predetermined constant velocity causing the periphery thereof to be driven at the desired sheet feeding and printing speed. Accordingly, the routine 600 then implements the successive steps of stopping the acceleration time interval timer, step 609, followed by the step 609A of storing the actual time interval required for acceleration of the drum 64 (FIG. 1) to the constant velocity (FIG. 5). Thereafter, in order to drive the drum 64 to maintain the velocity constant, the routine 600 (FIG. 9) preferably implements the successive steps 610 and 612 of energizing the FET run switch 202 with a second, predetermined, pulse-width-modulated signal, which preferably includes a single positive duty cycle energization pulse of 4 milliseconds in duration, step 610, followed by a single deenergization time interval of 2 milliseconds in duration, step 612, so as to provide one energization pulse having a positive polarity duty cycle during a six millisecond time interval. Whereupon, the routine 600 implements the step 614, corresponding to step 608, of determining whether or not the d.c. motor back e.m.f. voltage is greater than the reference voltage, indicating that the postage printing drum 64 is being driven faster than the predetermined constant velocity (FIG. 5) corresponding to the reference voltage, and thus faster than the sheet feeding speed of the rollers 44, 52 and 56 (FIG. 1). Assuming that the back e.m.f. voltage is greater than the reference voltage, step 614 (FIG. 9) the routine 600 continuously successively implements the successive steps of delaying routine processing for 500 microseconds, step 616, followed by returning processing to and implementing step 614, until the back e.m.f. voltage is not greater than the reference voltage. At which time it may be concluded that the d.c. motor velocity is less than, but substantially equal to, the constant velocity corresponding to the reference voltage, and thus less than, but substantially equal to, the sheet feeding speed of the sheet feeding rollers 44, 52 and 56. At this juncture, the routine 600 implements the step 618 of determining whether or not the postage meter acceleration and constant velocity routine flag setting is "off", indicating that the constant velocity time interval t.sub.2 (FIG. 5) has ended, so as to determine whether or not the drum 64 should or should not be decelerated to the home position. If the flag setting is "on" in order to maintain constant velocity of the drum 64, the routine 600 (FIG. 9) continuously successively implements the successive steps 610, 612, 614, 616 and 618 until the postage meter routine flag setting is "off". On the other hand, if the flag setting is "off" step 618, the routine 600 returns processing to step 602. Whereupon the drum 64 commences coasting and, as hereinbefore discussed, the routine 600 continuously implements step 602 until the postage meter acceleration routine flag is reset to "on".

As shown in FIG. 10, according to the invention, the postage meter deceleration and coasting routine 700 commences with the step 702 of determining whether or not the deceleration and coasting routine flag setting is "off", as is the normal case, until, in the course of execution of the main line program 300 (FIG. 6), the program 300 implements the step 364 of setting the deceleration and coasting routine flag "on". Accordingly, if the inquiry of step 702 (FIG. 10) is negative, the routine 700 continuously implements step 702 until the deceleration and coasting routine flag setting is "on". Whereupon the routine 700 implements the step 704 of setting the acceleration and constant velocity routine flag "off", which, as previously discussed, results the routine 600 (FIG. 9) returning processing to step 602. Thereafter, the routine 700 (FIG. 10) implements the successive steps of delaying routine processing for a time interval of preferably 100 microseconds, step 708, followed by the step 709 of clearing and starting a deceleration time interval timer for measuring the actual time interval required to decelerate the postage printing drum 64 (FIG. 1) out of feeding engagement with a sheet 22 being fed thereby and to return the drum 64 to its home position. Thereafter, in order to commence deceleration of the drum 64, the routine 700 initially implements the successive steps 710 and 712 of energizing the FET brake switch 204 (FIG. 2) with a first, fixed, pulse-width modulated signal, such as the signal 709, which preferably includes a single positive duty cycle energization pulse of 4 milliseconds in duration, step 710, followed by a single deenergization time interval of 2 milliseconds in duration, step 712, so as to provide one energization pulse having a positive polarity duty cycle during a 6 millisecond time interval. Then, the routine 700 implements the step 713 of clearing a counter for counting the number of positive duty cycle energization pulses that the microprocessor 122 (FIG. 2) will thereafter apply to FET brake switch 204 in order to continue decelerating rotation of the drum 64 to its home position. Thus the routine 700 (FIG. 10) thereafter implements the successive steps 714 and 716 of energizing the FET brake switch 204 with a second fixed, pulse-width-modulated signal 709, which preferably includes a single positive duty cycle energization pulse of one milliseconds in duration step 714, followed by a single deenergization time interval of 2 milliseconds in duration step 716, so as to provide one energization pulse having a positive duty cycle polarity during a 3 millisecond time interval. Whereupon, the routine 700 implements the successive steps of incrementing the pulse counter, step 717, which was cleared in step 713, a single count, followed by the step 718 of determining whether or not the pulse count applied in step 714 is equal to a predetermined maximum count, of preferably 6 pulses. Assuming that the pulse count has not maximized step 718, then the routine 700 returns processing to step 714 and continuously successively implements steps 714, 716 and 718 until the pulse count maximizes, step 718. At this juncture, rotation of the postage printing drum 24 will have been decelerated for a predetermined time interval t.sub.4 (FIG. 5) of preferably substantially 24 milliseconds of the 40 milliseconds t.sub.3 preferably allotted for returning the drum 64 to its home position. Thus the drum 64 will have been decelerated sufficiently to permit the drum 24 (FIG. 1) substantially to coast to its home position. Accordingly, the routine 700 then implements the step 719 of reducing the value of the reference voltage signal 214 (FIG. 2) provided to the comparator 208 by the microprocessor 122, followed by the successive steps 720 and 722 of energizing the FET run switch 202 with a first, fixed, pulse-width modulated signal 605, which includes a single positive duty cycle energization pulse of preferably 500 microseconds in duration, step 720, followed by a single deenergization time interval of two milliseconds in duration, so as to provide one positive duty cycle energization pulse during a two and one-half millisecond time interval. Whereupon the routine 700 implements the step 724 of commencing determining whether or not the microprocessor 122 (FIG. 2) has received the last transition signal 240, due to the trailing edge 244 (FIG. 4) of the printing lobe 226 being detected by the sensor 232, indicating that the postage printing drum 64 (FIG. 1) has returned to its home position, step 724. Assuming the drum home position signal 240 has not been received, step 724, then, the routine 700 implements the step 726 of causing the microprocessor 122 (FIG. 2) to sample the comparator output signal 248 to determine whether or not the d.c. motor back e.m.f. signal 210 is greater than the reduced reference voltage signal 214. Thus, although the drum 64 will have initially been driven to its home position since the reference voltage has been reduced, the comparator 208 will at least initially indicate that the d.c. motor back e.m.f. voltage is greater than the reduced reference voltage, step 726, (FIG. 10) indicating that the d.c. motor is rotating too fast with the result that the routine 700 will continuously successively implement the successive steps of delaying routine processing for 500 microseconds, step 728, allowing the drum to coast to the home position, followed by again implementing step 726, until the back e.m.f., voltage is no longer greater than the reduced reference voltage. At this juncture it is noted that although the drum home position signal 240 (FIG. 2) has not been received, since the d.c. motor back e.m.f. is less than the reference voltage it may be concluded that the drum 64 has coasted substantially to the home position. Thus, the routine 700 (FIG. 10) then implements the successive steps of stopping the deceleration time interval timer, step 729, set in step 709 followed by storing the actual deceleration time interval, step 729A. Whereupon the microprocessor 122 drives the drum 64 to its home position by returning processing to step 720 and successively implementing steps 720, 722 and 724, with the result that the drum home position signal 240 is received, step 724. Thus, due to utilizing a reduced reference voltage, when comparing the same to the motor back e.m.f. voltage, the drum 64 is permitted to coast under the control of the microprocessor 122 until just prior to returning to its home position, at which juncture the drum is driven to its home position under the control of the microprocessor 122. Thereafter, the routine 700 implements the step 730 of energizing the FET brake switch 204 with a single positive polarity duty cycle pulse of thirty milliseconds in duration, to positively stop rotation of the drum 64 (FIG. 2) at the home position. Whereupon the routine 700 (FIG. 10) implements the successive steps of setting a postage meter cycle end flag for the main line program, step 732, followed by causing the deceleration and coasting routine flag to be set to "off", step 734, and then returning processing to step 702, which, as hereinbefore discussed, is continuously implemented until the postage meter routine deceleration and coasting routine flag setting is "on".

As hereinbefore noted, in the course of implementation of the shutter bar routine 500 (FIG. 8), and, in particular, in the course of implementation of step 527, the actual time interval required to drive the shutter bar 72 (FIG. 2) in either direction through the distance d.sub.2 is stored during each sequence of operation of the routine 500 (FIG. 8). Correspondingly, in the course of implementation of the postage meter acceleration and constant velocity routine 600 (FIG. 9) and, in particular in step 609A thereof, the actual time interval required to accelerate the postage printing drum 64, from rest to the desired sheet feeding and printing speed of 26 inches per second, is stored during each sequence of operation of the routine 600 (FIG. 9). And, in the course implementation of the postage meter deceleration and coasting routine 700 (FIG. 10), and, in particular, in step 729A thereof, the actual time interval required to decelerate the postage printing drum 64, from the constant sheet feeding speed thereof to substantially at rest at the home position thereof, is stored during each sequence of operation of the routine 700 (FIG. 10). Moreover, as hereinbefore discussed, each sequence of operation of the shutter bar, acceleration and deceleration routines 500 (FIG. 8), 600 (FIG. 9) and 700 (FIG. 10), is under the control of the main line program 300 (FIG. 6), which preferably includes the step 390, implemented in the course of each sheet 22 being fed through the machine 10, of making successive or parallel determinations as to whether the stored actual value of the time interval for driving the shutter bar in either direction is not equal to the preferred time interval of 30 milliseconds, whether the stored actual values of the time interval for accelerating the postage meter drum is not equal to the preferred time interval of 40 milliseconds, and whether the stored actual value of time interval for deceleration of postage meter drum is not equal to 40 milliseconds, step 390. Assuming the inquiry of step 390 is negative, the routine 300 returns processing it idle, step 306. Assuming however, that the inquiry of step 390 is affirmative, with respect to one or more of the determinations, then, the routine 300 implements the step 392 of selectively changing the duty cycle of the energization pulses provided to the H-bridge FET module 160 (FIG. 2) or FET run switch 202, or both, during each sequence of operation thereof, by predetermined incremental percentages or amounts tending to cause the shutter bar drive motor 140 or postage meter drum drive motor 180, or both, to timely drive the shutter bar 72 or timely accelerate or decelerate the drum 64, as the case may be, in accordance with the preferred, design criteria, time intervals noted above.

As shown in FIG. 11, according to the invention the microprocessor 122 is preferably additionally programmed to include a power-up routine 800 which is called up in response to the operator manually moving the power switch 132 (FIG. 1) to the "on" position thereof to energize the d.c. power supply 130 and thus the mailing machine base 12. The routine 800 preferably commences with the step 801 of conventionally initializing the microprocessor 122. Step 801 generally includes establishing the initial voltage levels at the microprocessor interface ports which are utilized for sending and receiving the signals 275, 272, 134, 176, 175, 240, 136 and 248 to and from the keyboard, test key, sensors and comparator 250, 270, 97A, 99A, 170, 232, 125, and 248, (FIG. 1, 2, 3 and 4) for controlling the various structures of the mailing machine base 12, and setting the interval timers and event counters of the microprocessor 122. Thereafter the microprocessor 122 executes the step 802 (FIG. 11) of clearing the RAM 123 (FIG. 1) of current malfunction data, as a result of which the octal error codes 275 (FIG. 5A) stored in the NVM 274 as current malfunction condition data thereafter correspond to historical malfunction condition data. Whereupon the routine 800 executes the step 803 of operating the shutter bar 72, which generally entails calling up and implementing the shutter bar routine 500 (FIG. 8). Thereafter the routine 800 (FIG. 11) executes the step 804 of determining whether or not the shutter bar 72 has been operated. Assuming the shutter bar 72 (FIG. 2) does not operate, step 804, for example, because the shutter bar 72 is withdrawn from drum driven gear slot 70 when driven in one direction, but not is not reinserted therein when driven in the opposite direction due to the gear slot 70 not remaining aligned therewith, then, the routine 800 (FIG. 19) implements the step 805 of causing the postage printing drum 64 (FIG. 1) to be drive to its home position for realignment of the drive gear slot 70 with the shutter bar 72. Step 805 generally entails calling up and causing implementation of the postage meter deceleration and coasting routine 700 (FIG. 10). Thereafter the routine 800 (FIG. 11) repeatedly implements steps 803 and 804 until the inquiry of step 804 is affirmatively answered. Whereupon the routine 800 executes the step 806 of determining the voltage level of the shutter bar sensor 168 (FIG. 2), while the shutter bar 72 is not being operated, followed by the step 807 of determining whether that sensor voltage level is less than two (2) volts. Assuming the shutter bar sensor voltage level is less two volts, step 807, then, the microprocessor 122 executes the step 808 of causing an error code 275 (FIG. 5A) corresponding to a "bad" shutter bar sensor, i.e., octal code 52, to be stored in both the RAM 123 (FIG. 1) and NVM 274 as a current malfunction condition code. Assuming, however that the inquiry of step 807 is negative, then, the microprocessor 122 implements the step 809 of determining whether or not the shutter bar sensor voltage level is less than four and one-half (41/2) volts, and, assuming that it is, the microprocessor 122 executes the step 810 of causing an error code 275 (FIG. 5A) corresponding to a "dirty" shutter bar sensor, i.e., octal code 22, to be stored in the RAM 123 and NVM 274. Assuming the inquiries of steps 807 and 809 are both negative, indicating that the shutter bar sensor 168 is both good and not dirty, or one or the other of the steps 808 or 810 are implemented, then the routine 800 executes the step 811 of determining the voltage level of the sheet sensor 97A (FIG. 1), while a sheet 22 is not being fed through the machine 10, followed by the step 812 (FIG. 11) of determining whether or not the shut sensor voltage level is less than four and one-half (41/2) volts. Assuming the inquiry of step 812 is affirmative, then the microprocessor 122 executes the step 813 of causing an error code 275 (FIG. 5A) corresponding to a "dirty" sheet sensor 97A, i.e., octal code 25, to be stored in both the RAM 123 and NVM 274. It is noted that the routine 800 does not implement a step, corresponding to the aforesaid step 808, to determine whether the sheet sensor 97A is "bad" inasmuch as if it is, the sheet feeding structure would continuously operate and, as long as it is operative the bad sensor 97A may be replaced at the leisure of the operator. Accordingly, assuming the inquiry of step 812 is negative, indicating that the sheet sensor 97A is clean, or step 813 is implemented, then, the routine 800 causes the microprocessor 122 to execute the step 814 of determining the voltage level of the trip sensor 99A, while a sheet 22 is not being fed through the machine 10, followed by the step 815 of determining whether or not the trip sensor voltage level is less than two and one-quarter volts, and assuming that it is, then executing the step 816 of storing an error code 275 corresponding to a "bad" trip sensor 97A, i.e., octal code 53, in the RAM 123 and NVM 274. Assuming however that the inquiry of step 815 is negative, then, the routine 800 implements the step 817 of determining whether or not the trip sensor voltage level is less than four and one-half (4.5) volts, and, assuming that it is, executing the step 818 of storing an error code 275 corresponding to "dirty" trip sensor 97A, i.e., octal code 23, in the RAM 123 and NVM 274. Assuming that the inquiries of steps 815 and 817 are both negative, indicating that the trip sensor is both good and clean, or either of the steps 816 or 818 is implemented, then, the routine 800 executes the step 819 of determining the voltage level of the drum sensor 230 (FIG. 2), while the drum driving structure is not being operated, followed by the step 820 of determining whether or not the drum sensor voltage level is less than one (1) volt, and, if it is, implementing the step 821 of storing as above an error code 275 corresponding to "bad" drum sensor 230, i.e., octal code 51. Assuming, however that the inquiry of step 820 is negatively answered, then, the routine 800 causes the microprocessor 122 to execute the step 823 of storing as above an error code 275 corresponding to a "dirty" drum sensor 230, i.e., octal code 21. Assuming, however, that both of the inquiries of steps 820 and 822 are negatively answered, indicating that the drum sensor 230 is both good and clean, or either of the steps 821 or 823 is implemented, then, the routine 800 implements the step 824 of determining whether or not error code 23, which corresponds to a "dirty" trip sensor 99A, or error 53 which corresponds to a "bad" trip sensor 99A, have been stored. Assuming the inquiry of step 824 is affirmatively answered, then the routine implements the step 825 of setting the sheet feeder routine flag "on" for a two second time interval, which results in the routine 800 calling up and implementing the sheet feeder routine 400 for a two second time interval, in order to cause any sheet 22 (FIG. 1) which may be located in the path of travel 38 and in either full or partial blocking relationship with the trip sensor 99A, to be fed out of the machine 10 and thus out of blocking relationship with the trip sensor 99A. Thereafter, assuming the inquiry of step 824 is negatively answered, indicating that the trip sensor is both good and clean, or step 825 has been implemented, the routine 800 implements the step 826 of determining whether one or more of the error codes 21, 22, 23 or 25 is stored, or alternatively determining whether one or more of the inquiries of steps 809, 817, 812 or 822 has been affirmatively answered. Assuming the inquiry of step 826 is affirmatively answered, then, the routine 800 implements the step 827 of storing an error code 275, i.e., octal code 50, corresponding to a "dirty" calibration sensor in both the RAM 123 and NVM 274 to ensure that this malfunction condition is available to service personnel in the course of calibrating the sheet feeding structure of the machine 10. Assuming, however, that the inquiry of step 826 is negatively answered, then, the routine 800 implements the step 828 of determining whether or not the test key 270 (FIG. 1) has been manually actuated, for example at the time of completion of manufacture of the mailing machine base 12 or thereafter in the course of the operational life of the base 12, preferably by a qualified manufacturer's representative having access to the test key 270. Assuming that the test key 270 is not actuated, step 826, the routine 800 implements the step 829 of calling up and commencing implementation of the main line program 300 (FIG. 6). Whereupon, the main line program 300 is implemented as hereinbefore discussed. On the other hand, assuming the test key 270 is actuated, then, before implementing the step 829 of calling up and implementing the main line program 300 (FIG. 6), the routine 800 (FIG. 11) preferably initially implements the step 827 of calling up and implementing the sheet feeder calibration routine 850 (FIG. 12) followed by the step 828 of calling up and implementing the print drum calibration routine (FIG. 13). Alternatively, when the test key 270 (FIG. 1) is actuated, step 826 (FIG. 11) the routine 800 may only call up and implement the print drum calibration routine, step 828, before calling up and implementing the main line program 300 (FIG. 6).

As shown in FIG. 12, the sheet feeder, or feeding speed, calibration routine 850 commences with the step 852 of causing the microprocessor 122 (FIG. 1) to provide a reference voltage signal 127 (FIG. 1) predetermined by suitable data stored in the non-volatile memory (NVM) 274 of the microprocessor 122, and fetched therefrom for use by the routine 850, to correspond to the desired sheet feeding speed, of twenty-six inches per second, of the sheet feeding rollers 44, 52 and 56. Thereafter the routine 850 implements the step 854 of setting the sheet feeder routine flag "on", which results in the routine 850 calling up and implementing the sheet feeder routine 400 (FIG. 7). As the sheet feeder routine 400 is being implemented, the routine 850 (FIG. 12) concurrently implements the step 856 of determining whether or not the sheet feeder sensing structure 99A (FIG. 1) has detected a sheet 22 fed to the mailing machine base 12, and, assuming that it has not, the routine 850 (FIG. 12) continuously loops through step 856. At this juncture, the operator preferably feeds one of the elongate cut tapes 22A, having a longitudinally-extending length of preferably six inches, to the mailing machine base 12, as a result of which the inquiry of step 856 (FIG. 12) becomes affirmative, and, the routine 850 implements the step 858 of clearing and starting a timer for counting a time interval from the time instant the sensor 99A (FIG. 1) detects the leading edge 100 of the cut tape 22A to the time instant that the sensor 99A detects the trailing edge 100A of the cut tape 22A. Accordingly, subsequent to starting the timer, step 858 (FIG. 12) the routine 850 implements the step 860 of determining whether or not the sensor 99A (FIG. 1) becomes unblocked after having been blocked. That is, whether the sensor 99A has detected the trailing edge 100A of the cut tape 22A. Assuming the sensor 99A has not detected the cut tape trailing edge 100A, step 860 (FIG. 12), the routine 850 continuously successively implements step 860 until the sensor 99A is unblocked after having been blocked. Whereupon, the routine 850 implements the step 862 of stopping the time interval timer, followed by the step 864 of determining whether the actual, measured, time interval for feeding the six inch cut tape 22A (FIG. 1) is equal to the desired time interval for feeding a sheet, i.e., at a constant speed of 26 inches per second. Assuming the measured and desired time intervals are equal, step 864 (FIG. 12), the routine 850 implements the step 868 of storing the predetermined reference voltage of step 852, as the desired reference voltage for subsequent use by the microprocessor 122 (FIG. 1) for, as hereinbefore discussed, causing sheets 22 to be fed at the desired constant sheet feeding speed of 26 inches per second. Thereafter, the routine 850 implements the step 870 of setting the sheet feeding routine flag "off", followed by the step 872 of returning processing to step 808 (FIG. 11) of the power-up routine 800, for implementation of postage meter, or printing speed, calibration routine 900 (FIG. 13). On the other hand, assuming the actual and desired time intervals are not equal, step 864 (FIG. 12), then, the routine 850 implements the step 874 of calculating a new predetermined reference voltage, which is either greater or less than the initial predetermined reference voltage of step 852, depending upon whether the actual time interval was less than or greater than the desired time interval, step 864, and returns processing to step 856. Whereupon the routine 850 again successively implements steps 856, 858, 860, 862 and 864 and thus makes a second determination, step 864, as to whether the measured and desired time intervals are equal. Assuming at this juncture that the inquiry of step 864 is affirmative, the routine 850 then implements the successive steps 868, 870, and 872 of storing in the NVM 274 (FIG. 1) the calculated reference voltage, step 866 (FIG. 12), which resulted in the measured and desired time intervals being found to be equal in step 864, as the new desired, predetermined, reference voltage for subsequent use by the sheet feeding routine 400 (FIG. 7). Assuming however, that the inquiry of step 866 continues to be negative, the routine 850 continuously implements the successive steps 856, 858, 860, 862, 864 and 874 until the measured and desired time intervals are equal, followed by the step 868 of storing the latest calculated reference as the new desired reference voltage for use by the sheet feeding routine 400 (FIG. 7) before implementing the successive step 870 and 872 (FIG. 12) of setting the sheet feeder routine flag "off" and returning processing to the power-up routine 800 as hereinbefore discussed.

As shown in FIG. 13, the postage meter, or printing speed, calibration routine 900 preferably commences with the step 902 of determining whether or not the print key 262 (FIG. 2) is actuated, and, assuming that it is not actuated, continuously successively implements step 902 (FIG. 13) until it is actuated. Whereupon, the routine 900 implements the step 904 of causing the microprocessor 122 (FIG. 2) to provide a reference voltage signal 214 (FIG. 2), predetermined by suitable data stored in the NVM 274 (FIG. 1) of the microprocessor 122 and fetched therefrom for use by the routine 900, corresponding to the desired constant velocity (FIG. 5) at which the postage printing drum 64 (FIG. 2) is to be driven such that the peripheral feeding, or printing, speed thereof corresponds to the preferred sheet feeding speed of 26 inches per second. Thereafter, the routine 900 implements step 905 of setting the calibration flag, followed by the step 906 of causing the main line program 300 (FIG. 6) to be implemented.

As shown in FIG. 6, when the calibration flag is set, step 310, the main line program 300 bypasses steps 311, 311B, 312, 314, 316, 317, 318, 320 and 320B, which are concerned with implementation of the service mode routine 950 (FIG. 13A) and with operation of the sheet feeding structure (FIG. 1). Thus, if the calibration flag is set, step 310, the routine 300 does not implement the step 314 of setting the sheet feeder routine flag "on" as a result of which the sheet feeding routine 400 (FIG. 7) is not implemented. Rather, the routine 300 (FIG. 6) loops to step 321 to start counting the time delay t.sub.d (FIG. 5), of 80 milliseconds, during which a sheet 22 (FIG. 1) would normally be fed from the time instant it is sensed by the sensor 99A to the time instant acceleration of the postage printing drum 64 is commenced, followed by implementing the step 322 of setting the shutter bar routine flag "on" and then implementing the remainder of the main line program 300, including driving the drum 64 through a single revolution.

Accordingly, after setting the calibration flag, step 905 (FIG. 13), and causing the main line program 300, step 906, to be concurrently implemented, the routine 900 (FIG. 13) implements the step 908 of determining whether or not the postage meter trip cycle is complete, that is, determining whether or not the postage meter trip cycle complete flag has been set, step 378 (FIG. 6). Thus the program 900 (FIG. 13) determines whether or not the last transition signal 240 (FIG. 2) has been received by the microprocessor 122, indicating that the trailing edge 244 (FIG. 4) of the printing lobe 226 has been detected by the sensor 232 and thus that the drum 64 (FIG. 1) has been returned substantially to its home position. Assuming that the routine 900 (FIG. 13) makes a determination that the trip cycle is not complete, step 908, then, the routine 900 continuously loops through step 908 until the trip cycle is complete. Whereupon the routine 900 implements the step 910 of determining whether or not the measured, actual, time interval, from the time instant of commencement of constant speed rotation of the drum 64 (FIG. 2) to the time instant that such constant speed rotation is complete, is equal to the desired, predetermined, time interval of 292 milliseconds corresponding to the preferred, predetermined, sheet feeding speed of 26 inches per seconds. In this connection it is noted, as hereinbefore discussed, in the course of implementation of the main line program 300 (FIG. 6) a time interval counter is cleared, in step 356, to commence counting the actual time interval of constant printing speed of rotation of the drum 64, and, in step 363, upon completion of constant speed rotation, the actual time interval of duration thereof is stored. Accordingly, step 910 (FIG. 13) includes the step of fetching the stored, actual, time interval of duration of constant printing speed of rotation of the drum 64 for comparison with the desired time interval. Assuming that the measured and desired time intervals are equal, the routine 900 implements the step 912 of storing the desired reference voltage of step 904 as the reference voltage for, as hereinbefore discussed, causing the drum 64 to feed and print postage indicia at the desired constant printing, and sheet feeding, speed, followed by the successive steps 913 and 914 of clearing the calibration flag set for the main line program 300 (FIG. 6, step 310) and returning processing to step 831 (FIG. 11) of the the power-up routine for implementation of the main line program 300 (FIG. 6). On the other hand, assuming the measured and desired time intervals are not equal, step 910 (FIG. 13), then, the routine 900 implements the step 916 of calculating a new predetermined reference voltage which is either greater of less than the initial predetermined reference voltage of step 904, depending upon whether the measured time interval is less than or greater than the desired time interval. Thereafter, the routine 900 implements a selected processing delay of for example 100 to 500 milliseconds, step 918, to permit completion of implementation of other processing routines, including for example the shutter bar routine 500 (FIG. 8), followed by returning processing to step 905 (FIG. 13). Whereupon the routine 900 continuously successively implements steps 905, 906, 908, 910, 916 and 918 until the measured and desired time intervals are equal, step 910. At which time the routine 900 then implements the successive steps 912, 913 and 914 of storing, step 912, the latest calculated reference voltage, step 916, which resulted in the measured and desired time intervals being found to be equal, step 910, as the new, desired, predetermined, reference voltage for subsequent use by the microprocessor 122 (FIG. 2) for providing the reference voltage signal 214 to the comparator 208 for causing the d.c. motor 180 to drive the drum 64 at the desired printing, and thus sheet feeding, speed of 26 inches per second.

As hereinbefore discussed, in the course of implementation of the main line program 300 (FIG. 6) an inquiry is made at step 311 and again at step 341 as to whether or not the test key 270 (FIG. 1) has been actuated. Since that test key 270 is located beneath the cover 17 and is therefore normally inaccessible to an operator of the machine 10, if the test key 270 is actuated it is normally due to a service person having been called in to return the machine 10 back into service after the main line program 300 (FIG. 6) has executed the step, 340, of calling up and implementing a conventional shut down routine, and the operator has been unable to return the machine 10 (FIG. 1) to service. To assist in servicing the machine 10, and, in particular the mailing machine base 12, the microprocessor 122 is preferably programmed to include a service mode routine 950 (FIG. 13A) which is called up and implemented by the service person in response to actuation of the test key 270 (FIG. 1). Assuming the base 12 is energized when the service person arrives to put the machine 10 back into service, then, the error codes 275 (FIG. 5A) which were stored in both the RAM 123 (FIG. 1) and NVM 274 at any time since the last actuation of the power switch 132 will be stored as current malfunction condition error codes 275 (FIG. 5A). On the other hand, if the base 12 (FIG. 1) is deenergized upon arrival of the service person, then, the service person will have to reenergize the base 12, with the result that the error codes stored in the RAM 123 will have been cleared therefrom, as hereinbefore discussed in connection with the execution of the power up routine 800 (FIG. 11, step 802), but be stored in the NVM 274 (FIG. 1) as historical malfunction condition error codes 275 (FIG. 5). On the other hand, if the machine shut down occurred due to a bad sensor when the machine 10 is energized by the service person, the bad sensor data will be stored in RAM as hereinbefore discussed in connection with the execution of the power-up routine 800 (FIG. 11).

As shown in FIG. 13A, the service mode routine 950 commences with the step 951 of setting up a decrementing error counter to a decimal count of 63, which corresponds to the highest octally coded error code 275 (FIG. 5A), i.e., octal error code 76, which may be assigned to any malfunction condition. Thereafter, the routine 950 implements the step 952 of determining whether the current octally coded error code corresponding the count of 63 is stored in the RAM, i.e., octal error code 76. Assuming that a current code 76 is not stored in RAM, step 952, then the routine 950 implements the step 953 of decrementing the count to a decimal count of 62, followed by the step 954 of determining whether the decimal count is greater than 7,since the lowest seven octal codes 275 (FIG. 5A) are not error codes but rather are utilized for storing data corresponding to seven different machine model numbers. Assuming the inquiry of step 954 is affirmative, step 954, then processing is returned to step 952. Whereupon the routine 950, continuously loops through steps 952, 953 and 954 until the count to which the counter is decremented, step 953, corresponds to an error code 275 (FIG. 5A) identifying an error code 275 stored in RAM and corresponding to a current malfunction condition, step 952. Assuming as is shown in FIG. 5A that the highest error code 275 stored in RAM is the error code 67, then, the routine 950 will continuously loop through steps 952, 953 and 954 until the count is decremented to decimal 56, step 953. Whereupon, the inquiry of step 952 will be affirmatively answered and the routine 950 will implement the step 955 of displaying the error code 67 (FIG. 5A) by energizing the appropriate LEDs 274C of the left and right LED sets 274E and 274F. In addition, the routine 950 (FIG. 13A) causes the service light to blink to indicate that the error code 67 corresponds to a current rather than historical malfunction condition. Accordingly, as shown in FIG. 5A, the two leftmost LEDs 274C of the left LED set 274E would be energized to display the numeral 6 in octal code, and all three LEDs 274C of the right LED set 274F would be energized to display the numeral 7 in octal code, whereby the LED array 214D would display the first and second digits of the error code, respectively, as the numerals 6 and 7. Thus, the LED array 214D visually displays an error code 275 to the service person which may be cross-referenced to written materials in the possession of the service person to determine the malfunction condition corresponding to the error code 67. Accordingly, the service person would be informed by observing the displayed code 67 and referencing such written materials that the postage printing drum 64 (FIG. 1) has timed out, and, more particularly, that the reason for shut down of the machine 10 is that the difference between one or more of the actual and desired time intervals of initial movement, or acceleration, constant velocity or deceleration, of the printing drum was excessive. Whereupon, the service person, either through experience with the machine 10, or through of appropriate use of trouble-shooting information which may be included with the aforesaid written materials, can cure the problem which caused storage of the time-out error code 67. Thereafter, the routine 950 implements the step 956 of determining whether or not the test key 270 (FIG. 1) has again been actuated, and, assuming that it has, causes processing to return to step 953 to decrement the decimal count as hereinbefore discussed to the next current error code stored in RAM 123. Assuming, however that the test key 270, step 952 is not actuated, the routine 956, causes the microprocessor 122 to implement the step 957 of determining whether or not the clear key 273A (FIG. 1) has been actuated, and, assuming that it has, the routine 950 then implements the step 958 of clearing all current and historical error codes 275 (FIG. 5A) from both the RAM 123 (FIG. 1) and NVM 274. Assuming however, that the clear key 273A has not been actuated, step 957 (FIG. 13A), the routine 950 implements the step 959 of determining whether or not one or the other of the print or no-print mode keys, 262 or 264, has been actuated, and, assuming that it has, the routine 950 implements the step 960 of returning processing to the main line program 300 (FIG. 6) and, in particular, to the idle 306 loop thereof. If however, one or the other of the print or no-print keys, 262 or 264 has not been actuated, step 959 (FIG. 13A), then, the routine 950 causes the microprocessor 122 to implement the step 961 of determining whether or not the margin-adjust, or margin selecting, key 273 (FIG. 1) has been actuated, and, assuming that it has not, returns processing to step 956 (FIG. 13A). On the other hand, if the margin-adjust key 273 has been actuated, step 961, then, the routine executes the step 962 of causing the margin-adjust, or margin selecting, routine 985 (FIG. 13B), hereinafter discussed in detail, to be implemented. Accordingly, the routine 950 is constructed and arranged for sequentially accessing and displaying the data stored in RAM 123 which corresponds to each current malfunction condition, commencing with the highest octally coded error code 76 (FIG. 5A) and ending with the lowest octally coded error code 10, as the test key 270, step 956 (FIG. 13A) is successively actuated. Moreover, after displaying each error code 275, the service person must operate one of five separate keys, i.e., the test key, 270 (FIG. 1), clear key, 273A, print or no print key, 272 or 274, or margin-adjust key, 273, to make a choice between moving on to the next lower numbered error code, step 956 FIG. 13A, clearing all codes, step 958, returning processing to the main line program, step 959, or implementing the margin-adjust routine, step 961. Assuming, as is the normal case, that the service person, through initial or repeated actuations of the test key, step 956, accesses and displays an error code 275, step 955, corresponding to a malfunction condition which leads to the service person curing the trouble which resulted in shut down of the machine 10, and, the inquiry of step 954 is negative. At this juncture all currently stored error codes 275A will have been accessed and displayed, but numerous historical error codes 275 may not have been displayed since they were not stored in RAM as current error codes 275. Assuming the clear key, step 957, was not actuated, which would have resulted, as noted above, in all historical error codes 275 being cleared from the NVM, then, in response to a negative determination in step 954 (FIG. 13A), the routine 950 implements the step 963 of again setting up a decrementing error counter to a decimal count of 63, which, as noted above, corresponds to the highest octally coded error code 275 (FIG. 5A), i.e., octal error code 76, which may be assigned to any malfunction condition. Thereafter, the routine 950 implements the step 964 of determining whether there is an error code 275 (FIG. 5A) which is stored in the NVM 274 but not stored in RAM 123 which corresponds to the decimal count 76. If this inquiry of step 964 is negative, then, the routine 950 successively implements step 965, 966 and 964, until the decimal count has been decremented, step 965 to one which corresponds to an error code 275 stored only in the NVM, and not in RAM, and the inquiry of step 964 is thereafter affirmatively answered. Then the routine 950 sequentially implements steps 967 through 974 respectively in correspondence to the implementation of steps 955 through 962, as hereinbefore discussed, to sequentially access and display each of the historical malfunction condition codes 275 which are stored in the NVM but not in RAM, until the inquiry of step 966 is negatively answered, it again being noted that the last seven usable octally coded "error" codes 01 through 07 are not assigned to possible malfunction conditions, but rather to model numbers of machines 10. Assuming then that the inquiry of step 966 is decremented to an error count is not greater than decimal 7, then, the routine further decrements the counter to cause the octal code 275 assigned to the model number of the machine 10 to be displayed until the next actuation of a key 270, 272, 273, 273A or 274. Thereafter the routine 950 implements the step 976 of determining whether or not the test key 270 is actuated, and, assuming that it is, returns processing to step 951 for implementation of step 951 through 976 as hereinbefore discussed. On the other hand, assuming that the test key 270 is actuated, then the routine 950 sequentially implements step 977-982, respectively, in correspondence to the implementation of step 957 through 962 as hereinbefore discussed. In connection with the foregoing discussion it is noted that in each instance of inquiring as to whether or not the test key 270 is actuated, step 956, 968 and 976, if the inquiry is negatively answered, there is only one action which can be taken to completely exit the routine 950, that is, actuating one of the print or no-print keys 262 or 264 (FIG. 1) to return processing to the main line program 300 (FIG. 6). In this connection it is noted, as hereinafter discussed, that if the margin-adjust key 273 (FIG. 1) is actuated to cause implementation of the margin-adjust routine 985 (FIG. 13B), exiting the service mode routine 950 (FIG. 13A) is not completely realized, inasmuch as upon completion of implementation of the margin-adjust routine 985 (FIG. 13B), processing is returned to the service mode routine 950.

As shown in FIG. 13B, according to the invention the margin-adjust, or margin selecting, routine 985 commences with the step 986 of determining whether one or the other of the print or no-print keys 262 (FIG. 1) or 264 has been actuated. Assuming the no-print key 264 has been actuated, step 986 (FIG. 13B) the routine 985 implements the step 987 of determining whether the the LED 274C (FIG. 1) which is energized is either located in the right most position in the LED array 274D, which position corresponds to the position of the LED 274C labeled with the numeral 1, or is located in a higher numbered position, i.e., 2-6 in the LED array 274D, which positions respectively correspond to the positions of the LEDs 274C labeled with the numerals 2-6. Assuming the energized LED 274C is in a position greater than the numeral 1, i.e., to the left of the LED 274C labeled numeral 1, then, actuation of the no-print key 264 causes the routine to energize the LED 274C in the next lower numbered position, i.e. 5-1, for illumination thereof, and causing the time delay t.sub.d (FIG. 5), as measured from the time instant that the trip sensor 99A (FIG. 1) senses the leading edge 100 of a sheet 22 in the path of travel 38 to the time instant of commencement of acceleration of the print drum 64, to be decremented by a time interval which causes the printing drum 64 to print postage indicia on the sheet 22 substantially one-fourth of an inch closer to the leading edge 100 of the sheet 22 then it would have been printed if the no-print key 264, step 389 (FIG. 13B) had not been actuated. Assuming however, that the no print key 264, step 986, is not actuated, or the energized LED 274C (FIG. 1) is not an LED 274C in one of the positions 2-6 inclusive, step 987 (FIG. 13B), and, therefore, step 988 is not implemented, then the routine 985 implements the step 989 of determining whether or not the print key 262 (FIG. 1) is actuated and, assuming that it is, implements the step 991 of determining whether or not the LED 274C (FIG. 1) which is illuminated is in a position of the LED array 274D which is less than position 6, that is, in one of the positions 5-1. Assuming that the illuminated LED 274 C is in a position of the array 274D which is less than the position 6, i.e., to the right of the LED labeled numeral 6, then, actuation of the print mode key 262 causes the routine 981 (FIG. 13B) to execute the step 988 of energizing the LED 274C in the next higher numbered position, i.e., 2-6 for illumination thereof and causes the time delay t.sub.d (FIG. 5) to be incremented by a time interval which causes the printing drum 64 (FIG. 1) to print postage indicia on the sheet 22 substantially one-fourth of an inch farther from the leading edge 100 of the sheet 22 then it would have been printed if the print mode key 262, step 989 (FIG. 13B) had not been actuated. Assuming however, that the print key 262, step 989, is not actuated, or the energized LED 274C (FIG. 1) is not an LED 274C in one of the positions 5-1 inclusive step 990 (FIG. 13B), and, therefore, step 991 is not implemented, then the routine 985 implements the step 992 of determining whether or not the test key 270 is actuated, and, assuming that it is, returns processing to step 986. Whereupon, the routine 985 continuously loops through steps 986, 989 and 992 until one or the other of the print or no-print keys, 262 or 264, or the test key 270, is actuated, with the result that either steps 987 or 988, or steps 990 or 991, are implemented as hereinbefore discussed, or, in response to actuation of the test key 270, step 992, the routine 985 implements the step 993 of storing the position number, i.e. 1-6, corresponding to the distance from the leading edge 100 of the sheet 22 at which postage indicia will be printed thereon. Preferably, the right most LED 274C (FIG. 1) in the LED array 274D i.e., position 1, corresponds to printing postage indicia on the sheet 22 a marginal distance of one-fourth of an inch upstream from the leading edge 100 of the sheet 22, whereas the leftmost LED 274C in the LED array 274D, i.e., position 6, corresponds to printing postage indicia on the sheet 22 a distance of one and one-half inches upstream from the leading edge 100 of the sheet 22. And, as hereinbefore noted, the postage indicia position may be selectively incremented or decremented one position at a time to or from positions 1 through 6 for changing the marginal distance of displacement of the postage indicia upstream from the leading edge 100 of a sheet 22 in one-fourth of an inch increments to or from a marginal distance of from one-fourth of an inch through one and one-half inches. Upon completion of step 993, the routine 985 implements the step 994 of returning processing to the service mode routine 950 (FIG. 13A) and, in particular to step 956, 968 or 976 for further processing, depending on whether the margin-adjust routine 985 was called upon in response to an affirmative answer being made to the inquiry of step 961, 973 or 981. Accordingly, after selecting the marginal distance upstream from the leading edge 100 (FIG. 1) of a sheet 22 at which the postage indicia will be printed, the service person would ordinarily actuate the test key 270, step 992 (FIG. 13B) followed by actuating one or the other of the print or no print keys 262 or 264, (FIG. 13A step 959, 971 or 929) for returning processing to the main line program 300 (FIG. 13A step 960, 972 or 980), for normal operation of the machine 10.

As shown in FIG. 1, assuming as is the normal case, each sheet 22 fed to the mailing machine base 12 is urged by the operator into engagement with the registration fence 95 for guidance thereby downstream in the path of travel 30 to the input feed rollers 42 and 44. Whereupon the sheet 22 is fed downstream by the rollers 42 and 44, in the path of travel 30, with the inboard edge 96 (FIG. 2) thereof disposed in engagement with the registration fence 95 (FIG. 1) and is detected by the sheet feeding trip structure 99. Accordingly, the leading edge 100 of each sheet 22 is fed into blocking relationship with the sheet feeding trip sensor 99A. And, as shown in FIG. 14, since the sensor 99A is located closely alongside of the registration fence 95, the portion of the leading edge 100 of the sheet 22 which is next adjacent to the inboard edge 96 thereof is detected by the sensor 99A. Moreover, as the leading edge 100 of the sheet 22 is progressively fed downstream in the path of travel 30, the magnitude of the analog voltage signal 135 (FIG. 1) provided to the microprocessor 122 by the sensing structure 99 changes from an unblocked voltage maximum V.sub.um (FIG. 15) to a blocked voltage minimum V.sub.b of nominally zero volts. Further, the transition time interval T.sub.t during which the voltage magnitude V.sub.135 of the aforesaid signal 135 changes from 75% of the unblocked voltage maximum V.sub.um to 25% thereof is normally substantially 100 microseconds.

As shown in FIG. 16, wherein the inboard edge 96 of a given sheet 22 being fed downstream in the path of travel 30 is typically skewed, relative to the registration fence 95, the leading end of the inboard edge 96 is spaced outwardly from the registration fence 95. And, due to the sensor 99A being located close to the registration fence 95, the inboard edge 96, rather than the leading edge 100, of the sheet 22 is fed into blocking relationship with the sensor 99A. Since the sensor 99A is then more gradually blocked by the inboard edge 96 of the moving sheet 22 than it is when the leading edge 100 (FIG. 14) thereof is fed into blocking relationship with the sensor 99A, the transition time interval T.sub.t (FIG. 17) during which the voltage magnitude V.sub.135 of the aforesaid signal 135 changes from 75% to 25% of the maximum unblocked voltage V.sub.um increases.

With the above thoughts in mind, according to the invention the microprocessor 122 (FIG. 1) is preferably programmed to successively sample the signal 135 at two millisecond time intervals and to prevent operation of the postage meter 14, if during any two successive sampling time intervals the voltage magnitude V.sub.135 (FIG. 17) of the aforesaid signal 135 is equal to or less than 75% of the maximum unblocked voltage but not less than 25% of the maximum unblocked voltage V.sub.um, in order to prevent improperly locating the postage indicia imprintation on the sheet 22. To that end, as hereinbefore discussed, the main line program 300 (FIG. 6) preferably includes the step 316A of setting the skew detection routine flag "on", for calling up and implementing a sheet skew detection routine, whenever the main line program 300 is implemented. And, the microprocessor 122 (FIG. 1) is preferably programmed to include the sheet skew detection routine 1000 shown in FIG. 18.

As shown in FIG. 18, the sheet skew detection routine 1000 preferably commences with the step 1010 of sampling the voltage magnitude V.sub.135 of the signal 135 (FIG. 1) from the sheet trip sensor 99A, followed by the step 1012 (FIG. 18) of determining whether or not the sampled voltage magnitude V.sub.135 is greater than 75% of the maximum unblocked voltage V.sub.um. Assuming a sheet 22 (FIG. 14) has not been fed into blocking relationship with the sensor 99A, the inquiry of step 1012 (FIG. 18) will be affirmative, and the routine 1000 will implement the step 1014 of storing data in a predetermined, first, or flag No. 1, register of the microprocessor 122 (FIG. 1), indicating that the sensor 99A is unblocked. Assuming however that the voltage magnitude V.sub.135 of the sensor voltage signal 135 is not greater than 75% of the maximum unblocked voltage V.sub.um, step 1012 (FIG. 18), as would be the case if a sheet 22 (FIG. 14) were fed into blocking relationship with the sensor 99A, then, the routine 1000 (FIG. 18) implements the step 1018 of determining whether the actual voltage magnitude V.sub.135 of the signal 135 is less than 25% of the unblocked voltage maximum V.sub.um. Assuming that the sheet 22 (FIG. 14) which was fed into blocking relationship with the sensor 99A is not skewed relative to the registration fence 95, or that the sample voltage magnitude V.sub.135 (FIG. 15) was not made within the 100 microsecond transition time interval when the voltage magnitude V.sub.135 changed from 75% to 25% of the unblocked voltages maximum V.sub.um, then, the inquiry of step 1018 (FIG. 18) will be affirmatively answered. Whereupon the routine 1000 implements the step 1020 of storing data in the aforesaid flag No. 1 register indicating that the sensor 99A is blocked. If however a determination is made in step 1018 that the sample voltage magnitude V.sub.135 is not less than 25% of the maximum unblocked voltage V.sub.um, then, the routine 1000 assumes that the sample voltage magnitude V.sub.135, which caused the inquiry of step 1012 to indicate that a sheet 22 had been fed into blocking relationship with the sensor 99A, was made at a time instant when the sheet 22 was either within the 100 microsecond transition time interval T.sub.t as shown in FIG. 15 or within a greater transition time interval T.sub.t as shown in FIG. 17. Accordingly, the routine 100 implements the step 1022 (FIG. 18) of storing data in the flag No. 1 register to indicate that the sample voltage magnitude V.sub.135  is within the transition time interval T.sub.t, or equal to 25% to 75% of the maximum unblocked voltage V.sub.um. That is, the routine 1000 stores data corresponding to a potential skew condition, SK, in the flag No. 1 register.

After implementation of the appropriate step 1014, 1020 or 1022 (FIG. 18), of storing an unblocked sensor, blocked sensor or potential skewed sheet condition, in the flag No. 1 register, then, the routine 1000 implements the step 1024 of delaying processing for a two millisecond time interval followed by repeating the voltage sampling and analysis processing hereinbefore discussed, but storing the results thereof in a second, predetermined, register. More particularly, the routine 1000 implements the step 1026 of again sampling the voltage magnitude V.sub.135 of the sheet feed trip sensor signal 135 (FIG. 1), followed by again determining in step 1028 whether the sample voltage magnitude V.sub.135 is greater than 75% of the maximum unblocked voltage V.sub.um. Assuming that the inquiry of step 1028 is affirmative, indicating that the sensor 99A is not blocked, the routine 1000 implements the step 1030 of storing data corresponding to an unblocked sensor 99A in a second, predetermined, or flag No. 2, register. On the other hand, assuming that the inquiry of step 1028 is negative, indicating that the sensor 99A is blocked, then, the routine 1000 implements the step 1032 of determining whether the sample voltage magnitude V.sub.135 is less than 25% of the unblocked voltage maximum V.sub.um. As previously discussed, assuming that the sheet 22 found to have blocked the sensor 99A in step 1028 is either not skewed or is not within the 100 microsecond transition time interval, then, the inquiry of step 1032 will be affirmative, and the routine 1000 will implement the step 1034 of storing data corresponding to a blocked sensor condition in the flag No. 2 register. On the other hand, if the inquiry of step 1032 is negative, indicating that the sheet 22, found to have blocked the sensor 99A in step 1028, is within the transition time interval T.sub.t (FIG. 15 or 17), then, the routine 1000 implements the step 1036 of storing data in the flag No. 2 register indicating that the sheet 22 is within the transition time interval T.sub.t and thus that a potential skew condition exists.

After implementation of the appropriate steps 1030, 1034 or 1036 (FIG. 18) of storing data corresponding an unblocked or blocked sensor condition, or potential skewed sheet condition, in the flag No. 2 register, then, the routine 1000 implements the step 1038 of determining whether or not both the flag No. 1 and flag No. 2 registers have potential skew condition data stored therein. Thus, the routine 1000 determines whether two successive sample voltage magnitudes V.sub.135 of the sheet feeder trip signal 135, made at time instants separated by substantially two milliseconds, both indicate that a sheet 22 is disposed is partial blocking relationship with the sensor 99A, to determine whether or not the sheet 22 is skewed as shown in FIGS. 16 and 17. Accordingly, assuming that both registers have potential skew data stored therein, step 1038, the routine 1000 implements the step 1040 of setting a skew flag for the main line program, which, as shown in FIG. 6, at step 317, results in the main line program 300 implementing the step 317A of setting a machine error flag, storing an error code 275 (FIG. 5A), i.e., error code 15, in both the RAM 123 (FIG. 1) and NVM 274, and causing the keyboard lamp 266 to commence blinking, followed by causing the microprocessor 122 to implement the conventional shut-down routine 340 (FIG. 6) and, thereafter, the successive steps 341, 342 and 344 hereinbefore discussed. If however, one or the other or both of the flag No. 1 and No. 2 registers do not have data corresponding to a potential skew condition stored therein, step 1038 (FIG. 18), then, the routine 1000 implements the step 1042 of determining whether the flag No. 2 register has data corresponding to a blocked sensor condition stored therein. Assuming the flag No. 2 register data corresponds to a blocked sensor condition, indicating that the sheet 22 is not within the transition time interval T.sub.t (FIG. 17), and thus that the sheet 22 is not skewed, the routine 1000 implements the step 1044 of setting the sheet feeder trip signal flag for the main line program, which results in the main line program 300 (FIG. 6) determining, in step 318, that the flag is set, followed by implementing successive steps normally resulting in causing postage indicia to be printed on the sheet 22. On the other hand, if the inquiry of step 1042 is negatively answered, that is, the routine 1000 determines that the data in the flag No. 2 register does not correspond to a blocked sensor condition, indicating that a sheet 22 is not being fed in path of travel 30 to the postage meter 14, the routine 1000 implements the step 1046 of clearing the sheet feeder trip signal flag for the main line program. Whereupon the main line program 300 (FIG. 6) determines, in step 318, that the sheet feeding trip signal flag is not set, followed by causing the successive steps 316, 316A, 317 and 318 to be implemented until either the skew flag is set, step 317, before the trip signal flag is set, step 318, or the trip signal flag is set, step 318, before the skew flag is set, step 317, as hereinbefore discussed in greater detail.

Accordingly, the routine 1000 (FIG. 18) is constructed and arranged to sample the signal voltage magnitude V.sub.135 at step 1040, of setting the skew flag to cause the main line program 300 to enter into a shut-down routine rather than cause postage indicia to be printed on the skewed sheet 22, or the step 1044,, of setting the sheet feed trip signal flag to cause the main line program 300 to enter into processing eventuating in causing postage indicia to be printed on an unskewed sheet 22, or the step 1046, of clearing the sheet feed trip signal flag to cause the main line program 300 to enter into a processing loop until either a skewed or an unskewed sheet 22 is fed to the machine 10. Thereafter, the routine 1000 implements the step 1048 of copying, i.e., transferring, the contents of the flag No. 2 register into the flag No. 1 register, followed by returning processing to step 1024 for implementation of the two millisecond time delay before again sampling the signal voltage magnitude V.sub.135, followed by the successive steps 1026-1048 inclusive, as hereinbefore discussed. Accordingly, the routine 1000 is also constructed and arranged to ensure that each successive 2 millisecond sampling of the signal voltage magnitude V.sub.135 is successively compared in step 1038 to the previous sample voltage magnitude V.sub.135 in order to successively determine whether or not a given sheet 22 (FIGS. 14, 15, 16 and 17) fed into blocking relationship with the sensor 99A is or is not a skewed sheet 22.

As shown in FIG. 19, wherein the inboard edge 96 of a given sheet 22 being fed downstream in the path of travel 30 is atypically skewed, relative to the registration fence 95, the trailing end of the inboard edge 96 is spaced outwardly from the registration fence 95. And, although the leading edge 100 of the sheet 22 is fed into blocking relationship with the sensor 99A, the inboard edge 96, rather than the trailing edge 100A, of the sheet 22 is fed out of blocking relationship with the sensor 99A. Under such circumstances and, more generally, whenever the overall length L.sub.o (FIG. 14 or 19) of a given sheet 22, as measured in the direction of the path of travel 30, is less than a predetermined minimum length, corresponding to a predetermined minimum, sheet-length transition time interval T.sub.tl (FIG. 20) of substantially 80 milliseconds, during which the voltage magnitude V.sub.135 of the sheet feed trip signal 135 changes from 25% of the maximum unblocked voltage V.sub.um to 75% of the maximum unblocked voltage V.sub.um, the overall sheet length L.sub.o is insufficient for postage printing purposes.

With the above thoughts in mind, according to the invention, the microprocessor 122 (FIG. 1) is preferably programmed to prevent operation of the postage meter 14, if a sheet 22 (FIG. 19) fed into blocking relationship with the sensor 99A is fed out of blocking relationship with the sensor 99A before the end of a predetermined time interval of substantially 80 milliseconds. Thus the mailing machine 10 is preferably provided with short sheet length detecting structure. More particularly, as hereinbefore noted in the course of discussing the main line program 300 (FIG. 6), the main line program 300 is constructed and arranged, through the implementation of steps 321 and 328 thereof, to delay commencement of acceleration of the postage printing drum 64, step 330, for a time interval of substantially 80 milliseconds, after a sheet 22 is fed into blocking relationship with the sensor 99A, causing the sheet feeding trip signal flag to be set, step 318, to permit the shutter bar 68 to be moved out of locking engagement with the drum drive gear 66, steps 322 and 324, and to permit the sheet 22 to be fed downstream in the path of travel 22, from the sensor 99A, for engagement by the postage printing drum 64. Further, as previously noted, when the substantially 80 millisecond time interval has ended, step 328, the program 300 implements the step 329, corresponding to step 318, of determining whether the sheet feed trip signal flag is set. Thus, according to the invention, the microprocessor 122 preferably makes a determination as to whether the sheet 22 found to be disposed in blocking relationship with the sensor 99A, causing the inquiry of step 318 to be affirmatively answered, is still in blocking relationship with the sensor 99A after the predetermined intervening time delay, steps 321 and 328, of substantially 80 milliseconds. Assuming as is the normal case that the inquiry of step 329 is affirmative, then, the program 300 implements the step 330 of setting the postage meter acceleration and constant velocity routine flag "on", followed by initiating processing which, as hereinbefore discussed in detail, normally eventuates in the postage meter 14 printing postage indicia on the sheet 22. On the other hand, if the inquiry of step 329 is negative, indicating that the sheet 22 (FIG. 19) is no longer disposed in blocking relationship with the sensor 99A, then, the main line program 300 (FIG. 6) preferably implements the step 329A of setting a machine error flag, storing an error code 275 (FIG. 5A), i.e., error code 14, in both the RAM 123 (FIG. 1) and NVM 274 and causing the keyboard lamp 266 to commence blinking, followed by causing the microprocessor 122 to implement the conventional shut-down routine 340 and, thereafter, the successive steps 341, 342 and 344, hereinbefore discussed in detail.

Accordingly, the main line program 300 is constructed and arranged to sample the signal voltage magnitude V.sub.135 (FIG. 20) both before and after a substantially 80 millisecond time delay t.sub.d (FIG. 5) and to enter into a shut-down routine rather than cause postage indicia to be printed on the sheet 22, if the second sample voltage magnitude V.sub.135 indicates that the overall longitudinal length L.sub.o of the sheet 22 (FIG. 14 or 18), as measured in the direction of the path of travel 30, is not more than a predetermined length of substantially two inches. In this connection it is noted that assuming that a given, atypical, sheet 22, exemplified by the atypically skewed sheet 22 shown in FIG. 19, is fed downstream in the path of travel 30 at the preferred, design criteria, speed of substantially 26 inches per second, the sheet 22 will be fed into and out of blocking relationship with the sensor 99A during a sheet-length, transition time interval T.sub.tl of substantially 80 milliseconds, which corresponds to an overall sheet length L.sub.o (FIG. 19), as measured in the direction of the path of travel 30, of substantially two inches.

## Claims

1. In a machine including means for printing indicia on a sheet, and means for feeding the sheet in a path of travel to the printing means, wherein the feeding and printing means each include a plurality of components, apparatus for accounting for malfunction conditions of the machine, the apparatus comprising: microprocessor, the controlling means including a random access memory (RAM) and a non-volatile memory (NVM) respectively connected to the microprocessor, the microprocessor programmed for causing a plurality of desired movements of the respective components of the sheet feeding and printing means and thus of a sheet in the path of travel; sensing actual movements corresponding to the desired movements of the respective components of the sheet feeding and printing means and of a sheet in the path of travel and providing signals to the microprocessor; between corresponding desired and actual movements are acceptable, and the microprocessor programmed for currently storing error code data in both the RAM and NVM, wherein said error code data corresponds to an actual determined unacceptable movement difference.

2. The apparatus according to claim 1, wherein the controlling means includes means for accessing said stored error code data to identify each malfunction condition of the machine.

3. The apparatus according to claim 1, wherein the controlling means includes means for sequentially accessing respective portions of said stored error code data to sequentially identify each malfunction condition.

4. The apparatus according to claim 1, wherein the controlling means includes a power switch connected to the microprocessor and actuatable for energizing and deenergizing the machine, the microprocessor programmed for causing said error code data to be stored while the machine is energized, the error code data stored while the machine is energized corresponding to current malfunction conditions data, the microprocessor programmed for clearing the current malfunction conditions data from the RAM in response to the machine being re-energized after having been deenergized, and the malfunction conditions data stored in the NVM while the machine is deenergized corresponding to historical malfunction conditions data.

5. The apparatus according to claim 4, wherein the controlling means includes means for sequentially displaying information corresponding to the current and then historical malfunction conditions data.

6. The apparatus according to claim 5 wherein the displaying means includes a plurality of light emitting diodes (LEDs).

7. The apparatus according to claim 1, wherein the controlling means includes two sets of three LEDs, the controlling means including a manually actuatable switch, the microprocessor programmed for sequentially accessing the stored error code data corresponding to each malfunction condition in response to successive actuations of the switch, and the microprocessor programmed for selectively energizing at least one of the LEDs of at least one of the sets thereof for displaying two octal codes corresponding to each malfunction condition.

8. The apparatus according to claim 4, wherein the machine includes framework, the machine including a cover removably connected to the framework, the controlling means including means for sequentially accessing error code data corresponding to the respective malfunction conditions, and the means for sequentially accessing including a manually actuatable switch mounted to the framework beneath the cover to normally prevent access to the switch by an operator of the machine.

9. The apparatus according to claim 5, wherein the plurality of diodes includes two sets of three LEDs, the controlling means including a test switch, the microprocessor programmed for sequentially accessing and displaying the error code data corresponding to each malfunction condition in response to successive actuation of the test switch, the error code data including two octally coded digits corresponding to each malfunction condition, and the microprocessor programmed for selectively energizing the LEDs to display said digits.

10. The apparatus according to claim 5, wherein the controlling means includes means for displaying a model number of the machine.

11. The apparatus according to claim 1, wherein the machine is a mailing machine base.

12. The apparatus according to claim 1, wherein the printing means is a postage printing means.

13. The apparatus according to claim 1, wherein the printing means is a postage meter.