Patent Description:
In manufacturing, it may be desirable to track position and/or identity of moving elements, pallets, fixtures, products or the like. Based on this tracking, a manufacturing system can track process data, performance data, product genealogy, detect errors, and the like. Manufacturing systems can also report status, make routing decisions, select assembly options and the like.

In modern manufacturing environments, and particularly those involving linear motor conveyors, pallets or moving elements carrying parts on a conveyor system or the like can move at high speeds and with high acceleration. In some cases, the moving elements may be independently driven. As such, it can be difficult to track their position accurately. Further, it can be useful to assign a unique identifier or "ID" to a specific item or a pallet/moving element associated with an item but this ID must also be tracked as the moving element moves through the manufacturing environment. Examples of existing ID tracking systems in manufacturing include stationary radio frequency (RF) read/write heads with RF tags mounted on the items being tracked, barcode scanners with barcode labels fastened to the items being tracked, and vision cameras reading a unique identification code on the item with optical character recognition (OCR).

There are limitations with conventional conveyor tracking systems. For example, if readers for the position or ID are bumped or shifted, it could lead to failures due to misalignment or excessive gaps. Readers based on optics may be prone to faults due to dirt or an inability to read poor labels. Tags that rely on battery power may be prone to failure when batteries run low. Provisions may need to be made on systems to handle invalid reads. In certain conventional tracking systems, added hardware may be required to be incorporated into the system.

For ID tracking, firstly, conventional ID readers do not generally provide the location of the item along with the ID that is read. Secondly, in certain conventional ID tracking systems, the ID is only available at stationary readers and not at all positions/times along the path an item is travelling. Thirdly, conventional ID readers can cause delays in a system because the item may have to slow down or stop in front of the reader when the ID is being read. Fourthly, in conventional ID systems, there may need to be physical access to a tag or the like for a reader to be able to read it. Also, the readers will generally occupy physical space for mounting on the system.

There are also certain limitations to conventional position feedback/tracking systems. For example, to control and move a pallet on a linear motor based conveyor, the position of each pallet is provided to a controller that precisely controls the pallet movement. This position feedback generally needs to be of a high resolution and a high speed. An example of an existing position feedback system used in manufacturing is magnetic readers that read magnetic fields of magnets placed on the pallet or carrier in the form of a magnetic strip or the like. Conventional position feedback systems may be limited by only providing position of pallets or carriers so their movements can be controlled. Conventional systems may control multiple pallets, using the real time position feedback, but added hardware may be required to track the specific pallet or fixture number that is generally needed for ID tracking.

In the case of a standalone identification reader, it is advantageous to know the precise position of the item along with the unique identifier. Operations or tasks can better be performed when the precise location of the item is known. Take the example of a robot performing an assembly operation on a product in a manufacturing cell. With a unique identification tracking code, the system can determine what operations need to be performed by the robot on the product. If the location of the product is included along with its identification tracking code, the robot would know precisely where the product is located to start working on the product.

<CIT> discloses a system for tracking position and identification of a moving element on a conveyor system having a track, the system including: a machine readable medium provided to one of the moving element or the track, wherein the machine readable medium is configured with at least two channels with a predetermined phase difference therebetween; a sensor provided to the other of the moving element or the track, wherein the sensor is configured to read the at least two channels; and a controller configured to receive data from the sensor and determine a position and/or identification of the moving element on the track based on the phase difference.

In the case of a linear motor conveyor, there is generally some method to track the location of all pallets but the resolution and accuracy of conventional systems can be improved.

As such, there is a need for improved moving element tracking systems and methods in conveyor systems.

It is an object of embodiments of the systems and methods herein to overcome or mitigate at least one disadvantage of previous systems.

According to an aspect herein, there is provided a system for tracking a location of a moving element on a conveyor system, the system comprising:.

In some cases, the system may further include an illumination light emitting diode (LED) lighting an area associated with one or more of the plurality of color sensors and wherein the processor is configured to turn the illumination LED on and off.

In some cases, at least one of the magnetic encoder strip and the color gradient encoder strip include a primary and a secondary encoder strip arranged in series and each of the primary and secondary encoder strips have different pitch.

In some cases, at least one of the magnetic encoder strip and the color gradient encoder strip include a moving element identification section and a position tracking section.

In some cases, the magnetic sensors are Hall effect sensors.

In some cases, the magnetic encoder strip is configured using a quasi-Gray code. This can, for example, assist with determining/sensing the initial location of the moving elements on start-up and assist with tracking on curved tracks. In this case, the second magnetic encoder strip may be configured as approximately half the length of the moving element along the direction of travel.

According to another aspect herein, there is provided a method for tracking a location of a moving element on a conveyor system, the method including: sensing an initial location of the moving element at conveyor system start up using a processor and a plurality of color sensors configured to sense a color gradient encoder; and.

In this case, the method may include illuminating an area associated with one or more of the plurality of color sensors and turning the illumination on or off when sensing with the associated one or more of the plurality of color sensors. In some cases, the method may include sensing with the illumination on and off and preparing a result based on both sensor results.

In some cases, the method may further include tracking moving element identification using at least one of the plurality of color sensors and the plurality of magnetic sensors.

In some cases, the method may further include configuring at least one of the magnetic encoder strip and the color gradient encoder strip to have a primary and a secondary encoder strip arranged in series and each of the primary and secondary encoder strips have different pitch.

