Patent Publication Number: US-7586049-B2

Title: Apparatus and method for measuring the weight of items on a conveyor

Description:
The present application is a continuation of U.S. application Ser. No. 11/501,585, filed Aug. 9, 2006 now abandoned, the entire disclosure of each of which is hereby incorporated by reference herein. 

   FIELD OF THE INVENTION 
   The present invention relates to conveyor systems and, more particularly, to conveyor systems in which items traveling on a conveyor are weighed. 
   BACKGROUND OF THE INVENTION 
   Generally, shipping companies determine an amount to charge for the transport of customer packages based on a relatively limited number of factors, including the package&#39;s weight, dimensions and distance to the shipping destination. If the customer expects a package to be delivered to the correct address, the customer is required to provide the shipping company with the correct destination, and there may be a relatively high degree of confidence, therefore, in revenue based on shipping distance and/or destination address. On the other hand, customers often will not have ready access to accurate information regarding the dimensions and weight of the packages they ship. 
   Particularly with the increase in use of online resources, shipping companies often allow customers to provide the weight, dimension, and destination of their packages prior to collection for shipment. Customers may provide such information through an Internet site or on a paper record attached to the package itself and then deposit the package in an unattended drop-off container from which the carrier retrieves the package. Packages may also be shipped through third-party storefronts or corporate shipping departments. The carrier may not check dimension and weight information for accuracy prior to collection. Thus, the revenue collected for such packages may be understated due to the discrepancy between the declared and actual weights and dimensions. 
   Systems are known that weigh and scan bar codes on packages in-motion on a conveyor system so that package weights can be compared against declared weights. Such systems may include an in-motion scale under a short section of moving conveyor disposed between an upstream main system conveyor and a downstream main system conveyor and a laser based bar code scanner located on the upstream or downstream main system conveyor or over the scale. The system also includes a dimensioner, a processor and a tachometer. As should be understood in this art, dimensioners detect one or more dimensions of an item on a conveyor. Various types of dimensioners are known, and it should be understood by those skilled in the art that dimensioners can be constructed in a variety of configurations, for example employing laser scanners that produce return signals describing the spatial configuration of an item passing proximate the dimensioner. 
   The tachometer is coupled to the upstream main system conveyor so that the conveyor&#39;s movement causes the tachometer to output pulses corresponding to the distance the conveyor moves and its speed. The dimensioner is disposed along the conveyor at a known position relative to the scale. When a package moving along the conveyor reaches the dimensioner, the dimensioner processor opens a package record, determines height, width and length, associates that data in the package record, and outputs the dimension data to the system processor in association with tachometer data that corresponds to the package&#39;s location at the dimensioner. Upon receiving the dimensioner data, the system processor opens a package record and associates with the package record the dimension and tachometer data received from the dimensioner. The system processor also sets an open read window variable and a close read window variable for the barcode scanner, and an open read window variable and a close read window variable for the scale. The open read window variable for the scale is equal to the tachometer value for the downstream-most point on the package, plus a known distance (in tachometer pulses) between the dimensioner and a predetermined position in the path of travel with respect to the scale. The close read window variable for the scale is equal to the tachometer value for the upstream-most point on the package, plus a known distance (in tachometer pulses) between the dimensioner and the predetermined position with respect to the scale. The open read window variable for the barcode scanner is equal to the tachometer value for the downstream-most point on the package, plus a known distance (in tachometer pulses) between the dimensioner and a predetermined position in the path of travel with respect to the barcode scanner. The close read window variable for the barcode scanner is equal to the tachometer value for the upstream-most point on the package, plus a known distance (in tachometer pulses) between the dimensioner and the predetermined position with respect to the barcode scanner. 
   The scale may have a generally planar top surface over which the conveyor belt passes. As a package moves over the scale, the package weighs down onto the scale&#39;s top surface such that one or more load cells depressed by the scale&#39;s top surface generate signals to the processor corresponding to the package&#39;s weight. The scale assembly has a photodetector disposed along the short conveyor immediately upstream from the scale. A processor on the scale monitors the photodetector&#39;s output signal and thereby determines when the package&#39;s front and back edges pass the photodetector. The scale also receives the tachometer output. By associating the passage of the package&#39;s front and back edges by the photodetector with the tachometer values corresponding to those events, the scale processor determines the package&#39;s length. The rate at which the tachometer outputs pulses to the scale determines how fast the package is moving through the path of travel, and this, along with package length, determines the time following its passage by the photodetector at which the package will have been on the scale a sufficient time for the scale to validly acquire the package&#39;s weight. The scale processor accordingly determines when valid weight data may be acquired for the package and acquires the weight data at that point. 
   The scale processor transmits weight data to the system processor when a package reaches a predetermined point in the path of travel following the scale. More specifically, the scale processor knows when the front edge of the package passes by the scale photodetector. After acquiring the package&#39;s weight at a point based on the package&#39;s length and belt speed, the scale processor holds the weight data until a tachometer value the scale associates with the weight data based on the photodetector signal accumulates to a point indicating that the front edge of the package is at a predetermined point downstream of the scale. The scale processor then outputs the weight data to the system processor. 
   The system processor relies on tachometer pulses to correctly associate weight data with a package record. The system processor determines the accumulated tachometer value at the time the weight data is received from the scale processor. The open read window and close read window scale variables for each package record correspond to the distance between the dimensioner and the predetermined point downstream from the scale. Thus, the system processor compares the tachometer value associated with the received weight data with the open read window and close read window variables for the open package structures it maintains. If the tachometer value is between the open read window scale variable and close read window scale variable for any open package record (because the scale processor transmits weight data when the package&#39;s leading edge reaches the predetermined point, the tachometer value should be near the open read window scale variable), the system processor assigns the weight data to that package record. If the tachometer value does not fall within the open window and close window scale variables stored for any open package record, the weight data is not assigned to a package record. 
   As should be understood in this art, a barcode reader may comprise a laser scanner that projects a plurality of laser lines on the belt, for example in a series of “X” patterns. The scanner outputs a signal that includes barcode information reflected back from the laser lines and a barcode count, which indicates the position in the X patterns at which given barcode information was seen. Thus, the barcode count provides the lateral position on the belt, and the longitudinal position with respect to the centerline of the X patterns, corresponding to the barcode information. The barcode scanner assembly has a photodetector disposed along the short conveyor immediately upstream from the X patterns. A processor at the barcode scanner assembly monitors the photodetector&#39;s output signal and thereby determines when the package&#39;s front and back edges pass the photodetector. The barcode scanner also receives the tachometer output. By associating the passage of the package&#39;s front and back edges by the photodetector with the tachometer data, the barcode scanner processor determines when the package passes through the X patterns. The barcode scanner processor accordingly determines when valid barcode data may be acquired for the package, acquires the barcode data during that period. 
   The barcode processor accumulates barcode data while a given package passes through the X patterns and transmits the accumulated barcode data to the system processor when the package reaches a predetermined point in the path of travel following the barcode scanner. More specifically, the barcode scanner processor knows when the front edge of the package passes by the barcode scanner photodetector. After acquiring the package&#39;s barcode data over a period based on the package&#39;s length, the barcode scanner processor holds the barcode data until a tachometer value the barcode scanner processor associates with the barcode data accumulates to a point indicating that the front edge of the package is at the predetermined point downstream of the scanner. The predetermined point is defined so that the longest package the system is expected to handle can clear the scanner&#39;s X patterns. The barcode scanner processor then outputs the barcode data to the system processor. 
   The system processor relies on tachometer pulses to correctly associate barcode data with a package record. The system processor determines the accumulated tachometer value at the time the barcode data is received from the barcode scanner processor. The open read window and close read window barcode variables for each package structure correspond to the distance between the dimensioner and the predetermined point downstream from the barcode scanner. Thus, the system processor compares the tachometer value associated with the received barcode data with the open read window and close read window barcode variables for the open package structures it maintains. If the tachometer value is between the open read window barcode variable and close read window barcode variable for any open package structure, the system processor assigns the barcode data to that package record. If the tachometer value does not fall within the open window and close window barcode variables stored for any open package record, the barcode data is not assigned to a package record. 
   Such known systems are operable with items that do not overlap with respect to the conveyor&#39;s direction of travel. The scale photodetector detects gaps between the items, and even where the gaps are short enough that there are first periods in which two items are simultaneously on the scale, if there are second periods of time in which respective items are on the scale alone for a time sufficient to allow the scale to settle, valid weight data may be acquired. 
   In the operation of conveyor systems processing non-overlapping items, it is known that the items may become overlapped in certain circumstances, for example when a sudden increase in items received at a receiving station cause human operators to load items on the conveyor at a rate higher than that necessary to maintain item separation. If the items become overlapped, multiple items may be on the scale when the processor receives weight data, and the weight data is therefore unreliable and unusable. Thus, it is known to provide a switch that discontinues the communication of weight data from the scale to the processor so that a human operator detecting an overlapped condition can manually interrupt the weighing function. 
   It is known to dispose a dimensioner at a predetermined position upstream from a barcode scanner within a conveyor system that carries overlapping items and that does not include a scale, where the dimensioner is configured to determine the position and orientation of each item, for example a package, on the conveyor belt and, based on expected package shapes, whether packages are adjacent each other. The distance, and therefore the number of tachometer pulses corresponding to the distance, between the dimensioner and the centerline of the barcode scanner&#39;s X pattern is known, and the dimensioner uses this distance to define the four corners of each package as it relates to the position of the center of the scanner&#39;s X pattern. 
   The tachometer values are synchronized between the system processor and the barcode scanner processor, so that both processors accumulate the same tachometer value. The barcode scanner&#39;s processor constantly monitors incoming barcode data and outputs the data as it is received, along with the accumulated tachometer value, a variable that identifies the particular leg, or scan line, of the X pattern in which the barcode was read, and the relative barcode count, to the system processor. The system processor subtracts from the tachometer value associated with the received barcode data a tachometer value corresponding to the longitudinal offset represented by the barcode count, thereby normalizing the tachometer value to the centerline of the X pattern. Based on the adjusted tachometer value and the barcode&#39;s lateral position, the system processor determines whether the barcode falls within the four corners of any package (accounting, as discussed above, for the longitudinal distance between the dimensioner and the barcode scanner), taking into consideration the package&#39;s height if the barcode were to have been read on that package. As should be understood in this art, package height determines the size of the X&#39;s in the X pattern seen by the barcode scanner, and the package height is therefore needed to accurately determine the barcode&#39;s normalized tachometer value and lateral position. If, following adjustment for package height, the location of the barcode falls within the four corners of a package, the system processor assigns the barcode data to that package record. If the barcode data does not match any open package record, the barcode data is not assigned to a package record. 
   SUMMARY 
   The present invention recognizes and addresses the foregoing considerations, and others, of prior art constructions and methods. 
   These and/or other objects are achieved in a preferred embodiment of an apparatus for measuring the weight of items on a conveyor, including a scale that generates a first signal corresponding to the weight of items as they pass over the scale. A movable platform transports the items to the scale and generates a second signal corresponding to a position of the items in relation to the scale. A dimensioner examines the items transported on the platform and generates a third signal representative of whether the items are singulated or nonsingulated. A processor operatively connected to the scale, the dimensioner, a memory and the platform receives the second and third signals and determines whether to associate the first signal with information about a particular item based upon whether the particular item is singulated or nonsingulated. 
   In another preferred embodiment, an apparatus for measuring the weight of items on a conveyor includes a conveyor that moves the items in a direction in a path of travel. A scale is disposed in the path of travel so that the scale receives the items moving on the conveyor and outputs a first signal corresponding to a weight of items received by the scale. A dimensioner is disposed proximate the conveyor. The dimensioner has a signal source that outputs a second signal with which the items interact as the items move along the path of travel so that when a first item interacts with the second signal, the second signal carries information corresponding to at least one spatial dimension of the first item. The dimensioner produces a third signal that includes the information. A processor receives the first signal and the third signal and determines, based on the information, a location of a boundary of the first item in the path of travel and relative to locations of boundaries of other items in the path of travel proximate the first item. The processor determines, based on the location of the boundary of the first item in the path of travel, when the first signal corresponds to receipt of the first item by the scale. The processor detects, based on the location of the boundary of the first item with respect to the locations of the boundaries of other items proximate the first item, a first condition in which the boundary of the first item overlaps, relative to the direction, a boundary of another time that is received by the scale and a second condition in which the boundary of the first item does not overlap, relative to the direction, the boundary of another item that is received by the scale. Upon determining that the first signal corresponds to receipt of the first item by the scale, the processor associates a weight defined by the first signal with a record corresponding to the first item based upon detection of the second condition and does not associate the weight defined by the first signal with the record when the processor detects the first condition. 
   One preferred embodiment of a method for measuring the weight of items being moved on a conveyor in a direction in a path of travel includes providing a scale disposed in the path of travel so that the scale receives the items moving on the conveyor and outputs a first signal corresponding to a weight of items received by the scale. At least one spatial dimension of a first item is determined. Based on the at least one spatial dimension, a location of a boundary of the first item in the path of travel, and relative to locations of boundaries of other items in the path of travel proximate the first item, is determined. Based on the location on the boundary of the first item in the path of travel, it is determined when the first signal corresponds to weight of the first item. Based on the location of the boundary of the first item with respect to the locations of boundaries of other items proximate the first item, first and second conditions are detected, where in the first condition the boundary of the first item overlaps, relative to the direction, a boundary of another item that is received by the scale, and in the second condition, the boundary of the first item does not overlap, relative to the direction, the boundary of another item that is received by the scale. Upon determining that the first signal corresponds to receipt of the first item by the scale, a weight defined by the first signal is associated with a record corresponding to the first item based upon detection of the second condition but is not associated with the record if the first condition is detected. 
   The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments of the invention and, together with the description, serve to explain the principles of the invention. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     A full and enabling disclosure of the present invention, including the best mode thereof directed to one of ordinary skill in the art, is set forth in the specification, which makes reference to the appended drawings, in which: 
       FIG. 1  is a schematic representation of a dynamic dimensioning and weighing system in accordance with an embodiment of the present invention; 
       FIG. 2  is a schematic representation of a dimensioner of a dynamic dimensioning and weighing system in accordance with an embodiment of the present invention; 
       FIGS. 3 ,  3 A and  4  are schematic representations of a dynamic dimensioning and weighing system in accordance with an embodiment of the present invention; 
       FIG. 5  is a schematic representation of packages on a conveyor belt under analysis of a dimensioner in an embodiment of the present invention; 
       FIG. 6  is a schematic representation of packages on a conveyor belt under analysis of a dimensioner in an embodiment of the present invention; and 
       FIG. 7  is a schematic representation of packages on a conveyor belt under analysis of a dimensioner in an embodiment of the present invention. 
   

   Repeat use of reference characters in the present specification and drawings is intended to represent same or analogous features or elements of the invention. 
   DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
   Reference will now be made in detail to presently preferred embodiments of the invention, one or more examples of which are illustrated in the accompanying drawings. Each example is provided by way of explanation of the invention, not limitation of the invention. In fact, it will be apparent to those skilled in the art that modifications and variations can be made in the present invention without departing from the scope or spirit thereof. For instance, features illustrated or described as part of one embodiment may be used on another embodiment to yield a still further embodiment. Thus, it is intended that the present invention covers such modifications and variations as come within the scope of the appended claims and their equivalents. Additional aspects and advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention. 
   Referring to  FIG. 1 , a dynamic dimensioning and weighing system  10  includes a conveyor system  12  that moves items (generally rectangularly-cross-sectioned packages in the illustrated embodiments) along a path of travel and weighs the items and a component system  14  adjacent to the conveyor system that tracks packages being moved by the conveyor system. Conveyor system  12  includes a number of rollers  16 , an upstream main belt  24   a , a downstream main belt  24   b , a short intermediate belt  24   c , respective beds  18   a  and  18   b , a tachometer  20 , and a scale  22  disposed beneath and in contact with intermediate belt  24   c . Although in the illustrated embodiments the conveyor includes a belt, it should be understood that the conveyor can move the items through the path of travel by means other than belts, for example driven rollers. 
   Rollers  16  are motor-driven rollers that move conveyor belts  24   a - 24   c  in a direction denoted by arrows  26  through their rotation over beds  18   a  and  18   b , which provide support to the belts, and scale  22 . For purposes of the present discussion, the direction corresponding to the start of conveyor system  12  is referred to as “upstream,” whereas the direction in which conveyor belts  24  moves is referred to as “downstream.” 
   Tachometer  20  is beneath and in contact with the surface of upstream main conveyor belt  24   a  and rotates with belt  24   a  as the belt moves in the direction of arrows  26 . As tachometer  20  rotates, it outputs a signal comprising a series of pulses corresponding to the conveyor belt&#39;s linear movement and speed. Tachometer  20 , and other devices that provide signals corresponding to the rate of movement of a conveyor belt, from which the locations of items moving in a path of travel along the belt can be determined, should be understood by those of ordinary skill in the art. In general, the number of pulses output by tachometer  20  corresponds to the linear distance traveled by the belt, while pulse frequency corresponds to the belt&#39;s speed. The number of tachometer pulses per unit of measurement defines the resolution of the tachometer and its ability to precisely measure the distance that the conveyor belt has moved. Tachometer  20  may be replaced by a shaft encoder, particularly where less accurate measurements are needed. 
   Scale  22  is located beneath and in contact with conveyor belt  24   c  so that packages being moved by the belt in the path of travel apply pressure to the scale as they move over the scale. Scale  22  extends substantially across the path of travel so that any item carried by the belt through the path of travel passes over the scale. The signal output by the scale corresponds to the weight applied to the scale. In one embodiment, scale  22  is a IM6000 in-motion scale, manufactured by Fairbanks Scales, Inc. of Kansas City, Mo. Scale  22  is illustrated schematically in  FIG. 1  as a single unit, but it should also be understood that the scale may be formed from several scales either in parallel and/or series along the length of conveyor system  12 . Furthermore, where scale  22  is not part of an assembly having a discrete belt  24   c , scale  22  may be disposed under and in contact with a continuous belt in place of separate belts  24   a ,  24   b  and  24   c . In general, the system operates in such a configuration (such as shown in  FIG. 2 ) in the same manner as described below. For example, the system and component processors perform the same functions and exchange the same information. Thus, the single belt embodiment is not discussed in further detail with respect to  FIG. 1 , and it should be understood that while given embodiments described herein may have either a scale with a separate belt or a scale that engages the main system belt, this is for purposes of example only and that the present invention may encompass either and other arrangements of belts, as well as other conveyors, in various combinations of features. Various suitable scale configurations are also described in more detail below. 
   Component system  14  includes a dimensioner  28 , a plurality of barcode scanners  32 , and a computer  36 , all of which are attached to a frame  38 . Frame  38  supports dimensioner  28  and at least one barcode scanner  32  horizontally above conveyor belt  24  so that the beams of light emitted by the dimensioner and scanners (described below) intersect the top surface of packages moved by the belt. Frame  38  also supports additional scanners  32  vertically adjacent to conveyor belt  24  so that beams of light emitted by these scanners intersect the sides of packages moved by the belt. One example of suitable scanners include QUAD X laser barcode scanners manufactured by Accu-Sort Systems of Telford, Pa., although it should be understood that cameras or other suitable barcode readers could be used, depending on the needs of a given system. 
   Dimensioner  28  may be of any suitable type, for example a “time-of-flight” type dimensioner, a “triangulation” type dimensioner, or a camera. In the embodiment shown in  FIG. 1 , dimensioner  28  is a triangulation type dimensioner similar to those disclosed in U.S. Pat. Nos. 6,775,012, 6,177,999, 5,969,823, and 5,661,561, the entire disclosures of which are incorporated by reference herein. With regard to these embodiments, dimensioner  28  comprises a light source disposed within the dimensions, such as a laser, and a rotating reflector disposed within the dimensioner that produce a scanning beam (denoted in phantom at  40 ) that is directed down at conveyor belt  24   a . Scanning beam  40  intersects belt  24   a  at line  42  in a manner that is transverse to the belt&#39;s linear movement in the path of travel at a fixed angle with respect to an axis normal to the belt&#39;s surface. Packages moving on belt  24   a , such as package  62 , intersect scanning beam  40 , thereby creating an offset in the scanning beam in the y-direction. 
   Both conveyor belt  24   a  and the packages thereon reflect light created by the scanning beam back to the rotating mirror, which reflects light to a line scan CCD or CMOS imager (not shown) within dimensioner  28 . Because the rotating mirror reflects both the outgoing and reflected laser light, the mirror returns the reflected light to a constant x-axis position, but the reflected light shifts in the y-direction correspondingly to the shift in line  42  caused by the height of a package  62  and the angle at which the scanned laser beam intersects the belt. Thus, the line scan CCD or CMOS imager is aligned in the y-direction to thereby detect the return light&#39;s y-axis shift. The rotating mirror&#39;s angular position corresponds to the x-axis position of any given height data point. Accordingly, dimensioner  28  generates a signal representative of the height of an object such as package  62  across conveyor belt  24   a  as described by the y-axis offset detected in scanning beam  40 . The signal is also representative of the x-axis positions of the height data by association of that data with the mirror&#39;s angular position. Based on the height data and corresponding x-axis data, the dimensioner processor (not shown) determines the cross sectional height profile an object on the belt and, by accumulating such profiles along the object&#39;s length, the object&#39;s three dimensional profile, as described in more detail below. Furthermore, because the dimensioner is disposed at a fixed position with respect to the belt, the dimension data defines the package&#39;s orientation on the belt. Given certain assumptions regarding the package&#39;s height and/or other dimensions appropriate to a given system, the dimensioner processor can determine the state of the packages, i.e. whether packages are singulated or non-singulated. 
   For purposes of this discussion, packages in a “singulated” line are placed on the belt serially with spaces between the packages sufficient to allow packages to be weighed individually by scale  22 . A non-singulated group of packages occurs when the packages are placed on the belt adjacent to, alongside and/or otherwise sufficiently physically close to each other so that a given package cannot be weighed individually by scale  22 . For example, in  FIG. 1 , package  62  is singulated with respect to packages  58  and  60 , but packages  58  and  60  are non-singulated with respect to each other since they are partially side-by-side across the width of the belt. Packages  58  and  60  would also be considered non-singulated if the back end of package  58  and the front end of package  60  were spaced apart such that neither would be isolated on scale  22  as the packages pass over the scale for a sufficient time to allow the scale to acquire an accurate weight. 
   In another embodiment (not shown), dimensioner  28  is a “time-of-flight” type dimensioner that produces a scanning beam similar to scanning beam  40  ( FIG. 1 ). A time-of-flight type dimensioner may also include a light source, such as a laser beam, and a rotating reflector similar to the triangulation type dimensioner described above with reference to  FIG. 1 . The scanning beam emitted by a time-of-flight type dimensioner, however, is projected perpendicularly onto conveyor belt  24   a  ( FIG. 1 ) at a right angle transverse to the belt&#39;s movement. The beam is reflected by belt  24   a  and any packages moving on the belt back to receivers within the dimensioner. Based on the received reflected light and the time it takes to reach the detector, the dimensioner processor determines the height of objects on the belt, the package&#39;s width and length dimensions, the package&#39;s orientation on the belt, and the package&#39;s state (singulated versus non-singulated) with respect to other packages moving through the path of travel on conveyor belt  24   a . Time-of-flight type dimensioners should be known by those of ordinary skill in the art and are, therefore, not discussed in further detail. Examples of such “time-of-flight” dimensioner are CS900 and CS5200 dimensioners manufactured by Mettler Toledo of Columbus, Ohio. 
   In yet another embodiment as shown in  FIG. 2 , dimensioner  28  ( FIG. 1 ) is replaced by a camera  66  disposed above a conveyor belt  24  in a manner similar to dimensioner  28  as described with reference to  FIG. 1 . The camera contains a line scan or area CCD or CMOS imager disposed within camera  66 , the field of view of which corresponds to the entire width of conveyor belt  24 . A light source disposed within camera  66  directs light toward conveyor belt  24  at the area directly under camera  66 . Packages transported by conveyor belt  24  reflect the light as they pass under the camera. Camera  66  receives the light reflected by the packages and identifies packages on conveyor belt  24  based on the contrast in light between conveyor belt  24  and any packages on the belt. Camera  66  transmits a signal corresponding to the contrast pattern of received light, which can be used to determine the perimeter of the packages traveling on belt  24 . Given assumptions regarding package shape in the x- and y-directions as appropriate to a given system, the dimensioner processor determines from this information a package&#39;s state on the conveyor—i.e., whether the package is singulated or non-singulated with respect to other packages. If the system does not include a mechanism to determine the package height, the camera data may not provide an accurate measurement of a package&#39;s length and width, but the state of the packages can generally be determined from the signal received from camera  66  because the camera data nonetheless describes package perimeter shapes, and the processor is therefore capable of determining whether a sufficient gap exists between each pair of packages to establish a singulated condition under the constraints of that system. Cameras containing CCD or CMOS imagers, or other devices capable of detecting light reflected from packages moved by conveyor system  12 , should be well-known by those of ordinary skill in this art and are, therefore, not discussed in further detail. It should be appreciated that these types of cameras do not, in and of themselves, provide height data and are preferably used in instances where knowledge of the packages&#39; height is unnecessary or provided by other means. 
   One of ordinary skill in this art should recognize that other dimensioning devices could be employed within the present invention, as long as these devices are capable of determining at least whether items on the conveyor are singulated or non-singulated based on the requirements of the system or of providing information from which singulation can be determined. Preferably, the dimensioner processor or the system processor should be able to determine from the dimension data the height, width and length of packages moved by conveyor system  12  as well as the location and orientation of the package on the conveyor. This information can be used in turn to determine whether the packages on conveyor belt  24  are singulated or non-singulated. Notwithstanding the type of dimensioner used in the system, the output signal generated by the dimensioner preferably defines at least the boundary of the package and its location with respect to that of adjacent packages or sufficient data from which this can be determined. This information defines whether packages are singulated or non-singulated and therefore whether the downstream scale is capable of associating an accurate weight measurement with each discrete package. 
   Referring again to  FIG. 1 , barcode scanner  32  emits a scanning beam downward onto conveyor belt  24  generally along a line  54  perpendicular to the belt and scans the top of packages moved by conveyor belt  24  downstream through line  54  for any barcodes. The scanning beam consists of a series of laser-line X&#39;s allowing the scanner to read a barcode positioned in any orientation. Barcode scanner  32  outputs a signal corresponding to any barcode symbols read by the scanner. The barcode scanner processor outputs this data to the system processor, along with a variable that identifies the laser scan line (i.e. which leg in a given X pattern) by which the barcode was read and a relative barcode count that identifies the location at which the barcode was detected in that laser scan line. Because the lateral position (i.e. in the x-direction) on the belt of each laser scan line segment is known, the barcode count identifies the barcode&#39;s lateral position across the conveyor&#39;s width. The barcode count also provides the longitudinal offset between the position at which the barcode is detected and line  54 . As described below, the relative barcode count is used to associate the barcode information with a particular package on the conveyor belts  24   a - 24   c , in association with the height of the package. 
   It should be understood that any suitable, and preferably omnidirectional, barcode reader (e.g. a laser scanner or a camera) capable of reading barcode symbols on the packages&#39; top surface may be used. The construction and operation of such barcode readers are not, in-and-of-themselves, part of the present invention, and a more detailed discussion is therefore omitted. Moreover, those skilled in the art should understand that other systems for reading data disposed on packages, such as radio frequency identification tag readers and antennas for reading radio frequency tags, may be used in the present system. Depending on the requirements of system  10 , additional barcode scanners  32  may be placed on frame  38  to scan and read barcodes located on the packages&#39; side or front surfaces or appearing in different orientations on the packages as they are moved downstream by conveyor belt  24 . 
   Computer  36 , which is operatively connected to tachometer  20 , scale  22 , dimensioner  28 , barcode scanner  32  and a host system (not shown) used for inventory tracking and other purposes, is a general purpose computer that includes a processor, memory, a storage device and other components that should be understood. The structure of computers should be well-known in the art and is, therefore, not discussed in more detail. Furthermore, it should be understood by one of ordinary skill in the art that, although computer  36  is depicted as supported by frame  38  horizontally above conveyor belt  24  in  FIG. 1 , the computer can be placed almost anywhere within a facility as long as it is operatively connected to the above-listed components. Moreover, it should also be understood that computer  36  may be connected to the above components by a wired or wireless connection as long as the computer is able to receive the signals transmitted by each component. In the alternative, computer  36  may also be a central computer that receives signals from multiple component systems  14  placed throughout a facility. Still further, it should be understood that the functions described herein as performed by the processors located in the dimensioner, barcode scanner and scales could be performed by computer  36 . 
   Computer  36  receives the signal transmitted by tachometer  20 , which contains pulses generated by the tachometer relating to the downstream movement of conveyor belt  24   a . As the pulses correspond to the belt&#39;s linear movement, computer  36  uses the pulses to selectively track the position of packages on conveyor belt  24   a . Since belt&#39;s  24   b  and  24   c  run at approximately the same speed as belt  24   a , computer  36  also relies on the signal from tachometer  20  to track packages on belts  24   b  and  24   c . Computer  36  extracts pulse data each time a signal is transmitted to the computer by tachometer  20  and maintains and updates a global tachometer value upon receipt of each signal. This global tachometer value is a running count of tachometer pulses from a start point synchronized to the other processors in the system. It should be understood that the tachometer pulse may be received by computer  36  either directly from the tachometer or indirectly by one or more of the dimensioner and scanner processors that use the tachometer data in conjunction with the signals generated by those devices. In either case, computer  36  uses the information from the tachometer to track the position of packages carried by the system. 
   Because tachometer  20  produces a signal containing tachometer pulses having a known relationship to the movement of conveyor belt  24   a , and these pulses are equivalent to the distance moved by the belt, the relative distances between fixed locations along conveyor system  12  can be, and are, predefined in tachometer pulses. Computer  36  can initialize (set to 0) any point along conveyor system  12  with regard to tachometer pulses, thereby making that point a reference point. At any moment, all other locations along conveyor belt  24  can be defined relative to the reference point by adding (if the other location is downstream) or subtracting (if the other location is upstream) the known distance in tachometer pulses from the position of the other locations from the reference point. 
   For example, if a location on conveyor system  12  is initialized as the reference point and set to a value of 0, a location along conveyor system  12  in the path of travel downstream from the reference point by a distance equivalent to ten tachometer pulses would have a relative distance value of 10, which is referred to herein as “RDV.” It should be understood by one skilled in the art that any location along the path of travel can be chosen to be the reference point. For explanation purposes, line  42  is chosen in the ensuing discussion as the reference point and, thus, is associated with an RDV of 0. One of ordinary skill in the art should also realize that the RDV of each fixed location along conveyor system  12  discussed herein as a downstream reference line or point in relation to the reference point of line  42  is known by computer  36  and stored in memory prior to the operation of system  10 . 
   Computer  36  initiates package records, with which package information is thereafter associated as a package travels through system  10 , based on information provided by dimensioner  28 . Dimensioner  28  initiates identification of a given package when the package interrupts the dimensioner&#39;s scanning beam at line  42 . More specifically, as the dimensioner receives reflected light from scanning beam  40  indicating presence of a height greater than zero (i.e. a height above the plane of the belt), the dimensioner processor populates a two-dimensional data array, the first dimension corresponding to the width of the conveyor belt and the second to the relative length of packages moving along the belt. The number of data points in an array line corresponds to the number of samples taken across the width of the belt, which is defined by the dimensioner&#39;s sampling rate. Height data for a given sample is stored in a cell in the array. Height values correspond to the vertical axis indicated as the z-axis (denoted at  84  in  FIG. 1 ), and the location at which the height value was received with respect to the conveyor&#39;s width corresponds to the horizontal axis indicated as the x-axis (denoted at  80  in  FIG. 1 ). The dimensioner processor begins to create a three-dimensional model of each package with the accumulation of these array data points over a period of time. Each line of array data is accrued in the direction corresponding to the conveyor&#39;s linear movement indicated as the y-axis (denoted at  82  in  FIG. 1 ). The dimensioner&#39;s resolution in the x direction is determined by the speed of the dimensioner&#39;s rotating mirror and its sampling rate, and in the y direction by mirror speed and belt speed. 
   As described above, the dimensioner creates scanning beam  40  by directing a point source at a rotating mirror so that the resultant beam directed to the belt is effectively a scanned beam of light across the width of the belt. For purposes of this discussion, a scan represents the capture of data across the belt&#39;s width for a particular position of the package along y-axis  82 . A scan extends entirely across the belt in the direction of x-axis  80 , and so each scan in each package data array includes the same number of data points. The number of data points representative of the length of a given package, however, is determined by the number of scans taken along y-axis  82  in which the package intersects a portion of the scanning beam. Consequently, as long as some portion of a package intersects the dimensioner&#39;s light beam, height values are stored in the array at a corresponding x- and y-axis array cell. Every location in the array that has a height value greater than zero corresponds to a position at which the package is present, and the dimensioner processor uses this data to define the package&#39;s perimeter and the location of this perimeter on the conveyor belt. 
   By way of analogy, consider a piece of graph paper broken into a plurality of squares across the width and length of the paper and aligned so that rows of squares extend transversely across the belt in the x-direction and columns extend longitudinally in the y-direction. Each square represents a data point where height information may be stored. The width of the graph paper is proportional to the width of the conveyor belt. At each point across the belt where a package intercepts the dimensioner&#39;s scanning beam, non-zero height data is entered into a corresponding “box” on the “graph paper,” along with the lateral position at which the height data was read as determined by the rotational position of the dimensioner mirror and the longitudinal position at which height data was read, defined by the global tachometer value at that time. Once the package moves past the dimensioner, the array is filled with data, and the boxes containing height information collectively define the package&#39;s two dimensional footprint. The value for the height at each point provides the third dimension of the package. Thus, each data array is representative of a portion of the conveyor belt on which a package is disposed. 
   The dimensioner processor retrieves from its memory the dimensioner&#39;s RDV, which is determined by the location at which the dimensioner&#39;s scanning beam intersects conveyor belt  24 . Since the scanning beam intersects conveyor belt  24  at line  42  (the assumed reference point for this explanation), the dimensioner&#39;s RDV is 0. The dimensioner processor creates a space in its memory to store the three-dimensional array of each package and assigns an “initial tachometer value” variable to each data cell in the array as the height data is stored. Each point&#39;s initial tachometer value is set to the system global tachometer value (which is accumulated by the dimensioner processor from a synchronized value provided by the system processor) minus the dimensioner&#39;s RDV value (in this instance, zero). 
   In operation, packages, such as packages  58 ,  60 , and  62 , are loaded on conveyor belt  24   a  upstream from component system  14 . Rollers  16  rotate to move conveyor belt  24   a  and packages  58 ,  60 , and  62  in the direction of arrows  26  downstream over bed  18 . When package  62  reaches line  42  and interrupts dimensioner scanning beam  40 , the dimensioner processor calculates height and stores the data in the corresponding two-dimensional data array. 
   The dimensioner processor sequentially examines each line of array data representative of a scan across the width of the belt (i.e. in the x-direction), starting at one edge of the belt and moving toward the other. Assuming a condition in which the processor does not presently detect the presence of a package (e.g. either having detected no-nonzero height since starting or having detected no non-zero height since detecting the end of a previous package), if a point in the array along x-axis  80  has a height value (z-axis  84 ) greater than zero, and the corresponding point in the previous array line having an identical x-axis value had a height of zero, the dimensioner processor creates a new package data structure within its memory indicating the presence of a new package. 
   The dimensioner processor initially assigns all subsequent array positions to that package data structure until a package end is detected. For example, and referring to  FIG. 5 , dashed lines  68   a ,  68   b ,  68   c ,  68   d ,  68   m ,  68   n  and  68   o  represent data points in sequential scans extending across the x-axis. It should be understood that scans occur between scans  68   d  and  68   m  but are omitted for purposes of clarity and that the resolution of the scans is greater than indicated in the Figures. Assuming scan  68   a  occurs in a condition in which no package data structure is open, the dimensioner processor opens a new package data structure upon detecting a non-zero height at  70  in scan  68   b , after having detected a zero height at the same x-axis position in scan  68   a.    
   The dimensioner processor thereafter assigns to the package data structure all height data, whether zero or non-zero, in scan  68   b ,  68   c ,  68   d  and later scans. Note that because a package structure is open when the computer detects a transition from zero to non-zero heights (e.g., at point  72 ) for which the x-axis position in the previous scan had a zero height, the dimensioner does not open a new package structure. Upon detecting a scan  68   o  having all zero values, the dimensioner processor closes the package structure, determines the package&#39;s perimeter, assesses whether multiple packages are present, assigns array data for multiple packages to respective package structures, and outputs the package structure(s) to system computer  36 . The next detected non-zero value begins a new package structure, and the process repeats. 
   The assignment of the global tachometer value (minus the constant RDV) to a given point in the package structure within the location of the package defines the location of that point in the path of travel in this example because, as described below, the system defines locations of the various system components in the path of travel with respect to each other in terms of tachometer data. In combination with the lateral position information, the tachometer data also defines the location of the package boundaries with respect to each other. 
   The dimensioner processor distinguishes between or among multiple packages in an array by analysis of one or more boundaries of the packages, for example a perimeter of the packages in the plane parallel to the belt. In a preferred embodiment, system  10  is used with conveyor lines expected to carry rectangular-shaped packages preferably having a relatively consistent height across the package top. The dimensioner scans the belt for height data as described above and, upon closing the package structure, the processor examines each lateral scan and identifies every series of consecutive points having a generally uniform non-zero height. As should be understood in this art, predictable irregularities in the box surface, e.g. depressions, loose tape or deformations in the package material, provide less of a transition than a box edge, and the algorithm therefore includes filters to ignore such irregularities in defining the segments. If an irregularity is beyond these predicted parameters, however, the dimensioner processor sets a flag in the package record to notify the system processor that valid dimension data was not obtained. Computer  36  then does not assign weight data to the corresponding package structure maintained by computer  36 . For example, if computer  36  receives package data with such an error signal, the computer may set up a package structure but designate the package structure as closed, or with an error flag, so that weight and barcode data are not assigned to the package structure. 
   Still referring to  FIG. 5 , uniform non-zero segments occur at points  70  and  71 , and between points  73 / 75 ,  72 / 77 ,  79 / 81  and similar pairs of points (not shown) in the intermediate scans. The processor then identifies and stores the array position (i.e. the x-axis position defined by the dimensioner mirror&#39;s rotational position and the y-axis position defined by the initial tachometer value) of each segment endpoint (i.e. points  70 ,  71 ,  72 ,  73 ,  75 ,  77 ,  79 ,  81  and endpoints associated with segments in the intermediate scans). Due to the dimensioner processor&#39;s sampling rate, the endpoints do not precisely correspond to the package edges, but they do generally follow the edges, and the processor therefore examines the group of endpoints and identifies endpoints at which the alignment of sequential endpoints changes to such a degree as to indicate a package corner. Having identified all corners, the processor then locates each pair of corner points between which extends a group of generally aligned edge points and executes a line-fit algorithm to such edge points to define the package edge extending between the pair of corner points. The processor looks for any two pair of parallel lines that enclose a space. If the processor finds such lines, thereby identifying a discrete package, the dimensioner processor outputs to system computer  36  the array data points (i.e. height, x-axis position and initial tachometer value) in the present package structure that are bounded by the lines. It should be understood that line-fit algorithms may be defined that filter for aberrations in edge structures, such as loose tape or indentions, that may be predictable in a given system. As such algorithms should be understood, they are not described in further detail herein. If an irregularity in the edge lines is beyond the filters&#39; predictable parameters, or if the algorithm is otherwise unable to define two pair of parallel lines that enclose a space, the dimensioner processor sets a flag in the package record to notify the system processor that valid dimension data was not obtained. Computer  36  then does not assign weight data to its corresponding package structure. 
   Thus, system computer  36  receives a series of data points, each including a height value, an initial tachometer value, and a scan position value that identifies the lateral position at which the height value occurred on the belt (i.e. in the x-direction). 
   In another preferred embodiment, the dimensioner does not send to computer  36  all array data associated with a package structure but rather outputs to the system computer only the height, initial tachometer values and scan position values of the package corners. As described below, computer  36  needs to know only the extent of the package&#39;s position in the belt&#39;s longitudinal (y axis) and, depending on the embodiment, transverse (x axis) directions in order to determine whether and how to acquire package weight. Since, in the present embodiment, the conveyor carries rectangular packages, the corners define package&#39;s perimeter, and thus the perimeter corner information is sufficient without data otherwise describing the package&#39;s edges or interior area, although it should be understood that edge or other data may be provided when the system is used to process items with differently-shaped perimeters. Height data for the corner points is sufficient to describe the package&#39;s height, as it is assumed the package has a uniform height within its perimeter, although it should be understood that height data itself may be omitted, for example where the host computer system does not rely on height in confirming proper invoicing. The dimensioner preferably calculates the package&#39;s length, height and width and includes this data in the information to the system computer. 
   The algorithm identifies multiple packages proximate each other. Referring to  FIG. 6 , for example, and assuming the system starts from a condition in which no package structure is open, the dimensioner processor opens a new package structure upon detecting point  70  in scan  68   b  and thereafter identifies corner points  70 ,  71 ,  74 ,  83 ,  85 ,  87 ,  89  and  91 , in the same manner as described above with respect to  FIG. 5 . Having identified all corners, the processor then locates each pair of corner points between which extends a group of generally aligned edge points and executes a line-fit algorithm to such edge points to define the package edge extending between the pair of corner points. In the example shown in  FIG. 6 , the processor finds groups of parallel lines that enclose two separate spaces, respectively corresponding to packages  64  and  66 . The dimensioner processor creates, and outputs to system computer  36 , two separate package structures corresponding to the two discrete enclosed spaces, each package structure including the height value, initial tachometer value and scan position value of each data point enclosed with the package structure&#39;s respective space. Again, in alternatively preferred embodiments, the dimensioner processor outputs to the system computer only the height, initial tachometer and scan position values of the corners for each package structure. 
   Referring to  FIG. 7 , and assuming packages  64  and  66  are of different heights and that the system starts from a condition in which no package structure is open, the dimensioner processor opens a new package structure at point  70  in scan  68   c  and thereafter identifies corner points  70 ,  71 ,  74 ,  83 ,  85 ,  87 ,  89  and  91 , as described above with respect to  FIGS. 5 and 6 . Because packages  64  and  66  are of different heights, the algorithm identifies edge points between corners  85  and  87 . The processor locates each pair of corner points between which extends a group of generally aligned edge points and executes a line-fit algorithm to such edge points to define the package edge extending between the pair of corner points. Even though edge lines can be defined between corners  70 / 87  and  87 / 85 , these edge lines do not individually combine with any other one parallel line to enclose a space with another pair of parallel lines, but because the combination of these edge lines itself comprises a line and opposes a parallel line to enclose a space (corresponding to package  64 ) along with another pair of opposing parallel lines, the algorithm defines a line between corners  70  and  85 . The processor identifies the four lines enclosing package  66  in a similar manner and then creates, and outputs to system computer  36 , two separate package structures corresponding to the two discrete enclosed spaces, as described above. 
   Note that because packages  64  and  66  are aligned precisely so that the packages&#39; front and back edges are aligned transversely across the belt, the system sees no edge points between corners  70 / 83 ,  74 / 87 ,  89 / 91  and  85 / 71  (a slight cant of the scan lines arising from the belt&#39;s longitudinal movement while the scan occurs is ignored for purposes of explanation). It should be understood, however, that the processor&#39;s algorithm may recognize such a condition based on the position of lines  83 / 71 ,  70 / 85 ,  87 / 91  and  74 / 89  and therefore fit lines between corners  70 / 83 ,  74 / 87 ,  89 / 91  and  85 / 71 . Furthermore, if boxes  64  and  66  are of the same height, the processor may not see a height between corners  87 / 85 , but it should be understood that the processor&#39;s algorithm can recognize such a condition based on the position of the other line segments to determine the positions of two sets of two pairs of parallel lines that enclose respective spaces. In the event packages  64  and  66  are of the same dimensions (including height) and are aligned with each other precisely so that the packages&#39; front and back edges are continuous, it is possible that the dimensioner would detect the combination of the two packages as a single package, but such an occurrence should be rare in most instances. 
   As described above, because the array points in the x-axis scans correspond to lateral positions on belt  24  with respect to the items&#39; path of travel, the stored array data in each package structure identifies each array value&#39;s (or each corner value&#39;s) x-axis position and initial tachometer value. Thus, the package structure defines the footprint of each package on the conveyor. It should be understood, however, that dimensioning algorithms are known in the art, and those skilled in the art should recognize that the procedure described herein is provided for purposes of example and explanation and that other methods could be utilized. 
   When computer  36  receives a new package data structure from the dimensioner, it creates a corresponding package data structure in its memory and compares the new package&#39;s position on the belt with the position of packages in all open (i.e. corresponding to packages being presently carried by the conveyor between the dimensioner and the scale) package structures in the system. Although the comparison is made with all open package structures in the presently described embodiments, it should be understood that other measures of proximity among packages could be used. If any data point in the new package structure (or in the package perimeter described by the data in the new package structure) has an initial tachometer value equal to the initial tachometer value of any point in any other open package structure (or the perimeter described by the data in that package structure), the corresponding packages are laterally adjacent to each other at least in part. Such packages are considered non-singulated in this embodiment, and computer  36  creates a non-singulated variable within both the new package data structure and the laterally adjacent structure to show that the corresponding packages are moving downstream on conveyor belt  24  in a non-singulated manner, such as packages  58  and  60  in  FIG. 1 . This non-singulated variable is a unique identifier indicating which packages are in a non-singulated group of packages. 
   Whether a package is determined to be non-singulated can also be affected by the longitudinal distance between two packages. For example, if the distance between two packages is shorter than the time needed for scale  22  to settle with a given package disposed on the scale, then, even though the packages do not overlap with respect to the direction of travel, the data structures for those packages are flagged as non-singulated since the scale&#39;s settlement time would not allow for an accurate measurement of the package&#39;s weight. Therefore, if the initial tachometer value of the most downstream data point in the new package structure is within a predefined difference (defined in tachometer pulses) from initial tachometer value of the most upstream data point in any other open package structure such that the corresponding packages could not be sufficiently isolated on the scale to obtain a valid weight, computer  36  flags both data structures as non-singulated. The predetermined minimum distance requirement can be programmed within system  10 , allowing it to be changed when the system&#39;s capability or requirements change. One skilled in the art should appreciate that the predetermined minimum distance can vary depending on the configuration of the devices used in conjunction with system  10 , such as scale  22 . 
   The system processor sets in the package record for each package an open read window variable and a close read window variable for the scale. The open read window variable for the scale is equal to the tachometer value for the downstream-most point on the package, plus a known distance (in tachometer pulses) between the dimensioner and a predetermined position in the path of travel with respect to the scale. The close read window variable for the scale is equal to the tachometer value for the upstream-most point on the package, plus a known distance (in tachometer pulses) between the dimensioner and the predetermined position with respect to the scale. The predetermined scale position (which can be considered a scale RDV) is discussed in more detail below. 
   Still referring to  FIG. 1 , a package leaving the dimensioner moves downstream on conveyor belt  24   a  until reaching line  54 , at which barcode scanner  32  scans the top of the package. A control processor in barcode scanner  32  continuously parses the signal, extracts any barcode data read from the package&#39;s top surface, and associates the extracted data with a variable identifying the laser scan line (i.e. the leg of the laser X pattern) by which the barcode data was read, the relative barcode count (i.e. the position in the identified scan line in which the barcode was read), and the accumulated tachometer value (tachometer values are accumulated by the barcode scanner processor from a synchronized value provided by the system processor). 
   System computer  36  receives the data from the barcode processor and subtracts from the barcode data&#39;s accumulated tachometer value the longitudinal offset defined by the barcode count and the RDV associated with the barcode scanner (i.e. the distance in tachometer pulses between lines  51  and  42 ). That is, the system computer effectively shifts the barcode data&#39;s longitudinal position back, as if the barcode had been read at dimensioner line  42 . Based on the barcode&#39;s adjusted tachometer value and its lateral position (as defined by the laser scan line and lateral component of the relative barcode count), the system processor determines whether the barcode can fall within the four corners of the package defined by any open package structure, or any open package structure not flagged as having erroneous dimension data. As described above, and as should be understood in this art, the width and length of the X&#39;s in the X patterns seen by the barcode scanner depend on the height of the package from which the X&#39;s are reflected, and the package height is therefore needed to accurately determine the barcode&#39;s normalized tachometer value and lateral position. That is, in determining whether a barcode falls within the area of a given package, the system processor uses a ray tracing algorithm to properly define the barcode&#39;s position on that package, given the package&#39;s height. It is possible for this process to indicate the barcode is located on two packages, and in this event, the system may assign the barcode data to the package having the greater height or assign the barcode data to neither package. Otherwise, if the system processer determines that the barcode is located on one package, the processor assigns the barcode data to the package structure corresponding to that package. Barcode data that does not correspond to the position of an open package structure is not assigned to a package structure. 
   Alternatively, the dimensioner or the system processor increases the tachometer values of the four corners of each open package structure by the barcode reader&#39;s RDV, and the system processor does not adjust the tachometer value of received barcode data by the RDV. The system processor then compares the barcode reader position with the adjusted package positions in a manner similar to that discussed above. 
   Packages, such as package  58  and  60 , continue to be moved by conveyor belts  24   a - 24   c  and may intersect other scanning beams, such as the beam denoted by numeral  56 , from other scanners  32  if present. Computer  36  has the RDV of each such barcode scanner and associates barcode data with open package structures in the same manner. 
   A package leaving barcode scanner  32  moves downstream on conveyor belts  24   a  and  24   c  until reaching scale  22 . As a package moves over the scale, the package weighs down onto the scale such that one or more load cells generate signals to the scale processor corresponding to the package&#39;s weight. The scale assembly has a photodetector (not shown) disposed along conveyor  24   c  immediately upstream from the scale. The scale processor monitors the photodetector&#39;s output signal and thereby determines when the package&#39;s front and back edges pass the photodetector. The scale receives the tachometer output and accumulates a global tachometer value from a synchronization signal provided by the system processor. By associating passage of the package&#39;s front and back edges by the photodetector with the tachometer data corresponding to the time those events occur, the scale processor determines the package&#39;s length. The rate at which the tachometer outputs pulses to the scale determines how fast the package is moving through its path of travel, and this, along with the package length, determines the time following its passage by the photodetector at which the package will have been on the scale a sufficient time for the scale to validly acquire the package&#39;s weight. The scale processor accordingly determines when valid weight data may be acquired for the package and acquires the weight data at that point. 
   The scale processor transmits weight data to the system processor when a package reaches a predetermined point in the path of travel following the scale. After acquiring the package&#39;s weight at a point based on the package&#39;s length and belt speed, the scale processor holds the weight data until a tachometer value associated with the weight data accumulates to a point indicating that the front edge of the package has moved from the scale photodetector to the predetermined point downstream of the scale. The predetermined point is defined so that a weight can be acquired for the longest package the system is expected to handle. The scale processor then outputs the weight data to the system processor. 
   Because the scale processor outputs weight data to the scale processor at the same point in the path of travel for each package, it is unnecessary for the scale processor to associate the weight data with a tachometer value when transmitting the information to the system processor. The system processor, however, relies on tachometer pulses to correctly associate weight data with a package record and so determines the accumulated tachometer value at the time the weight data is received from the scale processor. In this embodiment, the open read window and close read window scale variables for each open package structure are based upon an RDV equal to the distance between the dimensioner (at line  42 ) and the predetermined point downstream from the scale. Thus, the system processor compares the tachometer value associated with the received weight data with the open read window and close read window variables for the open package structures it maintains. If the tachometer value is between the open read window scale variable and close read window scale variable for any open package structure that is not flagged as non-singulated, the system processor assigns the weight data to that package record. Because the weight data is transmitted when a package&#39;s leading edge reaches the predetermined point, the tachometer value is expected to fall near the open read window scale variable for a given package structure, and so in an alternative embodiment, the system checks whether the tachometer value is at or within a predetermined threshold from the open read window scale variable, rather than within a range between the open and close read window scale variables. If the tachometer value does not fall within the open window and close window scale variables stored for any singulated open package record, the weight data is not assigned to a package record. 
   In an alternate embodiment, the scale processor outputs weight data, along with tachometer data corresponding to the distance between the scale photodetector and the point at which the weight data was acquired, to the system processor. The system processor receives the weight data and assigns to it the present global tachometer value. The open read window and close read window scale variables for each open package structure correspond to the distance between the dimensioner (at line  42 ) and the scale photodetector, i.e. the scale&#39;s RDV. Thus, the system processor subtracts from the tachometer value associated with the received weight data the tachometer offset value corresponding to the distance between the scale photodetector and the point at which the scale processor acquired the weight data and then compares the result with the open read window and close read window variables for the open package structures. If the resulting value is between the open read window scale variable and close read window scale variable for any open package structure that is not flagged as non-singulated, the system processor assigns the weight data to that package record. If the resulting tachometer value does not fall within the open window and close window scale variables stored for any singulated open package record, the weight data is not assigned to a package record. 
   Because computer  36  bases its decision to acquire weight data for a given package in part on the determination by dimensioner  28  whether the package is singulated with respect to other packages, it is unnecessary for human operators to monitor system  10  for non-singulated conditions and responsively interrupt weight data acquisition by manual means. Instead, system  10  automatically determines singulation and selectively acquires weight data based on that automatic determination. 
   A location (line  30 ) along conveyor belt  24   b  is identified downstream from scale  22  so that when the leading edge of a package reaches this location, it can be assumed that accurate weight data will have been acquired for the package if at all. When computer  36  determines a leading edge of a package has moved beyond line  30  (i.e. when a counter set by the system computer upon receiving the package dimension data from dimensioner  28  corresponding to the distance between lines  42  and  30  expires), computer  36  closes the package structure within system  10  and forwards the package structure to the host system computer. The host computer can then confirm whether shipping charges were correctly applied to the package based on its dimensions and weight as determined by system  10  or, in the event no dimension and/or weight data is assigned to the package, divert the package for manual examination or other processing if desired. If a package structure does not have all expected data (e.g. weight and barcode data) when the package reaches line  30 , the system processor assigns an error variable to the package structure prior to transmission to the host. 
   The conveyor&#39;s speed has an impact on the minimum space required between packages for the packages to be considered singulated with respect to scale  22 . As speed is increased, a greater distance between packages is generally required to settle the scale between weighs. The relationship between speed and package gap should be defined by the scale manufacturer and is preferably used by the operator of system  10  in setting the parameters for the processor of dimensioner  28  to thereby define the singulation criteria. 
   In another embodiment as shown in  FIG. 3 , scale  22  ( FIG. 1 ) is replaced by two adjacent scales  22   a  and  22   b . Scales  22   a  and  22   b  are connected to computer  36  such that each scale transmits to computer  36  a signal corresponding to weight applied to that scale in a manner similar to scale  22 , as described above. Scales  22   a  and  22   b  are identical in structure and operation, and each occupies generally half the width of conveyor belt  24   b . As shown in  FIG. 3A , conveyor belt  24   b  may be comprised of separate, parallel driven belts  24   b ′ and  24   b ″, each passing over a respective scale  22   a  or  22   b  and each preferably driven by respective sets of rollers  16 . 
   Computer  36  acquires weight data from scales  22   a  and  22   b  in a manner similar to that described above with respect to  FIG. 1 , except that weight data can be acquired for non-singulated packages in at least some instances. Each of the two scale assemblies has a proximity photodetector (not shown) immediately upstream from the respective scales. Each proximity photodetector is set to detect passage of packages only across the width of the scale to which the photodetector corresponds. Proximity photodetectors, and their operation, should be understood in this art and are therefore not discussed in further detail. 
   Each scale processor monitors its photodetector&#39;s output signal and thereby determines when a package&#39;s front and back edges pass the photodetector. The scale processors receive tachometer output, respectively determine when valid weight data may be acquired for the package on its scale, and acquire the weight data at that point. The scale processors transmit weight data to the system processor when the package leading edge, as determined based on the proximity photodetector signal and the tachometer signal, reaches a predetermined downstream point, as discussed above. Alternatively, the scale processors output the weight data, along with tachometer data corresponding to the distance between the photodetector and the point at which weight data was acquired, to the system processor, which adjusts the tachometer data to the photodetector position based on the scale&#39;s tachometer data. 
   The system processor receives the weight data from each scale and assigns to it the present global tachometer value. The open read window and close read window scale variables for each open package structure are based upon the distance between the dimensioner and the predetermined point downstream from the scales. Thus, the system processor compares the tachometer value associated with the received weight data with the open read window and close read window variables for the open package structures. If the tachometer value is between the open read window scale variable and close read window scale variable for any open package structure that is not flagged as non-singulated (i.e. a package structure for a singulated package), the system processor assigns the weight data to that package record. 
   A singulated package may pass over both scales, or just one. If the package passes over both scales, the two scale processors may transmit weight data to the system processor at approximately the same time or at slightly different times, depending on the package&#39;s orientation on the belt and the method by which the scales transmit weight data. Regardless, if the system processor detects valid weight data for the same singulated package from both scales, the processor sums the two weights and assigns the summed weight to the appropriate package structure. 
   If, however, the tachometer value falls within the open window and close window variables of an open package structure that is flagged as non-singulated, computer  36  examines the scan position values (i.e. lateral, or x-axis positions) of the package&#39;s perimeter. Corresponding lateral position values of the perimeter of the scale surface of each of scale  22   a  and  22   b  are stored in memory associated with computer  36 . Computer  36  compares the lateral position values of the package&#39;s perimeter with the lateral position values of the scale perimeters and determines if the package is aligned entirely within the lateral boundaries of the scale  22   a  or scale  22   b  (i.e. the edges running along the sides of the respective scale  22   a  or  22   b  surface in the y axis direction, separated laterally from each other in the x-axis direction) from which the weight data was received. That is, computer  36  determines whether the package&#39;s widest lateral dimension is within the relevant scale&#39;s widest lateral dimension such that the package passes entirely over that scale and not the other. If so, and if there is no other open non-singulated package structure having:
         i. downstream-most and upstream-most points
           (a) either of which is between the initial tachometer values of the downstream-most and upstream-most points of the first non-singulated package, or   (b) both of which are outside the initial tachometer values of the downstream-most and upstream-most points of the first non-singulated package but either of which is within a predetermined distance of the nearest downstream-most or upstream-most point on the first package structure perimeter that is insufficient to allow the scale to settle at the given belt speed if both packages pass over the scale; and   
           ii. perimeter scan position values overlapping the perimeter scan position values of the same scale on which the first package is disposed,
 
computer  36  assigns the weight data from the relevant scale to the package structure for the first package and does not assign weight data from the other scale to that package structure. If weight data from the other scale meets the same test with respect to another package structure, its weight data is assigned to that other package structure. That is, if computer  36  determines that a non-singulated package is passing over one of scales  22   a  and  22   b , but not the other, and that no other non-singulated package is or will be on the same scale at the same time as the first package or at a time close enough to the first package to prevent acquisition of weight data, computer  36  acquires weight data from that scale even though the package is non-singulated.
       

   If the resulting tachometer value falls within the open window and close window variables of an open package structure that is flagged as non-singulated, but computer  36  determines that the non-singulated package passes over both scales, or if another non-singulated package is or will be on the same scale at the same time as the first package or at a time close enough to the first package to prevent acquisition of weight data, computer  36  does not assign the weight data to a package structure. 
   In another preferred embodiment, scales  22   a  and  22   b  are offset from each other in the longitudinal (i.e. y) direction. Each scale still covers only its respective half of the width of the belt, but each operates with a photodetector that detects passage of objects at any point across the width of the belt. The system maintains open and close read window variables specific to each scale, but otherwise the system operates in the same manner as discussed above. Note that while a package that is entirely on one side of the belt will trigger a weight measurement by the scale on the other side, this should result only in a zero weight corresponding to that package and should not negatively affect system operation. 
   In still further embodiments, signals from the system processor replace the proximity photodetectors, which are omitted. When the dimensioner transmits a package structure to the system processor, the system processor examines the package&#39;s perimeter and separates the perimeter into that part disposed on one lateral half of the belt and that part disposed on the other half of the belt. That is, the system processor determines what part of the package perimeter will pass over scale  22   a  and what part will pass over scale  22   b . The system processor establishes a start photodetector variable and an end photodetector variable for each of the two parts of the perimeter. The start photodetector variable corresponds to the downstream-most point on that given side, or part, of the perimeter, whereas the end photodetector variable corresponds to the upstream-most point on the given perimeter side. Each variable is set to the RDV for the scale over which its corresponding perimeter part will pass, offset by the longitudinal distance between its corresponding point and the downstream-most point on the package. For example, assume a package extends onto both sides of the belt, so that one front corner and one back corner of the package is on each side of the belt, and that the package is disposed at an angle with respect to the belt&#39;s centerline so that one of the package corners is the downstream-most point in the package. Assume also that this corner passes over scale  22   a . The start photodetector variable for the “ 22   a ” part of the package is the RDV for scale  22   a . The end photodetector variable for the  22   a  part of the package is the RDV for scale  22   a  plus the longitudinal distance (in tachometer pulses) between the downstream-most corner and the upstream-most point on the  22   a  part of the package perimeter. The start photodetector variable for the “ 22   b ” part of the package perimeter is the RDV for scale  22   b , plus the longitudinal distance between the downstream-most corner on the  22   a  part of the package and the downstream-most point in the  22   b  part of the package. The end photodetector variable for the  22   b  part of the package is the RDV for scale  22   b , plus the longitudinal distance between the downstream-most corner on the  22   a  part and the upstream-most point on the  22   b  part of the perimeter. 
   At each incoming tachometer pulse, the system processor decrements both the start and end photodetector variables for each part of the package perimeter, until each variable reaches zero. Thus, when the start photodetector variable for the  22   a  part of a package perimeter reaches zero, the downstream-most point on the part of the package passing over scale  22   a  has reached the position in front of the scale at which the photodetector would otherwise be disposed. When the end photodetector variable for the  22   a  part of the package perimeter decrements to zero, the upstream-most point on the part of the package passing over scale  22   a  has reached the “photodetector” position. When the start photodetector variable for the  22   b  part of a package perimeter reaches zero, the downstream-most point on the part of the package passing over scale  22   b  has reached the position in front of scale  22   b  at which the photodetector would otherwise be disposed. When the end photodetector variable for the  22   b  part of the package perimeter decrements to zero, the upstream-most point on the part of the package passing over scale  22   b  has reached the photodetector position. 
   When a start photodetector variable for either scale  22   a  or scale  22   b  decrements to zero, the system processor checks to see if there is any other package structure having a zero start photodetector variable and a non-zero end photodetector variable for the same scale. If not, the system processor sends a start photodetector signal to that scale&#39;s processor, which reacts to the signal as it would to a signal from the proximity photodetector described above responsive to a package leading edge. 
   If such a package record does exist, however, there is an overlapping package with a leading edge ahead of the present package. Under these circumstances, the proximity photodetector would not have been able to distinguish the leading edge of the present package and would not have sent a signal to the scale photodetector. The system processor therefore does not send a signal to the scale processor in response to the zero-level of the start photodetector variable. 
   When an end photodetector variable for either scale  22   a  or scale  22   b  decrements to zero, the system processor checks to see if there is any other package structure having a zero start photodetector variable and a non-zero end photodetector variable for the same scale. If not, the system processor sends an end photodetector signal to that scale&#39;s processor, which reacts to the signal as it would to a signal from the proximity photodetector described above responsive to a package back edge. 
   If such a package record does exist, however, there is an overlapping package with a back edge behind the back edge of the present package. Under these circumstances, the proximity detector would not have been able to distinguish the back edge of the present package and would not have sent a signal to the scale photodector. The system processor therefore does not send a signal to the scale processor in response to the zero-level of the end photodetector variable. 
   The system otherwise operates in the same manner as the embodiment discussed above with respect to  FIG. 3 . 
   In another preferred embodiment, the system processor does not distinguish between the two parts of a package perimeter in issuing start and end photodetector signals to the scale processors. The system processor examines each package&#39;s perimeter when the package data is received from the dimensioner and establishes a start photodetector variable and an end photodetector variable for the package structure as a whole. The start photodetector variable corresponds to the downstream-most point on the entire package perimeter and is equal to the common RDV for side-by-side scales  22   a  and  22   b . The end photodetector variable corresponds to the upstream-most point on the entire package perimeter, plus the longitudinal distance between the downstream-most point and the upstream-most point (i.e. the package&#39;s length). 
   When the start photodetector variable for an open package structure decrements to zero, the system processor checks to see if there is any other package structure having a zero start photodetector variable and a non-zero end photodetector variable for the same scale. If not, the system processor sends a start photodetector signal to both scale processors, which react to the signal as they would to signals from their proximity photodetectors described above responsive to a package leading edge. 
   If such a package record does exist, however, the system processor does not send start photodetector signals to the scale processors. 
   When an end photodetector variable for the open package structure decrements to zero, the system processor checks to see if there is any other package structure having a zero start photodetector variable and a non-zero end photodetector variable for the same scale. If not, the system processor sends an end photodetector signal to each scale processor, which reacts to the signal as it would to a signal from the proximity photodetector described above responsive to a package back edge. 
   If such a package record does exist, however, the system processor does not send end photodetector signals to the scale processors. 
   The system otherwise operates in the same manner as the embodiment discussed above with respect to  FIG. 3 . The use of the same start and end photodetector variables for both scales  22   a  and  22   b  affects the scales&#39; timing in weighing the portions of the packages passing over the scales, but because the overall length of each package should be within the maximum length that can be weighed by the scales in any event, the validity of the weight data is not affected. 
   In a still further embodiment, when an a start photodetector variable for either scale  22   a  or scale  22   b  (or both, if the start and end variables are defined for each package structure as a whole, rather than corresponding to the respective parts of the package structure passing over the scales) decrements to zero, the system processor checks to see if there is any other open package structure having
         i. downstream-most and upstream-most points
           (a) either of which is between the initial tachometer values of the downstream-most and upstream-most points of the first package, or   (b) both of which are outside the initial tachometer values of the downstream-most and upstream-most points of the first package but either of which is within a predetermined distance of the nearest downstream-most or upstream-most point on the first package structure perimeter that is insufficient to allow the scale to settle at the given belt speed if both packages pass over the scale; and   
           ii. perimeter scan position values overlapping the perimeter scan position values of the relevant scale.
 
If so, the system processor does not send a start photodetector signal to that scale&#39;s processor and does not send an end photodetector signal when the package&#39;s end photodetector variable decrements to zero. If there is no such open package structure, however, the system processor sends a start photodetector signal to the relevant scale&#39;s processor, which reacts to the signal as it would to a signal from the proximity photodetector described above responsive to a package leading edge. In this instance, the system processor sends the scale processor an end photodetector signal when the package&#39;s end photodetector variable decrements to zero. Because the system processor checked for interfering packages at the start photodetector variable, it is not necessary to check again at the package end. The system otherwise operates in the same manner as the embodiment discussed above with respect to  FIG. 3 .
       

   In another embodiment as shown in  FIG. 4 , an additional scale ( 22   c ) is located at the underside of conveyor belt  24   d  directly downstream from side-by-side adjacent scales  22   a  and  22   b . Scale  22   c  spans substantially the entire width of conveyor belt  24   d  similar to scale  22  in  FIG. 1  and has a control processor that operates and communicates with computer  36  in the same manner. 
   The respective control processors in each of scales  22   a - 22   c  continuously parse the weight signals provided by the one or more load cells in the respective scales and extract any weight data therefrom. The single-scale assembly has a photodetector (not shown) disposed along conveyor belt  24   d  immediately upstream from scale  22   c . The dual-scale assembly has respective proximity photodetectors disposed along conveyors  24   b ′ and  24   b ″ immediately upstream from respective scales  22   a  and  22   b . Each scale processor monitors its photodetector&#39;s output signal and thereby determines when a package&#39;s front and back edges pass the photodetector. The scale processors receive the tachometer output and respectively determine when valid weight data may be acquired for a package on the scale and acquire the weight data at that point. The scale processors transmit weight data to the system processor when the package leading edges, as determined from the scale photodetector signals, reach respective predetermined downstream points, as discussed above. The system processor receives the weight data and assigns it to the present global tachometer value. The system processor compares the tachometer value associated with the received weight data with the open and close read window variables for the open package structures. If the tachometer value falls within the open read window variable and close read window variable of any open package structure that is not flagged as non-singulated (i.e. if the package is singulated) or as having an error, and if the weight data was received from scale  22   c , the system processor assigns the weight data to that package record. 
   If the tachometer value falls within the open read window variable and close read window variable of any open package structure that is flagged as non-singulated, and if the weight data was received from scale  22   c , the weight data is not assigned to a package structure. 
   If the tachometer tachometer value falls within the open read window variable and close read window variable of an open package structure that is flagged as non-singulated, and if the weight data was received from either of scales  22   a  or  22   b , computer  36  examines the scan position values (i.e. lateral, or x-axis positions) of the package&#39;s perimeter. Corresponding lateral position values of the perimeter of the scale surface of each of scale  22   a  and  22   b  are stored in memory associated with computer  36 . Computer  36  compares the lateral position values of the package&#39;s perimeter with the lateral position values of the two scale perimeters and determines if the package is aligned entirely within the lateral boundaries of the scale  22   a  or scale  22   b  from which the weight data was received. That is, computer  36  determines whether the package&#39;s widest lateral dimension is within the relevant scale&#39;s widest lateral dimension such that the package passes entirely over that scale and not the other. If so, and if there is no other open non-singulated package structure having:
         i. downstream-most and upstream-most points
           (a) either of which is between the initial tachometer values of the downstream-most and upstream-most points of the first non-singulated package, or   (b) both of which are outside the initial tachometer values of the downstream-most and upstream-most points of the first non-singulated package but either of which is within a predetermined distance of the nearest downstream-most or upstream-most point on the first package structure perimeter that is insufficient to allow the scale to settle at the given belt speed if both packages pass over the scale; and   
           ii. perimeter scan position values overlapping the perimeter scan position values of the same scale on which the first package is disposed,
 
computer  36  assigns the weight data from the relevant scale to the package structure for the first package and does not assign the weight data from the parallel scale to that package structure. If weight data from the parallel scale meets the same test with respect to another package structure, its weight data is assigned to that other package structure. That is, if computer  36  determines that a non-singulated package is passing over one of scales  22   a  and  22   b , but not the other, and that no other non-singulated package is or will be on the same scale at the same time as the first package or at a time close enough to the first package to prevent acquisition of weight data, computer  36  acquires weight data from that scale even though the package is non-singulated.
       

   If the tachometer value falls within the open window variable and the close window variable of an open package structure that is flagged as non-singulated, and if the weight data was received from scales  22   a  or  22   b , and if computer  36  determines that the non-singulated package passes over both scales  22   a  and  22   b , or if another non-singulated package is or will be on the same scale  22   a  or  22   b  at the same time as the first package or at a time close enough to the first package to prevent acquisition of weight data, computer  36  does not assign the weight data to a package structure. 
   If the tachometer value falls within the open window variable and the close window variable of an open package structure that is not flagged as non-singulated, and if the weight data was received from scales  22   a  or  22   b , the weight data is not assigned to a package structure. 
   As described above with respect to the embodiment of  FIG. 3 , parallel scales  22   a  and  22   b  may be longitudinally offset with respect to each other, and, further, the proximity photodetectors associated with scales  22   a  and  22   b  may be replaced by signals from the system processor mimicking the photodetectors&#39; operation. 
   Still referring to  FIG. 4 , a location (line  30 ) along conveyor belt  24   c  is identified downstream from scale  22   c  so that when the leading edge of a package passes beyond this location, it is known that weight data has been acquired for that package (if possible). When computer  36  determines a package has moved beyond line  30  (i.e. when a counter set by the system computer upon receiving the package dimension data from dimensioner  28  corresponding to the distance between lines  42  and  30  expires), computer  36  closes the package structure within system  10  and forwards the package structure to the host system computer. The host computer can then confirm whether shipping charges were correctly applied to the package based on its dimensions and weight as determined by system  10  or, if no dimension and/or weight data is assigned to the package structure, divert the package for manual examination or other processing if desired. 
   While one or more preferred embodiments of the invention have been described above, it should be understood that any and all equivalent realizations of the present invention are included within the scope and spirit thereof. The embodiments depicted are presented by way of example only and are not intended as limitations upon the present invention. Thus, it should be understood by those of ordinary skill in this art that the present invention is not limited to these embodiments since modifications can be made. Therefore, it is contemplated that any and all such embodiments are included in the present invention as may fall within the scope and spirit thereof.