1.  Field of the Invention
This invention relates to the control of motion of complex machines, and specifically to an improved system, method, and computer-readable instructions designed to minimize wiring yet retain the flexibility of centralized control systems. 
2.  Discussion of the Background
The control of moving components in modern manufacturing equipment, such as the equipment used to process and package semiconductor devices, has become extremely complex as demands for both speed and precision increase.  Such complexity is seen, for example, in the implementation of feedback control loops used in servo motion control systems.  These servo control systems are used for critical positioning actuators, typically referred to as motion axes, in a complex machine. 
A schematic representation of an exemplary basic servo axis motion control system 10 is shown in FIG.  1.  Typically, a desired motion path profile is generated at a motion planning device 12, either prior to operation or in response to a system stimulus.  The desired motion profile is converted to a motor signal (or other actuator signal) by the drive 16.  The drive 16 is typically a combination analog or pulse width modulated (PWM) amplifier along with the digital circuitry needed to convert a digital motion profile into the analog actuator drive signals. 
The desired motion path profile can be described and regulated in several ways.  For example, a “demanded position” is the desired motion profile expressed in terms of the position of the actuator (and/or actuated object).  Alternatively, the “demanded velocity” of the actuator and/or actuated object may be used, as well as a combination of velocity and position.  A position measuring device, typically an optical motion encoder, is used to measure the “actual motion path profile” (e.g., the “actual position” and/or “actual velocity”) of either the shaft of the motor 15, or for more precise systems, the actual moving part position. 
Due to various mechanical and electrical sources of error (such as, e.g., noise, backlash, part flexing), a difference between the desired motion profile and the actual motion profile is often present.  For example, PID (Proportional Integral Differential) feedback 120 in the position/velocity loop can be used to adjust the drive signal to minimize the error between demand and actual position.  The algorithms in many high performance servo motion systems go well beyond PID control.  Servo systems often include filters to compensate for mechanical resonances, tailored acceleration/deceleration profiles, and other software intensive control elements that help optimize the speed and accuracy of a moving system. 
The control signal input to the drive 16 is usually a voltage, whereas most motors generate a torque that is proportional to an input current.  Therefore, the drive 16 must often convert the input voltage representing the desired position and/or velocity to a current corresponding to the motor torque.  This voltage-to-current conversion requires another feedback element, the current loop 110, which may range from a simple wire between the input and output of a linear amplifier to fairly complex digital logic controls in the case of PWM amplifiers. 
Modern motion control systems may include several elements (e.g. actuators) that need to operate simultaneously to perform complex tasks.  In other words, a motion control system may include several servo motors 18 (or other actuators) and therefore several axes of control.  The decisions about when and where to move using which trajectory are termed “motion planning.”  The motion control system also includes a cascade control scheme for each axis, where the elements in the cascade include the current/torque control loop, and the position and/or velocity control loop, which may either be combined or separate parts of the cascade. 
Several types of digital networks have been indicated for use in motion control.  These networks can be divided up into two groups: those that have been designed for general purpose data transmission but then applied to motion control and those that are designed specifically for use as motion control networks. 
1.  General Purpose Networks
These are generally networks designed for data communications or multi-media applications and adapted to machine control.  Data communications networks are directed to moving data from point to point in an efficient and reliable manner but they pay little or no attention to the timeliness of delivery.  For example, multi-media networks stream data at 8 kHz from a CD player to an audio amplifier.  Although multi-media networks guarantee the average streaming rate, they do not provide strict periodicity, as the data is buffered at both ends in multi-media appliances and can therefore tolerate deviations in the delivery period.  Thus, multi-media networks are not ideal for real-time motion control networks. 
ARCNET
ARCNET is such a data communications network.  Several companies are known to have motion control networks based on ARCNET (ATA/ANSI 878.1, 2 and 3).  ARCNET is a medium speed token-bus network that can be operated to provide strict cyclic messaging.  However, there are limitations to using ARCNET.  The first limitation is a moderate bit rate (10 Mbit/s) that is not fast enough to send out torque/current demands.  Moreover, the speed of ARCNET cannot be upgraded to 100 Mbit/s over copper without a fundamental re-design. 
ARCNET can use twisted pair copper but has no scrambling and therefore data transmission may potentially cause electromagnetic interference.  ARCNET can operate as a physical ring (or as a bus) but cannot operate after a link has been severed.  Nor can it report where such a fault has occurred, thereby impeding automatic and remote fault diagnosis.  ARCNET has no mechanism for auto-enumeration, which increases the time necessary to commission a machine.  ARCNET, being half-duplex, cannot carry command and feedback data simultaneously.  ARCNET uses a token-passing scheme; such schemes are inherently less robust in the event of electromagnetic interference than time-division multiplexing as the loss of the token requires the network to re-start a configuration process wherein the token is re-created.  ARCNET has no propagation time correction mechanism and therefore would suffer significant data skew if a moderate number of nodes is used with a short cycle time. 
IEEE Std 1394-1995 and prEN 1394b
This network is intended for multi-media applications and has a tree topology.  The proposed 1394b version is to have both fiber and twisted pair copper layers, although neither has been reduced to practice to date.  This network is proposed to operate at 100 Mbit/s or faster. 
1394 is proposed to be cyclic, but not strictly cyclic.  It is proposed to have a guaranteed rate for cyclic data but will delay transmission of the cyclic data depending upon network traffic.  1394 as proposed is restricted to an 8 kHz cycle rate, but rates of 16 kHz or more are required to update the torque/current demand in a motion control system.  1394b is proposed as full-duplex at the physical and data link layers but only half-duplex at the application layer.  In other words, command and feedback data cannot be sent simultaneously.  The proposed 1394 cannot operate as a ring and cannot operate all nodes in the event of a fault such as a broken cable.  The proposed 1394 has auto-enumeration and node discovery but unfortunately these functions are ‘hot-pluggable’ (i.e. the network is re-enumerated when a new node is plugged-in or removed).  Therefore, the position of a node within the network cannot be reliably used to signify the axis of control since this position would change if another node were disconnected during operation.  Proposed 1394 has no time-correction mechanism for dealing with the situation where a synchronization message is received at different times at different points in the network, and therefore would suffer significant data skew if a moderate number of nodes were used with a short cycle time.  Existing 1394 and proposed 1394b can, however, correct for a delay in sending a synchronization message. 
Ethernet-IEEE 802.3-1998
This general network is intended for data communications applications and has a tiered hub topology that operates at 100 Mbit/s and above.  The point-to-point physical layer can be used to form the network in one embodiment of the present invention. 
Ethernet has no inherent cyclic messaging.  Ethernet also cannot be operated as a full-duplex ring and therefore has no means of operating all nodes after a link has been severed.  No known implementation of an Ethernet network can report where such a fault has occurred, thereby automatic and remote fault diagnosis is prevented.  Ethernet lacks an appropriate mechanism for auto-enumeration since it cannot assign node numbers on the basis of position.  Ethernet is normally half-duplex; full-duplex operation introduces the expense, complexity, and temporal uncertainty of using switches.  Ethernet lacks a time-correction mechanism. 
2.  Networks Designed Specifically for Motion Control
The technical details of many of these networks are proprietary, and only some have been disclosed to the public.  Only two of these networks possess a bus speed of exceeding 10 Mbit/s as is required to meet the fairly modest objective of achieving an update rate of 8 kHz on four axes with a telegram size of only 19 bytes. 
SERCOS
The concept of cyclic, time-domain multiplexed messaging originated with the SERCOS network and was subsequently codified as IEC 61491.  SERCOS is implemented upon a single fiber optic ring, is half-duplex, and can operate at up to 16 Mbit/s. While this network is accepted for use in certain industry sectors such as machine tools and automotive assembly lines, it has several significant limitations. 
In a network with more than a few nodes, the SERCOS bit rate of up to 16 Mbit/s substantially limits the network cycle time to a moderate 1 ms.  This moderate network cycle time in turn dictates that the position feedback loop must be closed at the drive rather than centrally at the motion controller.  SERCOS networks thus limit the feasibility of close inter-axis coupling (including centralized implementation of electronic gearboxes and cams) and on-the fly changes of trajectory.  The moderate bit rate also limits the number of axes that may be attached to a network to around 16 when there are many applications that demand more than 16 axes.  SERCOS does not work with a copper transmission medium, which significantly increases the cost and poses a problem in applications where the network medium must be routed through flexible trunking such as cable retractors.  This is due to the fact that the long term flexure characteristics of fiber are poor.  SERCOS furthermore does not operate after a link has been severed, nor does it report where a fault has occurred.  Finally, SERCOS has no mechanism for auto-enumeration and relies on DIP switches to identify nodes. 
MACRO
MACRO is a proprietary network introduced by Delta-Tau Inc. It uses the FDDI fiber-optic physical layer to transmit 100 Mbit data on a single optical ring.  MACRO has a weak error detection mechanism based on a checksum—not a CRC.  MACRO, according the March 1999 specification has no long-haul (100 m) copper medium.  MACRO cannot operate in a tree topology or in the event of a fault and lacks node discovery and auto-enumeration capabilities.  It is unclear whether MACRO has a time-correction mechanism and therefore may suffer significant data skew if an even moderate number of nodes were used with a short cycle time.