In some cases, wherein the magnetic encoder strip is configured with a quasi-Gray code.

According to another aspect herein, there is provided a system and method for tracking a moving element in a conveyor system including the use of a color gradient encoder strip for locating moving elements at start up of the conveyor.

According to another aspect herein, there is provided a system and method for tracking a moving element in a conveyor system including the use of a plurality of sections on an encoder strip for tracking moving elements. In particular, there may be a primary and a secondary encoder strip arranged in series.

Generally, the present disclosure provides a method and system for tracking position of a moving element in a conveyor system. In some cases, the method and system include integrated identification tracking and real-time position feedback.

<FIG> illustrates a conveyor system <NUM> having a track section <NUM>. The track section <NUM> includes one or more moving elements <NUM> (only one is illustrated) which are configured to ride or travel along a track <NUM> of the track section <NUM>. The track <NUM> includes a frame <NUM> configured to support the moving element <NUM>. Some of the principles of operation of a similar track section are described in more detail in <CIT>, which is hereby incorporated herein by reference. In this particular case, the conveyor system is a linear motor conveyor system.

The conveyor system <NUM> can be composed of a plurality of track sections <NUM> which are mechanically self-contained and quickly and easily separable from one another so as to be modular in nature. In this modular example, the track sections <NUM> are mounted on a support (not shown) so as to align and abut one another in order to form a longer track. In order to be modular, each track section <NUM> may house self-contained electronic circuitry for powering and controlling the track section <NUM> and/or the moving element <NUM>. The conveyor system <NUM> may also include curvilinear track sections <NUM>.

<FIG> illustrates a perspective view of the track section <NUM> showing the interior. <FIG> illustrate an exploded view of the interior of the track section <NUM>. The track section <NUM> includes the frame <NUM> that houses a linear drive mechanism <NUM>. The linear drive mechanism <NUM> is formed as a stator armature <NUM> including a plurality of embedded coils <NUM>. The embedded coils <NUM> can be individually excited so that an electrically-induced magnetic flux produced by the stator armature <NUM> is located adjacent to a given moving element <NUM> to be controlled, in a direction normal thereto, without affecting nearby moving elements <NUM>. The motive force for translating each moving element <NUM> arises from the magnetomotive (MMF) force produced by elements <NUM>, such as permanent magnets, provided to each moving element <NUM> (shown in <FIG>) and the stator armature <NUM>, i.e., by the tendency of the corresponding magnetic fluxes provided by the stator armature <NUM> and moving element <NUM> to align or mis-align. A controller (described below) enables separate and independent moving MMFs to be produced along the length of the track section <NUM> for each moving element <NUM> so that each moving element <NUM> can be individually controlled with a trajectory profile that is generally independent of any other moving element <NUM>. Structurally, the track section <NUM> may thus be broadly classified as a moving-magnet type linear brushless motor having multiple moving elements <NUM>.

Referring again to <FIG>, each moving element <NUM> includes an extension <NUM> provided with a machine readable medium <NUM> (shown in <FIG>), which may be, for example, a magnetic strip, an optically transmissive or reflective strip, other type of feedback system or the like. The extension <NUM> is configured such that the machine readable medium <NUM> interacts with sensors <NUM>, <NUM> provided to the track <NUM>. The sensors <NUM>, <NUM> are configured to read the machine readable medium <NUM>, whether magnetically, optically, or otherwise. The machine readable medium <NUM> and sensors <NUM>, <NUM> form a position sensing system <NUM>. The position sensing system <NUM> may be arranged such that the position sensing system <NUM> is protected from traffic on the track section <NUM> and dust and other debris. The position sensing system <NUM> is employed in the moving element identification and position-detecting subsystem (described in further detail below).

In the illustration of <FIG>, the sensors <NUM>, <NUM> are located on the track section <NUM> and the machine readable medium <NUM> is located on the moving element <NUM>. In an alternative, the sensors <NUM>, <NUM> may be located on the moving element <NUM> and the machine readable medium <NUM> may be located on the track section <NUM>. The sensors <NUM>, <NUM> can also be configured to read an identifier of the moving element <NUM> from the machine readable medium <NUM>. The sensors <NUM>, <NUM> are configured to read a position of the moving element <NUM> on the track section <NUM> from the machine readable medium <NUM>.

<FIG> illustrates a conveyor system <NUM> having a curvilinear profile, in accordance with a further embodiment. Where the track section <NUM> is curvilinear, the sensors <NUM>, <NUM> can be positioned along the curvilinear profile such that the machine readable medium <NUM> can be read by the sensors <NUM>, <NUM> and the readings can then be translated from the curvilinear profile to a linear profile, using linear units such as microns, for the purposes of feedback control. Control of the moving element <NUM> can then occur in the linear profile/linear units to allow for simplified calculation in a similar way as for linear track sections.

<FIG> is a block diagram of an example control architecture employed in the conveyor system <NUM>. Controller <NUM> controls the conveyor system <NUM> and the track sections <NUM>. The controller <NUM> is configured to monitor the position of and control the movement of moving elements <NUM> based on the position. The controller <NUM> may also monitor and report moving element identification data so the moving element identifier is known and can be tracked throughout the conveyor system <NUM>. As such, the controller <NUM> may be used for process (i.e. manufacturing-line) control. The controller <NUM> may also provide a supervisory diagnostic role by monitoring the track sections <NUM> (e.g., by engaging in a continuous polling or pushing process) in order to determine the current status of any track section <NUM> and whether any track section <NUM> has failed. It will be understood that, in some cases, the controller <NUM> may directly control each of the track sections <NUM>.

