Abstract:
Sheet collator apparatus having means for recovery from collating errors. Moving between two adjacent bins without feeding a sheet, feeding two sheets into one bin, or feeding a sheet while the feeder is moving are errors that are detected and corrected. An error is corrected by homing the deflector and repositioning it at the correct bin before restart. The described embodiment includes two collators, i.e., tandem units.

Description:
DOCUMENTS INCORPORATED BY REFERENCE 
     U.S. Pat. No. 3,980,296 (Craft et al.) &#34;Duplicating Machine Employing Image Reversing Optical Paths with Front Edge Document Alignment on Document Input and Output&#34;, hereinafter referred to as Ref. &#39;296. 
     U.S. Pat. No. 4,012,032 (Rogers) &#34;Document Reproduction Having Output Means with Plural Outputs Operable in a Plurality of Modes&#34;, hereinafter referred to as Ref. [032. 
     U.S. Pat. No. 4,086,658 (Finlay) &#34;Input/Output and Diagnostic Arrangements for Programmable Machine Controllers Having Multiprogramming Capabilities&#34;, hereinafter referred to as Ref. &#39;658. 
     U.S. Pat. No. 4,114,871 (Botte) &#34;Collation Controls&#34;, hereinafter referred to as Ref. &#39;871. 
     BACKGROUND OF THE INVENTION 
     This invention relates to the detection and correction or errors in the operation of sheet collators. 
     Collators, such as those used on copiers or printers, are provided for assemblying separate groups of copies produced from a set of original documents. Without a collator, the operator, when making multiple copies or prints, must separate and group together by hand the separate sets of copies made from the set of originals. Collators perform this function automatically while the copies are being made. Sheet collators are also used in industrial applications such as box making and the like where sheets of metal, cardboard, and so on, must be separated. 
     When used with a copying machine, the omission of a copy from a set presents a greater problem than the inclusion of duplicate copies of a page. Therefore, the invention is directed toward detecting and correcting automatically the failure of a collator to provide a copy of each document in each set of copies. This includes detecting a double feed at a bin because, since only a certain number of copies are made, the last bins would not receive a copy. 
     BRIEF SUMMARY OF THE INVENTION 
     A sheet collator having a plurality of bins for receiving sheets and directing means for directing a sheet into one of the bins is provided with a first switch for supplying a signal indicating that a sheet has entered a bin and with a second switch coupled to the directing means for supplying a signal indicating that the directing means is activated at one of the bins. A detector is responsive to the signals from the switches for detecting an error in the operation sequence of the collator. The machine is further provided with a recovery means that is responsive to the detector for correctly positioning the directing means so that correct operation of the collator can be resumed automatically. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a cross-sectional side view of a directing means showing the location and function of the switches used in the practice of the present invention. 
     FIG. 2 is a top view of the directing means depicted in FIG. 1. 
     FIG. 3 is a graph of the index and sheet switch signals versus time. 
     FIG. 4 is a logic diagram of an embodiment of a detector means according to the invention. 
     FIG. 5 is a flowchart showing the steps performed in error recovery. 
     FIG. 6 is a flowchart showing the sequence of steps for sensing the sheet switch. 
     FIG. 7 is a flowchart showing the sequence of steps for detecting an index switch error. 
     FIG. 8 is a flowchart showing the sequence of steps for sensing the index switches. 
     FIG. 9 is a flowchart showing the sequence of steps for detecting a sheet switch error. 
     FIG. 10 is a flowchart of a subroutine CSOFTSPP. 
     FIG. 11 is a flowchart of a subroutine VANESTP. 
     FIG. 12 is a flowchart of a process named COLLATOR. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Sheet collators can be of the traveling distributor or the fixed (multiple) distributor type. In the traveling type, the distributor (directing means) travels between the bins for the purpose of deflecting sheets from a transport path into the bin at which the directing means is disposed. In the fixed type, each bin has a deflector which is selectively operable to intercept the sheet transporting path to direct a sheet into the associated bin. The following description is directed to an embodiment of the invention used in a traveling type collator but the terms and explanation are meant to cover both types. 
     A cross-sectional view of a typical traveling directing means 13 is shown in FIG. 1. A belt 14 transports the sheets in a downward vertical direction until the sheet is intercepted by a deflector plate 10. The plate 10 deflects the sheet through a pair of pinch rollers 11 which drive the sheet into a bin 12. The directing means 13 moves vertically, supported by four guide rollers 15 which engage a vertical guide 16. 
     When the directing means 13 is disposed opposite a bin, an index switch 18 is closed by means of a follower 19 which moves along an index rack 17. A sheet switch 9 is closed by means of a follower 8 when a sheet is passed by the directing means 13 into a bin. A home switch 6 is closed by the directing means 13 whenever the directing means reaches the home position, hereinafter referred to as the reference position. 
     FIG. 2 is a top view of the directing means 13 showing the disposition of the sheet switch follower 8. 
     This description of the collator operation is provided merely as background of the description of the invention. More detailed explanations of the operation of collators are presented in References &#39;296, &#39;871, and &#39;032. 
     The signals produced by the index switch 18 and the sheet switch 9 are shown in FIGS. 3(a) and 3(b), respectively. The first portion of FIG. 3 shows the normal sequence of operations of the switches, i.e., the index and sheet switches alternatively produce signals indicating that the directing means 13 is positioned at a bin as indicated by the index switch signal (FIG. 3(a)) followed by a sheet switch signal (FIG. 3(b)) indicating that a sheet has passed into the bin. 
     The second portion of FIG. 3 shows the signals that result from a sheet error, i.e., two successive closings of the index switch 18 without an intermediate closing of the sheet switch 9. This sequence indicates that the directing means 13 has passed a bin without feeding a sheet. Similarly, an index error is shown in the third portion of FIG. 3 as successive closures of the sheet switch 9 without an intermediate closure of the index switch 18. This sequence indicates that two sheets were fed into the same bin. The fourth portion of FIG. 3 shows the switch signals that occur when a sheet is fed while the directing means 13 is moving or when the index switch is stuck in the closed position. 
     The logic circuit of FIG. 4 detects the above-described index and sheet errors. The index switch 18 and the sheet switch 9 have their closures integrated by two flip-flops 48 and 49, respectively. The flip-flops 48 and 49 are edge-triggered and provide output signals while the switches are made. The edge-triggered flip-flops 41 and 42 are initially in the reset condition. The flip-flop 41 monitors the sequence of the index and sheet switch closings and the flip-flop 42 is set when an error in that sequence occurs. Specifically, with the flip-flop 42 reset, closing the index switch enables an AND gate 45 to set the flip-flop 41. Subsequently, closing the sheet switch resets flip-flop 41 through an AND gate 44. If two index pulses occur in succession without an intermediate sheet switch signal, the flip-flop 48 will be set while the flip-flop 41 is set. This condition enables an AND gate 46 to set the error flip-flop 42, producing the error signal ERR. Similarly, if two sheet switch closures occur without an intermediate index switch closure, the flip-flop 49 will be set while the flip-flop 41 is reset, enabling an AND gate 47 to set the error flip-flop 42, providing the output error signal. A pair of AND gates 40 and 43 combine the error signal with the state of the flip-flop 41 to produce an index error signal (IE) or a sheet error signal (SE), respectively. 
     The logic circuit of FIG. 4 comprises a sequential machine. The preferred design, however, of sequential machines is by programming a microprocessor. The complexities of logic design are replaced by programming which is simpler to implement and easier to change, which were the impelling reasons for the development of microprocessors and the reasons for their success. 
     Ref. &#39;658 explains in detail a microprocessor useful for practicing the invention as herein described in terms of a computer program for controlling a microprocessor. The instructions of the microprocessor include input instructions by means of which external signals can be sensed and output signals whereby controls of external devices can be effected. Ref. &#39;871 shows the details for the control of a collator using a programmed microprocessor. References &#39;658 and &#39;871 provide the necessary and sufficient information for an understanding of the following description of the present invention. The invention is described by means of flowcharts and microcode tables, the steps of the flowcharts being labeled with the corresponding addresses of the related microcode program. A table of abbreviations is included as an Appendix for reference. The second column of the table contains an S, signifying a status bit; a C, signifying a control bit; a B, signifying a byte; or a P, signifying a processor subroutine. 
     FIGS. 6 and 7 with microcode Table I show a program for detecting index errors. As noted above, an index error occurs when a sheet is passing to a bin while the index switch is on, i.e., the directing means is in motion, or when two index signals occur without an intervening sheet switch closure. 
     
         ______________________________________APPENDIXABBREVIATIONS______________________________________CEVNEHLD   S     Do not move vane - in maintenance            modeCHKCOL     S     Check CollatorCINDX11    S     Collator 1 Index Switch IntegratorCINDX12    S     Collator 1 Index Switch HonoredCINDX21    S     Collator 2 Index Switch IntegratorCINDX22    S     Collator 2 Index Switch HonoredCL1INDX    S     Collator 1 Index SwitchCL2INDX    S     Collator 2 Index SwitchCOLALGN    P     Collator Alignment SwitchCOLCESW    P     Collator CE Switch MonitorCOLCE1     S     Collator 1 in Maintenance ModeCOLCE2     S     Collator 2 in Maintenance ModeCOLDOORS   P     Collator Door MonitorCOLDOWN    S     Indicates Collator Direction is            DownwardCOLDR1     S     Collator 1 Door Open(COLDR12)COLDR2     S     Collator 2 Door Open(COLDR22)COLECCNT   P     Collator EC Count - Derived from            Copier ECCOLECCTR   B     Collator EC CounterCOLECGEN   P     Collator EC GeneratorCOLGATE    C     Collator Gate Control (when reset,            directs sheets to collator)COLMOTOR   C     Collator Motor OnCOLMTRON   P     Collator Motor ControlCOLNPRES   S     Collator Not PresentCPPIND     C     Check Paper Path IndicatorCOLPTH1    P     Collator Path Switch 1COLPTH2    P     Collator Path Switch 2COLSELCT   P     Collator Mode Push Button MonitorCOLSTOP    S     Collator StopCOLVANE    S     Collator Vane Switch (OR&#39;ed from            collators 1 &amp; 2)COLVANE    P     Collator Vane ProcessColvane1   S     Collator Vane Switch Integrator BitCOLVANE2   S     Collator Vane Switch Honored BitCOLVNCTR   P     Collator Vane ControlCOL1HOM    S     Collator 1 at Home (reference)            PositionCOL2HOM    S     Collator 2 at Home (reference)            PositionCPSB       B     Collator Program Status ByteCSERROR    S     Collator Soft ErrorCSOFTSTP   P     Collator Softstop SubroutineECn        S     Emitter Count nERRCODE    P     Error Code for Logging Various            ErrorsERRLOG     P     Error Log SubroutineHOM1COLR   S     Same as HOMCOL1RMD1DOWNR   S     Collator 1 Down RequestMD2DOWNR   S     Collator 2 Down RequestMD1UPR     S     Collator 1 Up RequestMD2UPR     S     Collator 2 Up RequestRECVAN1R   S     Request for Vane Recovery on            Collator 1RECVAN2R   S     Request for Vane Recovery on            Collator 2STRTCOL    C     Start Collator MotorVANECTR    B     Vane CounterVANEDWN    C     Move Vane Down One BinVANERR1    S     Error Occurred in Collator 1VANERR2    S     Error Occurred in Collator 2VANESTP    P     SubroutineVANEUP     C     Move Vane Up One BinVANEECCT   B     Vane Recovery CountVECTUPDT   P     Vane Count Update Subroutine______________________________________ 
    
     
                                           MICROCODE TABLE I__________________________________________________________________________LOC OBJ  OP1 OP2    SOURCE STATEMENT__________________________________________________________________________           1.    IF (COLMOTOR)                 SRG  BASERG650F    A909 00C9                 TPB  PCB15,COLMOTOR6511    A67D 007D6513    95   0005                 SRG  CPLRG6514    A9D0 00D06516    6A   651A         JNZ  COLV08     * GO IF YES6517    30BF66    66BF        0000     BU   COLV210,R0 * GO IF NO           1.    THEN    651A   COLV08                 DC   *           2.    . IF (COLVANE)                 RIN  0SB14      GET STATUS651A    A6D5 00D56510    90   0000         TP   COLVANE    TEST IF COLVANE651D    A617 0017         LB   CPSB06     GET STATUS651F    3DBB 65BB         BZ   COLV90     *GO IF COLVANE NOT ACTIVE           2.    . THEN           3.    . . IF                      (COLVANE1)6521    AF40 0006         TS   COLVANE1   TEST FOR COLVANE16523    3DB8 65B8         BZ   COLV80     *GO IF NOT SET           3.    . . THEN            4.    . . . IF                       ##STR1##6525    AF20 0005         TS   COLVANE2   TEST FOR COLVANE26527    3CB7 65B7         BNZ  COLV70     *GO IF SET           4.    . . . THEN           5.    . . . . COLVANE2=16529    A117 0017         STB  CPSB06     UPDATE. . .               MISC CODE    654C   COLV10                 DC   *           5.    . . . . IF (VANECTR&lt;=19) COLLATOR I                 SRG  COLRG654C    A9D0 00D0654E    E4   0004         LR   VANECTR654F    A819 0019         CI   X&#39;19&#39;6551    A61F 001F         LB   CPSB106553    3E73 6573         BH   COLV16     * GO IF NOT COL I VALUE           5.    . . . . THEN           6.    . . . . . IF (CINDX12 |VANEUP                 |VANEDWN)6555    91   0001         TP   CINDX126556    60   6560         JNZ  COLV12                 SRG  BASERG6557    A9C9 00C96559    A675 0075         LB   PCB06655B    AB60 0060         NI   P(VANEDWN,VANEUP)                 SRG  COLRG655D    A9D0 00D0655F    40                JZ   COLV14           6.    . . . . . THEN    6560    COLV12                 DC   *           7.    . . . . . . IF (COLDOWN)                 TPB  CPSB06,COLDOWN6560    A617 00176562    97   00076593    4A   656A         JZ   COLV13           7.    . . . . . . THEN           8.    . . . . . . . ERRCODE=F12                 LID  COLF12ER6564    AE07 07496566    296567    AE49 07496569    01   6571         J    COLV15           7.    . . . . . . ELSE    656A   COLV13                 DC   *           8.    . . . . . . . ERRCODE=F14                 LID  COLF14ER656A    AE07 0751656C    29656D    AE51 0751656F    01   6571         J    COLV15           7.    . . . . . . ENDIF           6.    . . . . . ELSE    6570   COLV14                 DC   *           7.    . . . . . . ERRCODE-6570    25                CLA            6.   . . . . . ENDIF    6571   COL15 DC   *6571    2C8D 658D         B    COLV20           5.    . . . . ELSE    6573   COLV16                 DC   *           6.    . . . . . IF (CINDX22 |MD2VANUP                 |MD2VANDW)6573    93   0003         TP   CINDX226574    6C   657C         JNZ  COLV17                 SRG  BASERG6575    A9C9 00096577    AB30 0030         NI   P(MD2VANDW,MD2VANUP)                 SRG  COLRG6579    A9D0 00D0657B    4C   658C         JZ   COLV19           6.    . . . . . THEN    657C   COLV17                 DC   *           7.    . . . . . . IF COLDOWN                 TPB  CPSB06,COLDOWN657C    A617 0017657E    97   0007657F    46   6586         JZ   COLV18           7.    . . . . . . THEN           8.    . . . . . . . ERRCODE=F17                 LID  COLF17ER6580    AE07 07576582    296583    AE57 07576585    0D   658D         J    COLV20           7.    . . . . . . ELSE    6586   COLV18                 DC   *           8.    . . . . . . . ERRCODE=F18                 LID  COLF18ER6586    AE07 07586588    296589    AE58 0758658B    0D   658D         J    COLV20           7.    . . . . . . ENDIF           6.    . . . . . ELSE    658C   COLV19                 DC   *           7.    . . . . . . ERRCODE=0658C    25                CLA           6.    . . . . . ENDIF           5.    . . . . ENDIF    658D   COLV20                 DC   *            5.                  ##STR2##658D    2E                A1658E    2A                S1658F    47                JZ   COLV25           5.    . . . . THEN           6.    . . . . . CALL VANESTP (ERRCODE)                 SRG  BASERG6590    A909 00096592    321E67    0002        671E     BAL  R2,VANESTP                 SRG  COLRG6595    A9D0 00D0           5.    . . . . ENDIF           3.    . . ELSE    65B8   COLV80                 DC   *           4.    . . . COLVANE1=165B8    A117 0017         STB  CPSB06 UPDATE           3.    . . ENDIF65BA    0F   65BF   COLV85                 J    COLV95           2.    . ELSE    65BB   COLV90                 DC   *           3.    . . IF (COLVANE1)65BB    B6   0006         TR   COLVANE1   TEST FOR COL VANE165BC    41   6501         JZ   COLV100    *GO IF NOT SET           3.    . . THEN           4.    . . . COLVANE1=065BD    A117 0017         STB  CPSB06     UPDATE65BF    24BF 66BF         B    COLV210           3.    . . ELSE    6501   COLV100                 DC   *           4.    . . . IF (COLVANE2)65C1    B5   0005         TR   COLVANE2   TEST FOR COL VANE265C2    35BF 66BF         BZ   COLV210    *GO IF NOT SET           4.    . . . THEN           5.    . . . . COLVANE2=065C4    A117 0017         STB  CPSB06     UPDATE                 RIN  CSB14. . .               MISC CODE           5.    . . . . ENDIF           4.    . . . ENDIF           3.    . . ENDIF           2.    . ENDIF           1.    ENDIF    66BF   COLV210                 DC   *               ENDBEGIN COLVANE__________________________________________________________________________ 
    
     In FIG. 6 and Micro code Table I, the first step in determining an index switch error is checking the collator motor; COLMOTOR is a control bit used to turn the collator motor on. As shown in Table I, it is in PCB 15. (PCB is a program control byte and the collator motor bit is 2 4  as indicated by the instruction at location 6513.) If the collator motor bit is off, the program is exited because the collator is not operational. 
     Otherwise, the sheet switch (COLVANE) is tested at location 651A via the collator program status byte 6. If the sheet switch is made, COLVANE1 is tested as shown at location 6521. COLVANE1 is an integration bit used to integrate the sheet switch closure. If COLVANE1 is not set, then at location 65B8 the COLVANE1 bit is set and the routine is exited. As will be explained below in more detail, the routine shown in FIGS. 6 and 7 and Table I is continually executed in sequence with many other routines. Therefore, after exiting the routine, the processor executes other instructions for other purposes, most of which are not related to the description of the invention and control returns to the execution of the present routine. The purpose of the integrator bit is to require two passes through the routine before the switch is considered to be closed. This prevents noise or transient signals from initiating the desired action. In other words, the sheet switch must be closed for two passes through the routine in order to be considered closed. If the collator switch is not closed at location 651A, then COLVANE1 is examined at location 65BB and reset at location 65BD if set. This integrates the opening of the switch in the same manner that the closing of the switch is integrated. If at location 65BB, COLVANE1 is not set, then at location 65C1 COLVANE2 is tested and reset if set. If COLVANE2 is reset or after it is reset at location 65C4, the program is exited. 
     At location 6521, if COLVANE1 is set, then the switch is integrated and COLVANE2 is tested. COLVANE2 is a status bit which indicates that the closure of the sheet switch was previously honored. That is, COLVANE2 being set at location 6525 indicates that the routine caused by the present closing of the vane switch was previously executed so that at location 6527, the routine is exited if COLVANE2 is set. At location 6525, if COLVANE is not set, then it is set at location 6529 and the routine continues in FIG. 7 as indicated by the off-page connector 65. 
     In FIG. 7, at location 654C, a sheet counter (VANECTR) is tested for a value of 19 or greater. VANECTR is a byte which counts the number of sheets that have passed through the directing means. 
     If the value in VANECTR is equal to or less than 19, a first collator is considered to be in operation. If the counter value is greater than 19, a second collator is presumed to be in use. In other words, the first collator consists of 20 bins with an additional 20 bins in the second collator. If the second collator is indicated, then the second collator is checked starting at location 6573 in the same manner as that now to be described for collator 1. 
     At location 654C, if the first collator is in operation, then its index switch (INDEXSW) (CINDX12 in the program) is checked at 6555, VANEUP is checked at location 655B, and VANEDWN is checked. (VANEUP and VANEDWN are checked at the same time in the described embodiment.) VANEUP is a control bit which activates a solenoid to move the directing means up one bin. VANEDWN is a control bit which operates a solenoid to move the directing means down one bin. If the index switch is made or the directing means is moving as indicated by the VANEUP or VANEDWN bits, an error is indicated. VANEUP or VANEDWN, whichever was set to move the vane, is normally reset by the index switch signal. The error, therefore, is that a sheet is being fed while the directing means is moving, the index switch is stuck in the closed position, or that there were two successive sheet signals without an intermediate index switch signal. 
     A status bit COLDOWN is tested at location 6560. COLDOWN is a status bit indicating that the directing means is moving in a downward direction. If reset, the directing means is moving in the upward direction. An error code is set to F12 at location 6564 if the directing means was moving in the down direction and, to F14 at location 656A if the directing means was moving in the upward direction when the error occurred. The direction of the directing means movement at the time of error is required for the recovery procedure to be described later. 
     If the index switch is not closed at location 6555 and the directing means is not moving at location 655B, then at location 6570, the error code is set to zero. 
     In Table I, from location 6573 to location 658C, the code is depicted for checking the second collator in the manner just described for the first collator. 
     At location 658D the error code is tested. If zero, miscellaneous instructions are executed for purposes not related to the present invention and the process is exited. If the error code is not zero, then at location 6592, a subroutine VANESTP is called which, as will be seen in the following explanation, will cause the collator to stop. 
     The program for detecting a sheet switch error is set forth in Table II and in FIGS. 8 and 9. As noted above, a sheet error occurs when two closures of the index switch occur without an intermediate closure of the sheet switch. In the following explanation, it should be noted that the move requests, VANEUP and VANEDWN, are reset by the index pulses and set by the sheet switch signals. Therefore, if an index signal occurs when there is no move request, i.e., when VANEUP and VANEDWN bits are reset, then an error is indicated. The program to be explained for detecting a sheet switch error is included in a larger program segment as will be explained in more detail. 
     In FIG. 8, at location 6803, the COLMOTOR bit is tested to determine whether the collator is in operation. If the collator motor is not on, the routine is ended. Otherwise, a test is made at location 6809 to determine whether the machine is in the CE (maintenance) mode. If so, all move requests are reset at 6811 to suppress motion. If not in the maintenance mode, then the index switch bit for collator 1 (CL1INDX) is tested at location 681A. If reset, the index switch integrator bit (CINDX11) is checked at location 6867. If set, it is reset at location 6869 together with the UP request (UPR) bit and the program is exited. 
     
                                           MICROCODE TABLE II__________________________________________________________________________LOC   OBJ OP1 OP2    SOURCE STATEMENT__________________________________________________________________________         1.    IF (COLMOTOR)               SRG  BASERG6803   A9C9  00C9               TPB  PCB15,COLMOTOR6805   A67D  007D6807   95  00056808   47  6817         JZ   COLVC06         1.    THEN         2.    . IF (CEVNEHLD)               SRG  COLRG6809   A9D0  00D0               TPB  CPSB05,CEVNEHLD680B   A616  0016680D   96  0006680E   4A  681A         JZ   COLVC07         2.    . THEN  680F   COLVC05               DC   *680F   A990  0090         GI   INTOFFCG+COLRG         3.    . . RESET HOMCOL1R,HOMCOL2R,MD1UPR,MD2UPR,MD1DOWNR,MD2               DOWNR         TRMB  CPSB07,P(HOMCOL1R,HOMCOL2R,MD1UPR,MD2UPR,MD1DOWNR,MD2D               OWNR)6811   A618  00186813   AB03  00036815   A118  0018         COLVC06               DC   *6817   308D69  698D      0000     BU   COLVC290,R0         2.    . ELSE  681A   COLVC07               DC   *         3.    . . IF (CL1INDX)               RIN  CSB06681A   A6C5  0005681C   97  0007         TP   CL1INDX681D   A9A0  00A0         GI   INTOFF681F   A61F  001F         LB   CPSB106821   3D67  6867         BZ   COLVC55         3.    . . THEN         4.    . . . IF (CINDX11)6823   AF01  0000         TS   CINDX116825   3D63  6863         BZ   COLVC45         4.    . . . THEN          5.                ##STR3##6827   AF02  0001         TS   CINDX126829   3C62  6862         BNZ  COLVC40         5.    . . . . THEN         6.    . . . . . CINDX12=1682B   A11F  001F         STB  CPSB10         6.    . . . . . IF (MD1DOWNR)682D   A618  0018         LB   CPSB07682F   B5  0005         TR   MD1DOWNR6830   48  6838         JZ   COLVC15         6.    . . . . . THEN         7.    . . . . . . MD1DOWNR=06831   A118  0018         STB  CPSB07         7.    . . . . . . CALL VECTUPDT (DEC VANRECCT)6833   314867  0001      6748     BAL  R1,VECTUPDT6836   2C62  6862         B    COLVC35         6.    . . . . . ELSE  6838    COLVC15               DC   *          7.                ##STR4##6838   96  0006         TP   MD1UPR6839   3C62  6862         BNZ  COLVC30               TPB  CPSB13,RECVAN1R683B   A61D  0001D683D   92  0002683E   3C62  6862         BNZ  COLVC30               SRG  BASERG6840   A9C9  00096842   A662  0062         LB   CEMODE6844   A805  0005         CI   5               SRG  COLRG6846   A9D0  00D06848   3E62  6862         BH   COLVC30         7.    . . . . . . THEN         8.    . . . . . . . IF (COLDOWN)684A   A920  0020         GI   INTON               TPB  OPSB06,COLDOWN684C   A617  0017684E   97  0007684F   46  6856         JZ   COLVC20         8.    . . . . . . . THEN         9.    . . . . . . . . ERRCODE=F12               LID  COLF12ER6850   AE07  07496852   296853   AE49  07496855   0B  685B         J    COLVC25         8.    . . . . . . . ELSE  6856   COLVC20               DC   *         9.    . . . . . . . . ERRCODE=F14               LID  COLF14ER6856   AE07  07516858   296859   AE51  0751         8.    . . . . . . . ENDIF  685B   COLVC25               DC   *         8.    . . . . . . . CALL VANESTP (ERRCODE)               SRG  BASERG685B   A9C9  0009685D   321E67  0002      671E     BAL  R2,VANESTP               SRG  COLRG6860   A9D0  00D0         7.    . . . . . . ENDIF  6862   COLVC30               DC   *         6.    . . . . . ENDIF  6862   COLVC35               DC   *         5.    . . . . ENDIF  6862   COLVC40               DC   *6862   05  6865         J    COLVC50         4.    . . . ELSE  6863   COLVC45               DC   *         5.    . . . . CINDX11=16863   A11F  001F         STB  CPSB10          4.   . . . ENDIF  6865   COLVC50               DC   *6865   2C75  6875         B    COLVC75         3.    . . ELSE  6867   COLVC55               DC   *         4.    . . . IF (CINDX11)6867   BO  0000         TR   CINDX116868   41  6871         JZ   COLVC60         4.    . . . THEN         5.    . . . . CINDX11=06869   A11F  001F         STB  CPSB10         5.    . . . . MD1UPR=0               TRB  CPSB07,MD1UPR686B   A618  0018686D   B6  0006686E   A118  00186870   05  6875         J    COLVC70         4.    . . . ELSE         COLVC60               DC   *         5.    . . . . IF (CINDX12)6871   B1  0001         TR   CINDX126872   45  6875         JZ   COLVC65         5.    . . . . THEN         6.    . . . . . CINDX12=06873   A11F  001F         STB  CPSB10         5.    . . . . ENDIF  6875   COLVC65               DC   *         4.     . . . ENDIF  6875   COLVC70               DC   *         3.    . . ENDIF         4.    . . . THEN         5.    . . . . HOM1COLR, MD1DOWNR, MD1UPR,__________________________________________________________________________               REVVANE=0 
    
     If the integrator bit is not set at location 6867, the honored bit (CIND12) is checked at location 6871 and reset if set, after which the program is exited. 
     If at location 681A the index switch is set, the integrator bit (CINDX11) is checked at location 6823. If reset, it is set and the process is exited. If set, the honored bit is tested at location 6827. If set, the program is exited; otherwise, it continues as shown in FIG. 9. 
     In FIG. 9, the CINDX12 bit is set at location 682B. At location 682D, the DOWN request (DOWNR) bit is checked. If set, it is reset at location 6831 and a VECTUPDT subroutine is called at location 6833. If the DOWNR bit is reset at location 682D, then at location 6838 the UPR bit is checked. At location 683B, the RECVAN1R bit is checked and at location 6840, at test is made to ascertain whether the machine is in the maintenance mode. If any one of these tests is true, that is, if there is an UP request, a RECOVERY request, or the machine is in the maintenance mode when there is no DOWN request, then there is no error. Otherwise, the absence of the request or motion during the index switch closure indicates an error. Therefore, at location 684A, a test is made to determine which direction the collator was moving, setting errors at locations 6850 or 6856. Then, at location 685B, the VANESTP subroutine is called to halt the machine. 
     A similar test is made for collator number 2 as for collator number 1 by the process just described. 
     Before proceeding with an explanation of the recovery procedure, some of the subroutines will be described in addition to the overall collator program. 
     The VANESTP subroutine is shown in Table III and its flowchart is illustrated in FIG. 11. When the VANESTP subroutine is entered, the error number or error code is saved as shown at location 671E. At location 671F, a determination is made using the vane counter whether collator 1 or collator 2 was in error. If the VANECTR value is less than 20, then at location 6728, VANERR1 is set. If the vane counter is not less than 20, then at location 672B, VANERR2 is set. At location 672D, all the move requests as well as the recovery requests are reset and the subroutine CSOFTSTP is called at location 6742. After returning from the subroutine CSOFTSTP, VANESTP returns to the calling program at location 6745. 
     The CSOFTSTP (collator soft stop) subroutine is illustrated in FIG. 10 and Table IV. (A hard stop is a stopping routine which immediately halts the machine because continued operation would cause damage; by contrast, a soft stop is a more orderly shut down because there is no immediate prospect of damage caused by continued operation.) It is entered at location 66EC and at location 66ED, the CHKCOL bit is set. This causes another section of the control program to stop the collator and to light the CHECK COLLATOR indicator. At location 66F5, CSERR is checked and, if set, causes the subroutine to return to the calling program via location 671A. If CSERROR is not set, it is set at location 66FD as is COLSTP. The CSERROR bit is the honored bit, indicating the CSOFTSTP subroutine was previously invoked. At location 6701, the Check Paper Path (CPP) indicator is tested and the subroutine returns to the calling program if it is set. If the CPP indicator is not set, then a subroutine error log is called at location 670E. 
     
                                           MICROCODE TABLE III__________________________________________________________________________LOC   OBJ  OP1 OP2      SOURCE STATEMENT__________________________________________________________________________                BEGIN VANESTP (ERRNO) `COLLATOR`   671E         ORG      VANESTP           1.   SAVE ERRNO671E   80   0000         STR      R0           1.   IF       (VANECTR&lt;20)671F   A990 0090         GI       INTOFFCG+COLRG6721   E4   0004         LR       VANECTR6722   A820 0020         CI       X&#39;20&#39;6724   A61D 001D         LB       CPSB13                JC       VSTP056726   2D6727   6B   672B           1.   THEN           2.   . VANERR1=16728   AF01 0000         TS       VANERR1672A   0D   672D         J        VSTP10           1.   ELSE   672B    VSTP05                DC       *           2.   . VANERR2=1672B   AF02 0001         TS       VANERR2           1.   ENDIF   672D    VSTP10                DC       *           1.   RECVAN1R,                         RECVAN2R=0                TRM      P(RECVAN1R,RECVAN2R)672D   ABF3 00F3           1.   NBILLCOL=1672F   AF10 0004         TS       NBILLCOL6731   A11D 001D         STB      CPSB13           1.   MD1DOWNR, MD1UPR, MD2DOWNR, MD2UPR=0                TRMB     CPSB07,P(MD1DOWNR,MD1UPR,MD2DOWNR,MD2UPR)6733    A618   00186735   AB93 00936737   A118 0018           1.   CALL CSOFTSTP (ERRNO)                TPB      CSB07,INTBUSY16739   A6C6 00C66738   96   0006                SRG      INTHRG673C   A9C8 00C8673E   61   6741         JNZ      VSTP15673F   A909 0009         GI       INTONCG+BASERG   6741    VSTP15                DC       *6741   E0   0000         LR       R06742   31EC66   0001       66EC     BAL      R1,CSOFTSTP6745   22   0002         RTN      R2__________________________________________________________________________ 
    
     
                                           MICROCODE TABLE IV__________________________________________________________________________LOC OBJ  OP1 OP2     SOURCE STATEMENT__________________________________________________________________________                BEGIN CSOFTSTP (ERRNO) `COLLATOR`    66E0        ORG    CSOFTSTP66E0    80   0000        STR    R0            1.  CHKCOL=166ED    A9A0 00A0        GI     INTOFF                TSB    PSB05,CHKCOL66EF    A645 004566F1    AF10 000466F3    A145 0045             1.                 ##STR5##                SRG    COLRG66F5    A9D0 00D066F7    A619 0019        LB     CPSB0866F9    AF40 0006        TS     CSERROR66FB    3412 6712        BNZ    CS510   *GO IF ALREADY ON            1.  THEN            2.  . CSERROR,                       COLSTOP=166FD    AF80 0007        TS     COLSTOP66FF    A119 0019        STB    CPSB08             2.                 ##STR6##                SRG    INTHRG6701    A9C8 00C8                TBP    CSB07;INTBUSYI6703    A6C6 00C66705    96   00066706    69   6709        JNZ    CSS056707    A909 0009        GI     INTONCG+BASERG    6709    CSS05                DC     *                TBP    PCB13,CPPIND6709    A67B 007B670B    95   0005670C    6A   671A        JNZ    CSS15            2.  . THEN            3.  . . CALL                       ERRLOG (ERRNO)670D    E0   0000        LR     R0670E    33E51A    0003        1AE5    BAL    R3,ERRLOG6711    0A   671A        J      CSS15            2.  . ENDIF            1.  ENDIF    6712    CSS10                DC     *                SRG    INTHRG6712    A9C8 00C8                TPB    C5B07,INTBUSYI6714    A6C6 00C66716    96   00066717    6A   671A        JNZ    CSS15                SRG    BASERG6718    A9C9 00C9    671A    CSS15                DC     *671A    21   0001        RTN    R1__________________________________________________________________________ 
    
     The CPP bit test prevents the logging of the second error in case a previous error has occurred and is also used to shut down the machine. 
     The ERRORLOG subroutine is not shown in detail; it merely increments a counter in a particular portion of the memory associated with the error code so that the maintenance personnel can determine the number of times the error occurred. 
     VECTUPDT is another subroutine not shown; its purpose is merely to increment the value of the VANECTR each time it is called. 
     The entire program for controlling the copier and the collator is extensive and comprises many thousands of bytes. The program is divided into various modules or processes. A process is equivalent in this explanation to a subroutine. A subroutine can be of two types, out-of-line or in-line. An out-of-line subroutine usually is stored at a location outside the main program and control is transferred thereto by a calling procedure. For example, the branch and link instruction as explained in detail in Ref. &#39;658 provides for branching to subroutines. At the completion of the subroutine, control is transferred to the instruction following that which called the subroutine. Therefore, out-of-line subroutines are stored only once in the memory but may be executed from any point in the program. 
     An in-line subroutine or process is included in the sequence of instructions at each place it is used. It is stored in the memory as many times as it is used. 
     Externally, the execution of out-of-line and in-line subroutines are the same. They are performed at a certain location in the main program and the program continues from that location. 
     The complete program for copier control comprises several processes, one of which is a collator process which itself comprises other processes. FIG. 12 is a flowchart illustrating the collator and process for which no program detail is provided. This explanation is merely to clarify the composition and relationships of the various programs and subroutines being described in this invention. The collator process starts at location 1201 and is executed continually in its turn as part of the overall program. The subroutine PICKCODE at location 1202 is called to cause the copier to pick paper from the copy supply. Upon return from the subroutine, the COLNPRES bit is tested at location 1203. If set, it indicates that there is no collator so that, at location 1204, all the signals relating thereto are reset. If the maintenance mode selected is not greater than 5 as shown at location 1205, the collator indicator (COLATIND) bit is reset. Otherwise, the collator process ends and the next process in the overall program begins. At location 1203, the COLNPRES bit reset indicates that the collator is present. Control registers 4 through 8 are checked at location 1206. If the machine timing indicates that the copier operation is in a time frame indicated by control registers (CR) 4 through 8, then the collator EC counter (COLECCTR) is decremented by one as shown at location 1207. The COLECCTR is used in timing the operation of the collator. At location 1208, the COLECCTR is checked for zero and the copier motor is checked. If the COLECCTR is zero and the copier motor is not running, then at location 1209, a subroutine COLECGEN is called to supply a collator EC number. At location 1208, if the motor is on or if the collator EC counter is not zero, then several processes are sequentially executed as shown at location 1210. These processes are executed in the order shown, after which the process following the collator process in the overall program is started. The processes shown at location 1210 are in-line processes, some of which call various off-line subroutines such as VANESTP. The VANERR check described in connection with FIGS. 6 and 7 are part of the COLVANE process. The VANERROR test program is also part of the COLVANE control process. 
     The recovery program to be described includes parts of the COLVNCTR process, a COLRST1 subroutine, and two synchronous programs, EC4 and EC9. 
     The overall control program for the machine is initiated every other time the power line input crosses the zero voltage value. That is, for 60-cycle input power, the overall program is executed 60 times per second. Certain processes are connected with the operation of the copier, as explained in detail in the incorporated references, and must be synchronized with the position of the copier drum. The timing pulses from the drum are called EC or emitter counts. Each half-revolution of the drum produces a set of EC&#39;s which sets occur at a relatively slow rate, i.e., only two or three times per second. 
     When an EC pulse occurs, an interrupt is generated which calls an interrupt handling routine. This routine suspends the main program, determines the cause of the interrupt, and causes an appropriate subroutine to be executed. Therefore, the EC4 and EC9 routines to be described in connection with the error recovery routines occur once for approximately every fifty times that the main program, and subsequently the collator routine, is executed. 
     The procedure for recovering from an index or sheet error is flowcharted in FIG. 5 and shown in detail in Microcode Table V. As pointed out above, various segments of the code for performing the recovery procedure are located in various subroutines and processes; therefore, the location codes in the Microcode Table V are not in sequential order. Program details of Table V are arranged in the approximate order in which the machine executes them to perform the function as shown in the flowchart of FIG. 5. 
     Even in the case of two collators, coupled to the same machine, there is only one CHECK COLLATOR indicator. To insure that the operator in fact checks the collator that caused the error, the door of the collator which caused the error must be opened and closed by the operator which sets a flag bit used by the program. After opening the door to check that there are no paper jams or the like, the door is closed and the start button is pushed by the operator. In the program beginning at location 675E, a test is made to determine that the operator has opened the door of the collator producing the error. This test is invoked at location 62D4 and is made at location 6760 for the first collator (COLDR12) and at location 6790 for the second collator (COLDR22). 
     After making various checks including one to ensure that the machine is not in the maintenance mode, the motor is started by the code beginning at location 62E8. 
     
                                           MICROCODE TABLE V__________________________________________________________________________ LOC    OBJ  OP1 OP2      SOURCE STATEMENT__________________________________________________________________________                  BEGIN COLMTRON COLLATOR MOTOR CONTROL `COLLATOR`                  ##STR7##                   TPB PCB15,COLMOTOR                                    SEE IF COLLATOR RUNNING626C    A67D 007D626E    95   0005626F    342A 632A           BNZ COL0870 * GO IF ON                 1. THEN                  ##STR8##                   TPB PCB02,PCADVNCE                                    SEE IF ADVANCE6271    A671 00716273    90   00006274    3426 6326           BNZ COL0860 * GO IF YES                   TPB PSB07,PRECOND                                    SEE IF CONDITIONING6276    A647 00476278    90   00006279    3426 6326           BNZ COL0860 * GO IF YES                 2. . THEN                 3. . . IF (COLCE2 &amp; CEMODE=(0|1|9.                 vertline.12|13)). . .                 CODE TO CHECK NOT MAINTENANCE MODE, ETC.                 5. . . . . THEN                  ##STR9##                   TPB PSB21,MOMRUNB                                    SEE IF MOMENTARY RUN62D4    A655 005562D6    95   000562D7    40   62E0           JZ  COL082562D8    A662 0062           LB  CEMODE62DA    A802 0002           CI  CERUN62DC    48   62E8           JE  COL083062DD    A803 0003           CI  CENOPAPR62DF    48   62E8           JE  COL0830    62E0    COL0825                   DC  *                   SRG COLRG        SET GRP62E0    A9D0 00D062E2    A607 0007           LB  CPSB02       GET STATUS62E4    AB50 0050           NI  P(COLDR12,COLDR22)62E6    3426 6326           BNZ COL0860      *GO IF EITHER DOOR OPEN                 6. . . . . . THEN    62E8    COL0830                   DC  *                 7. . . . . . . SYNCHREQ=STRTCOL (START MOTOR)62E8    A989 0089           GI  INTOFFCG+BASERG62EA    A654 0054           LB  PSB20        GET STATUS62EC    AF02 0002           OI  STRTCOL      SET START REQ62EE    A154 0054           STB PSB20        UPDATE STATUS                   TPB PCB06,COLATIND                                    SEE IF COLLATING                 3. . . IF (HOMCOL1R)                   TPB CPSB07,HOMCOL1R6877    A618 00186879    97   0007687A    3DB7 68B7           BZ  COLVC115                 3. . . THEN                 4. . . . IF (COL1HOM)                   RIN CSB066898    A60D 000D           LB  VANRECCT689A    A800 0000           CI  0689C    44   68A4           JE  COLVC80                 6. . . . . . THEN                 7. . . . . . . MD1DOWNR=1                   TSB CPSB07,MD1DOWNR689D    A618 0018689F    AF20 000568A1    A118 001868A3    009  68A9           J   COLVC85                 6. . . . . . ELSE    68A4    COLVC80                   DC  *                 7. . . . . . . RECVAN1R=0                   TRB CPSB13,RECVAN1R68A4    A61D 001D68A6    B2   000268A7    A11D 001D                 6. . . . . . ENDIF    68A9    COLVC85                   DC  *68A9    00   68B0           J   COLVC100                 5. . . . . ELSE    68AA    COLVC90                   DC  *                 6. . . . . . COLDOWN=1                   TSB CPSB06,COLDOWN687C    A6C5 000C5687E    96   0006           TP  COL1HOM687F    A9A0 00A0           GI  INTOFF6881    A618 0018           LB  CPSB076883    3DB1 68B1           BZ  COLVC105                 4. . . . THEN                 5. . . . . HOM1COLR, MD1DOWNR, MD1UPR, REVVANE=0                   TRM P(HOMCOL1R,MD1DOWNR,MD1UPR,REVVANE)6885    AB1D 001D6887    A118 0018           STB CPSB07                 5. . . . . IF (RECVAN1R)                   TPB CPSB13,RECVAN1R6889    A61D 001D688B    92   0002688C    3DAA 68AA           BZ  COLVC90                 5. . . . . THEN                 6. . . . . . VANRECCT=VANECTR688E    E4   0004           LR  VANECTR688F    A10D 000D           STB VANRECCT                  ##STR10##                   TPB CPSB06,COLDOWN6891    A617 00176893    97   00076894    68   6898           JNZ COLVC076                 6. . . . . . THEN                 7. . . . . . . CALL VECTUPDT (DECR VANRECCT)6895    314867    0001        6748       BAL R1,VECTUPDT                 6. . . . . . ENDIF    6898    COLVC076                   DC  *                  ##STR11##68AA    A617 001768A0    AF80 000768AE    A117 0017                 5. . . . . ENDIF    68B0    COLVC100                   DC  *68B0    05   68B5           J   COLVC110                 4. . . . ELSE    68B1    COLVC105                   DC  *                 5. . . . . MD1UPR=168B1    AF40 0006           TS  MD1UPR68B3    A118 0018           STB CPSB07                 4. . . . ENDIF    68B5    COLVC110                   DC  *68B5    2CD0 68D0           B   COLVC135                 3. . . ELSE    68B7    COLVC115                   DC  *                 4. . . . IF (RECVAN1R)                   TPB CPSB13,RECVAN1R68B7    A61D 001D68B9    92   000268BA    3DD0 68D0           BZ  COLVC130                 4. . . . THEN                  ##STR12##68BC    A9A0 00A0           GI  INTOFF68BE    25                  CLA68BF    A40D 000D           AB  VANRECCT68C1    49   68C9           JZ  COLVC120                 5. . . . . THEN                 6. . . . . . MD1DOWNR=1                   TSB CPSB07,MD1DOWNR68C2    A618 001868C4    AF20 000568C6    A118 001868C8    0E   68CE           J   COLVC125                 5. . . . . ELSE    68C9    COLVC120                   DC  *                 6. . . . . . RECVAN1R=0                   TRB CPSB13,RECVAN1R68C9    A61D 001D680B    B2   000268CC    A11D 001D                 5. . . . . ENDIF    68CE    COLVC125                   DC  *68CE    A920 0020           GI  INTON                 4. . . . ENDIF    68D0    COLVC130                   DC  *                 3. . . ENDIF            CHECK COLLATOR 2 INDEX PULSE                 6. . . . . . IF (RECVAN2R)                   TBP CPSB13,RECVAN2R6941    A61D 001D6943    93   00036944    3D66 6966           BZ  COLVC240                 6. . . . . . THEN                 7. . . . . . . IF VANECTR -06946    25                  CLA6947    D4   0004           AR  VANECTR6948    4B   694B           JZ  COLVC221                 7. . . . . . . THEN                 8. . . . . . . . VANRECCT=VANECTR-206949    AA20 0020           SI  X&#39; 20&#39;                 7. . . . . . . ELSE            COLVC221                   EQU *                 8. . . . . . . . VANRECCT=0694B    A10D 000D           STB VANRECCT                 7. . . . . . . ENDIF                  ##STR13##                   TPB CPSB06,COLDOWN694D    A617 0017694F    97   00076950    3C55 6955           BNZ COLVC222                 7. . . . . . . THEN                 8. . . . . . . . CALL VECTUPDT (DECR VANRECCT)6952    314867    0001        6748       BAL R1,VECTUPDT                 7. . . . . . . ENDIF    6955    COLVC222                   DC  *                 7. . . . . . . IF (VANRECCT ---=0)6955    A60D 000D           LB  VANRECCT6957    A800 0000           CI  06959    41   6961           JE  COLVC225                 7. . . . . . . THEN                 8. . . . . . . . MD2DOWNR=1                   TSB CPSB07,MD2DOWNR695A    A618 00186950    AF04 0002695E    A118 00186960    06   6966           J   COLVC230                 7. . . . . . . ELSE    6961    COLVC225                   DC  *                 8. . . . . . . . RECVAN2R=0                   TRB CPSB13,RECVAN2R6961    A61D 001D6963    B3   00036964    A11D 001D                 7. . . . . . . ENDIF    6966    COLVC230                   DC  *                 6. . . . . . ENDIF                 MISC. CODE. . .                  BEGIN VECTUPDT `COLLSEG1`6748                    ORG VECTUPDT                 1. IF (VANRECCT ---=0)6748                    CLA6749    A40D 000D           AB  VANRECCT674B    4A   675A           JZ  VCTUP10                 1. THEN                 2. . DECR VANRECCT674C    2A                  S1674D    A10D 000D           STB VANRECCT674F    AB0F 000F           NI  X&#39;OF&#39;6751    A80F 000F           CI  X&#39;OF&#39;6753    6A   675A           JNE VCTUP106754    A60D 000D           LB  VANRECCT6756    ABF9 00F9           NI  X&#39;F9&#39;6758    A10D 000D           STB VANRECCT                 1. ENDIF    675A    VCTUP10                    DC *675A    21   0001           RTN R1    675E           DRG COLRST1                  BEGIN COLRST1 `COLLSEG1`675E    A9A0 00A0           GI  INTOFF                 1. IF (COLDR12)                   TPB CPSB02,COLDR126760    A607 00076762    96   00066763    3D90 6790           BZ  COLRST11                 1. THEN                 2. . COLPCT1, CPYATCOL, COLALGNL, COLALGNA=06765    A608 0008           LB  CPSB036767    ABE0 00E0           NI  P0(CPYATCOL,COLALGNL,COLALGNA,BIT1,BIT0)6769    A108 0008           STB CPSB03                 2. . COLPCT2, CPYATCP1, COLPTH1L, COLPTH1A=0676B    A609 0009           LB  CPSB04676D    ABE0 00E0           NI  P0(CPYATCP1,COLPTH1L,COLPTH1A,BIT1,BIT0)676F    A109 0009           STB CPSB04                 2. . COLPCT3, COLVANE1, COLVANE2=06771    A617 0017           LB  CPSB066773    AB9C 009C           NI  P0(COLVANE1,COLVANE2,BIT1,BIT0)6775    A117 0017           STB CPSB06                 2. . IF (VANERR1)6777    A61D 001D           LB  CPSB136779    B0   0000           TR  VANERR1677A    3D90 6790           BZ  COLRST11                 2. . THEN                 3. . . VANERR1=06770    AF04 0002           TS  RECVAN1R677F    A11D 001D           STB CPSB13                 3. . . HOMCOL1R=1                   TSB CPSB07,HOMCOL1R6780    A618 00186782    AF80 00076784    A118 0018                 3. . . CRA1=1                   SRG BASERG6786    A9C9 00C9                   TSB CRHI,CRA16788    A614 0014678A    AF08 0003678C    A114 0014                   SRG COLRG678E    A9D0 00D0                 2. . ENDIF                 1. ENDIF    6790    COLRST11                   DC  *                 1. IF (COLDR22)                   TPB CPSB02,COLDR226790    A607 00076792    94   00046793    3DBA 67BA           BZ  COLRST12                 1. THEN                 2. . COLPCT4, CPYATOP2, COLPTH2L, COLPTH2A=06795    A616 0016           LB  CPSB056797    ABE0 00E0           NI  P0(CPYATCP2,COLPTH2L,COLPTH2A,BIT1,BIT0)6799    A116 0016           STB CPSB05                 2. . COLPCT5, COLVANE1, COLVANE2=0679B    A617 0017           LB  CPSB06679D    AB93 0093           NI  P0(COLVANE1,COLVANE2,BIT3,BIT2)679F    A117 0017           STB CPSB06                 2. . IF (VANERR2)67A1    A61D 001D           LB  CPSB1367A3    B1   0001           TR  VANERR267A4    3DBA 67BA           BZ  COLRST12                 2. . THEN                 3. . . VANERR2=0                 3. . . RECVAN2R=167A6    AF08 0003            TS RECVAN2R67A8    A11D 001D           STB CPSB13                 3. . . HOMCOL2R=1                   TSB CPSB07,HOMCOL2R67AA    A618 001867AC    AF10 000467AE    A118 0018                 3. . . CRA1=1                   SRG BASERG67B0    A9C9 00C9                   TSB CRHI,CRA167B2    A614 001467B4    AF08 000367B6    A114 0014                   SRG COLRG67B8    A9D0 00D0                 2. . ENDIF                 1. ENDIF    67BA    COLRST12                   DC  *                 1. IF (COLDR12 | COLDR22)67BA    A607 0007           LB  CPSB0267BC    AB50 0050           NI  P(COLDR12,COLDR22)67BE    45   6705           JZ  COLRST13                 1. THEN                 2. . CHERROR, CSERROR, COLSTOP=0                 TRMB CPSB08,P(CHERROR,CSERROR,COLSTOP)67BF    A619 001967C1    AB1F 001F67C3    A119 0019                 1. ENDIF    67C5    COLRST13                   DC  *67C5    A920 0020           GI  INTON67C7    21   0001           RTN R1. . .                 MISC. CODE                  ##STR14##                   TPB  PCB15,COLMOTOR7481    A67D 007D7483    95   00057484    3DE5 74E5           BZ  EC4E3Y9                   TPB PCB06,COLGATE7486    A675 00757488    94   00047489    3CE5 74E5           BNZ EC4E3Y9                 2. . THEN                 3. . . IF (RECVAN1R)                   SRG COLRG748B    A9D0 00D0748D    A61D 001D           LB  CPSB13                   SRG INTHRG748F    A9C8 00C87491    92   0002           TP  RECVAN1R7492    4D   749D           JZ  EC4E3Y6                 3. . . THEN                 4. . . . CALL VANESTP (F12)                   LID COLF12ER7493    AE07 07497495    297496    AE49 07497498    321E67    0002        671E       BAL R2,VANESTP749B    2CE5 74E5           B   EC4E3Y9                 3. . . ELSE    749D           DC  *                 4. . . . IF (RECVAN2R)749D    93   0003           TP  RECVAN2R749E    49   74A9           JZ  EC4E3Y7                 4. . . . THEN                 5. . . . . CALL VANESTP (F17)                   LID COLF17ER749F    AE07 075774A1    2974A2    AE57 075774A4    321E67    0002        671E       BAL R2,VANESTP74A7    2CE5 74E5           B   EC4E3Y9                 4. . . . ELSE    74A9           DC  *                 5. . . . . IF HOMCOL1R                   SRG COLRG74A9    A9D0 00D074AB    A618 0018           LB  CPSB0774AD    B7   0007           TR  HOMCOL1R74AE    3DCA 74CA           BZ  EC4E3Y8                 5. . . . . THEN                 6. . . . . . HOMCOL1R=074B0    A118 0018           STB CPSB07                 6. . . . . . COLPCT3=374B2    A617 0017           LB  CPSB0674B4    AF03 0003           OI  COLPCT374B6    A117 0017           STB CPSB06                 6. . . . . . VANERR1=1                   TSB CPSB13,VANERR174B8    A61D 001D74BA    AF01 000074BC    A11D 001D                   SRG INTHRG74BE    A9C8 00C8                 6. . . . . . CALL CSOFTSTP (F15)                   LID COLF15ER74C0    AE07 074874C2    2974C3    AE48 074874C5    31EC66    0001        66EC       BAL R1,CSOFTSTP74C8    2CE5 74E5           B   EC4E3Y9                 5. . . . . ELSE    74CA           DC  *                 6. . . . . . IF HOMCOL2R74CAB4  0004           TR  HOMCOL2R74CB    3DE5 74E5           BZ  EC4E3Y9                 6. . . . . . THEN                 7. . . . . . . HOMCOL2R=074CD    A118 0018           STB CPSB07                 7. . . . . . . COLPCT5=374CF    A617 0017           LB  CPSB0674D1    AF0C 000C           OI  COLPCT574D3    A117 0017           STB CPSB06                 7. . . . . . . VANERR2=1                   TSB CPSB13,VANERR274D5    A61D 001D74D7    AF02 000174D9    A11D 001D                   SRG INTHRG74DB    A9C8 00C8                 7. . . . . . . CALL CSOFTSTP (F16)                   LID COLF16ER74DD    AE07 075674DF    2974E0    AE56 075674E2    31EC66    0001        66EC       BAL R1,CSOFTSTP                 6. . . . . . ENDIF                 5. . . . . ENDIF                 4. . . . ENDIF                 3. . . ENDIF                 2. . ENDIF. . .                 MISC. CODE                   BEGIN EC9 CODE `INTH3`    7803           DC  *                 1. IF CR17803    E4   0004           LR   CRREG7804    97   0007           TP  CR17805    3D42 7842           BZ  EC9A1                   SRG COLRG7807    A9D0 00D0                 1. THEN                 2. . IF (RECVAN1R &amp; HOM1COLR)                   TPB CPSB13,RECVAN1R7809    A61D 001D780B    92   0002780C    3D22 7822           BZ  EC9A0                   TPB CPSB07,HOMCOL1R780E    A618 00187810    97   00077811    3D22 7822           BZ  EC9A0                 2. . THEN                 3. . . CALL VANESTP                   LID COLF15ER7813    AE07 07487815    297816    AE48 0748                   SRG INTHRG7818    A9C8 00C8781A    321E67    0002        671E       BAL R2,VANESTP                 3. . . RESET CR1781D    E4   0004           LR  CRREG781E    B7   0007           TR  CR1781F    84   0004           STR CRREG7820    2C42 7842           B   EC9A1                 2. . ELSE    7822           DC  *                 3. . . IF (RECVAN2R &amp; HOMCOL2R)                   TPB  CPSB13,RECVAN2R7822    A61D 001D7824    93   00037825    3D42 7842           BZ  EC9A1                   TPB CPSB07,HOMCOL2R7827    A618 00187829    94   0004782A    3D42 7842           BZ  EC9A1                 3. . . THEN                 4. . . . CALL VANESTP (F16)                   LID COLF16ER7820    AE07 0756782E    29782F    AE56 0756                   SRG INTHRG7831    A9C8 00C87833    321E67    0002        671E       BAL R2,VANESTP                 4. . . . RESET CR17836    E4   0004           LR  CRREG7837    B7   0007           TR  CR17838    84   0004           STR CRREG                 4. . . . VANERR1=0, VANERR2=1                   SRG COLRG7839    A9D0 00D0783B    A61D 001D           LB  CPSB137830    B0   0000           TR  VANERR1783E    AF02 0001           TS  VANERR27840    A11D 001D           STB CPSB13                 3. . . ENDIF                 2. . ENDIF                 1. ENDIF                 MISC. CODE. . .__________________________________________________________________________ 
    
     At location 6780, the HOMCOL1R bit is set. This causes the directing means to be driven in the upward direction. At location 6877, the flag bit indicating that the directing means is moving toward the reference position is checked. If so, then at location 687C the home switch flag (COL1HOM) bit is tested to determine whether the directing means has reached the reference position. 
     Using the internal timing of the copier as a time-out indicator, if the RECVAN1R and HOM1COLR request bits are still on at location 7809, during the EC9 interrupt subroutine, then at location 7813 the program calls the VANESTP subroutine which, as explained above, causes the machine to stop. Included in the stop procedures are setting a flag that indicates that no more paper is to be picked and setting the CHKCOL bit referred to above. If the collator reaches the reference position before the time-out, then at location 689D, the VANEDWN request flag is set causing the directing means to step down one position. 
     A recovery counter (VANRECCT) is used to determine when the bin has reached the correct position. The sheet counter (VANECTR), which is used during normal operation of the collator, contains the number of the bin to which the next copy is to be delivered. At restart, this represents the proper bin number if the directing means were going down at the time the error occurred. If the directing means were traveling up, the sheet counter has a count value one greater than the correct bin. Therefore, at location 688E, the contents of the VANECTR byte are stored in the VANRECCT location. At location 6891, a test is made of the direction the directing means was moving at the time of the error. If the down flag bit (COLDOWN) is not set, the directing means was moving in the upward direction and, therefore, at location 6895, the VECTUPDT subroutine is called to decrement the VANERECCT by one. At location 6898, a test is made to determine whether the VANRECCT is zero. If not, then the DOWNR request bit is set, causing the directing means to step down by one bin. If the VANRECCT is zero, then at location 68A4, the RECVAN1R bit is reset. At location 68B7, if the RECVAN1R bit is still set and at location 68BC, the VANRECCT is not zero, then at location 68C2, the directing means is stepped down another bin. This stepping operation continues until the VANRECCT is zero indicating at location 6898 that the directing means is at the proper bin or until a time-out in the routine EC4. At location 748B, during the EC4 subroutine, the RECVAN1R bit is checked and if set, then at location 7493 the VANESTP subroutine is called which causes the machine to be shut down. 
     If the directing means reaches the proper bin before the time-out, then normal operation resumes. 
     It has been shown and described how operation errors can be detected in the operation of a collator and how proper operation can be restored automatically. Various modifications to the systems and circuits described and illustrated to explain the concepts and modes of practicing the invention can be made by those of ordinary skill of the art within the principles or scope of the invention as expressed in the appended claims.