|
Description  |
|
|
DESCRIPTION
1. Technical Field
This invention relates to the field of vending machines and more
particularly to a vending machine network which automatically manages
inventory, monitors system reliability, and which collects customer
payments and transmits them to a central location.
2. Background of the Invention
Vending machines have been used in the past for dispensing food items as
well as many other articles. Typically, vending machines are operated
autonomously, wherein inventory for each machine is typically maintained
individually. Typically, each machine in the system must be manually
restocked and maintained, wherein a failed vending machine may not be
discovered until actually visited by service personnel. Furthermore, since
no mechanism exists for automatically determining which items are the most
popular, the use of prior vending machines is typically inefficient, since
the most popular items may be out of stock well before the typical
restocking interval.
Recently, with the rapid expansion of home video technologies, the rental
of items such as videotapes, videodisks and video game cartridges has
become widespread. It has been found that vending machines are useful for
dispensing these types of articles. However, present vending machine
systems have several significant problems.
In the video rental industry, a videotape, cartridge or disk is typically
issued to a customer for a predetermined rental period. It is often
desirable to determine which videotapes, disks, etc., are rented the most
frequently so that inventory stocks may be adjusted accordingly.
Furthermore, customers may often wish to return a rented item to a
location other than the original rental location.
No system is known which allows a number of vending machines, operating in
diverse locations, to be used for dispensing and retrieving articles while
allowing an article acquired from one vending machine to be returned to
another in the system, while automatically tracking the location of each
inventory item in the system, and simultaneously accumulating statistics
as to the frequency of rental for specific items. Furthermore, no vending
machine system is known which allows system reliability statistics to be
automatically reported to a central location wherein vending machines
having mechanical problems may be identified and repaired prior to total
failure.
SUMMARY OF THE INVENTION
Accordingly, it is an object of the present invention to provide an
improved vending machine system which provides automatic inventory
tracking.
It is another object of the present invention to provide an improved
vending machine system which automatically tracks and reports reliability
statistics for each vending machine in the system.
It is still another object of the present invention to provide centralized
billing in a vending machine system.
In accordance with an embodiment of the present invention, a
self-contained, automated vending apparatus is provided, having a carousel
oriented on a vertical plane for rotation along a horizontal axis for
storing and dispensing articles, including the means for no-fault
positioning of the carousel, ensuring reliable article dispensing and
return operations, and further providing for the return of such articles
to one of a plurality of randomly selected and circumferentially spaced
compartments arranged within at least one concentric ring circumscribing
the carousel axis. Furthermore, the carousel apparatus coupled with the
carousel driving apparatus comprises the sole moving mechanical component
within the overall vending apparatus, thereby enhancing reliability of
operations. The present invention also includes the means to link a
plurality of vending apparatuses within an electronic data communications
network, providing a means for data transmission between each vending
apparatus and a remotely and centrally located processing apparatus for
the provision of management information to such processing apparatus,
based on individual or aggregate vending apparatuses connected to the
networking system, such that information can include, for example,
performance data on articles, error and service reports, and inventory
data whereby the following capabilities are provided: (i) an article,
typically a videocassette movie for rental, is dispensed from one vending
apparatus and can be returned to another vending apparatus within the
network, and (ii) a patron informed that a particular article selection is
not then available from the present vending apparatus can be informed of
the availability of the same article from another vending apparatus linked
within the network.
The present invention additionally includes various publicly available,
"off-the-shelf" components, providing for easy maintenance and reduced
technological risk, because such components are in a mature developmental
state, i.e., proven from a functional and performance standpoint, easily
and economically available, and fully supported in respect to
documentation and a wide array of software or hardware, as the case may
be, which can be used in connection with such respective components. No
other vending apparatus presently available, in particular videocassette
vending apparatuses, is so configured and designed around such widely
available components.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other objects may be fully understood through the detailed
description of the invention below and the accompanying drawings in which:
FIG. 1 is a block diagram of the automated vending machine network of the
present invention.
FIG. 2 is a diagram of the structure of the software which controls the
operation of the system of FIG. 1.
FIG. 3A is an isometric view of a vending machine adapted for use with the
system of the present invention.
FIG. 3B is a diagram of the positioning system used by the vending machine
of FIG. 3A.
FIG. 3C is a diagram of a look-up table used by the positioning system of
FIG. 3B.
FIGS. 4A-4C are a series of flow diagrams showing the overall operation of
the vending machine network of the present invention during a typical
article rental cycle.
FIGS. 5A-5C are a series of flow diagrams showing the overall operation of
the vending machine network of the present invention during a typical
article return cycle.
FIG. 6 is a block diagram of the components of the vending machine
described in conjunction with FIG. 3A.
FIG. 7 is a diagram of the circuitry used to position the carousel of the
vending machine described in conjunction with FIG. 3A.
FIG. 8 is a rear view of the carousel of the vending machine of FIG. 3A.
FIG. 9 is a rear view in perspective of bar code scanners used to identify
items stored in the carousel of the vending machine of FIG. 3A.
FIG. 10 is a schematic diagram of the aperture sensing means of the vending
machine of FIG. 3A.
FIG. 11 is a flow diagram of the carousel positioning system of the vending
machine described in conjunction with FIG. 3A.
FIG. 12 is a continuation of the flow diagram of FIG. 11.
FIGS. 13A-13C are a series of flow diagrams detailing the operation of the
host system while communicating with the dispensing machines.
FIG. 14 is a flow diagram of the maintenance procedure for processing a
hot-card file.
FIGS. 15A-15B are a series of flow diagrams detailing the process for
submitting accumulated card charges to an associated financial institution
for reimbursement in the system of the present invention.
FIGS. 16A-16B are a series of diagrams detailing the process by which
dispensing machine exceptions are reported to service personnel.
FIG. 17 is a flow diagram detailing the inventory handling system of the
present invention.
FIGS. 18A and 18B are flow diagrams detailing the process by which
inventory records are updated when an article is removed from one
dispensing machine and returned to another.
DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a vending machine network which includes
automatic inventory management, billing management and system maintenance.
The system 100 includes a plurality of vending machines (e.g. vending
machines 104-109) which are preferably adapted for renting articles such
as videotapes, discs, cartridges, etc. Each vending machine (104-109) in
the system 100 is capable of autonomous operation and includes means for
receiving and dispensing articles, means for tracking which inventory
items have been rented or are in stock, (or returned to stock) means for
monitoring operational characteristics of the vending machine, and means
for tracking and reporting customer billing information. The specific
subsystems of vending machines 104-109 are discussed in more detail below.
While the system 100 is shown with four exemplary vending machines, those
skilled in the art will appreciate that the system 100 can be expanded to
accommodate virtually any number of vending machines.
Each vending machine 104-109 in system 100 includes means for communicating
information to control processing system 110 wherein each vending machine
104-109 periodically accesses control processing system 110 to report
vending machine activity since the last reporting period. For example,
each vending machine is provided with an inventory of articles such as
videotapes for rental. When an article is rented, the vending machine
records which item was rented, as well generating and storing billing
information for the transaction. In the preferred practice of the present
invention, customer billing is implemented with conventional credit, debit
or membership cards wherein the cost for renting an article is billed to a
customer's card account. Accordingly, during a typical rental transaction,
the customer's card is read and the number is stored in a transaction file
for later presentment to a financial institution 112. Each vending machine
104-109 also maintains an operating file which records internal
operational errors.
Periodically, each of the respective vending machines 104-109 access the
control processing system 110 to report any vending machine activity since
the last reporting period. In the preferred practice of the present
invention, communication between the control processing system 110 and the
respective vending machines 104-109 is implemented with conventional
telephone lines and modems, although dedicated lines would also function
satisfactorily. During a typical communications session, each of the
vending machines reports a variety of information to the control and
processing system 110. For example, a typical communications session may
include reports of the current inventory of the vending machine,
(including which items were rented or returned since the last reporting
period) any operational failures, and the credit or debit card data for
each rental transaction. The control processing system 110 processes this
information in a number of ways. The inventory reports may be used to
update the inventory records of the control processing system 110 and the
vending machine. For example, if an article is rented in one vending
machine and returned to another, it must be removed from the inventory
record of the vending machine from which it was rented.
The operational failure records may be used to compile machine operational
characteristics at the control processing system 110, wherein service
personal are sent to the vending machine if recurring failures are
reported. Finally, the credit or debit card data is compiled by the
control processing system 110 for each vending machine in the system and
presented to a financial institution 112 for payment. Preferably, the
credit or debit card data is sent to financial institution 112 via a
communications link, such as one provided by a telephone line and modem,
although virtually any method of transferring data, such as magnetic tape
or printed reports, would also be satisfactory.
In the preferred practice of the present invention, each inventory article
is identified by a unique identification number which is encoded in
accordance with the Universal Product Code (UPC) in conjunction with a
unique tape identifier number, and which is affixed to each article in the
form of a conventional bar code strip. Accordingly, as new items are added
to or removed from the system 100, the respective bar codes corresponding
to each article may be scanned by bar code system 114 for processing by
control processing system 110 when updating inventory files.
Referring now to FIG. 2, in the system 100, the control processing system
110 is controlled by system which provides five primary functions. One
function of system 200 is inventory management system 204 and the
communications system 206 which cooperate to control the traffic of
articles throughout the system 100. For example, in the preferred practice
of the present invention, the dispensing machines 104-109 may be used in a
videotape rental network wherein videotapes may be rented and then
returned to the system. The present invention provides a method and means
whereby a videotape may be acquired from one machine in the network and
returned to another wherein the system 100 tracks the actual location of
the videotape. This function is provided by the inventory management
system 204 and the communications system 206 which may communicate with
the respective vending machines via modems 214, 216 or via dedicated lines
218-222.
During the typical operation of the system 100, users charge the cost of
the rental on a credit, debit or membership card. These transactions are
recorded by bank system 208. In addition, bank system 208 communicates
with a financial institution 112 for preauthorization of the transaction
(where desired) and for reimbursement for the card-based transactions.
Communication with the financial institution 112 is preferably conducted
over telephone communication lines 224, although other media such as
magnetic tape may also be used. In addition, the system 200 includes
system support functions such as automatic service request generation
controlled by service system 210 and hot-card tracking provided by
hot-card system 212. The detailed operation of each of the systems
mentioned above is discussed in detail below.
Referring now to FIG. 3A, a vending machine adapted for use with the
present invention is shown. A pseudo-code listing of the control software
for controlling the respective vending machines is set forth in Appendix 4
and is also described in conjunction with the flow diagrams discussed
below. The vending machine 300 incorporates a carousel 304 which is
rotatably supported on spindle 306 wherein the carousel 304 is coupled to
a conventional D.C. motor 308 with belt 310. The belt 310 may be
constructed of any of a number of materials and preferably comprises a
conventional v-belt. The angular position of carousel 304 is adjusted by
selectively activating the D.C. motor 308 wherein the direction of travel
of carousel 304 is controlled by the polarity of the voltage across D.C.
motor 308.
The carousel 304 may preferably be configured with a plurality of bins 312
arranged in a plurality of concentric rings wherein the bins 312 are
adapted for storing articles to be dispensed, such as videotapes. The bins
312 are aligned with doors 314-318 such that individual bins are aligned
with doors 314-318 when the carousel 304 is in a predetermined position,
so articles may be stored in or removed from the bins 312 through doors
314-318. As in prior vending machines, articles may be selected with
exemplary controls 320 which are coupled to a control system 322. For
example, controls may be provided for allowing a user to rent, return,
preview, move the cursor on the display screen, choose additional
selections, or to cancel previous entries. In addition, status lights 323
may be included to indicate when a desired article is behind a respective
access door 314-318. The dispensing machine 300 may also include a video
display 324 for displaying system status information and a magnetic card
reader 326 for receiving customer account information.
As will be discussed in more detail below, the improved positioning system
of the present invention incorporates a bar code scanner 380 and an
aperture sensor 332 for detecting the position of carousel 304.
Referring now to FIGS. 3B-3C, the positioning system 350 includes carousel
304 having a plurality of apertures (e.g., apertures 311, 354-358)
disposed about the perimeter of the carousel 304, and a carousel position
bar code ring 360 disposed coaxially with respect to the plurality of
apertures wherein each aperture is aligned with a particular bar code
area. The bar codes of the bar code ring 360 as well as the apertures 311,
354-358 are disposed in a pattern of three bar code areas/apertures,
separated by a space, followed by three bar code areas/apertures, etc.
This arrangement is useful to encode the position of three offset
concentric bin rings within carousel 304.
The system 350 includes sensor 332 which detects when the sensor 332 is
aligned with an aperture. The bar code scanner 380 reads the bar code
currently aligned with the bar code scanner 380. A control computer 307
receives inputs from the sensor 332 as well as the bar code scanner
interface 362. The bar code scanner interface 362 receives inputs from the
bar code scanner 380 and converts the TTL output signal of scanner 380 to
an ASCII signal processed by control computer 307. A bar code scanner and
bar code interface suitable for use with the present invention is the
MS-500 scan head and the MS-2000 decoder available from Microscan Systems,
Inc., 939 Industry Drive, Tukwila, Wash. 98188. The position of carousel
304 is controlled by motor 308 which is coupled to carousel 304 via belt
310. The belt 310 is preferably of the well-known v-belt type.
The motor 308 is responsive to signals developed by D.C. motor controller
370 which is in turn controlled by control computer 307 through I/O
controller 372. I/O controller 372 is a conventional computer interface
device which communicates with control computer 307 through data bus 309.
An I/O controller suitable for use with the present invention is available
from Metrabyte, 440 Myles Standish Blvd., Taunton, Mass. 02780. The I/O
controller 372 receives commands from control computer 307 and in response
thereto generates a plurality of motor control signals. Specifically,
motor controller 370 generates a positive or negative D.C. voltage for
actuating D.C. motor 308, as well as generating various status signals
regarding the state of the system. Specifically, the motor controller 370
receives as inputs an enable signal, a direction control signal, and a
signal for effecting fast and slow operating modes. In addition, motor
controller 370 outputs a signal which indicates whether the motor rotor is
locked. A conventional power supply 375 provides power to the system 350.
The detailed operation of the system 350 is described in more detail in
conjunction with FIG. 11. Briefly, the initial carousel position is
determined by aligning the sensor 332 with an aperture and by reading the
bar code in code ring 360 corresponding with that position. In use, a user
signals control computer 307 to move the carousel 304 to a predetermined
position as is discussed in more detail below. Each valid position of
carousel 304 is indicated by the carousel code ring 360. The control
computer 307 then calculates the number of apertures between the current
position and a desired position based on data stored in a look-up table
352 of the type shown in FIG. 3C. Table 352 is created as inventory is
loaded into carousel 304. As each item is loaded in the carousel 304, the
bar code corresponding to its position is recorded in the look-up table
352. Table 352 may be utilized as follows. It is determined where the
carousel 304 is presently located by reading the bar code at the current
carousel position (e.g., bar code positions 1-80). If an article in bin 60
is desired and the carousel 304 is currently at position 01, it can be
determined that the carousel 304 must be rotated (in reverse) by two
apertures. Similarly, if an article in bin 60 is desired and the carousel
304 is currently in position 59, it can be determined that the carousel
304 must be rotated (in forward) by 20 apertures.
Once the desired movement is determined, the motor 308 is then activated at
fast speed until the desired position is within one aperture, at which
time the motor 308 is switched to a slow speed to attain the final
position. After movement of carousel 304 is terminated, the control
computer 307 instructs the bar code scanner 380 to read the bar code
currently aligned with the scanner 380 to verify that the correct position
was attained. If the correct position was not attained, the control
computer 307 records the positioning error (for use as a diagnostic) and
the positioning sequence is repeated. Whenever the carousel 304 is in
motion, the control computer 307 continuously monitors for a locked rotor
condition through locked rotor detector 374.
Referring now to FIGS. 4A-4C, the routine 400 describes the operation of
the respective vending machines 104-109 during a normal rental cycle. Item
402 is invoked whenever a user inserts a credit card in the vending
machine. Decision 404 then determines whether the inserted card is valid.
If not, the routine returns. Otherwise, control passes to item 406 when a
user selects the "RENT" option with user actuated inputs 320. The vending
machine then displays a list of articles available for rent (e.g., a list
of available movie titles, etc.) in item 408. Item 410 then gets the
user's selection. Decision 412 detects whether the user input is "CANCEL."
If so, the routine returns. Otherwise, decision 414 determines whether the
user has requested the next set of titles. If so, item 426 gets the next
set of titles and control returns to item 408. If the result of decision
414 is negative, decision 416 and 418 move a display cursor in accordance
with user inputs 320. Once the user has selected an item, decision 420
determines whether the user has requested a preview for the selected
title.
As will be discussed in more detail below, each of the vending machines in
system 100 includes a video display 324 and a random access video source,
such as a videodisk system which is controlled by routine 400. If in
decision 420, the user requests a preview, decision 422 determines whether
a preview exists for the requested item. If not, item 428 generates an
appropriate message on the vending machine display 324 and control passes
to item 408. If a preview is available, item 424 plays the requested
preview and control returns to item 408.
If in decision 420, the user does not request a preview, control passes to
decision 429 which determines whether the user indicates he wishes to rent
the selected article. Decision 430 determines whether the appropriate user
input is received within a predetermined time limit. If not, the routine
returns. Otherwise, control loops back to item 408 until a user input is
received. If the user indicates he wishes to rent the selected item,
control passes to decision 432 which determines whether the requested
article is in stock. If not, item 434 displays an appropriate message to
the user. Control then returns to item 408. If the requested item is in
stock, item 436 instructs the position system 350 to move the carousel 304
to the appropriate position which is confirmed by item 438. Item 440 then
checks to verify that the requested item is in the predetermined bin
position and item 442 unlatches the appropriate access doors 314-318 so
the requested article may be removed from the vending machine. After a
predetermined delay, items 444 and 446 close and relatch the access doors
314-318. Decision 448 then determines whether the requested article was
removed from the vending machine. If not, the routine returns. If so, item
450 sets an internal flag to indicate the article has been removed from
inventory and the vending machine inventory records are updated by item
452. Item 454 then prints a customer receipt and the routine returns.
FIGS. 5A-5C describe the operation of the vending machines 104-109 during a
typical article return cycle. The return cycle begins when a user inserts
his credit card in the vending machine and select "RETURN" as indicated by
items 502-504. Item 506 then moves the carousel 304 so the access doors
314-318 are aligned with the next closest empty bin. The carousel position
is then verified by item 508. Once item 510 verifies the selected bin is
empty, the access doors 314-318 are unlatched by item 512. After a
predetermined delay, the access doors are closed and relatched by items
514 and 516. Decision 518 then determines whether an article was returned
to the selected bin. If not, the routine returns. Otherwise, the article
identification number is read by item 520. Decision 522 then determines
whether the article identification was correctly read. If not, item 524
sets an internal flag to indicate the article cannot be identified and
item 526 prints a conditional return receipt. The routine then returns.
If the article identification number was correctly read, decision 528
determines whether the article is part of the regular vending machine
inventory. If not, item 530 sets an internal flag to indicate that the
article is an inventory item from another machine and item 532 prints a
conditional return receipt. The routine then returns. If the article is
from the vending machine's regular inventory, item 534 records the
article's position in the carousel 304 in the article inventory file. Item
536 then calculates the customer charges and records them in a transaction
file. Item 538 then closes the rental transaction and item 540 prints a
customer receipt. The routine then returns.
Referring now to FIG. 6, a block diagram of an exemplary vending machine is
shown. The operation of a vending machine is controlled by control
computer 307. The control computer 307 controls the position of carousel
304 through motor controller 370 and motor 308. Communication with control
processing system 110 is provided through modem 608, operating in
conjunction with any of a number of well-known communication software
packages. Customer receipts are printed with printer 610. The control
computer 307 is coupled to preview system 324 through I/O controller 372.
I/O controller 372 is further coupled to selector switches 313-318,
through keyboard decoder 621, which are used to select articles; to door
latches 630, 631 and 633, which lock the access doors 314-318; and to
retroreflective scanners 632, 634 and 636, which detect whether articles
are in respective slots. Door latches 630, 631 and 633 may preferably be
of the conventional solenoid actuated type, configured to lock the access
doors 314-318 when in a resting state. In addition, control computer 307
cooperates with decoder-I/O board 618 to control magnetic card reader 326
and bar code read heads 380, 622-626.
Referring now to FIG. 7, the motor controller 604 comprises a number of
conventional circuits which may be implemented in a number of ways. The
direction controller 702 is responsive to the direction control signal
generated by I/O controller 372, and it controls the polarity of the
voltage across motor 308. The speed controller 704 may be constructed of
conventional circuitry, which is a response to the fast and slow control
signals generated by I/O controller 372, and it generates a variable D.C.
voltage which is based on the currently selected mode of operation. In the
preferred practice of the present invention, speed controller 704
generates 90 volts in the fast mode, 60 volts in the slow mode and 0 volts
if neither mode is selected, although the actual voltages may vary
depending on the specific D.C. motor 308 used with the system. A brake
control 706 is coupled between speed controller 704 and brake 708 to
effect a braking signal whenever a fast or slow motor control signal is
absent. Brake 708 is responsive to the braking signal and it comprises a
well known device which clamps the rotor of motor 308 whenever the braking
signal is actuated. Locked rotor detector 710, coupled between motor 308
and I/O controller 372, monitors the amount of current consumed by motor
308 to detect a locked rotor condition (which is indicated by an excessive
amount of current consumed by motor 308). If such a condition is detected,
the motor 308 is disabled by safety disable 712. Similarly, access door
detectors 714, coupled to access doors 314-318, detect when an access door
is open. When such a condition is detected, the safety disable circuit 712
disables motor 308.
Referring now to FIG. 8, the rear face of carousel 304 is shown. In the
preferred practice of the present invention, in the rear face of carousel
304, apertures (e.g. apertures 802, 804, 806) are disposed in a position
coinciding with the position of each of the respective bins of carousel
304 so that the contents of the respective bins are visible through the
apertures. As noted above, the respective bins are arranged in a plurality
of concentric rings 808-812 with respective compartments within each ring
being spaced equidistant from each other.
FIG. 9 is a rear view in perspective of a plurality of bar code scanners
622-626 aligned with apertures on the rear face of carousel 304. As noted
above, as an article (e.g., article 910) is loaded in the carousel 304, it
is visible through an associated aperture (e.g., apertures 802, 804, 806).
Each article is encoded with a bar code 912 which may be scanned by an
associated bar code scanner 622-626. Whenever a bar code is scanned, it is
coupled to control computer 307 from bar code scanner heads 622-626
through bar code decoder 618. In addition, retroreflective scan heads
632-636 are used to detect whether items are present in a particular bin
if a bar code cannot be detected.
Referring now to FIG. 10, the sensor 332 comprises an emitter/detector 1002
comprising laser diode 1004 and detector 1006. Resistor 1008, coupled
between laser diode 1004 and a V+ power supply input 1010, provides power
to laser diode 1004. Laser diode 1004 and detector 1006 are disposed on
either side of carousel 304 aligned with the respective apertures disposed
about the circumference of carousel 304 so that the light generated by
laser diode 1004 travels through the apertures (e.g. aperture 311) to
activate detector 1006. When detector 1006 is activated, current flows
from the V+ power supply terminal 1010 into resistor 1012, thus generating
a positive voltage across resistor 1012 which is coupled through resistor
1016 to the noninverting input of buffer amplifier 1014. A reference
voltage for buffer amplifier 1014 is provided by a voltage divider formed
by resistors 1018 and 1020. The gain of buffer amplifier 1014 is
controlled by resistor 1022. The output of buffer amplifier 1014 is
coupled to control computer 307 through output terminal 1024. Pull-up
resistor 1026 is disposed between output terminal 1024 and V+ input
terminal 1010. Resistor 1028 and LED 1030 provide an indicator light for
aperture detection.
Referring now to FIGS. 11-12, the detailed operation of the control
computer 307 is shown. When the carousel positioning routine 1100 is
invoked, item 1101 initializes a recount counter. Item 1102 and decision
1104 then read the output of sensor 332 to determine whether the carousel
304 is in a valid position. A valid position is defined as a position
wherein the sensor 332 is aligned with an aperture e.g., apertures
354-358). If the carousel 304 is not in a valid position, item 1106
activates the carousel drive motor 308 in the slow speed. While the
carousel 304 is moving, decision 1108 monitors the rotor locked signal to
ensure the drive motor 308 is not locked. Assuming the drive motor 308 is
not locked, control passes to decision 1104 until the carousel position is
initialized. Once the carousel position is initialized, item 1110
activates the bar code scanner 380 to read the current position of the
carousel 304. Item 1112 then calculates the number of positions and
direction to rotate the carousel 304 based on the current and the desired
position.
As noted above, the present invention contemplates the use of a carousel
304 having compartments for storing and dispensing articles. The
respective compartments are arranged in offset concentric rings 808-812
wherein the outer ring 808 has 60 compartments, the middle ring 810 has 40
compartments and the inner ring 812 has 20 compartments. In the preferred
practice of the present invention, 80 apertures are used to encode the
position of all 120 compartments. As mentioned above, a mapping table 352
is used to map the 80 aperture positions to physical compartments. This
mapping table is used by item 1112 when calculating the number of
positions in which to rotate the carousel 304 to a desired position. In
other words, each compartment in any of the three rings may be used to
store a unique article. Each compartment may be identified by a unique bar
code and by its ring number, e.g., ring 808, 810 or 812. The mapping table
352 is used to correlate the location of each unique compartment with its
corresponding bar code/aperture as well as its ring number location.
Once a desired position for carousel 304 is calculated by looking up the
desired position in the mapping table 352 and calculating an offset from
the current carousel position, decision 1114 determines whether the
carousel is already in the desired position. If so, the routine returns.
Otherwise, decision 1116 determines whether the carousel is within one
aperture of a desired position. If so, the routine enters slow speed loop
1203. If not, the system 350 enters fast speed loop 1201 wherein item 1202
starts moving the carousel 304 at fast speed, while decision 1206 monitors
the drive motor 308 for a locked condition. Decision 1204 determines
whether the carousel 304 is within one aperture of the desired position.
If so, item 1208 stops the carousel 304 and the routine enters slow speed
loop 1203 wherein item 1210 activates the carousel 304 at slow speed.
Decision 1212 then monitors the carousel 304 to determine when it is in
the position corresponding to the next aperture, while decision 1214
monitors the drive motor 304 for a locked condition. If decision 1108,
1206 or 1214 detect a locked rotor condition, control passes to item 1224
which shuts down the system while item 1226 generates an error message and
the routine returns.
Once the carousel 304 is in the calculated position, the carousel 304 stops
in item 1216, and item 1218 activates the bar code scanner 380 to read the
bar code of the current carousel position. Decision 1220 then determines
whether the current position is the same as the desired location. If not,
control passes to decision 1222 which determines if the retry count has
reached a predetermined maximum value. If so, control passes to items 1224
and 1226 and the routine returns. Otherwise, item 1227 generates a warning
message and item 1228 increments the recount flag. Control then returns to
item 1102 to repeat the procedure until the correct position is found or
until the recount is exhausted, indicating a system failure.
Referring now to FIGS. 13A-13C, th | | |