The controller <NUM> may also be connected to other devices, such as programmable logic controllers (PLCs) (not shown) via input/output (I/O) or network modules. The PLCs may provide manufacturing-line station-processing instructions to the track section <NUM>, such as directing the next destination for a moving element <NUM> along the track <NUM>, or providing station-specific motion instructions in respect of a given moving element <NUM>.

As illustrated, the controller <NUM> is connected to the stator armature <NUM> and coils <NUM> in the track sections <NUM> and controls the coils <NUM> in accordance with an independent trajectory or "move" command for each moving element <NUM> located therein.

The controller <NUM> is also connected to the sensors <NUM>, <NUM> situated in the track section <NUM>. The controller <NUM> is configured to implement a closed-loop digital servo control system that controls movement of the moving element <NUM> by resolving the real-time position of each moving element <NUM> located in the track section <NUM>. The controller <NUM> makes use of the position sensing system <NUM>, which supplies moving element identification data and moving element position data to the controller <NUM>. When the machine readable medium <NUM> of a given moving element <NUM> moves over a given sensor <NUM>, <NUM>, moving element position feedback is transmitted to the controller <NUM>. The controller <NUM> decodes the moving element position feedback to determine the position of the moving element <NUM>.

The controller <NUM> provides processing for sampling the sensors <NUM>, <NUM> and resolving the position of each moving element <NUM> located in the associated track section <NUM>. Broadly speaking, the processing associates the machine readable medium <NUM> of any given moving element <NUM> with the identified sensor <NUM>, <NUM> at any time so that the position of the given moving element <NUM> can be calculated based on a fixed position of the associated sensor <NUM>, <NUM> and a relative position of the machine readable medium <NUM> in relation to the associated sensor <NUM>, <NUM>. In addition, when the machine readable medium <NUM> simultaneously engages a plurality of sensors <NUM>, <NUM>, the processing transfers or hands-off the association or "ownership" of the moving element <NUM> from the current sensor <NUM>, <NUM> to an adjacent engaged sensor <NUM>, <NUM>. In this manner, the position of an identified moving element <NUM> can be continuously tracked.

Those skilled in the art will appreciate that the position sensing system <NUM> may be magnetic, optical, color optical, capacitive, or may be another alternative system. For example, the machine readable medium can be a magnetic strip and the sensors <NUM>, <NUM> can be corresponding magnetic detectors. Such an embodiment may provide very fine resolution. In some cases the machine readable medium can be configured to provide <NUM> micron or better resolution. The position accuracy of the moving element <NUM> is aided by the resolution of the position sensing system <NUM>.

With optical machine readable media, signals are typically only generated when there is movement. The controller <NUM> counts up or down in accordance with the direction of travel of the moving element <NUM>. Magnetic machine readable media may produce a position reading whether the moving element <NUM> is moving or not as magnetic detectors may detect a strength of a magnetic field on the machine readable medium to allow additional information on position even if the moving element <NUM> is not moving.

<FIG> and <FIG> show a moving element <NUM> when removed from the track <NUM>. The moving element <NUM> has the machine readable medium <NUM> on the extension <NUM>. The machine readable medium <NUM> is detected/read by the sensors <NUM>, <NUM> to determine the moving element's position as the moving element <NUM> travels along the track <NUM>. This position feedback is then used to control the movement of the moving element <NUM>. The moving element <NUM> has elements <NUM>, such as permanent magnets, that interact with the stator armature <NUM> and coils <NUM> in the corresponding track section <NUM> to move along direction <NUM> of <FIG>.

<FIG> shows an example single channel magnetic machine readable medium <NUM> according to an embodiment. The machine readable medium <NUM> includes zones <NUM>. In this case, each zone <NUM> includes a north pole <NUM> and a south pole <NUM> creating a magnetic sinusoidal pattern. For example, the zone <NUM> contains a <NUM> north pole <NUM> and a <NUM> south pole <NUM>, for a total zone width of <NUM>. The sinusoidal pattern may be resolved into a 'zone count' value. In an example, the zone count may be any value between <NUM> and <NUM>; however, the quantity of zone count values within a zone width will depend on the magnetic resolution of the sensors and the machine readable medium. The sensors <NUM>, <NUM> sense the zones <NUM> to determine the location of the machine readable medium <NUM> within a zone pitch. The zone pitch is the spacing of each zone <NUM> (for example, <NUM>). The zone count may be equated with a physical distance in the zone such that resolution of the zone count and the zone can provide a physical position of a moving element <NUM> in relation to the sensors <NUM>, <NUM> providing the reading, which can then resolve to a position of the moving element on the track. In an example, each zone count value may be approximately equivalent to one micron in physical length along the zone.

In other embodiments, the zones may have other arrangements, for example, they may contain a different number of poles. For example, one zone may contain one north pole, one south pole, both a north and south pole, north-south-north poles, south-north-south poles, or north-south-north-south poles, or the like.

