GB2028539A - Sequence controller with microprocessor - Google Patents

Sequence controller with microprocessor Download PDF

Info

Publication number
GB2028539A
GB2028539A GB7925394A GB7925394A GB2028539A GB 2028539 A GB2028539 A GB 2028539A GB 7925394 A GB7925394 A GB 7925394A GB 7925394 A GB7925394 A GB 7925394A GB 2028539 A GB2028539 A GB 2028539A
Authority
GB
United Kingdom
Prior art keywords
storage means
mov
unit
modifying
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB7925394A
Other versions
GB2028539B (en
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AMF Inc
Original Assignee
AMF Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AMF Inc filed Critical AMF Inc
Publication of GB2028539A publication Critical patent/GB2028539A/en
Application granted granted Critical
Publication of GB2028539B publication Critical patent/GB2028539B/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F13/00Coin-freed apparatus for controlling dispensing or fluids, semiliquids or granular material from reservoirs
    • G07F13/06Coin-freed apparatus for controlling dispensing or fluids, semiliquids or granular material from reservoirs with selective dispensing of different fluids or materials or mixtures thereof
    • G07F13/065Coin-freed apparatus for controlling dispensing or fluids, semiliquids or granular material from reservoirs with selective dispensing of different fluids or materials or mixtures thereof for drink preparation
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F9/00Details other than those peculiar to special kinds or types of apparatus
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/10Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
    • G05B19/102Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence
    • G05B19/104Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence characterised by physical layout of switches; switches co-operating with display; use of switches in a special way
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/10Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
    • G05B19/106Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for selecting a programme, variable or parameter
    • G05B19/108Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for selecting a programme, variable or parameter characterised by physical layout of switches; switches co-operating with display; use of switches in a special way
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23016Accelerate input, exponent as function of pressure, time, turning speed, keys for 10-to-1
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23029Up down, increment decrement keys, jog, sequentially show functions or values
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23051Remote control, enter program remote, detachable programmer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23082Enter parameters with two hands, dead man knob, switch, pedal
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23215Check data validity in ram, keep correct validity, compare rom ram
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23329Modification, correction entered values
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23371Fixed and variable memory for parameters or user program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23406Programmer device, portable, handheld detachable programmer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23466Block, latch entry keys once program launched
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24032Power on reset, powering up
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24138Battery backup
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25289Energy saving, brown out, standby, sleep, powerdown modus for microcomputer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25458Opto isolation, optical separation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25462Galvanic separation, galvanic isolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2645Vending, distribute drinks

Landscapes

  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Automation & Control Theory (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Quality & Reliability (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Accounting & Taxation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
  • Programmable Controllers (AREA)
  • Beverage Vending Machines With Cups, And Gas Or Electricity Vending Machines (AREA)

Abstract

A microprocessor based sequence controller is for a soup and beverage vending machine 10. The microprocessor has two storage sections, one of which is not alterable and contains the basic program for the vending machine. The other section is alterable and contains modifications of the basic program entered from a separate service module, which is not normally connected with the controller during normal vending operations. The start and stop times of each function of the sequence are independently modifiable, and an interlock is provided to prevent unintentional modification of the start and stop times. <IMAGE>

Description

SPECIFICATION Sequence controller with microprocessor FIELD OF THE INVENTION The present invention relates to sequence controllers, and more particularly, to a sequence controller especially adapted for use with an automatic soup and beverage vending machine.
THE PRIOR ART Soup and beverage vending machines have heretofore been generally controlled by electromechanical devices, incorporating a plurality of cams for actuating a plurality of on-off switches.
The cams are mounted on a common shaft for rotation together, and they actuate the switches in a fixed, predetermined sequence, to allow the device to produce a number of output signals in predetermined sequences. The times of occurrences of the signals can be modified by adjusting the angular position of the cams on the shaft, but this modification is very inexact. Typically, after each adjustment, the machine must be cycled and timed, to determine the effect which each adjustment has on operation of the system.
While such systems have been satisfactory for the limited purposes for which they are intended, they are relatively inflexible, and difficult to adjust. It is accordingly desirable to produce a system which is more flexible, and simpler and more economical to manufacture.
Another disadvantage of previous machines is their vulnerability to modification of the timing adjustments by unauthorized persons. Since the timing cams are exposed to tampering by anyone who has access to the interior of a vending machine or the like which incorporates the controller, there is little control over the actual operation of the vending machine by the machine's owner.
Yet another disadvantage results from the fact that the cam shaft must turn through the same angle during each cycle of operation, which means that all possible sequences take the full time required for the longest possible sequence. This materially decreases the vending speed of a vending machine for sequences which can be shorter in duration.
BRIEF DESCRIPTION OF THE INVENTION It is a principal object of the present invention to provide a sequence controller having substantially more flexibility than past controllers, with the facility for changing the timing and sequence of operations in an exact predetermined manner.
A A further object of the present invention is to provide such a controller which is digital in nature, the operation of which is controlled precisely in accordance with digital information.
A further object of the present invention is to provide a controller having a basic program of sequences which is permanently stored, and providing modifying means for storing adjustable modifications to the basic program.
A A further object of the present invention is to provide means for making modifications to a basic program in a manner which maintains the integrity of the modifying information.
A further object of the present invention is to provide a sequence controller incorporating an independent service module, separate from the controller, which can readily be employed to make modifications in the programming as needed.
Another object of the present invention is to provide such a service module in a relatively compact and inexpensive form, with a minimum of controls for accomplishing the purposes of the service module.
A further object of the present invention is to provide such a service module with means for rapidly incrementing or decrementing the content of a storage location of the system controller with a minimum of manual controls.
A further object of the present inventionis to provide such a service module with means for incrementing or decrementing from the program control storage in a way which enables the operator to make large modifications in the storage contents, while requiring a minimum of equipment and a minimum of time required to make adjustment.
Another object of the present invention is to provide a sequence controller with means for independently controlling the start and stop time of each function controlled by the controller, with minimal apparatus required, to minimize size and cost.
Another object of the present invention is to provide an interlock for preventing unintentional modifications to the sequence times stored within the controller.
A A further object of the present invention is to provide a sequence controller in which the selectable sequences have individual time durations, so that short sequences are performed more rapidly than in the past.
Another object of the present invention is to provide such a sequence controller incorporating a microprocessor.
In one embodiment of the present invention, there is provided a microprocessor having stored program means for programming the microprocessor as a sequence controller to produce a plurality of output signals for controlling external apparatus in response to the condition of a plurality of sequence selection switches, and two separate memory sections, one of the memory sections being non-alterable and storing a basic program for control of the sequence and times of production of the output signals, and the other memory section being alterable and storing modifications of the basic program, the alterable memory section being adapted to be altered only through use of a normally separate control module.
In a more specific embodiment, the system controller of the present invention has a service module provided with a display, means for selecting a channel address, and means for modifying individual parts of the content of the storage location identified by said channel address, said service module being adapted to modify the content of said storage location when the service module is in connected relationship to the controller, but not otherwise.
SUMMARY OF THE DRAWINGS Reference will now be made to the accompanying drawings in which: Fig. 1 is a front elevation view of a soup and beverage vending machine incorporating an illustrative embodiment of the present invention; Fig. 2 is an elevational view of a portion of the interior of the apparatus of Fig.1, Fig. 3 is an elevational view of an embodiment of the service module associated with the present invention; Fig. 4 is a functional block diagram of a sequence controller incorporating an illustrative embodiment of the present invention; Figs. 5a-5d are flow charts of sequences of operations performed by the apparatus of Fig. 4; and Figs. 6a-6c are maps of selected sections of storage of the apparatus of Fig. 4.
DESCRIPTION OF THE PREFERRED EMBODIMENT Referring now to Fig.1, a soup and beverage dispensing machine 10 is illustrated which is adapted to dispense soup and beverages such as coffee, tea, hot chocolate, etc. The machine has a coin slot 12 and a plurality of pushbuttons 14 which are adapted to select the desired soup or beverage, and to add normal or extra cream and sugar, when the beverage selected is tea or coffee. A compartment 16 is provided at which a cup 18 is presented, and the cup is filled with the selected soup or beverage by means of a dispensing mechanism having a spout 20 supported above the cup 18.
A number of indicators 22 are provided for giving information to the user such as the coins which may be accepted by the machine, and the like. In the machine illustrated in Fig.1, the ten pushbuttons 14 respectively select black coffee, coffee with cream, coffee with sugar, coffee with cream and sugar, Sanka, hot chocolate, tea, soup, extra cream, and extra sugar. The first eight pushbuttons, which may be referred to as sequence selecting controls, select the soup or beverage to be dispensed, and the last two may be pressed during a vending cycle of coffee, Sanka or tea to select extra cream or extra sugar, respectively.
Fig. 2 illustrates a portion of the interior of the apparatus of Fig. 1 with the front cover removed.
Within the interior of the machine 10, a number of magazines occupy a space 24, and they are provided for storing the concentrates required for coffee, hot chocolate, tea, soup, etc., which are mixed with hot water during the dispensing operations before being dispensed into the cup 18. A coffee brewer is located in area 26, for the purpose of brewing coffee.
In the space above the locations 24 and 26 a circuit board 30 is located, and the sequence controller for the machine 10 is located on the circuit board 30. The circuit board is connected by means of flat ribbon cables 32 and 34 to two other units, one of which is illustrated in Fig. 2. The unit 36 is connected by means of the cable 34 to a board 30, and preferably the cable 34 is provided with a jack and plug connection 38, at least at one end so that the cable 34 may be disconnected, when that is desirable for service to the board 30 or the unit 36. The unit 36 supports components which are connected by lines 37 to various switches, including the switches 14, to produce signals which are communicated to the apparatus on the board 30. These signals are isolated from any transients which may be present on the lines connected with the switches 14, etc.
A plurality of relays (not shown) are mounted behind the board 30 are are electrically connected with components of the board 30 by means not shown. The relays are selectively energized for controlling the various functions of the dispensing machine 10. For example, when a cup 18 is to be dispensed into the compartment 1 6, one of the relays is operated, and its contacts close a circuit energizing a motor for operating the mechanism for allowing the dispensing of a single cup 1 8 into the space 1 6. The specific construction of the apparatus required for the mechanical functions of the dispensing machine 10 are well-known to those skilled in the vending machine art, and form no part of the present invention. For that reason, they will not be described in detail, it being understood that the relays open and close the required electrical circuits for proper operation of the dispensing machine.
The circuit board 30 supports a microprocessor chip-39, a few other logic chips, one of which is identified by reference numeral 62, and also another connector 40. The connector 40 is a multiple conductor receptacle which is adapted to receive a plug jack 42 (Fig. 3), but during normal operation of the apparatus of Figs. 1 and 2, no jack is in place in the connector 40.
A service module 46 (Fig. 3) is connected to the board 30 via the connector 40 when the sequencer is being serviced. During those times, thelug jack 42 is inserted into the connector 40, and by that means, a ribbon cable 44 interconnects the circuit board 30 with the service module 46. The service module 46 has a display unit 48 adapted for displaying a number of numerical integers with an appropriate decimal point. It also includes a four-position selector switch which is adjustable to select one of four modes of operation. In the vend position of the switch 50, the machine operates normally.
When the switch 50 is in its channel position, the display 48 shows one of a plurality of channel numbers. The channel number corresponds to the address of a storage location, in the modifiable memory of the microprocessor, at which is stored a start time and a stop time.
When the switch 50 is in its start time position, the display 48 illustrates the start time stored in the storage location identified by channel number displayed when the switch 50 was in its channel position. When the switch 50 is adjusted to its stop time position, the display 48 displays the stop time of the selected channel.
Two pushbuttons 52 and 54 are provided for selectively increasing or decreasing the content of any channel or storage location. When the pushbutton 52 is depressed, the content of the selected channel is decreased at a variable rate. The rate of decrease is quite slow in the beginning, but the rate of decrease continues to increase until a relatively rapid rate of decrease is achieved. The rate of decrease is reset to its initial slow condition each time the pushbutton 52 is released and redepressed. By this means, an operator can, with a few short depressions of the pushbutton 52, very slowly reduce the content of the selected storage location, while he may rapidly reduce the value stored in a selected channel by simply maintaining the pushbutton 52 in depressed condition.A second pushbutton 54 is provided for increasing the value stored in a selected channel, and its rate of increase is variable in the same way as described in connection with the pushbutton 52. This feature allows the service module to make large changes, or small and precise changes, with equal facility.
An interlock pushbutton 56 is provided for executing a lock or unlock function. The pushbutton 56 must be in its unlocked or depressed condition in order to allow the start time to be modified by either of the pushbuttons 52 and 54. The switch 56 must be in its non-depressed or locked condition in order to allow modification of the stop time by either of the pushbuttons 52 or 54. By this means, an operator must manipulate both of the two switches 50 and 56 in order to cause the start time to be modified, and this materially reduces the chance of inadvertently modifying the start time when only the stop time is intended to be changed. Since most modifications will be made with respect to the stop times only,.
the need to maintain the pushbutton 56 depressed in order to modify start times substantially eliminates inadvertent modifications to the start times. The service module 46 is extremely small and compact, and has only four controls. Notwithstanding the simplicity of the service module, it is amply powerful to completely program the sequence controller supported on the circuit board 30.
The programming of the sequence controller is accomplished by insertiny a start time and a stop time into each of a plurality of channel locations. Each channel location corresponds to a given relay or set of relays, and the start and stop times determine the time, during each cycle of operation, at which such relay or group of relays is energized anddeenergized.
In the operation of the sequence controller of the present invention, to control the vending machine 10, each vending cycle of operation begins with time zero, when a timer is reset at the beginning of a vending operation. The counter continually manifests the elapsed time since the previous reset. The elapsed time of the timer is periodically (and frequently) compared with every start time and every stop time in every channel, and when a match or coincidence is found, a program is executed which makes a relevance test. The relevance test determines whether the channel which produced the coincidence match is one which is relevant to the particular sequence selected by the pushbuttons 14.
For example, when soup is selected, the coffee brewer 26 is not required, and so the times for starting and stopping operation of the coffee brewer are irrelevant during a soup dispensing cycle. If the relevance test determines that the channel producing the coincidence match is relevant to the selected operation, the relays associated with that channel will be energized or deenergized, depending on whether the start or the stop time produced the coincidence match. When the last relevant coincidence is recognized, the operation of the vending machine halts, and the-machine is immediately ready for a subsequent vending cycle, without waiting for the duration of the longest possible sequence.
It will be appreciated that the start and stop times cannot be modified unless the service module of Fig. 3 is in position relative to the circuit board 30. This is a desirable feature in connection with vending machines, because it is very desirable to prevent any unauthorized tampering with the timing of tAhe various operations of the vending machine. It is not feasible to make the interior of the vending machine completely inaccessible, because there are circumstances which require such access For example, coins must be removed from the coin box, and periodically supplies must be added to the magazines of the machine. Since it is necessary to have access to the interior of the machine available to unauthorized service personnel, it is highly desirable to provide some other way of preventing unauthorized tampering with the machine timing. By use of the present invention, no timing adjustments may be made without access to a service module, and since the service module is separate and may be maintained in the possession of authorized service personnel only, access to the machine timing is in that way limited to qualified service personnel.
The microprocessor unit 39 is preferably a single chip unit such as Intel Model No. 8048. Such a microprocessor unit has two internal areas of storage. One storage area is a read only memory, or ROM, and the other storage area is a random access memory, or RAM. The contents of the ROM are fixed, and it is not possible to modify the contents in the field. The information stored in ROM is retained during periods of power outages, so that a restart program contained in the ROM section of memory, can restart the apparatus after a power failure. A RAM, however, is a volatile memory, and a power failure results in the loss of the contents stored in the RAM.Only the data stored in the RAM portion of memory can be modified by operation of the service module (Fig. 3), and no provision is made in the present invention for operating the sequence controller without access to the RAM, allowing for continued operation of the machine even following a power failure.
In the present invention, data relative to the start and stop times is stored partly in the ROM and partly in the RAM. The start and stop time data stored in the ROM forms a basic program, serving to permit operation of the machine in an acceptable, but not necessarily optimum, fashion.
The RAM section of memory is loaded, by using the service module 46, with incremental times which may serve to either increase or decrease the values of the basic program start and stop times stored in the ROM. Thus, a RAM is used to enable each vending machine to function in an ideal or optimum manner, with the exact times of operation being calculated by subtracting or adding the basic values stored in ROM to the modifying values stored in RAM. Since the modifications stored in RAM are typically small, compared to the basic times stored in ROM, the RAM memory capacity is conserved, and ampie RAM capacity remains for performance of the functions of the MPU which require use of RAM for a scratchpad memory, the integrity test, the relevance test, etc.
Although the content of the RAM is typically lost during periods of power outage, a rechargeable battery maintains power to the RAM portion during power outage. If protection against only short periods of power interruption is desired, a relatively low capacity battery source will suffice. Larger capacity batteries must be used in order to extend the time of preservation of data in the RAM to account for longer interruptions of power. Alternatively, an independent non-volatile memory such as an EAROM may be employed, which may be modified by writing, as a RAM, but does not lose its storage content during losses of applied power (up to ten years). When an EAROM is used, the incremental data stored therein for the start and stop times is never lost for any duration of power interruption.Since EAROM's are more expensive than other types of memory, it is highly beneficial to conserve their memory capacity, and this can be accomplished in the present invention by storing only modification values in the EAROM. Alternatively, the EAROM stores the times which are actually used as the start and stop times, so that incremental data need not be stored.
Reference will now be made to Fig. 4, which illustrates a functional block diagram of the sequence controller of the present invention. The MPU 39 is functionally illustrated as a single block, to which is connected a source of clock pulses 64 for controlling the timing of the MPU 39, a power supply 66, and a coin mechanism 68. The power supply 66 comprises a conventional power supply for furnishing the required voltage levels to the MPU and to the other units, derived from conventional AC power available on lines 70. The coin mechanism 68 is connected to a terminal of the MPU 39 which may be interrogated as to its condition. When the MPU used is the Intel Model 8048, the coin mechanism 68 is connected to the T1 terminal of the MPU, which, during the execution of suitable instructions, may be tested for a high or low value.The source of clock pulses 64, the power supply 66 and the coin mechanism 68 are all conventional units, so that they need not be described in detail. The function of the coin mechanism 68 is to supply a signal to the terminal T1 when the proper amount of coinage has been deposited in the coin receiving slots, so that a dispensing or vending cycle can begin. A dispensing cycle begins, after deposit of the requisite number of coins, by depression of one of the soup or beverage selecting buttons 14.
The MPU 39 is provided with two ports P1 and P2 and a data bus DB. The data bus consists of eight lines 76, which are connected from the MPU 39 to a set of drivers 78. The output of the drivers is connected to appropriate ones of a set of LED's -60, and to appropriate ones of a set of relays 80.
The port P2 is connected over eight lines 74 to a set of drivers 82, and the output of the drivers is connected to some of the LED's 60 and to appropriate ones of the relays 80.
Port P1 is connected to eight lines 72 and performs both input and output functions. When it functions as an input, it senses a condition of a plurality of switches, and when it functions as an output, it supplies control signals to the display unit 48, designating which part of the display is to be energized at any given time. The outputs of the data bus are also connected to the display unit 48, via drivers 78, and furnish signals indicating the information which is to be displayed at various positions of the display.
When the lines 72 function as inputs, they sense the condition of the nine switches 14 on the front panel of the dispensing machine, and also the condition of the switches on the service module 46.
The nine switches are each connected to unique combinations of the eight lines 72, so that the closing of any one of the switches is recognized during operation of the MPU 39 because of such interconnection. Preferably, all of the ten switches are isolated from any effects on the power lines by means of opto-isolator units, such as the one 84 which is shown in association with the switch CB. The switch CB (for selecting black coffee). connects the opto-isolator 84 to a source of input power which may be conventional AC power applied to terminals L1 and L2.The opto-isolator 84 functions to complete an electrical circuit between two output leads, which are electrically isolated from the input leads connected to L1 and L2, and therefore are not affected by transient conditions on the line. The two output leads of the opto-isolator 84 are connected to the first and fifth lines of the eight lines 72.
The other eight panel switches, although indicated diagrammatically in Fig. 4, are preferably arranged with opto-isolators in the same manner as the switch CB.
Six of the eight lines 72 are connected through the connector 40 to various ones of the switches of the service module 46. The lock switch 56 is connected between the sixth and eighth lines, the decrement switch 52 is connected between the second and seventh lines, and the increment switch 54 is connected between the first and seventh lines of the lines 72. The switch 50 selectively connects the sixth line of the lines 72 to the first, second and third lines of the set. The condition of the'switches 5056 is determined during operation of the MPU 39 in the same manner as described above in connection with the panel switches.
The disconnection of the service module 46, by opening the connector 40, does not interfere with the relationship between the sequence controller and the switches 14 and relays 80, which execute the various operations required during dispensing cycles. The sequence controller is therefore effective for normal operation of the vending machine therefore without the presence of the service module 46.
Since only one service module 46 is required for a large family of sequence controllers, the cost, complexity, and powerconsumption of the sequence controller is materially reduced.
The power-down/power-on reset circuit 90 provides for the sensing of an imminent power failure or removal of power. When this condition is sensed, the appropriate input pin of the MPU 39 is driven to a a zero voltage level, thereby initializing the MPU 39 internal program, disabling the relays 80, and protecting the RAM contents from being erroneously altered during a marginal power supply condition.
This reset input pin is held at zero volts until the power is restored to the proper level as sensed by the power-down/power-on reset circuit 90.
Reference will now be made to Figs. 5a-5d, which taken together form a flow chart illustrating operations performed by the sequence controller of the present invention. The flow chart assumes that the MPU which is used is the Intel Model 8048. The several blocks of the flow charts shown in Figs.
5a-5d are representative both of the structure of the present invention, and the function of that structure. Although in the preferred embodiment, most of the decisional and operational units shown in these figures are contained internally within the MPU chip, it is equally feasible to construct them of conventional logic integrated circuits, or even with discrete components. Thus, the representation of the boxes in Figs. 5a-5d are both structural and functiona [ ,.and can be interpreted as hardware and/or software. In these figures, rectangles are provided to illustrate operational devices or units which may be flip-flops, solenoids, relays, etc.; and where diamonds are provided to represent decision units which may be comparators, coincidence gates, or the like.Since the physical construction of each operation unit, and each decision unit, is obvious to those skilled in the art from a consideration of its function, the specific construction which may be employed for the various operation units and decision units will not be described in detail.
The decision units and operation units shown in Figs. 5a-5d operate in a prescribed sequence, and control the manner in which the various functions are carried out. For that reason, the flow charts will be described in terms of one unit passing control to the next unit, implying that the previous operation or decision has been completed.
Operation is initiated when power is applied to the apparatus of Fig. 4, via the power supply 66, by operation of the power-down/power-on reset unit 90 (Fig. 5a), causing a reset of the internal program counter of the MPU 39 to zero. This causes the program to be entered at the proper starting point.
Control is next passed to a unit 104 which explicitly turns off the vend relay, sets the channel number code to zero and resets the interrupt timer 101 to zero. The interrupt timer 101 is a timer contained within the MPU 39, but may be a discrete timer. Its function is to count clock pulses constantly, and when the timer counter overflows, a signal is produced which passes control to unit 104, restarting the program from that point. The interrupt timer counter is reset at frequent intervals during normal operation of the programs of Figs. 5a-5d, so that during normal operation it never overflows. If it should overflow because of a transient fault condition, the operation of the apparatus is restarted and then resumes normally.
Unit 104 passes control to a unit 106 which next starts the interrupt timer, which then begins incrementing continuously at a fixed rate independently of the main program flow. Control is then passed to the unit 108, which sets the content of register 5 equal to 30, and clears all of the output flipflops for driving the relays 80. The contents of register 5 are used to execute the variable rate increment and decrement function when the control module is used.
The unit 108 passes control to a unit 110 which functions to call a subprogram for performing a check sum program. The check sum program constitutes the integrity test of the data stored in the RAM and it is performed by successively addressing every storage location in the RAM where a modification of a start time or a stop time is stored, and adding together the total sum of all of the modifications. This results in a check sum, which is used in the integrity test.
When the check sum is calculated, control is passed to the unit 112 which compares the calculated check sum with a previously calculated value stored in the RAM. If the calculated value equals the stored value, control is passed to the unit 114 over a line 11 6. If the calculated value does not equal the stored value, control is passed to the unit 113 through a unit 118 which operates to set a reload flag, and clears the modifying contents of the RAM to all zeros.
The integrity test performed by the units 110 and 11 2 insures that the contents of the RAM have not been altered, for example, as a result of a power failure exceeding the capacity of the battery power supply. Following such a power failure, the contents of every RAM location is random, and the integrity test fails with a high degree of certainty. Under those circumstances, the random contents of the RAM are ignored and the RAM is set to zero, so that the start and stop times of the basic program are not modified. No other program alterations are necessary, because the addition or subtraction of zero does not modify the basic program times.The reload flag is an output which is connected to one of the other LED's 60, so that if the integrity test fails, the lighting of that specific LED 60 will indicate that service is necessary to reload the contents of the RAM.
The unit 11 3 provides for one of the frequent resets of the interrupt timer, as described above.
The unit 114 determines whether the channel switch has been operated, i.e., if the switch 50 is in its channel position. If it is, control is passed over a line 120. If not, control is passed over a line 122 to a unit 124, which determines whether the switch 50 is in its start time position. If it is, control is passed over a line 126, and if not, control is passed over a line 128 to a unit 130. The unit 130 determines whether the switch 50 is in its stop time position. If it is, control is passed to a line 132, and if not, control is passed to a unit 134. Since the unit 134 receives control only if the switch 50 is in its vend condition, or the service module 46 is not connected, the vend cycle is indicated. The unit 134 determines whether credit has been received, as determined by a signal from the coin mechanism 68 at the T1 terminal of the MPU 39.If it is, control is passed over the line 136 to start the vend program. If not, control passes to the unit 138 which turns on the coin mechanism 68 and then returns control to the unit 108. As long as the service module 46 is not connected, or the switch 50 is not in one of its three service positions, the program will cycle through the units just described, until credit is established by depositing the proper coins in the coin slot 12. Then, the vend program is entered over line 136, to initiate it as a sequence of operations which result in the vending or dispensing of the selected soup or beverage.
If the control module 46 is connected, and the switch 50 is in its channel position, the line 120 passes control to a unit 140, which causes the display 48 to display the content of the channel register.
When the unit 140 has displayed the channel number, control is passed to the unit 141 for clearing of the interrupt timer, and then to the unit 142, which examines the state of the increment pushbutton switch 54. If it has been depressed, control passes to the unit 144 which compares the - display channel number with number 1 5. If the channel number is 15, control returns directly to the unit 108. In the example described, 1 5 is the highest channel number, so that depressing the pushbutton 54 when the channel number is 15 is an erroneous condition.
If the unit 144 determines that the channel number is not 15, control passes to the unit 146 which increments the content of the channel register, and then returns control to the unit 108. The loop described beginning with 108 and ending with 146 is then repeated, with each repetition resulting in an increase of the content of the channel register by one. In this way, any channel may be readily selected by incrementing the channel register until the correct channel is arrived at.
It the unit 142 determines that the increment pushbutton has not been depressed, control passes to the unit 148 which determines whether the pushbutton 52 has been depressed. If the unit 148 determines that neither of the pushbuttons 52 and 54 is depressed, control returns to the unit 108, and the program sequence beginning with 108 and ending with 148 is repeated until one of the pushbuttons is depressed to increase or decrease the content of the channel register. Since unit 140 is operated periodically, for each repetition of this loop, the channel number appears to be continuously displayed.
If the unit 148 determines that the pushbutton 52 has been depressed, control passes to the unit 1 50, which compares the state of the channel register with zero. If the channel register is equal to zero, the number of the lowest channel, a decrease operation is erroneous and control passes directly backto the unit 108. If the channel register is not set to zero, control passes to the unit 1 52 which decrements the channel register before returning control to 108.
Through the program described above, any desired channel is quickly selected and displayed by the use of the controls of the service module 46.
When the desired channel has been found, the switch 50 is moved to either its start time position or its stop time position. When it is moved to its start time position, control is passed over the line 126 to a unit 1 54 where it sets a flag equal to zero. The flag will be referred to as the start-stop flag, and a condition of zero indicates that the switch 50 is in its start time position. Control is then passed to a unit 1 56 which stores the content of register 5 in register 3, and then passes control to a unit 1 58, which calls a display subroutine. The display routine operates to cause a display device 48 to display the content of the selected register, which corresponds to a modification of a start time or a modification of a stop time. When the switch 50 is in its start time position, the part displayed is the start time stored in the selected channel. Control passes from unit 1 58 to unit 1 59 for the clearing of the interrupt timer, and then to unit 160 which determines whether R3 is equal to zero. Since the unit 160 first receives control when the content of R3 is 30 (and not zero), control is passed to unit 1 62. which functions to decrease the content of the R3 register by 1, and then returns control to the unit 158. The loop including the units 1 58, 1 60 and 162 accordingly is traversed 30 times before R3 is equal to zero. Then control is passed to a unit 164 which determines whether the switch 50 is in its start time position, with the lock pushbutton 156 in its unlocked condition. If so, control is passed to a unit 166 to initiate the steps which bring about a change in the content of the selected channel.
When it is desired to modify the stop time, the switch 50 is adjusted to its stop time position, and then the unit 130 receives control, and passes control to the unit 156 through a unit 168 which sets the start-stop flag equal to 1, signifying that the stop time is to be modified. Subsequent operations are performed in the manner described, down to the unit 1 64. If the unit 1 64 determines that the switch 50 is not in its start time position, or the pushbutton 56 is not in its unlocked position, control is passed to unit 1 70 which determines whether the switch 150 is in its stop time position, with the switch 56 in its locked condition. If so, control is passed to the unit 1 66 for initiating the change in the selected start or stop time.If the unit 1 70 determines that either the switch 50 is not in its stop time position, or the lock 56 is not operating, an erroneous condition is indicated, and control is passed directly back to the unit 108 without modifying the content of the channel.
The steps which have just been described constitute the interlock program, which requires the operation of the switches 50 and 56 in conjunction. If these switches are not properly operated, the times stored in the selected channel cannot be altered, and this feature substantially prevents unintentional modification of the start and stop times.
The unit 1 66 inspects the condition of the pushbutton 54. If it is not depressed, control is passed to a unit 168 which examines the condition of the pushbutton 52. If it is also not depressed, control is returned to the unit 108, and continues to cycle through the loop beginning with 108 and ending with 168 repetitively until one of the pushbuttons 52 or 54 is depressed. When the unit 166 recognizes that the pushbutton 54 has been depressed, control is passed to a unit 1 72 which determines if the switch 50 is in its start time position. If it is, control is passed to a unit 1 74 which determines whether the start time and stop time stored in the selected channel are equal. If so, the incrementing of the start time is an erroneous condition, and control is returned to the unit 108 over a line 176.If not, control is passed to a unit 178 which executes the next step in bringing about a change in the selected start or stop time.
If the unit 172 determines that the switch 50 is not in its start position, the unit 178 receives control directly.
When the pushbutton 52 is depressed, the unit 168 passes control to a unit 180, which determines whether the switch 50 is in its stop position. If it is, control is passed to a unit 182 which determines whether the start and stop times of the selected channel are equal. If so, any attempt to decrease the stop time is erroneous and control is returned directly to the unit 108 over the line 176. If not, the unit 178 receives control. When the unit 180 determines that the switch 50 is not in its stop time position, control is passed to a unit 184 which determines whether the start time is zero. If so, it cannot be decremented and control is returned to the unit 108. If the start time of the selected channel is not equal to zero, control is passed to the unit 178.
The unit 1 78 determines whether the sign of the selected start or stop time is negative and the decrease pushbutton 52 has been depressed. If so, it passes control to a unit 186 which determines whether the current content of the selected time of the selected channel is at a maximum value. An attempt to increase it further is erroneous and controls return to the unit 108. The unit 186 can also receive control from a unit 188, when the unit 178 determines that the sign of the modifier stored in RAM is not negative, or the pushbutton 52 has not been depressed. Under these conditions, the unit 188 receives control and determines whether the modifier stored in the RAM is positive and the pushbutton 54 has been depressed. If so, control passes to 186. If not, control passes to a unit 190.The unit 190 can also receive control from the unit 186 if the content of the selected RAM location is not at a maximum value. The unit 190 again inspects the condition of the pushbutton 54. if it is depressed, control passes to unit 1 92 which increases the selected time of the selected channel by one unit.
Otherwise, control passes to unit 194 which decreases the selected time by one unit. Then control passes to unit 196 which updates the checks sum stored in RAM, an operation which is necessary every time the start and stop time modifiers stored in the RAM are adjusted. The control is passed to unit 197 which resets the reload flag, and then unit 198 decreases the content of the register 5 and then returns control over line 122 to the unit 1 10.
As long as either pushbutton 52 or 54 is maintained depressed, the steps described above are repeated and unit 198 receives control before returning control to the unit 1 10. Each time the unit 198 receives control, the content of register 5 is decreased by one, which shortens the time required in the loop including the units 158, 1 60 and 1 62. This loop is repeated, each time it is entered, the number of time corresponding to the content of register 5, since register 3 is set accordingly by the unit 156 just before the loop is entered. Since the initial content of register 5 is 30, thirty repetitions of the loop occur between each adjustment of the content of the selected channel, whether it is being increased or decreased.After it is adjusted by 30 units, in the course of 30 repetitions of the loop including the unit 1 98, the content of register 5 has been reduced to zero, and the loop including the unit 162 is bypassed. In this way, the rate at which the modified values are adjusted is increased as long as one of the pushbuttons 52 or 54 remains depressed. In this way, large adjustments may be made to the contents of RAM in a short time, simply by the expedient of holding the appropriate pushbutton depressed. Very fine adjustments are made equally well simply by depressing the appropriate pushbutton for short periods of time.
By the programmed step described above, any channel may be selected, and its modification of the start time and stop time may be adjusted up or down easily and quickly to enter desired value.
Whenever an adjustment is made, the unit 1 97 resets the reload flag automatically, so that it will again be capable of indicating a subsequent failure of the integrity check.
When the unit 134 (Fig. 5a) receives control and recognizes credit, it passes control to the first unit in the vend program over a line 136. The first unit is the unit 200 (Fig. Sc) which causes the switches 14 to be read in, together with a conventional debounce program, for avoiding errors due to bouncing of the switch contacts. After the unit 200 operates, control is passed to the unit 202 which determines whether one of the selection switches 14 has been depressed. If not control is returned over a line 204 to the unit 108. If a selection has been made, control passes to the unit 204 which decodes the switches end places in the upper half of the register 4 a representation of what sequence has been selected.Control is passed to a unit 206 which resets the interrupt timer and clears the internal clock which controls the timing of the functions during the vend cycle. 206 passes control to a unit 208 which sets a flag F1 to zero, which allows start times to be checked for coincidence. It also sets the channel register to 1 5 so that the first channel to be checked for a time coincidence is channel No.15.
After the channel register is set to 1 5, unit 210 receives control and inspects the switches 14 to determinewhetherthe extra cream switch has been depressed. If so, control is passed to the unit 212 which sets bit No.7 of register 5. If not, a unit 214 examines the condition of the extra sugar switch, and passes control to unit 21 6 which sets bit 6 of register 5 if the extra sugar switch has been depressed. Unit 21 7 then determines if Fl =0, indicating a start time. If so, control passes to a group of units 218are which determine whether the channel 1 5 start time corresponds to the time of the clock.
The unit 21 8a gets the starttime for channel 15 from ROM and theunit218b gets the signed modification parameter from RAM. Unit 21 8c adds them; unit 21 8d gets the clock value; and unit 218e checks for coincidence. If a coincidence is found, control passes to unit 220. Otherwise, control passes to unit 221. if the unit 21 7 determines that Fl =1, ths same sequence is performed for the stop time of the selected channel, by operation of units 21 8f-2 1 8j. As described hereinafter, all the channels are checked for start time coincidence, and then all are checked for coincidence with stop times.
If the clock value is not equal to either the start time or the stop time, control passes to a unit 221 (Fig. which clears the interrupt timer. Then a unit 222 inspects the state of the channel register. If the channel register is not zero, control passes to a unit 224 which decreases the state of the channel register by one and then returns control to the unit 210. This sequence of operations beginning with 210 and ending with 224 is repeated until the start times of all sixteen channels have been compared with the clock, after which control is passed over a line 225 to a unit 226. The unit 226 examines the state of the flag F1 which was set to O by the unit 208, before the start times were compared with the clock.Since the first time the unit 226 receives control, the flag F1 is 0, control passes to the unit 228 which resets the channel register to 1 5; sets the stop bit F1 to 1; and returns control to the unit 210.
The sequence beginning with the unit 210 and ending with the unit 228 is then repeated, so that the stop times of all channels are compared with the timer so that a coincidence can be detected.
When a coincidence is detected by the unit 218, control is passed to the unit 220 which performs a relevance test by determining, from the data stored in the upper half of the register 4, whether the channel for which a coincidence has been detected is one which is used in the selected sequence. If not, control passes directly to the unit 221. If the relevance test is positive, control passes to a unit 230 which determines whether the channel for which coincidence has been detected is the extra cream channel. If it is the extra cream channel, control passes to the unit 232 which examines bit 7 of the R5 register. This bit would have been set by the unit 212 in response to recognition of the extra cream pushbutton. If unit 230 determined that it had not been the extra cream channel, control passes to unit 231 to determine if it is the cream channel.If it is, control is passed to the unit 232 for the bit 7 test of R5. If bit 7 is found to be set, control passes to the unit 233 which determines whether the time for which coincidence has been found is the cream stop time. If it is, control is passed directly to unit 221, thus causing no change in cream dispenses status. If it is not cream stop time, control is passed to unit 234 for the substitution of the cream channel output code for the extra cream code, and thence to unit 242. The subsequent turn on or turn off of the cream dispenser is described below. If the test by unit 231 for cream channel was negative, or if bit 7 of R5 was not found to be set by unit 232, control is passed to unit 236 which determines if the coincidence channel is the extra sugar channel. If it is, control passes to unit 238 which examines bit 6 of R5, which may have been set by the unit 216. If unit 236 determined that it had not been the extra sugar channel, control passes to unit 237 to determine if it is the sugar channel. If it is, control is passed to the unit 238 for the bit 6 test of R5. If bit 6 is found to be set, control is passed to the unit 239 which determines whether the time for which coincidence has been found is the sugar stop time. If it is, control is passed directly to unit 221, thus causing no change in the sugar dispenser status. If it is not sugar stop time, control is passed to unit 240 for the substitution of the sugar channel output codes for the extra sugar code and then to unit 242 for the subsequent turn on or turn off of the sugar dispenser.Unit 242 can also receive control from unit 237 if the sugar channel test was negative, or from unit 238 if bit 6 of R5 was not found to be set.
The unit 242 determines whether the brew channel is the channel for which a coincidence has been recognized, and, if so, passes control to unit 244 which sets bit 3 of register 5 to indicate that a long cycle is required, since the coffee dispensing cycles employing the brewer require longer time durations than other cycles. Control is then passed to unit 246 which receives control directly from the unit 242 if the brewer channel is not the coincidence channel. The unit 246 determines whether the coincidence time is a stop time, and if so, passes control to a unit 248 which conditions the apparatus for turning off an output bit. Then control is passed to a unit 250 to accomplish turning off of the appropriate output.If the unit 246 recognizes a start time instead of a stop time, it passes control to the unit 252 which conditions the apparatus for turning an output on and then passes control to a unit 254 to accomplish turning on of the selected output.
Control is then passed to unit 266, which may also receive control from 250 in the output turn off sequence. In the unit 266, the current channel output code is tested to determine if it is the code for Sanka, cream or sugar. If it is not one of these, unit 268 then-determines if this is an output turn-on by sensing if F1=0. If it is, R5 is incremented by one to provide for a count of the outputs which are currently energized. If F1--l, indicating an output turnoff, R5 is decremented by one, thereby decreasing the count of the outputs currently energized. Control is then passed to unit 221.
When the unit 226 determines that the last recognized coincidence is a stop time, control is passed to a unit 256 instead of to the unit 228. The unit 256 determines whether the time of the vend cycle has equalled or exceeded the time value of the vend channel plus a modifier which may have been stored in RAM memory and if it has, control is passed to a unit 258 which operates to turn off all the relays and return control over a line 260 to the unit 104. Although a single decision unit 256 has been illustrated, it will be understood that several different operations are required, and the unit 256 is representative of a series of units such as units 21 8a--218e, which check for a start time comparison.
The unit 256 establishes the maximum time for any vending operation, and restores the apparatus to its normal condition if, for any reason, such as extraneous noise or the like, any output relay has been improperly left on.
If the unit 256 determines that the maximum cycle time has not yet elapsed, control is passed to a unit 262 which determines whether the elapsed time of the vend cycle is greater than 10 seconds. If not, control is passed to unit 274 for incrementing of the clock by 1, and then to the unit 208 and the sequence described above is repeated. If more than 10 seconds have elapsed, control is passed to the unit 264 which examines the state of bits 0, 1, 2 and 3 of register 5. If bit 0, 1 or 2, which together constitute the output status count for the number of relays currently energized, is set (meaning at least one is still on), or if bit 3 is set, indicating that a long cycle is required because the brewer has been selected, control is returned to the unit 208.If none of these bits are set, control is passed directly to the unit 258, and all relays are explicitly turned off (even those which had previously been turned off).
By operation of the units 256, 262, and 264, as well as the unit 244, no selected sequence requires more than 10 seconds, except for a sequence which involves operation of the brewer, and then the sequence is limited to the vend channel time, which is nominally 18 seconds, unless modified.
Accordingly, selected sequences which do not invqlve operation of the brewer are permitted to occur with almost twice the speed of brewer-depending sequences.
Figs. 6a-6c illustrate portions of the ROM and RAM storage sections of the present invention. In Fig. 6a, corresponding parts of the ROM and RAM are illustrated, in which are stored, respectively, the basic times and the modifying parameters of a typical channel. Four decimal digits are stored in ROM for the basic times, and three decimal digits (of which the most significant digit is a maximum of 7) is stored in RAM. Thus, a basic time may be any time within the range O9999 units, and the modifying parameter may be within the range of minus 799 to plus 799. Also, the total of the basic time plus the modifier must be within the range of O9999 units. Since the modifying parameters are typically small, not as much RAM storage capacity is required.
The actual time value of each unit of the stored start and stop times depends on the speed of operation of the apparatus. In one embodiment, each unit corresponded to 0.05 seconds. Fig. 6a also shows the check sum stored in a portion of RAM.
Fig. 6b shows the significance assigned to several of the MPU's operating registers. Register 4 stores, in one bit, an indication that the proper coins have been deposited as determined by signals from the coin mechanism. Three other bits store a representation of the selected sequence, in accordance with which of the sequence-selecting pushbuttons 14 are operated. The other half of register 4 constitutes the channel register, for designating the channel being accessed currently in ROM and RAM.
In register 5, two bits store flags indicating that extra cream and sugar have been selected; another bit stores an indication of whether the current cycle is short or long, i.e., whether the brewer has been selected, and three other bits maintain a count of the number of outputs turned on, so that a subsequent vend program can be initiated as soon as all outputs of a preceding vend cycle are turned off, signifying the end of that cycle. This enables vending cycles to be shorter than the vend cycle time for non-brewer vends. The unit 258 functions as a back-up, after 10 seconds, in case some fault prevents a tum off of one or more outputs.
Registers 6 and 7 constitute the internal timer, which may be counted from 0 to 9999 (counting in binary-coded decimal). It can, of course, count from 0 to 216 when operated as a binary counter of 16 stages. If desired, the data stored in the ROM and RAM sections for the basic times and modifications may also be in binary.
Fig. 6c illustrates a table used in the relevance test The table is stored in ROM, and identifies which channels are relevant to any of the eight selectable sequences. No data is stored for channels 0 and 1, because an indication of whether extra sugar or cream is selected is stored in register 5 (Fig. 6b).
When an EAROM is used, it is a separate unit 300 (Fig. 4) connected to the MPU via data bus lines 301. The EAROM is operated for reading and writing by a logic unit 302, under control of the MPU unit 39. The details of the logic unit 302 are well known to those skilled in the art. When the EAROM is used, it is accessed for modification by the service module in the same way that the internal RAM is accessed, which has been described above in detail. The EAROM may store either the modification parameters, like the RAM, or may store the complete programmed times, in which case, the ROM of the MPU 39 need not store the basic times, and this memory space is made available for program instructions and the like.
It is apparent that the sequence controller described above may be adapted for other applications than the control of a soup and beverage vending machine. Various additions and modifications may be made by those skilled in the art without departing from the essential features of novelty of the present invention, which are intended to be defined and secured by the appended claims.
"APPENDIX A" SEQUENCE CONTROLLER WITH MICROPROCESSOR Case 78,332 LOC OBJ SEQ SOURCE STATEMENT 1 ;+++COPYRIGHT 1978 AMF INCORPORATED 2 :FM. VENDING MACHINE CONTROLLER 3 ;3/9/78 4 ;TIMING FOR 1 INCR AND 3.5 MHZ CLOCK 5 ;START OF PROGRAM PORTS RESET AND TIMER RESET 6 ;RAM CHECKED FOR CHECKSUM FAILURE 3006 7; 0006 8 CLK1 EQU 06 OOEF 9 COL1 EQU OEFH OODF 10 COL2 EQU ODFH OOAF 11 COL3 EQU OAFH 007F 12 COL4 EQU ()7FH 13 13 ROW EQU 050H OOOF 14 OSS EQU OFH 0010 15 RAM EQU 010H OOOA 16 TIMES EQU OAH 004R 17 VENDC EQU 04AH 0002 18 VENCHA EQU 02 0300 19 OPG 0300H 0300 40 20 DIGITS DB 040H 0301 F9 21 DB OF9H 0302 24 22 DB 024H 0303 30 23 DB 03OH 0304 19 24 DB 019H 0305 12 25 DB 012H 0306 02 26 DB 002H 0307 F8 27 DB 0F8H 0308 00 28 D8 000H 0309 18 29 DB 018H 030A 00 30 ROMTIM DB 000H ;XS CHO 030B 48 31 DB 048H 030C 73 32 DB 073H 030D 00 33 DB 000H 030E 00 34 DB 000H ;XCR CH1 030F 62 35 DB 062H 0310 66 36 DB 066H 0311 00 37 DB 000H 0312 00 38 DB 000H ;VENC VH2 K2 0313 50 39 DB 05OH 0314 70 40 DB 070H 0315 10 41 DB 010H 0316 00 .42 DB 000H ;;BREW CH3 K3 6317 65 43 DB 0318 20 44 DB 020H 0319 00 45 DB 000H 031A 46 DB 000H ;CUP M CH4 K4 031B 84 47 DB 004H 031C 21 48 DB 021H 031D 00 49 DB 000H 031E 00 50 DB 000H COF A CH5 KS 031F 02 51 DB 002H 0320 64 52 DB 064H 0321 00 53 DB OOOH 0322 00 54 DB 000H :X WAT.CH6 K6 0323 48 55 DB 048H 0324 94 56 DB 094H 0325 00 57 DB OOOH 0326 00 58 DB OOOH ;LIGHT M CH7 K7 0327 14 59 DB 014H 0328 64 60 DB 064H 0329 00 61 DB 000H 032A 00 62 DB 000H ;SUGARMCH8 K8 032B 50 63 DB 050H 032C 64 64 DB 064H 032D 00 65 DB 000H 032E 00 66 DB 000H ;CHOC M CH9 K8 032F 03 67 DB 003H 0330 74 68 DB 074H 0331 00 69 DB 000H 0332 00 70 DB 000H ;CHOC W CH10 K10 0333 00 71 DB 000H 0334 73 72 DB 073H 0335 00 73 DB OOOH 0336 00 74 DB 000H TEAM CH11 K11 0337 87 75 D8 087H 0338 54 76 DB 054H 0339 00 77 DB 000H 033A 00 78 DB OOOH TEAW CH12 K12 033B 00 79 DB 000H 033C 92 80 DB 092H 033D 00 81 DB 000H 033E 00 82 DB 000H ;SOUPM CHl3 K13 033F 68 83 DB 068H 0340 64 84 DB 064H 0341 00 85 DB 000H 0342 00 86 DB OOOH ;;SOUP W CH14 K14 0343 38 87 DB 038H 0344 82 88 DB 082H 0345 00 89 DB 000H 0346 00 90 DB 000H SANKA CH15 K15 0347 77 91 DB 077H 0348 64 92 DB 064H 0349 00 93 DB OOOH 034A FF 94 VENDCO: D8 OFFH ;CLS1 034B 2A 95 DB 02AH ' ;SOUP1 034C EA 96 DB OEAH ;TEA1 034D 2A 97 DB 02AH CHOC1 034E EA 98 DB OEAH ;SANKA1 034F FE 99 DB OFEH ;CS1 0350 FF 100 DB OFFH ;CL1 0351 FE 101 DB OFEH ;CB1 0352 80 102 DB 000H ;CLS2 0353 06 103 DB 006H ;SOUP2 0354 18 104 DB 010H ;TEA2 0355 60 105 DB OEOH ;CHOC2 0356 01 106 .DB 001H ;SANKA2 0357 00 107 D8 000H ;CS2 0358 00 108 DB 000H ;CL2 0359 00 109 DB 000H ;CB2 0000 110 ORG Or 0000 F8 111 START: MOV A,PO 0001 0407 112 JMP STAR11 0003 OA 113 INTRPT: IN A,P2 0004 A8 114 MOV PO,A 0005 0405 115 INTR: JMP INTR 0007 3A 116 STAR11: OUTL P2,A 0008 0A02 117 OPL P2,#02H ;TURN CREM ON 000A 27 118 CLR A 0008 AC 119 MOV R4,A TAKE AWAY CREDIT 000C 900B 120 START1: ANL P2,#00BH ;TURN RELAYS OFF 000E 62 121 MOV TA 000F D7 122 MOV PSW,A 0010 55 123 STRT T 0011 898C 124 MOV R1,*0CH 0013 Al 125 MOV CR1,A 0014 AA 126 MOV R2,A 0015 B920 127 MOV R1,#020H 0017 EA17 128 START3:DJNZ R2,START3 0019 62 129 MOV TA 001A E917 130 DJNZ R1,START3 001C 37 131 CPL A 001D 82 132 OUTL BUS,A 001E BD30 133 VEND? MOV R5,#030H 0020 27 134 VNTST: CLR A 0021 9AOB 135 AHL P2,*0BH 0023 62 136 MOV T,A 0024 OA 137 IN A,P2 0025 37 138 CPL A 0026 122A 139 JBO VNTS1 0028 8A08 140 ORL P2,#08H ;SET RELOAD INDICATOR 002A 34C3 141 VNTS1: CALL CHKSUM 002C 05 142 EN I 002b 25 143 EN TCNTI 002E C63B 144 JZ VEN3 0030 BA33 145 MOV R2,*033H SET UP LOOP COUNTER 0032 B93F 146 RAMCLR: MOV R1,#3FH ;ROUTINETO CLR RAM 147 ;SET PTR 0034 27 148 RAMCL1:CLR A 0035 Al 149 MOV CR1,A ;CR1=0 0036 C9 150 DEC R1 0037 EA34 151 DJNZ R2,RAMCL1 ;IF YES DONE 0039 8A01 152 ORL P2,*01H 003B 237F 153 VEN3: MOV A,*COL4 ;READ WHICH SWITCH 003D A9 154 MOV R1,A 003E 39 155 OUTL P1,A 003F 09 156 IN A,P 0040 37 157 CPL A 0041 A5 158 CLR F1 0042 525B 159 JB2 CHAN IF CHANNEL SELECTED 0044 3286 160 JB1 STRTT ;IF START TIME 0046 1287 161 JBO STOPP IF STOP TIME 0048 FC 162 VEN 1 MOV A,R4 0049 F251 163 JB7 VEN2 ;IF CREDIT GIVEN CHECK SWITCHES 004B 8A02 164 ORL P2,*O2 TURN CREM ON 004D 34D4 165 CALL SENCON 004F 041 E 166 START 4: JMP VEND? 0051 445B 167 VEN2 JMP VEND 1,68 ;LODRAM ROUTINE 169 RELOAD RAM WITH WHATS IN ACC 170 REGISTERS CHANGED: ACC AND AREA FT. TO BY RO 171 REGISTERS NEEDED: ACC WITH DIGIT 172 ; RO PTR TO DIGIT TO BE CHANGED 173 ; F1 1 FOR STOP O FOR START 0053 7657 174 LODRAM: JF1 LODRA1 ;IF STOP TIME J.
0055 38 175 XCHD A,CRO MOVE DIGIT INTO RAM LOWER NIBBLE 0056 93 176 RETR 0057 47 177 LODRA1: SWAP A 0058 30 178 XCHD A,CRO ;MOVE DIGIT INTO RAM UP.PER NIBBLE 0059 AO 179 MOV CRO,A 005A 180 LODRA2: RETR 181 182 ; CHANNEL 183 005B BCOO 184 CHAN MOV R4,*00H 005D 880C 185 MOV RO,*OCH LOAD CHN NUMBER PTR 005F B90D 186 MOV P1,#ODH ;CLEAR LOC D AND E 0061 27 187 CLR A 0062 Al 188 MOV CRL,A 0063 19 189 INC R1 0064 FO 190 MOV A,CRO ;SET UP LOC E 0065 6C 191 ADD A,R4 0066 57 192 DA A 0067 Al 193 MOV CP1,A ;LOC E HAS THE RIGHT VALUE 0068 3495 194 CALL DISPLM ;CALL DISPLAY ROUTINE 006A 23AF 195 MOV A,*COL3 0060 39 196 OUTL P1,8 006D 09 197 IN A,P1 006E 37 198 CPL A 006F B80C 199 MOV RO,#OCH ;SET CHN PTR 0071 1277 200 JBO INC1 ;INCR 0073 327E 201 JB1 DEC1 ;;DECR 0075 041E 202 JMP VEND? 0077 FO 203 INC1: MOV A,CRO ;IS CHNPTR=F 0078 03F1 204 ADD A,*OF1 H 007A C61 E 205 JZ VEND7 :IF SO J. TO VEND? 007C 10 206 INC CR0 007D 0484 207 JMP ACC 007F FO 208 DEC 1: MOV A,CPO ;CHN PTR=0 0080 C61E 20g JZ VEND? 0082 07 210 DEC A 0083 211 MOV CPO,A 0084 0420 212 ACC: JMP VNTST :J.TOVNTST 213; 214 ; START OR STOP 215 0086 B5 216 STRTT: CPL F1 0087 B5 217 STOPP: CPL F1 ;F1=OFOR START 1 FOR STOP 0088 880C 218 MOV RO,#OCH 008A FO 219 MOV A,CRO 0088 AC 220 MOV R4,A SET R4 TO CHN PTR 088C 34FC 221 CALL RTIME ;TIME RESULT IN E AND F 008E 3495 222 CALL DISPLM 0090 23AF 223 LPP:MOV A,*COL3 0092 39 224 OUTL P1,A 0093 09 225 IN A,P1 0094 37 226 CPL A 0095 B90C 227 MOV P1,#OCH 0097 Al 228 MOV CR1,A 0098 829E 229 JB5 STRT2 009A.76AO 230 JF1 STRT3 IF NO SAFETY SW AND IS STP TIME CONT 009C 2482 231 STRT1: JMP OUTT OTHERWISE J. TO VEND? 009E 769C 232 STRT2: JF1 SRTR1 ;IF SAFETY SW AND START TIME CONT 233 ;OTHERWISE J TO VEND? 00AO F1 234 STRT3: MOV A,CR1 00A1 12B4 235 JBO STRT6 ;IF INCR 00A3 32A7 236 JB1 STRT4 ;IFDECR 00A5 2482 237 JMP OUTT ;OTHERWISE J.TO VEND? 00A7 76B6 238 STRT4: JF1 STRT7 ;IF STOP TIME AND DECRJ 00A9 B80D 239 MOV RO,#ODH IF STRT TIME AND DECR CHECK IF EQUAL 240 ;TO ZERO 00AB 241 MOV A,CR0 OOAC 96B2 242 JNZ STRTE 00AE 18 243 INC RO OOAF FO 244 MOV A,CRO 0080 C69C 245 JZ STRT1 IF ZERO THEN DO NOT DECR 0082 04D6 246 STRTS JMP STRT8 ;OTHERWISE DECR 00B4 7682 247 STRT6 JF1 STRT5 IF A STOP TIME AND INCR J.
0086 B80D 248 STRT7 MOV RO,0DH IF A START TIME AND INCR AND STOP DECR CHECK 249 ;IF STOP=START 00B8 8906 250 MOV R1,*CLK1 008A F0 251 MOV A,CRO 00BB Al 252 MOV CR1,A ;LOC(CLK)=LOC(D) 008C 18 253 INC 008D 19 254 INC R1 00BE FO 255 MOV A,CRO 008F Al 256 @ MOV CR1,A ;LOC(CLK+1)=LOC(E) 00C0 85 257 CPL F1 ;CHANGE FROM START TO STOP TIMES 258 ;OR FROM STOP TO START 00C1 34FC 259 CALL RTIME 00C3 85 260 CPL F1 00C4 B80D 261 MOV RO,#ODH ;PTR TO RTIME RESULT 00C6 8906 262 MOV R1,#CLK1 00C8 8A02 263 MOV R2.*82 00CA FO 264 STRT77 MOV A,CR0 00CB 37 265 CPL A OOCC 17 266 INC A OOCD 61 267 ADD A,CR 1 ;;tF NOT EQUALJ 00CE 96D6 268 JNZ STRT8 00D0 18 269 STRT76 INC RO 00D1 19 270 INC R1 00D2 EACA 271 DJNZ R2,STRT77 00D4 04FE 272 JMP STRT8 ;IF BOTH EQUAL J. OUT 00D6 3488 273 STRT8 CALL RAMPTR ;GET PIR TO RAM 00D8 BA02 274 MOV R2,*2 ;SETLP CTR 00DA FO 275 MOV A,CRO ;CHECK IF RAM EQUALTO 799 00DB 34F7 276 CALL LOADHU OODD 890C 277 MOV R1,#OCH 00DF 21 278 XCH A,CP1 00E0 12E7 279 JBO INCCTS ;IF INCR J 00E2 21 280 XCH A,CR1 00E3 72EA 281 J83 STRT88 ;IF SIGN NEG AND DECR CHECK 00E5 2400 282 INCCT1 JMP INCDEC IF SIGN POS AND DECR DON'TWORRY 00E7 21 283 INCCTS XCH A,CP 1 00E8 72E5 284 JB3 INCCT1 ;IF SIGN NEG AND INCR DON'T WORRY OOEA 5307 285 STRT88 AHL A,#007H ;;DONT WORRY ABOUT THE SIGN 00EC 03F9 286 ADD A,#OF9H OOEE 96E5 287 JNZ INCCT1 OOFO C8 288 DEC RO 00F1 BBF7 289 MOV R3,*8F7H ;IS RAM EQUAL TO 7900F3 F0 290 STRT9 MOV A,CR0 00F4 34F7 291 CALL LOADNU 00F6 68 292 ADD A,P3 00F7 96E5 293 JNZ INCCT1 00F9 BB00 294 MOV P3,#00H 00F8 C8 295 DEC RO OOFC EAF3 296 DJNZ R2,STRT9 00FE 2482 297 STRTO JMP OUTT IF EQUAL TO J TO VEND7 0010 3488 298 INCDEC CALL RAMPTR 0102 FO 299 MOV A,CRO 0103 34E7 300 CALL LOADNU 0105 85 301 CLR FO ;NEGATIVE NUM 0106 7209 302 J83 NEGRAM 0108 95 303 CPL FO ;POSITIVE NUM 0109 B98C 304 NEGRAM MOV R1,*0CH 0108 F1 305 MOV A,CR1 BO=1 INC 010C 1224 306 JEO INCEM3 ;B0=0 DEC 010E 95 307 CPL FO 010F F8 308 INCRAM MQV A,RO ;;CHECK=O 0110 BA03 310 MOV R2,*3 0113 FO 311 INCRM1 MOV A,CRO 0114 34E7 312 CALL LOADNU 0116 9622 313 JNZ INCRM2 0118 C8 314 DEC RO 0119 EA13 315 DJNZ R2,1NCRM1 011B FE 316 MOV A,R6 011C A8 317 MOV ROA 011D 2308 318 MOV A,*08H 011F 1453 319 CALL LODRAM 0121 95 320 CPL FO 321 ;AND INCR 0122 FE 322 INCRM2 MOV A,R6 0123 A8 323 MOV R0,A 0124 880A 324 INCRM3 MOV R3,*OAH 0126 862A 325 JF0 INCRM4 0128 BB00 326 MOV R3*0OH ;DECRRAM 012A FO 327 INCRM4 MOV A,CRO 0128 34E7 328 CALL LOADNU 012D 5308 329 ANL A,#08H ; ;STORE SIGN 012F AE 330 MOV R6,A 0130 C8 331 DEC RO 0131 C8 332 DEC RO POINT AT LeAsT SIGN DIGIT 0132 97 333 CLR C 0133 BA02 334 MOV R2,#2 ;SET LP CTR 0135 FO 335 INCRMS MOV A,CRO 0136 34E7 336 CALL LOADNU 0138 7B 337 ADDC A,P3 ;ADD OR SUB RAM 0139 57 338 DA A 013A 37 339 CPL A 0138 923E 340 J84 INCRM6 013D A7 341 CPL C ;SETCARRYIFOVERFLOW 013E 37 342 INCRM6 CPL A 013F 1453 343 CALL LODRAM ;STORE DIGITAWAY 0141 18 344 INC RO 0142 B64A 345 JFO INCRM7 ;IF INCR SET R3=0 0144 8809 346 MOV R3,*09H 0146 EA35 347 DJNZ R2,1NCRM5 ;;DO NEXT DIGIT 0148 2450 348 JMP INCRM8 014A E672 349 INCRM7 JNC ACC1 014C BB00 350 MOV R3,*00 RESET R3=0 014E EA35 351 DJNZ R2,INCRMS 0150 FO 352 INCRM8 MOV A,CRO DO MED WITH SIGN 0151 34E7 353 CALL LOADNU 0153 5307 354 ANL A,*07H 0155 78 355 ADDC A,R3 ;ADDR3TODIGITNOTINCCARRY 0156 57 356 DA A 0157 5307 357 ANL A,*07H ;STRIP SIGN BIT 0159 4E 358 ORL A,R6 ;SET SIGN BACK 015A 1453 359 CALL LODRAM 015C F8 360 MOV A,RO 015D AE 361 MOV R6,A 015E F0 362 MOV A,CR0 015F 34E7 363 CALL LOADNU ;CHECK TO SEE IF HAVE -O 364 ;;IF SO SET IT TO +0 0161 5307 365 ANL A,#07H 0163 8A03 366 MOV R2,#03 0165 9672 367 INCRM9 JNZ ACC1 0167 C8 368 DEC RO 0168 F0 369 MOV A,CRO 0169 34E7 370 CALL LOADNU 0168 EA65 371 DJNZ R2,1NCRM9 016D FE 372 MOV A,R6 016E A8 373 MOV R0,A 0170 1453 375 CALL LODRAM 0172 23F0 376 ACC1 MOV A,*OFOH 0174 6D 377 ADD A,R5 0175 C678 378 JZ OUTTT 0177 CD 379 DEC RS 0178 34C3 380 OUTTT CALL CHEKSUM ;UPDATECHKSUM 017A F8 381 MOV ARO ;GETPTR 0178 Al 382 MOV CR1,A ;;STORECHKSUMAWAY 017C 880C 383 MOV RO,#CH RESET CHN PTR 017E FC 384 MOV A,R4 017F AO 385 MOV CR0,A 0180 0420 386 JMP VNTST 0182 B80C 387 OUTT MOV RO,#OCH 0184 FC 388 MOV A,R4 0185 A0 389 MOV CRO,A 0186 041E 390 JMP VEND7 391 ;RAMPTR 392 ;ROUTINE TO GET RAM TABLE PTR 393 ;REGISTER NEEDED R4WITH CHN PTR 394 ;PTR RETURNED IN ACC 395 ;REGISTERS CHANGED ACC AND R2 396 0188 FC 397 RAMPTR MOV A,Pl4 GET RAM TABLE PTR 0189 530F 398 ANL A,#OFH 018B 17 399 INC A 018C AA 400 MOV R2,A 018D 230F 401 MOV A,#RAM-1 ;STARTING LOC OF RAM4 018F 0303 402 RAM1 ADD A,*3 0191 EA8F 403 DJNZ R2,RAM1 0193 A8 404 MOV RO,A ;;RO HAS PTR TO THE RAM 0194 93 405 RETR 406 ;DISPLM ROUTINE 407 THIS TOUTINE DISPLAYS THE DIGITS ON TO THE 408 ;LED DISPLAY 409 REGISTERS NEEDED: DIGITS IN E AND F 410 REGISTERS ALTERED : ACC, R0,R1,R2,R3 411 0195 FD 412 DISPLM: MOV A,R5 0196 AB 413 MOV R3,A REGISTER FOR ACCELERATE 0197 8A04 414 DISPL4 MOV R2,*4 ;SET UP LOOP COUNTER 0199 B90C 415 MOV R1,*C)CH 0198 88F8 416 MOV RO,*OF8H TURN FIRST DIGIT ON 019D F8 417 MOV A,RO 019E 39 418 DISPL1 OUTL P1,A ;TURN ON DIGIT 019F 85 419 CRL FO ;GET DIGIT 01AO FA 420 MOV A,R2 IF GET TOP NIBBLE 421 ;IF EVEN GET BOTTOM NIBBLE 01A1 12A5 422 JBO DISPL2 ;IF ODD J 01A3 19 423 INC R1 ;IF EVEN INC R; 01A4 95 424 CPL FO 01A5 95 425 DISPL2 CPL 01A6 F1 426 MOV A,CR1 ;LOADA WITH BYTE 01A7 34E3 427 CALL LOADN2 01A9 E3 428 MOVP3 A,CA ;A=Mí7SEGT+A) O1AA 02 429 OUTL BUS,A 01AB 2A 430 XCH A,R2 ;HAVE A DELAY 01AC BA50 431 DISPL3 MOV R2,#050H 01AE EAAE 432 DISPL5 DJNZ R2,DISPL5 0180 2A 433 XCH A,R2 RESTORE R2 0181 27 434 CLR A 0182 62 435 MOV T,A 0183 37 436 CPL A 0184 02 437 OUTL BUSA 0185 9A02 438 ANL P2,#82H ;TURN RELOAD OFF 01B7 97 439 CLR C 0188 A7 440 CPL C 0189 F8 441 MOV A,RO 018A 53EF 442 ANL A,*OEFH ;;TURN BIT 4 OFF 01BC 67 443 RRC A 01 BD A8 444 MOV RO,A SET UP FOR NEXT DIGIT 01 BE EA9E 445 DJNZ R2,DISPL1 IF R2 NOT EQUAL TO ZERO J 01CO EB97 446 DJNZ R3,DISPL4 IF R3 NOT EQUAL TO ZERO J 01C2 93 447 RETR 448 ;CHKSUM ROUTINE 449 ;ROUTINE TO CHECK RAM 450 ;REGISTERS CHANGED::ACC,RO, AND R1 451 01 C3 8A30 452 CHKSUM MOV R2,#030H ;SET LOOP CTR 01C5 B93F 453 MOV R1,#83FH ;SET INITIAL PTR 01C7 27 454 CLR A 01C8 61 455 CHKSU1 ADD A,CR1 ;R0=RO+CR1 01C9 C9 456 DEC R1 01CA EAC8 457 DJNZ R2,CHKSU1 O1CC A8 458 MOV R0,A O1CD 890F 459 MOV R1,*CSS O1CF F1 460 MOV A,CRt ;CHECK CHKSUM 01DO 37 461 CPL A 01D1 17 462 INC A 01 D2 68 463 ADD A,R0 IS CHKSUM PREV=CHKSUM NOW 01D3 93 464 RETR 465 ;SENCON 466 ;ROUTINETO CHECK IF CREDIT IS GIVEN 467 ;INPUTTO ROUTINE: T0=0 MULTIPRICE 468 : TO=1 SINGLE PRICE 469 ; T1=0 IF COIN 470 ; T1 =1 NO COIN 471 ; REG EFFECTED :ACC, RO, BIT7 OF R4 01 D4 26DE 473 SENCON JNTO SENCO2 ;MULTIPRICE 01 D6 8848 474 MOV R3,#04BH ;DEBOU SWITCH OF CREDIT 01D8 56E2 475 SENCO4 JT1 SENCO3 ;NO COIN SINGLE PRICE 01DA EBDS 476 DJNZ R3,SENC04 01DC 9AFD 477 ANL P2,#OFDH ;TURN CREM OFF IF COIN 01DE FC 478 SENCO2 MOV A,R4 01 DF 4380 479 ORL A,*080H SET BIT 7 OF R4 FOR CREDIT 01E1 AC 480 MOV R4,A 01E2 93 481 SENCO3 RETR 482 ;LOADNU ROUTINE 443:3 ROUTINE TO LOAD NUMBER INTO ACC 484 ;REGISTERS NEEDED : ACC, F1 AND FO 1 FOR STARTO FOR STOP 485 ;REGISTERS CHANGED :ACC 486 01E3 B6EA 487 LOADN2 JF0 LOADN1 01E5 24E9 488 JMP LOADN3 01E7 76EA 489 LOADNU JF1 LOADN1 01E9 47 490 LOADN3 SWAP A 01 EA 47 491 LOADN1 SWAP A 01 EB 530F 492 ANL A,*OFH IF STOP PUT DIGIT IN LOW NIBBLE 01ED 93 493 RETR 494 ;LOADEF 495 ROUTINE TO LOAD E AND F REG 496 ;REGISTERS NEEDED : ACC WITH DIGIT 497 ; R2=LP CTR 498 CHANGED : LOC E AND F, ACC.R2,R1 499 01EE 2A 500 LOADEF XCH A,R2 01EF 12F5 501 JBO SWPINC 01F1 2A 502 XCH A,R2 01F2 31 503 XCHD A,CR1 01F3 24FA 504 JMP LOADE1 01 F5 2A 505 SWPINC XCH A,R2 C1F6 47 506 SWAP A 01F7 31 507 XCHD A,CR1 01F8 Al 508 MOV CB1,A 01F9 19 509 INC R1 01FA 18 510 LOADE1 INC RO 01F8 93 511 RETR 512 ;ROMRAM 513 ;ROMRAM THE ROUTINE TO ADD ROM TO RAM 514 ;THE RESULTS ARE STORED IN LOC E AND F 515 REGISTERS NEEDED: R4 WITH CHN PTR 516 F1=1 FOR STOP 517 ; O FOR START 518 ;REGISTERS CHANGED:ACC,RO,R1,R2,R3, AND FO LOC E AND F 519 01 FC 3488 520 RTIME CALL RAMPTR ;ROUTINE TO GET RAMPTR 521 ;TENS ROUTINE TO TAKE TEN'S COMPLEMENT OF RAM 01FE B90D 522 TENS MOV R1,#ODH ;LSD LOCATION TO STORE DIGIT 0200 BA03 523 MOV R2,*03 ;LOOP COUNTER 0202 FO 524 MOV A,CRO 0203 34E7 525 CALL LOADNU 0205 85 526 TENS1 CLR FO 0206 7209 527 JB3 TENS2 ;POSITIVE FO-1 0208 95 528 CPL F0 ;NEGATIVE FO=O 0209 97 529 TENS2 CLR C 020A A7 530 CPL C SET CARRY FIRST TIME THRU 0208 C8 531 DEC R0 020C C8 532 DEC 020D FO 533 TENS3 MOV A,CRO ;PTR TO LSD AND GET DIGIT 020E 34E7 534 CALL LOADNU 0210 EA17 535 DJNZ R2,TENS41 IF NOT MED J 0212 1A 536 INC R2 0213 5307 537 ANL A,*07H ;;IF IT IS CLEAR SIGN 0215 4418 538 JMP TENS42 0217 1A 539 TENS41 NC R2 0218 B61D 540 TENS42 JFO TENS5 ;POSITIVE NUMBER DON'TCOMPL 021A 37 541 CPL A 0218 1 30A 542 ADDC A,*0AH ;FORM TEN'S COMPLEMENT 021D 1A 543 TENS5 INC R2 021 E 34EE 544 CALL LOADEF 0220 CA 545 DEC R2 0221 97 546 CLR C 0222 EAOD 547 DJNZ R2,TENS3 ;R2=0 IF YES DON'TJ 0224 27 548 CLR A 0225 BE29 549 JF0 TENS7 0227 2390 550 MOV A,*90H 0229 31 551 TENS7 XCHD A,CR1 ;CLEAR MSD 022A Al 552 MOV CR1,A 022B FC 553 RTIME1 MOV A,R4 ;GET ROM TABLE POINTER 022C 530F 554 ANL A,*0EH 022E AA 555 MOV R2,A ;;JUST GET LOWER 4 BITS 022F 2306 556 MOV A,*TIMES-4 GET STARTING LOC OF ROM-1 .0231 1A 557 INC R2 0232 0304 448 RTIME2 ADD A,*4 0234 EA32 559 DJNZ R2,RTIME2 0236 A8 560 MOV RO,A ;RO HAS STARTING LOC OF LSD OF ROM 0237 97 561 CLR C 0238 B90D 562 MOV R1,*0DH ;LSD LOC OFTEN'S COMPLEMENT 023A 8A04 563 MOV R2,*4 LOOP COUNTER 023C F1 564 RTIME3 MOV A,CR1 ;GET DIGIT 023D ZA 565 XCH A,R2 023E 1244 566 JBO SWPP 0240 2A 567 XCH A,R2 IF EVEN GET LOWER 4 BITS IN UPPER 0241 47 568 SWAP A 0242 4445 569 JMP RTIME4 0244 2A 570 SWPP XCH A,R2 ;IF ODD GET UPPER 4 BITS IN UPPER 0245 53F0 571 RTIME4 ANL A,*OFOH 0247 AB 572 RTIME5 MOV R3,A ;;R3 GET DIGITS OF TEN'S COMPL 0248 F8 573 MOV A,R0 GET STOP START TIME IN CRO 0249 E3 574 MOVP3 A,CA 024A 764D 575 JF1 RTIME6 ;IF NOT STOP PUT START IN UPPER 4 BITS 024C 47 576 SWAP A 024D 430F 577 RTIME6 ORL A,#OFH 024F 7B 578 ADDC A,R3 ;A NOW HAS SUM OF ROM AND RAM 0250 53F0 579 ANL A,*OFOH 0252 57 580 DA A 0253 47 581 SWAP A ;UPPER 4 BITS NOW IN LOWER 0254 34EE 582 CALL LOADEF 0256 EA3C 583 DJNZ R2,RTIME3 ;IF R2=0 RET 0258 93 584 RETR 585 ;VEND 586 ;IN THIS STATE CHECK TO SEE IF SELECTION 587 ;MADE IF SO PROCEED TO VEND SELECTION 588 0259 041E 589 BACKI JMP VEND? 025B 8820 590 VEND MOV R3,*O20H ;SET UP DEBOULOOP 025D 23EF 591 VEND1 MOV A,#COL1 ;;CHECK FOR FIRST ROW OF SWITCHES 025F 39 592 OUTL P1,A 0260 09 593 IN A,P1 0261 530F 594 ANL A,*OFH 0263 AD 595 MOV R5,A 0264 23DF 596 MOV A,*COL2 CHECK SECOND ROW FOR A SELECTION 0266 39 597 OUTL P1,A 0267 09 598 IN A,P 1 0268 530F 599 ANL A,#OFH 026A 47 600 SWAP A 0268 4D 601 ORL A,R5 026C A8 602 MOV RO,A SET UP TO DEBOU SWITCHES 026D 23E0 603 MOV A,#OEOH 026F 6B 604 ADD A,R3 IS THINS FIRSTTIMETHRU 0270 9674 605 JNZ DEBOU2 0272 F8 606 MOV A,RO 0273 AA 607 MOV R2,A STORE INITIAL INPUT IN R2 0274 F8 608 DE8OU2 MOV A,R0 0275 37 609 CPL A 0276 17 610 INC A 0277 6A 611 ADD A,R2 ;;IS INPUT SAME AS INITIAL INPUT 0278 9658 612 DEBOU3 JNZ VEND 027A EB5D 613 DJNZ R3,VEND1 027C FA 614 MOV A,R2 027D 37 615 CPL A 027E BB07 616 SELCOD MOV R3,#07H ;PRESET R3 0280 1287 617 SELCO1 J80 SELCO2 ;IF BIT SET SELECTION MADE 0282 77 618 RR A 0283 EP80 619 DJNZ R3,SELCO1 ;R3=R3-1 0285 4459 620 JMP BACK1 0287 328F 621 SELCO2 J81 SELCO5 ;IFBITSETTHENSELECTCLS 0289 27 622 SELCO4 CLR A 028A 48 623 ORL A,R3 0288 47 624 SWAP A 028C AC 625 MOV R4,A ;PUTSELCOD IN R4 028D 4491 626 JMP SELCO6 028F 27 627 SELCO5 CLR A 0290 AC 628 MOV R4,A 0291 27 629 SELCO6 CLR A 0292 62 630 MOV T,A 0293 02 631 UTL BUS,A 0294 B90C 632 MOV R1#OCH 0296 Al 633 MOV CR1,A 0297 9A01 634 ANL P2,#01H ;;TURN ALL OFF EXC RELOAD 0299 AD 635 MOV R5,A 029A AE 636 MOV R6,A 0298 AF 637 MOV R7,A SET CLOCK=0 029C A5 638 D032 CLR F1 029D FC 639 D0320 MOV A,R4 029E 430F 640 ORL A,*OFH ;SET CHN PTR=15 0280 AC 641 MOV R4,A 02A1 34FC 642 D0321 CALL RTIME 02A3 34D4 643 CALL SENCON 02A5 8803 644 D0311 MOV R3,*03H ;SET UP TO DEBOU XCR XS 02A7 2350 645 D0312 MOV A,#ROW ;CHECK XCR OR XS 02A9 39 646 OUTL P1,A 02AA 09 647 IN A,P 1 02A8 2A 648 XCH A,P2 02AC 37 649 CPL A 02AD 17 650 INC A 02AE 6A 651 ADD A,R2 02AF 96A5 652 JNZ DO311 0281 EBA7 653 DJNZ R3,D0312 0283 2A 654 XCH A,R2 0284 37 655 COP A 0285 D288 656 J86 XSUG ;;XSUGAR SELECTED 0287 92C1 657 SETT J84 XCREM ;XCREM SELECTED 0289 44C5 658 JMP D03211 0288 2D 659 XSUG XCH A,R5 SET 86 OF R5 028C 4340 660 ORL A,#040H 028E 2D 661 XCH A,R5 028F 4487 662 JMP SETT 02C1 FD 663 XCREM MOV A,R5 ; ;SET B7 OF R5 02C2 4380 664 ORL A,#000H 02C4 AD 665 MOV R5,A 02C5 8806 666 D03211 MOV RO,#06H 02C7 890D 667 MOV R1,#ODH 02C9 8A02 668 MOV R2,#02H 02CB FO 669 D0322 MOV A,CR0 IS CLK=TIME OF CHAN 02CC 37 670 CPL A O2CD 17 671 INC A 02CE 61 67.2 ADD A,CR 1 02CF 96FE 673 JNZ D03299 02D1 18 674 INC 02D2 19 675 INC R1 02D3 EACB 676 DJNZ R2,D0322 02D5 85 677 CLR FO 02D6 A8 678 MOV R0,A 02D7 FC 679 MOV A,R4 02D8 530F 680 ANL A,*0FH GET CHN NUMBER STORE IN R1 02DA A9 681 MOV R1,A 02DB 03F8 682 ADD A,#OF8H SEE IF BOTTOM OR TOP 8 CHN 02DD 92E3 683 JB4 D0323 IF LOWER J AROUND 02DF 95 684 CPL FO ;;SET FO=1 TO SHOW THAT UPPER 02EO A9 885 MOV R1,A ;SET R1 to CHN-8 02E1 8808 686 MOV RO,#08 SET RO=8 TO PT. TO UPPER SEL CD 02E3 F9 687 D0323 MOV A,R1 02E4 AA 688 MOV R2,A ;STORE CHN PTR IN R2 02E5 FC 689 MOV A,R4 ;GET SEL CODE 02E6 5370 690 ANL A,%070H 02E8 47 691 SWAP A 02E9 68 692 ADD A,RO 02EA 034A 693 ADD A,*VENDC 02EC E3 694 MOVP3 A,CA 02ED 19 695 INC R1 02EE F7 696 D0324 RLC A 02EF E9EE 697 DJNZ R1,D0324 ;GET PROPER BIT SELECT CODE IN BIT 7 02F1 E6FE 698 JNC D03299 ;IF NOT PROPER BIT J. OUT 02F3 FA 699 MOV A,R2 02F4 03FD 700 ADD A#OFDH 02F6 96FC 701 JNZ D0355 02F8 B6FC 702 JF0 D0355 IF UPPER 8 J.AROUND 02FA 645A 703 JMP NEXTP 02FC 645E 704 D0355 JMP D0325 02FE 6483 705 D03299 JMP D0329 706 707 ; NEXTP 708 035A 709 ORG 035AH 035A FD 710 NEXTP MOV A,R5 035B 4308 711 ORL A,#008H ;SET BIT 3 OF R5 TO 1FOR LONG CYC 035D AD 712 MOV R5,A 035E 7677 713 D0325 JF1 XTR1 036A 8688 714 XTR7 JF0 XTR9 0362 FA 715 MOV A,R2 DECIDE IF XS CHAN 0363 C66A 716 JZ XTR2 0365 07 717 DEC A 0366 C670 718 JZ XTR3 ;DECIDE IF XCR CHAN 0368 6488 719 JMP XTR9 036A 95 720 XTR2 CPL FO ;PTTOSUGAR 0368 FD 721 MOV A,R5 036C D288 722 J86 XTR9 036E 6483 723 JMP DO329 0370 8A07 724 XTR3 MOV R2,#07H ;SET R2 TO PT.TO LIGHT CHAN 0372 FD 725 MOV A,R5 0373 F288 726 J87 XTR9 0375 6483 727 JMP DO329 0377 8685 728 XTR1 JF0 XTR4 0379 23F9 729 MOV A,#OF9H - 0378 6A 730 ADD A,R2 037C 9660 731 JNZ XTR7 CREME SELECTED 037E FD 732 MOV A,R5 037F F283 733 J87 XTR8 0381 6460 734 JMP XTR7 ;CREME NOT SELECTED 0383 6483 735 XTR8 JMP D0329 0385 FA 736 XTR4 MOV A,R2 0386 9688 737 JNZ XTR9 ;SUGAR NOT SELECTED J 0388 FD 738 MOV A,R5 0389 D283 739 JB6 XTR8 0388 95 740 XTR9 CPL FO 038C 1A 741 INC R2 038D 2380 742 MOV A,#000H ;DECIDE WHICH OUTPUT TO TURN ON 038F E7 743 D03255 RL A 0390 EA8F 744 DJNZ R2,D03255 0392 890C 745 MOV R1,#0CH 0394 AA 746 MOV R2,A 0395 869A 747 J80 DO326 ;;IF LOWER 8 AFFECT P2 0397 F1 748 MOV A,CR1 0398 6498 749 JMP D0327 ;GET WHATS ON P1 039A OA 750 D0326 IN A,P2 ;GETWHATS ON P2 0398 2A 751 D0327 XCH A,R2 039C F2A5 752 JB7 NMEM3 IF LIGHT OR SANKA NO MEM3 CHANGE 039E 12A5 753 JBO NMEM3 IF SUGAR NO MEM3 CHANGE 03A0 CD 754 DEC R5 03A1 76AA 755 JF1 D0328 03A3 1D 756 INC R5 03A4 1D 757 INC R5 03A5 76AA 758 NMEM3 JF1 D0328 ;;IF STOP TIME J 03A7 4A 759 OPL A,R2 SET UP A FOR SEND OUT TO PORT 03A8 64AC 760 JMP D03281 03AA 37 761 D0328 CPL A 03AB 5A 762 ANL A,R2 03AC 5682 763 D03281 JFO D03282 CHECK IF LOWER 8 J 03AE Al 764 MOV CP1A 03AF 02 765 OUTL BUS,A 0380 64B3 766 JMP D0329 03B2 3A 767 D03282 OUTL P2,A 0383 8967 768 D0329 MOV R1,#067H 0385 E985 769 DELAY DJNZ R1,DELAY 0387 F9 770 MOV A,R1 03B8 62 771 MOVT, A T,A 03B9 FC 772 MOV A,R4 03BA 530F 773 ANL A,#0FH ;;|S R4=0 03BC 96C0 774 JNZ D03298 038E 64C3 775 JMP D03291 03C0 CC 776 D03298 DEC R4 03C1 44A1 777 JMP D0321 03C3 76C8 778 D03291 JF1 ENDD IF J. STOP TIMES QUIT OTHERWISE CON 03C5 85 779 CPL F1 03C6 449D 780 JMP D0320 03C8 FC 781 ENDD MOV A,R4 SET CHN TO VEND CH 03C9 4302 782 ORL A,*VENCHA 03CB AC 783 MOV R4,A 03CC 34FC 784 CALL R RTIME 03CE 8A02 785 MOV R2,*2 03D0 890D 786 MOV R1,#ODH 03D2 8806 787 MOV RO,#06 03D4 F1 788 ENDD1 MOV A,CR1 03D5 37 789 CPL A IS CLOCK=VENCHA TIME IF 790 ;;SO QUIT 03D6 17 791 INC A 03D7 60 792 ADD A,CR0 03D8 96E1 793 JNZ CLKIN 03DA 19 794 INC R1 03DB 18 795 INC RO 03DC EAD4 796 DJNZ R2,ENDD1 03DE 27 797 CLR A 03DF 040C 798 BACK JMP START1 03E1 FE 799 CLKIN MOV A,R6 03E2 0310 800 ADD A,*010H ;INCRTHECLOCK 03E4 57 801 DA A 03E5 AE 802 MOV R6,A 03E6 E6FE 803 JNC CLKIN2 03E8 26ED 804 JNTO CLKIN4 ;IF MULTIPRICE J ARCUND 03EA FC 805 MOV A,R4 IS CREDIT MADE 03EB F2EF 806 J87 CLKIN3 IF SO JUMP AROUND 03ED 8A02 807 CLKIN4 ORL P",$02H ;;IF NOT TURN CREM ON 03EF FF 808 CLKIN3 MOV A,Ri 03F0 0301 809 ADD A,#01H 03F2 57 810 DA A 03F3 AF 811 MOV R7,A 03F4 37 812 CPL A ,IS TIME LONGER THAN 10 SEC 03F5 92FE 813 JB4 CLKIN2 IF NOT DO NOT CHECK FOR SHORT CYC 03F7 FD 814 MOV A,R5 ;IF IS CHECK FOR SHORT CYCLE 03F8 530F 815 ANL 1,#OFH 03FA 03FF 816 ADD A,#OFFH ;IF MEM3=1 THEN JOUT 03FC C6DF 817 JZ BACK IT ALSO MEANS THAT IS SHORT CYCLE 03FE 449C 818 CLKIN2 JMP D032 819 ;;********COPYRIGHT 1978 AMF INCOPIPORATED 820 END ACC 0084 ACC1 0172 BACK 03DF BACK1 0259 CHAN 005B CHKSU1 01C8 CHKSUM 0103 CLK1 0006 CLKIN 03E1 CLKIN2 03FE CLKIN3 03EF CLKIN4 03ED COL1 00EF COL2 00DF COL3 00AF COL4 007F CSS 000F DEBOU2 0274 DEBOU3 0278 DEC1 007F DELAY 0385 DIGITS 0300 DISPL1 019E DISPL2 01A5 DISPL3 01AC DISPL4 0197 DISPL5 01AE DISPLM 0195 D0311 02A5 D0312 02A7 D032 029C D0320 029D D0321 02A1 D03211 02C5 D0322 026B D0323 02E3 D0324 02EE D0325 035E D03255 038F D0326 039A D0327 039B D0328 03AA D03281 03AC DP3282 03B2 D0329 03B3 D03291 03C3 D03298 03C0 D03299 02FE D0355 02FC ENDD 03C8 ENDD1 03D4 INC1 0077 INCCT1 00E5 INCCTS 00E7 INCDEC 0100 INCRAM 010F INCRM1 0113 INCRM2 0122 INCRM3 0124 INCRM4 012A INCHM5 0135 INCRM6 013E INCRM7 014R INCRMS 0150 INCRM9 0165 INTR 0005 INTRPT 0003 LOADE1 01FA LOADEF 01EE LOADN1 01EA LOADN2 01E3 LOADN3 01E9 LOADNU 01E7 LODRA1 0057 LODRA2 005A LODRAM 0053 LPP 0090 NEGRAM 0109 NEXTP 035A NMEM3 03A5 OUTT 0182 OUTTT 0178 RAM 0010 RAM1 018F RAMCL1 0034 RAMCLR 0032 RAMPTR 0188 ROMTIM 030A ROW 0058 RTIME 01FC RTIME1 022B RTIME2 0232 RTIME3 023C RTIME4 0245 RTIME5 0247 RTIME6 024D SELCO1 0280 SELCO2 0287 SELCO4 0289 SELCO5 028F SELCO6 0291 SELCOD 027E SENCO2 01DE SENCO3 01E2 SENCO4 01D8 SENCON 01D4 SETT 0287 STAR11 0007 START 0000 START1 000C START3 0017 START4 004F STOPP 0087 STRTO 00FE STRT1 009C STRT2 009E STRT3 00AB STRT4 00A7 STRT5 00B2 STRT6 00B4 STRT7 00B6 STRT76 00DO STRT77 00CA STRT8 00D6 STRT88 00EA STRT9 00F3 STRTT 0086 SWPINC 01F5 SWPP 0244 TENS 01FE TENS1 0205 TENS2 0209 TENS3 020D TENS4 0217 TENS42 0218 TENS5 021D VEND? 001E VENDC 004R VENDCO 034A VNTS1 002A VNTST 0020 XCREM 02C1 XSUG 02BB XTR1 0377 XTR2 036A XTR3 0370 XTR4 0385 XTR7 0360 STR8 0383 XTR9 0388

Claims (25)

1. A sequence controller for producing a plurality of signals at programmable times, comprising, in combination; first and second storage means, said first storage means being non-alterable and storing representations of a plurality of programmed operations to be performed in sequence, said second storage means being alterable and storing representations of a plurality of programmable times, timing means for timing a cycle of operation of said sequence controller, and for producing signals corresponding to time intervals within such cycle of operation, coincidence determining means responsive to signals from said first storage means for comparing signals of said timing means with all of the signals of said second storage means and for determining a coincidence between said timing signals and each of said programmable times, and output means responsive to said coincidence determining means for producing a plurality of output signals at times corresponding to said programmable times.
2. Apparatus according to claim 1, wherein said first storage means and said timing means comprise portions of a microprocessor unit.
3. Apparatus according to claim 1, wherein a portion of said first storage means stores representations of a plurality of basic times and said second storage means stores a plurality of modifying parameters for modifying said basic times, and calculating means connected with said first and second storage means for producing signals corresponding to said programmable times in response to data stored in both said first and second storage means.
4. Apparatus according to claim 3, including register means for sequentially identifying storage locations within said first and second storage means corresponding to channels each having a basic time and a modifying parameter, said calculating means being responsive to said register means for accessing said first and second storage means and for calculating one of said programmable times, said output means being responsive to operation of said coincidence determining means and to said register means for producing each of said output signals on a unique one of a plurality of output terminals corresponding to each of a plurality of said channels.
5. Apparatus according to claim 1, including a plurality of sequence selecting means, each selecting a predetermined sequence of said programmable times, said output means including means responsive to operation of said sequence selecting means and to said coincidence detecting means for selectively producing said output signals when the coincidence which is detected is relevant to a selected sequence.
6. Apparatus according to claim 1, including a service module selectively detachable from said second storage means, said service module having a display for displaying the data stored in said second storage means, and manually operable means for altering said parameters.
7. Apparatus according to claim 6, including means rendering said second storage means not alterable except by operation of said service module.
8. Apparatus according to claim 6, including a support for said second storage means, a connector mounted on said support, and a mating connector connected with said service module, whereby said service module is detachable from said second storage means by releasing said connector.
9. Apparatus according to claim 6, wherein said manually operable means comprises a mode control switch for selecting a modifying mode, and a modifying control for selectively incrementally modifying the content of a storage location in said second storage means.
10. Apparatus according to claim 9; including calculating means connected with said modifying control and responsive to operation thereof for incrementally modifying data stored in said second storage means while said modifying control is operated, and means for causing said incremental modification to be repeated at an increasing rate while said modifying control remains operated.
11. Apparatus according to claim 9, wherein said second storage means stores data relating to a start time when one of said output signals is produced and data relating to a stop time when said one output signal is terminated, and including interlock means, and means responsive to said interlock means for inhibiting the modification of said start time relévantdata by said modifying control unless said interlock means is operated.
12. Apparatus according to claim 11, wherein the data stored in said second storage means comprises modifying data for modifying basic program times stored in said first storage means, and including means for periodically performing a check on the integrity of the data stored in said second storage device, and means responsive to a failure of said integrity check for setting all of said modifying data equal to zero.
1 3. Apparatus according to claim 12, including output signalling means, and means operating said output signalling means when said integrity check has failed.
14. Apparatus according to claim 1, including a utilization device adapted to be sequenced, said utilization device having a plurality of operating devices connected to receive said output signals, a plurality of sequence selecting controls for selecting one of a plurality of sequences of said programmable times for sequencing said utilization device in a selected mode, and stopping means responsive to said coincidence determining means and to said sequence selecting controls for stopping a cycle of operation of said utilization device when said selected sequence is completed.
1 5. Apparatus according to claim 14, including means for selectively extending said cycle of operation when a predetermined sequence is selected.
16. Apparatus according to claim 14, wherein said programmable times include a set of start times for initiating output signals and a set of stop times for terminating said output signals, said stopping means being responsive to the first coincidence between said timing means and a programmable stop time following a predetermined time.
17. Apparatus according to claim 1, wherein said second storage means stores data relating to a start time when one of said output signals is produced and data relating to a stop time when said one output signal is terminated, and including modifying means for selectively altering the data in said second storage meens, said last-named means including means for preventing the alteration of said data so as to make a stop time occur sooner than its corresponding start time.
18. For use with program controlled apparatus having modifiable storage means for storing data used by the program controlled apparatus, a service module comprising a hand-held unit, said unit containing display means for displaying said data, and switch means for modifying said data, and an electrical connector connected with said switch means and display means, said connector being releasably connectable with said storage means, whereby the data content of said storage means may be displayed by said display means and modified by said switch means while said service module is connected with said storage means by said connector.
19. Apparatus according to claim 18, including means associated with said program controlled apparatus for periodically testing the state of said switch means when said service module is connected with said storage means, and for modifying the content of said storage means only in response to operation of said switch means during said testing.
20. Apparatus according to claim 18, wherein said switch means comprises means for selecting a predetermined location within said modifiable storage means, and said display means comprises means for displaying an identification of the location selected.
21. Apparatus according to claim 18 wherein said switch means comprises separate switches for increasing and decreasing the data content of said modifiable storage means.
22. Apparatus according to claim 18, wherein said modifiable storage means stores first and second separate data items, and wherein said switch means comprises a plurality of separate switches and means responsive to operation of one of said switches for allowing modification of said.first data item and to non-operation of said one switch for allowing modification of said second data item.
23. Apparatus according to claim 18, wherein said modifiable storage means stores data representative of a plurality of times at which events are to occur during operation of said program controlled apparatus, said program controlled apparatus including means for repetitively executing a sequence of operation steps, at least one of said steps testing whether said service module is connected with said storage means, and a subsequent step for selectively modifying said data only if said service module is connected.
24. A sequence controller for producing a plurality of signals at programmable times, comprising, in combination; first and second storage means, said first storage means being non-alterable and storing representations of a plurality of basic times differing from said programmable times, said second storage means being alterable and storing a plurality of modifying parameters, each of said programmable times corresponding to one of said basic times arithmetically modified by one of said parameters; ; timing means for timing a cycle of operation of said sequence controller, and for producing signals corresponding thereto, calculating means connected with said first and second storage sections for producing signals corresponding to said programmable times, coincidence determining means responsive to signals from said calculating means and from said timing means for determining a coincidence between said signals, and output means responsive to said coincidence determining means for producing a plurality of output signals at times corresponding to said programmable times.
25. A sequence controller for producing a plurality of signals at programmable times substantially as described with reference to the accompanying drawings.
GB7925394A 1978-07-28 1979-07-20 Sequence controller with microprocessor Expired GB2028539B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92890578A 1978-07-28 1978-07-28
AU76171/81A AU7617181A (en) 1978-07-28 1981-10-08 Service module

Publications (2)

Publication Number Publication Date
GB2028539A true GB2028539A (en) 1980-03-05
GB2028539B GB2028539B (en) 1983-05-05

Family

ID=34394674

Family Applications (2)

Application Number Title Priority Date Filing Date
GB7925394A Expired GB2028539B (en) 1978-07-28 1979-07-20 Sequence controller with microprocessor
GB08212661A Expired GB2107083B (en) 1978-07-28 1982-04-30 Sequence controller with microprocessor

Family Applications After (1)

Application Number Title Priority Date Filing Date
GB08212661A Expired GB2107083B (en) 1978-07-28 1982-04-30 Sequence controller with microprocessor

Country Status (8)

Country Link
JP (2) JPS5520597A (en)
AU (2) AU520909B2 (en)
CA (1) CA1116729A (en)
DE (1) DE2930347A1 (en)
FR (1) FR2432184B1 (en)
GB (2) GB2028539B (en)
IT (1) IT1117395B (en)
SE (1) SE445396B (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0036734A1 (en) * 1980-03-20 1981-09-30 Vgl Industries Limited Improvements in and relating to vending machines
EP0047783A1 (en) * 1980-03-20 1982-03-24 Dynascan Corp Power circuit control programmable timer.
EP0061977A1 (en) * 1981-04-01 1982-10-06 Pierre Cognard Control means for fluid products applicators
EP0069796A1 (en) * 1981-07-14 1983-01-19 Fuji Electric Co., Ltd. Automatic vending machine
EP0155403A2 (en) * 1984-03-20 1985-09-25 Robert Bosch Gmbh Control device for motor vehicles
DE8622141U1 (en) * 1986-08-19 1986-10-23 Schmidt, Bernhard, 5206 Neunkirchen Connector for fiber optic cables
EP0167181A3 (en) * 1981-09-29 1987-05-20 Mars Incorporated Coin handling apparatus
EP0367626A2 (en) * 1988-11-04 1990-05-09 General Electric Company Data entry and control arrangement, E.G.,for an appliance
EP0408431A1 (en) * 1989-07-11 1991-01-16 CROUZET Electrom˩nager Method of memorisation and restitution of an alterable program to be executed by a processor
EP0415445A1 (en) * 1989-09-01 1991-03-06 FUJI MACHINE Mfg. Co., Ltd. Sequence control apparatus having separate sequence memory and interlock condition memory
EP0859296A1 (en) * 1997-02-15 1998-08-19 AEG Hausgeräte GmbH Method to protect a household apparatus from accidental intervention during execution of chosen operations

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5657191A (en) * 1979-10-16 1981-05-19 Nippon Coinco Co Ltd Controller for vendor
FR2480970B1 (en) * 1980-04-18 1987-03-20 Gaz De France COMPACT INDUSTRIAL PROCESSOR WITH PERMANENT PARAMETER SAVING
CA1171159A (en) * 1981-01-19 1984-07-17 Lee C. Verduin Control system for cold drink merchandising machine
JPS6222943Y2 (en) * 1981-02-04 1987-06-11
US4411139A (en) * 1981-04-09 1983-10-25 Amf Incorporated Defrost control system and display panel
JPS57205553A (en) * 1981-06-10 1982-12-16 Tsudakoma Ind Co Ltd Weft yarn selector of loom
JPS5810180U (en) * 1981-07-08 1983-01-22 株式会社クボタ vending machine
JPS5860393A (en) * 1981-10-07 1983-04-09 株式会社クボタ Vending machine
JPS58130332U (en) * 1982-02-26 1983-09-03 株式会社明電舎 Reduced type switch
JPS58193027A (en) * 1982-05-04 1983-11-10 Matsushita Electric Ind Co Ltd Heater
JPS59113876U (en) * 1983-01-19 1984-08-01 富士電機株式会社 Vending machine raw material mixing control device
KR102242855B1 (en) * 2013-03-15 2021-04-21 브리고, 인코포레이티드 Automated beverage generating system and method of operating the same

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5321183B2 (en) * 1972-01-07 1978-06-30
JPS4996451A (en) * 1973-01-25 1974-09-12
US3969703A (en) * 1973-10-19 1976-07-13 Ball Corporation Programmable automatic controller
JPS50160967A (en) * 1974-06-19 1975-12-26
US3903515A (en) * 1974-09-05 1975-09-02 Tri Tech Method of and apparatus for controlling the performance of timed functions
US3959636A (en) * 1975-03-10 1976-05-25 Mangood Corporation Batching system
US4001557A (en) * 1975-10-14 1977-01-04 The United States Of America As Represented By The United States Energy Research And Development Administration Stored program digital process controller
JPS605963B2 (en) * 1977-04-30 1985-02-15 株式会社東芝 Control device
MX145266A (en) * 1977-06-06 1982-01-19 Fabricacion De Maquinas Sa IMPROVEMENTS IN ELECTRONIC CONTROL SYSTEM FOR GLASS AND THERMOPLASTIC ARTICLE FORMING MACHINES
US4247317A (en) * 1978-04-20 1981-01-27 Ball Corporation Glassware forming machine computer-ram controller system

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0047783A1 (en) * 1980-03-20 1982-03-24 Dynascan Corp Power circuit control programmable timer.
EP0047783A4 (en) * 1980-03-20 1982-07-30 Dynascan Corp Power circuit control programmable timer.
EP0036734A1 (en) * 1980-03-20 1981-09-30 Vgl Industries Limited Improvements in and relating to vending machines
EP0061977A1 (en) * 1981-04-01 1982-10-06 Pierre Cognard Control means for fluid products applicators
EP0069796A1 (en) * 1981-07-14 1983-01-19 Fuji Electric Co., Ltd. Automatic vending machine
EP0167181A3 (en) * 1981-09-29 1987-05-20 Mars Incorporated Coin handling apparatus
EP0155403A3 (en) * 1984-03-20 1988-04-20 Robert Bosch Gmbh Control device for motor vehicles
EP0155403A2 (en) * 1984-03-20 1985-09-25 Robert Bosch Gmbh Control device for motor vehicles
DE8622141U1 (en) * 1986-08-19 1986-10-23 Schmidt, Bernhard, 5206 Neunkirchen Connector for fiber optic cables
EP0367626A2 (en) * 1988-11-04 1990-05-09 General Electric Company Data entry and control arrangement, E.G.,for an appliance
EP0367626A3 (en) * 1988-11-04 1992-03-04 General Electric Company Data entry and control arrangement, e.g.,for an appliance
EP0408431A1 (en) * 1989-07-11 1991-01-16 CROUZET Electrom˩nager Method of memorisation and restitution of an alterable program to be executed by a processor
FR2649808A1 (en) * 1989-07-11 1991-01-18 Crouzet Sa METHOD FOR MEMORIZING AND RESTITUTING A MODIFIABLE PROGRAM TO BE EXECUTED BY A PROCESSOR
EP0415445A1 (en) * 1989-09-01 1991-03-06 FUJI MACHINE Mfg. Co., Ltd. Sequence control apparatus having separate sequence memory and interlock condition memory
US5128857A (en) * 1989-09-01 1992-07-07 Fuji Machine Mfg. Co., Ltd. Sequence control apparatus having separate sequence memory and interlock condition memory
EP0859296A1 (en) * 1997-02-15 1998-08-19 AEG Hausgeräte GmbH Method to protect a household apparatus from accidental intervention during execution of chosen operations
EP0859296B1 (en) * 1997-02-15 2004-01-28 AEG Hausgeräte GmbH Method to protect a household apparatus from accidental intervention during execution of chosen operations

Also Published As

Publication number Publication date
IT7949701A0 (en) 1979-07-09
SE445396B (en) 1986-06-16
SE7906405L (en) 1980-01-29
GB2107083B (en) 1983-08-17
JPH01111205A (en) 1989-04-27
FR2432184B1 (en) 1985-05-31
FR2432184A1 (en) 1980-02-22
IT1117395B (en) 1986-02-17
CA1116729A (en) 1982-01-19
GB2107083A (en) 1983-04-20
DE2930347A1 (en) 1980-02-14
GB2028539B (en) 1983-05-05
AU7617181A (en) 1982-01-28
JPS5520597A (en) 1980-02-14
AU520909B2 (en) 1982-03-04
AU4773779A (en) 1980-01-31

Similar Documents

Publication Publication Date Title
GB2028539A (en) Sequence controller with microprocessor
US4328539A (en) Sequence controller with microprocessor
US4409649A (en) Sequence controller with microprocessor
US5168372A (en) Video control system
US4031991A (en) Coin operated electronic parking meter
US4721307A (en) Slot machine
US4508345A (en) Slot machine with player-friendly bonus game
US5046157A (en) Time control device for appliances
US4246495A (en) Television monitor and control
EP0142371A2 (en) Slot machine
US5142358A (en) Earn per view television viewing regulation device
US4889339A (en) Slot machine
US4213524A (en) Automatic vending machine with lottery bonus
US4769765A (en) Controlled access programmable event timer system
GB2161009A (en) Gaming machine
US4188779A (en) Electronic timepiece capable of simulating and displaying a game of chance
US4597506A (en) Beverage dispensing machine
US4511895A (en) Method and apparatus for controlling distributed electrical loads
JP5142657B2 (en) Game information display device
JP3890203B2 (en) Slot machine
JP4929542B2 (en) GAME MEDIUM RECORDING / READING DEVICE
US3815720A (en) Money receiving and credit accumulator system
GB1579687A (en) Coin-freed gaming device
US20030083124A1 (en) Game machine
US5070518A (en) Coin counting control apparatus for a vending machine

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 19930720