<FIG> shows an example machine readable medium <NUM> with a first channel <NUM> and a second channel <NUM>. The first channel <NUM> has first zone 401a with a first set of poles 402a, 404a at a first zone pitch <NUM> (for example, <NUM>) while the second channel <NUM> has a second zone 401b with a second set of poles 402b, 404b at a second zone pitch <NUM> (for example, of <NUM>). The size difference between the first zone pitch <NUM> and the second zone pitch <NUM> results in a phase difference between the zones 401a of the first channel <NUM> and the zones 401b of the second channel <NUM>. This dual channel configuration <NUM>, with zones 401a, 401b and poles 402a, 402b and 404a, 404b having a phase difference, is intended to provide position feedback and identification tracking of the moving element <NUM>. In general, the dual channel machine readable medium <NUM> can be configured to provide more precise location information than the single channel machine readable medium <NUM>.

In a dual channel machine readable medium system, the track section <NUM> may include the first sensor <NUM> and the second sensor <NUM>. The first and second sensors <NUM>, <NUM> can be offset from one another such that the first sensor <NUM> reads one channel and the second sensor <NUM> reads the other channel. Further, the second sensor <NUM> can be angled relative to the first sensor <NUM> to work with the phase difference. For example, the sensor <NUM> may be angled such that the <NUM> pitch reads like a <NUM> pitch. This offset is intended to allow sensor <NUM> to work with the sensor <NUM> in terms of readings. In an example, the sensor <NUM> may be angled such that the hypotenuse of the right angle triangle formed between the machine readable medium with the <NUM> pitch and the sensor <NUM> is <NUM>.

In embodiments where there are two channels <NUM>, <NUM>, the sensors <NUM>, <NUM> may or may not be aligned with each other along direction <NUM> of <FIG> as the sensors <NUM>, <NUM> read the machine readable medium. Where the sensors <NUM>, <NUM> are not physically aligned, an offset can be incorporated when determining the phase difference.

Position feedback is provided by the sensors <NUM>, <NUM> that are positioned along the track <NUM> to read both the first and second channels <NUM>, <NUM> of the dual channel machine readable medium <NUM>. At any given position, the first sensor <NUM> reads a value from the first channel <NUM> (for example, between <NUM>-<NUM> in a <NUM> zone pitch) and the second sensor <NUM> reads a value from the second channel <NUM> (for example, between <NUM>-<NUM> in a <NUM> zone pitch). The difference in the values read can be divided by the phase difference (for example, <NUM>) to determine the total phase shift between the readings. With this phase shift, the controller <NUM> can determine what zone or zones on the machine readable medium <NUM> the sensors <NUM>, <NUM> are reading and thus the position of the moving element <NUM> on the track section <NUM>. The system <NUM> may also combine the readings from multiple sensor pairs <NUM>, <NUM> reading concurrently to provide a better accuracy than one sensor pair <NUM>, <NUM> could provide on its own. The conveyor system <NUM> may also average, or the like, multiple readings to provide a higher resolution feedback than a single sensor pair <NUM>, <NUM> could provide.

The phase difference can allow the controller <NUM> to determine which zone the two sensors <NUM>, <NUM> are currently engaging with. Once the controller <NUM> knows which zone the sensors <NUM>, <NUM> are engaged with, the controller <NUM> can determine the position of the moving element <NUM> relative to the sensors <NUM>, <NUM>. In this way, the sensor <NUM>, <NUM> provides the position within a zone. The controller <NUM> initially determines which zone or zones the moving element <NUM> is located on the machine readable medium. For example, where the machine readable medium is a magnetic strip, the magnetic strip may have <NUM> zones and the controller <NUM> determines which of the <NUM> zones the sensor <NUM>, <NUM> is over to determine the position of the moving element <NUM>. Once the controller <NUM> has the zone for each channel <NUM>, <NUM>, the controller <NUM> can track the moving element <NUM> from then on.

Where the machine readable medium <NUM> has two channels <NUM>, <NUM>, a first channel <NUM> with zones 401a having a <NUM> zone pitch and a second channel <NUM> with zones 401b having a <NUM> zone pitch, if the machine readable medium <NUM> moves <NUM> through a given sensor <NUM>, <NUM>, such movement will cause the readings to increase or decrease by <NUM>,<NUM> counts depending on the direction of travel. The sensor <NUM>, <NUM> may provide a <NUM> count resolution over each zone. If either sensor <NUM>, <NUM> crosses a boundary between zones, the position readings will either drop to <NUM> and increment up or jump to <NUM> and decrement down depending on the direction of travel at the zone boundary.

The controller <NUM> may include calibration values for each sensor <NUM>, <NUM> to compensate for system variability including variability due to tolerance stack ups or the like. In an example, the sensors <NUM>, <NUM> read <NUM> to <NUM> zone count values over each zone. A discontinuity may exist at the edge of each zone, where the counts jump from <NUM> to <NUM> or <NUM> to <NUM>. The controller <NUM> can be configured to account for this discontinuity to avoid spurious results when determining which zones the sensor <NUM>, <NUM> is reading. Accounting for this discontinuity may include, for example, disregarding the readings proximate to the edges of each zone, adding space on either side of the edges of the zone, or the like. The spurious result may be due to system variability resulting from factors such as calibration error, thermal expansion, and noise in sensor readings. As the spurious results may be greater at the extremes and less towards the center of the machine readable medium <NUM>, the sensor readings may be biased towards the center of the machine readable medium when determining which zone the sensor <NUM>, <NUM> is reading.

In some cases, two or more sensor pairs <NUM>, <NUM> may be engaged with each channel <NUM>, <NUM> of the machine readable medium <NUM> at the same time. It is intended that multiple sensor engagement may provide increased precision when determining the position of the moving element <NUM>. The controller <NUM>, having received zone readings from multiple sensors per channel, may use the readings in any appropriate manner to determine the position of the moving element <NUM>. In one example, the reading closest to the center of the moving element <NUM> may be used.

<FIG> shows an example of a segment <NUM> of a dual channel machine readable medium that is configured to provide a unique identifier. The segment <NUM> has a first zone <NUM> and a second zone <NUM>. The first zone <NUM> is out of phase from the second zone <NUM>. The amount that the zones <NUM>, <NUM> are out of phase, the phase difference, can be used in this embodiment to represent an identifier that is unique to each moving element <NUM>. The identifier may be a unique identification number for machine readable medium <NUM> of the moving element <NUM> being read. The identifier may alternatively be a reference to a unique identification number. The reference can then be used by the controller <NUM> to call or look up the unique identification number. The identifier is read by the same sensors <NUM>, <NUM> that read the position of the moving element <NUM>. The unique identification number may be used for identification tracking of the moving element <NUM>, or for pallets, fixtures, and products on the moving element <NUM>.

<FIG> shows an example of a segment <NUM> of a dual channel machine readable medium configured to provide a unique identifier different from the segment <NUM> of <FIG>. The segment <NUM> has a first zone <NUM> and a second zone <NUM> out of phase from each other. The phase difference is different from the phase difference between <NUM> and <NUM> in order to result in a different identifier.

<FIG> illustrates a machine readable medium <NUM> having an identification tracking section <NUM> (for example, as described with reference to <FIG>) and a position feedback section <NUM> (for example, as described with reference to <FIG>). In some embodiments, the same sensors <NUM>, <NUM> and machine readable medium <NUM> configuration may be used for both identification and position. With the machine readable medium <NUM>, the sensors <NUM>, <NUM> reads the identifier from the identification tracking section <NUM> at the same speed that the sensors <NUM>, <NUM> reads the moving element's position from the position feedback section <NUM>. The identifier may be read while the moving element <NUM> is moving such that the moving element <NUM> does not have to stop at the sensors <NUM>, <NUM>. The identifier may be available at any sensors <NUM>, <NUM> positioned throughout the conveyor system <NUM>.

The controller <NUM> determines whether readings are from the identification tracking section <NUM> or the position feedback section <NUM> of the machine readable medium <NUM>. Once the conveyor system <NUM> is initialized, the controller <NUM> keeps track of which section of the machine readable code the readings are coming from. In some cases, upon initialization, the moving element <NUM> may require a slight movement, generally in the range of <NUM>-<NUM>, to resolve any uncertainty about whether the sensors <NUM>, <NUM> are reading an identification tracking section <NUM> or a position feedback section <NUM>. In further cases, the slight movement may also or alternatively be used to determine whether a sensor <NUM>, <NUM> is reading a value on the fringe of a machine readable medium <NUM> which may be causing the reading to be invalid.

With the machine readable medium <NUM>, there is no additional tag or label required as identification is built into the positioning system. There is no need to mount additional machine readable media to the moving element <NUM> and the same sensors <NUM>, <NUM> used for tracking position are used to read the unique identifier. No additional hardware may be needed.

<FIG> shows a machine readable medium <NUM> having an identification tracking section <NUM> and a position feedback section <NUM>. The machine readable medium <NUM> has one channel. In this embodiment, general position feedback is provided from a sensor <NUM> sensing the position feedback section <NUM>, while the sensor <NUM> senses an identifier from the identification tracking section <NUM>. The controller <NUM> compares the position feedback section <NUM> and the identification tracking section <NUM> to determine the identifier. In some cases, after the conveyor system <NUM> has been initialized, the controller <NUM> keeps track of whether a sensor <NUM>, <NUM> is reading the position feedback section <NUM> or the identification tracking section <NUM>. As the moving element <NUM> is at a known position in the position feedback section <NUM>, the controller <NUM> may read the identification value from the identification tracking section <NUM>. The identification value may be set based on the location of the identification tracking section <NUM> relative to the position feedback section <NUM>.

In some cases, a zone finding scheme may need to be implemented upon initialization. In a basic example, the moving element <NUM> may be moved until the sensor <NUM>, <NUM> passes the end of the machine readable medium <NUM>. The moving element <NUM> may then be moved such that the sensor <NUM>,<NUM> passes over the machine readable medium <NUM>. The sensor <NUM>, <NUM> can then detect the edge of the machine readable medium <NUM>. The controller <NUM> may then use zone counts, or the like, to track the moving element <NUM> during operation. At that point, the position feedback section <NUM> may be used for determining position and the identification tracking section <NUM> may be used to determine identification.

One of skill in the art will understand that other methods of initialization may be available depending on the number of channels and the like, including those involving smaller movements of the moving element such as taking a reading and predicting subsequent readings then moving slightly to determine if the predictive subsequent readings were correct and the like.

In some cases, the machine readable medium <NUM>, <NUM> may include extra space on either or both sides of the machine readable medium <NUM>, <NUM> to allow for spurious readings or the like. In an example, where the identification tracking section <NUM>, <NUM> zones are <NUM> in length, the identification tracking section <NUM>, <NUM> zones may be <NUM> in length in order to include a <NUM> buffer at the edge of the zones.

<FIG> illustrates a method <NUM> for tracking a moving element in a conveyor system, in accordance with an embodiment. Initially, at <NUM>, a first sensor reads a first channel of a machine readable medium. At a similar or parallel timing, at <NUM>, a second sensor reads a second channel of the machine readable medium. At <NUM>, a controller determines a phase difference.

The controller determines an identifier from the phase difference at <NUM>. At <NUM>, a unique identification number and/or a reference to a unique identification number is determined from the identifier. The controller is updated at <NUM> with the identification number of the moving element.

With similar or parallel timing, at <NUM>, the controller determines which zone each sensor <NUM>, <NUM> is reading from the phase difference and determines the position of the center (or other point) of the moving element <NUM> based on the known location of the sensor pair <NUM>, <NUM> and the determined zone or zones of the machine readable medium <NUM>, <NUM>. At <NUM>, the conveyor system controller is updated with the position of the moving element.

The encoder strips described above have involved a black and white encoder or encoder strip. In another embodiment of a system for tracking a moving element, there is provided an encoder that makes use of a color gradient to allow for more resolution and accuracy in determining position of the moving element. In particular, the system uses a color gradient strip and color sensor to automatically determine where each moving element/pallet is located on a track at start-up. In a particular example, for a magnetic encoder strip, there may be approximately forty <NUM> magnetic zones on a typical track section and it is helpful to automatically determine in which zone a moving element is located. The approach described herein of determining moving element position by comparing readings from magnetic zones may be made more accurate, particularly for curved sections, by using a color gradient approach. This color gradient approach can also aid in tracking moving element ID.

<FIG> illustrates readings that are taken by a sensor using a color gradient. In this case, <FIG> is a scan of a red gradient of RGB values from 0x30 to 0xD0 along approximately <NUM> generated by a conventional inkjet printer on photo gloss paper. <FIG> illustrates a color gradient encoder strip <NUM> such as that used for this test (not to scale) as well as a potential zone for tracking a moving element ID. The scanner used was a VISHAY™ VELM6040 scanner. As can be seen in <FIG>, readings are quite linear and range from about <NUM>,<NUM> to <NUM>,<NUM> over the <NUM> run, which was divided into groups with an average of <NUM> readings in a group, which provides about <NUM> counts/mm. Also included (illustrated along the bottom of the graph) are bars showing the standard deviation and span (max-min) of each group, both of which were negligible. It will be understood that the color gradient can be formed of various colors, including black and white or grey scale. Further, the color encoder strip and color sensors may extend beyond the visible spectrum.

As shown in <FIG> and in more detail in <FIG>, the ability to read a moving element ID can be introduced via reliefs that can be machined into an encoder strip segment/bracket. For example, ID bit locations can be <NUM> in width and <NUM> in height with their locations symmetrical about the center of the segment. The width or depth can be adjusted as necessary for particular applications or to obtain appropriate accuracy. As an example of number of locations, there could be a total of <NUM> consisting of <NUM> ID bits and <NUM> checksum bits. With each location spanning <NUM>, this type of ID region would total <NUM> in length.

<FIG> illustrates an example circuit <NUM> for an embodiment of the system for tracking a moving element. It will be understood that various other circuits can be used depending on the type of encoder strip, sensors and the like. In this example, the circuit <NUM> works with a track section having a plurality of (in this case <NUM>) magnetic sensors/encoders for tracking moving elements as described above. In this case, the circuit <NUM> includes a complex programmable logic device (CPLD) <NUM> and communications between a track section gateway and the circuit pass through the CPLD. The CPLD can be used to switch between Bi-directional serial synchronous (BiSS) and asynchronous communications modes, for example by transmitting either an extended high on the MA signal line (to select BiSS mode), or an extended low (to select asynchronous mode). The length of this extended period can be configured/defined but may be greater than 16usec.

In BiSS mode, the MA and SLO signaling to and from the six magnetic encoder IC's, simply pass from the LVDS transceivers straight through the CPLD to the six magnetic encoders. Since there are now only six versus the original eight encoder ICs found on an encoder board such as described above, data burst coming from them will be some <NUM> bits (<NUM> MA clock cycles) shorter allowing other operations to be performed.

Each 'sweep' of the encoder ICs results in these encoder ICs serially transmitting their information to the gateway over the SLO line synchronous with the clock being received over the MA line. After transmission of the last bit, the SLO line is driven low and will stay low (even if additional MA clock cycles are received). The MA line is then paused, in either a high or low state. The magnetic encoders sense this static condition and after their timeout period (typically 2usec but programmable) they latch in the state of the MA line and drive the SLO line high to signal they have timed out and are ready to be swept again.

A pair of one-shots is present to monitor the activity on the MA line. One-shot <NUM> detects the relatively short loss of MA during the magnetic encoder timeout interval. The other, one-shot <NUM>, detects the longer loss of MA when switching between BiSS and asynchronous modes.

A gateway FPGA code sweeps the encoders <NUM> times in every 800usec machine cycle (an average of once every 25usec). To transmit rapid updates on the status of the moving element ("shuttle") ID sensor the CPLD uses the signal from one-shot <NUM>. If one-shot <NUM> times out, the CPLD hijacks the MA and SLO lines by holding both the MA line to the magnetic encoders and the SLO line back to the gateway in a high state. It then waits the first clock cycle (a falling edge) that will eventually occur on the MA line. Synchronous with this, it will output the state of the shuttle ID sensor and then re-enable the BiSS signaling path. In essence, this uses the first MA clock cycle in order to transmit the shuttle ID sensor status. With this approach, this sensor will be read, on average, every 25usec. At a shuttle speed of <NUM>/sec (<NUM>/msec) a <NUM> long shuttle ID bit would be sampled some <NUM> times. Assuming the sensor itself has a rapid response; shuttle IDs can be read at full shuttle speed.

In asynchronous mode, communication between the gateway FPGA and the encoder board STM8 processor may be in a standard asynchronous format (or a variation thereof) over the MA and SLO signal paths. The data rate can be determined based on the equipment or needs of the system. Asynch mode can be used to control the color sensor illumination LEDs, configure and access the I2C multiplexer, and through it, the color sensor ICs (which are I2C devices in this case) and the like. The command set may include the following type of commands:.

The hard core I2C within the processor can be used for communications between it and the I2C devices connected to it. Note that the processor may have internal flash memory that automatically boots at power-up.

In this embodiment, it is helpful if there is backwards compatibility with encoder solutions such as the one described above and/or earlier encoder formats. It should be noted that color sensing can be a slower process and, as one example, could require <NUM> or more to obtain a reading. This is really not an issue as this sensing will generally be performed when the moving elements/shuttles are stationary and the color sensing is being conducted to locate them (i.e. determine their current <NUM> magnetic zone). An embodiment of a method for locating shuttles could include:.

Examination of the two above readings, or sets of readings (both unlit and lit), will allow the system to determine if the sensor is viewing a color strip and, from that, at which <NUM> magnetic strip zone the shuttle is located. This process can be run in parallel or series for all sensors.

In some cases, while the above method is being performed a user will be able see a series of brief flashing red LEDs wherever shuttles are not present. Assuming an integration time of <NUM>, each sensor on a section could be scanned within a half a second (its associated LED would be on for about half this time). All eight sensors (in this example) on an encoder board, if processed in series, could, in theory, be scanned within four seconds (likely much less if sensor integration times are overlapped or parallel). By simultaneously scanning all encoder boards, left and right on all sections, all shuttle locations can be determined machine wide within this time.

To reduce or minimize power consumption, the illumination LEDs could be configured to not be illuminated when in BiSS mode. While in async mode only those LEDs actually required may be illuminated. In some cases, the shuttle ID reader may use an IR LED (not visible), and it can be configured to only be illuminated when shuttle ID reads are being performed.

In some cases, the color gradient strip and associated region of the bracket can be shortened to reduce or prevent curved profile push-off.

Generally, the color sensors can be evenly distributed over the length that each encoder board covers (in one example, each board covers <NUM> and, with eight sensors, each sensor is placed about every <NUM>). In this case, if the color gradient strip can be <NUM> in length or longer such that two color sensors can always be under a strip.

<FIG> illustrate another embodiment of a system for tracking a moving element. In this embodiment, the tracking makes use of either a dual-channel encoder strip 1300a (<FIG>) or a trailing encoder strip 1300b (<FIG>) (sometimes an encoder strip is referred to as a "nonius"). In this case, rather than having two channels, a primary strip and secondary strip are arranged in series, each with different pitch.

Generally speaking, in this embodiment, it is intended that primary and secondary strips are about half the length of an encoder strip as discussed above, and the sensor pitch is also half, so that the same sensor coverage is available to embodiments discussed above (i.e. <NUM>-<NUM> sensors per primary strip). It is further intended that, with a single line of encoder sensors, the encoder strips can be made wider, for greater forgiveness on corners/turns (this is intended to prevent sensors encountering the side of the strip). Still further, primary and secondary patterns should be able to be made in a single strip, for greater accuracy and alignment. Even further, with half as many poles per primary strip the "nonius resolution" could be doubled, allowing the deviation per division to be twice as much before it wraps around (in a similar example to that above, to provide an aliasing condition at <NUM>, rather than <NUM>). In this example, this may allow for a secondary strip pitch of <NUM> (or <NUM>). Lastly, on startup, determination of what is a moving element/shuttle would follow similar logic as in the above embodiments (but using a single line of sensors vs two). The front sensor (assuming a left to right travel) of a moving element/shuttle will be on the primary strip. The last sensor on the moving element/shuttle will be on the secondary strip. In some cases, the middle sensor (if present) could be on either strip, and can serve as a redundant check.

The goal is that having a single encoder strip (vs <NUM> strips offset radially (when on a corner/turn) from one another) would reduce issues of tracking on corners/e-turns and the encoder sensor can read a pole pitch of slightly less than <NUM>, without needing to rotate the sensor (e.g. to <NUM> degrees) to match the pitch. Alternatively the sensor can read a pole pitch of slightly more than <NUM>, if briefly having <NUM> transitions on the sensor is an issue. Based on a sensor datasheet, deviations in pulse positions can be calibrated out, suggesting the signal will be intelligible even if the strip pole pitch is not exactly <NUM> (and not rotated to match). In some cases, there may need to be a clear indication of the location of the transition from primary to secondary pattern, for sensing purposes.

<FIG> and <FIG> illustrate another embodiment of a system and method for tracking a moving element. In this case, embodiments of the system and method are intended to give absolute position on both straight track sections and curved track sections using a magnetic encoder strip <NUM>. In general, these embodiments are configured to use an encoder with a single track scale as illustrated in <FIG>. In this embodiment, the encoder sensors may be magnetic (Hall effect) sensors and with the Hall effect sensors spaced appropriately. In an example similar to those above, the Hall effect sensors may be spaced at about <NUM>. The arrangement may also use a quasi-Gray code at less than half the length of a moving element/shuttle as shown in <FIG>. In <FIG>, B, C, darker/red color represents North polarity and lighter/green color represents South polarity. It will be understood that polarities could also be opposite if appropriate. In this arrangement, it can be determined if five sensors in a row are off, and this will indicate that the moving element/shuttle is in a gap. From the gap, the system can look to the right to find the first sensor that is on. The system then sets this sensor as the master position unless the next sensor is on as well, in which case the second "on" sensor becomes the master. From the master, the next sensor moving right will always be off, and then the system can interrogate the next three sensors. These sensors should produce the following code as the pallet moves through a predetermined distance (such as <NUM> or the like):.

In this sequence only one bit changes state at the same time (this is the principle of a quasi-Gray code encoder). <FIG> illustrates this effect. In this embodiment, the sensor pitch (physically <NUM>) is thus subdivided into <NUM>/<NUM>=<NUM> increments. Even with some sensor triggering uncertainty and some sensor position error, this approach is intended to give a position reliably within a <NUM> window, which will allow the system to determine which <NUM> period of the encoder the moving element/shuttle is in, for example, at the conveyor system start up or the like. The shorter length of the encoder strip also helps to keep effectiveness and accuracy on curves. Further, since the encoder strip is a single track, geometry can be used to assist with calculations and effectiveness on curves, as illustrated in <FIG>.

On a circuit board, similar to that described above, there could be an encoder chip such as described above, and then a series of Hall effect sensors on either a <NUM> or <NUM> pitch. In some cases, the strip may also include a designated location for moving element/shuttle ID such as described above or the like. Further, in some cases, it may be possible, to increase the density of the sensors and encode ID on the same line.

It will be understood that, while the moving element <NUM> is called a moving element, the moving element <NUM> need not be moving to give a reading to the sensor <NUM>, <NUM>. Rather, the 'moving' in moving element refers to the ability of the moving element to move over the track section <NUM>.

The sensors <NUM>, <NUM> are intended to be robust while they are being used in the control of the moving elements <NUM>. The conveyor system <NUM> may use the same or similar hardware for the unique identifier. Where the conveyor system <NUM> described herein is used to operate an assembly line, the robustness may be advantageous because the conveyor system <NUM> is intended to operate consistently without faults.

It is also noted that elements of each of the embodiments above can be used with elements from other embodiments where appropriate. For example, a color gradient encoder system can be used with a magnetic encoder system, either with or without a quasi-Gray code implementation. Each of the types of encoder strips/systems may be configured as dual-channel in parallel or in series (i.e. primary and secondary, as noted above) and may include moving element identification as well as location/position tracking.

Further, the tracking (location, position while moving and identification) described herein may be applied beyond a linear motor conveyor to any appropriate type of conveyor or transport system, for example, a conventional belt-type conveyor. For example, a pallet in a belt-type conveyor could be provided with a machine readable medium <NUM>, <NUM> and a workstation associated with the belt-type conveyor could be provided with a sensor pair <NUM>, <NUM> such that, as the pallet passes or is stationed at the workstation, the position of the pallet relative to the workstation and the ID of the pallet could be determined from the sensor readings.

In the preceding description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the embodiments. However, it will be apparent to one skilled in the art that these specific details may not be required. In other instances, well-known structures and circuits are shown in block diagram form in order not to obscure the understanding. For example, specific details are not provided as to whether the embodiments described herein are implemented as a software routine, hardware circuit, firmware, or a combination thereof.

Embodiments of the disclosure can be represented as a computer program product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer usable medium having a computer-readable program code embodied therein). The machine-readable medium can be any suitable tangible, non-transitory medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism. The machine-readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment of the disclosure. Those of ordinary skill in the art will appreciate that other instructions and operations necessary to implement the described implementations can also be stored on the machine-readable medium. The instructions stored on the machine-readable medium can be executed by a processor or other suitable processing device, and can interface with circuitry to perform the described tasks.

Claim 1:
A system for tracking a location of a moving element on a conveyor system, the system comprising:
a plurality of magnetic sensors;
a magnetic encoder strip that is readable by the magnetic sensors;
a plurality of color sensors;
a color gradient encoder strip that is readable by the color sensors, and
a processor for receiving and processing the magnetic sensor and color sensor readings to determine a location of the moving element on the conveyor system,
wherein the color gradient encoder strip and color sensors provide moving element location at start up and the magnetic sensors and magnetic encoder strip track moving element location during operation.