Abstract:
A hardware architecture links control modules to a host computer in a high-speed serial bus network to achieve efficient distributed machine control. Each control module includes a communications unit and a function unit that are coupled to each other as a part of the control module. All communications units are similarly constructed with each having a unique identification set by a component thereof and provide communications between control modules and the host computer. The function unit of each control module is distinctly configured for executing functions specific to the particular control module to which it is attached. The high-speed serial bus provides deterministic synchronization of data transfers between control modules and the host computer using either an isochronous mode and protocol or an asynchronous mode with a fixed real-time clock issuing data requests at fixed time intervals. Data transfers do not require host computer involvement and can occur directly between control modules. Each control module maintains data blocks containing the desired control status from the host computer and the current state of all variables related to the particular control module. These data blocks are available to the host computer and each control module at fixed time intervals without the need for data requests. This permits near real-time intervention or change of state within the controlled machine processes.

Description:
RELATED APPLICATIONS  
       [0001]    This application claims the benefit of provisional U.S. patent application Ser. No. 60/188580 filed on Mar. 10, 2000 in the names of Edison T. Hudson, James McCormick, Ronald G. Genise and Jerome Dahl and commonly assigned herewith. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates to machine control systems. More particularly, the present invention relates to a hardware architecture and method for distributed machine control. The invention has broad applicability to machine systems requiring controllers which control actuators and/or monitor sensors.  
         BACKGROUND OF THE INVENTION  
         [0003]    Machine control systems are well known in the art. Such systems include, for example, systems for controlling robotic assembly equipment such as pick and place (or placement) machines. A placement machine is a robotic instrument for picking up electronic and similar parts from component feeders and placing them at their assigned locations on a printed circuit board (PCB). Once all parts are placed, the PCB is placed in a reflow oven and solder paste disposed on the PCB melts forming permanent electrical connections between pads on the PCB and electrical contacts, leads or “pins” on the electrical components.  
           [0004]    At present, most machine control systems include physically large control circuits that are centrally located. Many wires and control cables must run between the centrally located control circuits and individual actuators (such as motors of various types), sensors (electronic, electro-optic and video), and like equipment. The result is that with complex systems, the cables which must be routed to various moving parts can be complex, heavy and take up large volumes. For moving parts, added weight increases the cost and size of motors which must be used to achieve a given function. In complex assembly equipment, added weight adds inertia to moving parts which must be precisely located rendering that task more difficult. Accordingly, it would be desirable to provide an architecture for machine control systems, which reduces mass, volume and electrical connections, required to achieve a given task.  
         BRIEF DESCRIPTION OF THE INVENTION  
         [0005]    A hardware architecture links control modules to a host computer in a high-speed serial bus network to achieve efficient distributed machine control. Each control module includes a communications unit and a function unit that are coupled to each other as a part of the control module. All communications units are similarly constructed with each having a unique identification set by a component thereof and provide communications between control modules and the host computer. The function unit of each control module is distinctly configured for executing functions specific to the particular control module to which it is attached. The high-speed serial bus provides deterministic synchronization of data transfers between control modules and the host computer using either an isochronous mode and protocol or an asynchronous mode with a fixed real-time clock issuing data requests at fixed time intervals. Data transfers do not require host computer involvement and can occur directly between control modules. Each control module maintains data blocks containing the desired control status from the host computer and the current state of all variables related to the particular control module. These data blocks are available to the host computer and each control module at fixed time intervals without the need for data requests. This permits near real-time intervention or change of state within the controlled machine processes.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0006]    The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate one or more embodiments of the present invention and, together with the detailed description, serve to explain the principles and implementations of the invention.  
         [0007]    In the drawings:  
         [0008]    [0008]FIG. 1 is a schematic diagram of a machine control hardware architecture as applied to a placement machine in accordance with a specific embodiment of the present invention.  
         [0009]    [0009]FIG. 2 is plan view of components of a hardware module including a common communications device and a unique function device in accordance with a specific embodiment of the present invention.  
         [0010]    [0010]FIG. 3 is a system block diagram of a module in accordance with a specific embodiment of the present invention.  
         [0011]    [0011]FIG. 4 is a schematic diagram of a distributed machine control system in accordance with a specific embodiment of the present invention.  
     
    
     DETAILED DESCRIPTION  
       [0012]    Embodiments of the present invention are described herein in the context of a hardware architecture and method for distributed machine control. Those of ordinary skill in the art will realize that the following detailed description of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the present invention will readily suggest themselves to such skilled persons having the benefit of this disclosure. Reference will now be made in detail to implementations of the present invention as illustrated in the accompanying drawings. The same reference indicators will be used throughout the drawings and the following detailed description to refer to the same or like parts.  
         [0013]    In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It will, of course, be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions must be made in order to achieve the developer&#39;s specific goals, such as compliance with application- and business-related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the art having the benefit of this disclosure.  
         [0014]    In accordance with the present invention, the components, process steps, and/or data structures may be implemented using various types of operating systems, computing platforms, computer programs, and/or general purpose machines. In addition, those of ordinary skill in the art will recognize that devices of a less general purpose nature, such as hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herein.  
         [0015]    A specific embodiment of the machine control architecture of the present invention is illustrated in FIG. 1 as applied to a placement machine  100 . The placement machine  100  has a pick-up head  102  transportable in X, Y, Z and T (rotational) directions which picks up components  104  (with a vacuum pick-up, gripper pick-up, or similar device) from component feeders  106  and transports them for placement onto a target substrate  108  such as a PCB. The components  104  in accordance with this example are typically electrical, electromechanical or electro-optic components and require highly accurate placement onto the target substrate  108  due to typically densely packed input/output (I/O) connections. The placement machine  100  has an imaging system  110  of some kind which observes the components  104  and the target substrate  108  in order to measure, register and align under-side contact and edge features of the components to corresponding target substrate features in order to achieve accurate placement. Placement machine  100  usually includes a number of control modules  112  for driving motors (also referred to as actuators) and sending and receiving digital and analog data. In addition, peripherals of placement machine  100  such as the imaging system  110 , camera lighting (not shown), pick-up head  102  and vacuum generators (for use with vacuum pick-ups) may be wired to and controlled by specific data I/O lines of control modules  112 . Real-time processing of images captured by the imaging system  110  permits calculation of coordinate feature locations for components  104  and target substrates  108  and corresponding control of the pick-up head  102  motion to achieve proper registration and alignment between the component  104  and target substrate  108 .  
         [0016]    Control modules  112  are preferably positioned on or about the placement machine  100  at critical process locations such as motor control axes  109  and the imaging system  110  so as to minimize cabling. The control modules  112  are connected in a data communications network over a high-speed serial data bus  114  to each other and to a host computer  116 . The data communications network may be a high speed network such as those defined in the IEEE Standard for a High Performance Serial Bus—Amendment  1  (IEEE Std. 1394a-2000 (Amendment to IEEE Std 1394-1995)) (Published by the Institute of Electrical and Electronics Engineers, Inc., 3 Park Avenue, New York, N.Y. 10016-5997 on Jun. 30, 2000) (hereinafter referred to as the “IEEE 1394 bus”), and the like. Each control module  112  includes a common communications device  200  which may be a single circuit board as illustrated in FIG. 2 that provides computing power, volatile and non-volatile data storage, and one or more communication ports  202  supporting the high speed serial bus  114 . Each communications device  200  on each control module  112  preferably has the same or a similar physical configuration. The communications device  200  on each control module  112  is coupled to a function device  204  which may be a single circuit board using a standardized electrical and data interface  206  which performs signal conditioning, buffering, and power amplification functions. Each function device  204  is distinctly configured to execute functions specific to the particular control module  112  to which it is coupled. The combination of the common communications device  200  with a unique function device  204  constitutes a control module  112  that can perform a variety of functions. These functions include closed loop motion control of various types of motors using digital encoder, analog or video sensor feedback in combination with digital algorithms such as PID (proportional, integral, derivative) control providing real-time position, velocity and torque control and motor phase commutation. Machine vision functions using digital image acquisition and transmission without the use of specialized host resident hardware such as frame grabbers is of particular benefit in the placement machine  100  application. Other functional capabilities of the control module  112  include but are not limited to logic control with electrical opto-isolation for input or output signals, analog to digital and digital to analog conversion of voltage, current, or resistance from sensors or other electromagnetic sources, communication bridging and translation to and from other serial (or other) buses such as CANBUS, USB, RS232/422, and Ethernet, power control and amplification using pulse width modulation methods to create variable output levels of power for process functions such as lighting and heating, and real-time process variable control using any of the above digital or analog inputs or outputs.  
         [0017]    The distinct configuration and corresponding functional capability of any one control module  112  is uniquely identified by a coded serial number that is hardware embedded and non-programmable in each module  112 . Control modules  112  of the same type (i.e. modules having identical function devices  204  in addition to common communications devices  200 ) are also enumerated by a unique hardware embedded serial number. Each control module  112  transmits its coded serial number to the “root node” (which is usually host computer  116 ) upon a start-up initialization procedure causing the host computer  116  to assign a distinct network address to each control module  112 . The host computer  116  then downloads appropriate control firmware that it has stored in an archive to the common communications device  200  in each control module  112  and thus configures the functionality and performance characteristics of each control module  112  as needed based on the application requirements for each control module  112 . The capabilities of the host computer  116  controlled architecture combined with the “plug and work” nature of the control modules  112  and high-speed serial bus  114  permits a rapid configuration of many functions.  
         [0018]    The high speed serial bus  114  linking the control modules  112  and host computer  116  has a high data transfer rate that typically ranges from about 100 megabits per second to about 3 gigabits per second (referred to herein as “high-speed”). In addition, the serial bus provides a mechanism for time deterministic data transfers such as the isochronous mode of an IEEE 1394 bus. In an IEEE 1394 bus isochronous mode, all real-time control system variables such as PID parameters, motion information and the state of digital and analog I/O are transferred from the host computer  116  to the control module  112  and vice versa at a fixed time interval using the isochronous protocol. Thus sensor data, captured by sensors coupled to digital or analog inputs of the control module, can be transferred to the host computer for use in calculations such as PID servo loops, machine vision algorithms, and the like. In an IEEE 1394 bus or similar serial bus, this can also be accomplished using an asynchronous mode of communication by establishing a fixed real-time clock that issues a read request to each control module  112  at a fixed time interval. Immediately following such a request, the control module  112  issues a write request to load its control variable data to the host computer  116 .  
         [0019]    In operation, the synchronous communication between the host computer  116  and physically remote control modules  112  over the high speed serial bus  114  occurs in a memory mapped fashion which emulates the remote control modules  112  being actually resident in host computer  116 . Each control module  112  maintains an in-page data block containing a complete set or state table of the desired control state commands from the host computer  116  and an out-page data block containing the current state of all control variables within that particular control module  112 . In addition, the host computer  116  maintains in-page and out-page data blocks for each control module  112  attached to the network. The time synchronized transmission mode of the hardware architecture guarantees that the state of each control module  112  is known within a deterministic time domain. Therefore all control variables are available to host computer  116  at a repeatable interval without requiring a specific request for such information. This permits near real-time intervention or change-of-state of any control variable for any control module  112  without the need to interrupt the normal stream of events at the control modules  112  or in the host computer  116 . The updating or painting of the state of the in-page and out-page data blocks takes place at the lowest level in host computer  116  so as to have minimal impact on higher level functions. Unlike SERCOS (the well-known SErial Real-time COmmunication System), an open interface specification, designed for high-speed serial communication of standardized closed-loop data, or other known control protocols, no command interpretation or parsing and no polling is required. The updates are simply accomplished automatically and repeatedly at fixed time intervals. Therefore, system overheads at both host computer  116  and the control modules  112  are both minimal and constant with respect to computing resource demand.  
         [0020]    Furthermore, the asynchronous and isochronous communication modes provided by the high-speed serial bus system, such as in the IEEE 1394 bus, permit a “peer-to-peer” communication. This means that no interaction with the host computer  116  is required to set-up or transfer data to any valid control module  112  within the network. These data transfers do not require permission from, redirection from or routing to the host computer  116 . As an example, in the placement machine  100  application of FIG. 1, a motor control axis can receive position commands via direct state table or in-page data block updates from another control module  112  performing a sensor function with no host computer  116  interaction.  
         [0021]    Additionally, the hardware architecture provides for data error checking with at least two error checks occurring at each transfer of data between a control module  112  and host computer  116 . These error checks include a checksum on data integrity of the in-page data blocks and the out-page data blocks and a recirculating message sequence number for message order integrity between control modules  112  and the host computer  116 .  
         [0022]    [0022]FIG. 3 is a system block diagram of a module in accordance with a presently preferred specific embodiment of the present invention. Module  300  includes a base processor/communications unit  302  and a function unit  304 . Base processor/communications unit  302  may be present in each module present in a particular machine control system. Serial number chip  306  provides a unique serial number to processor/communications device  302 . Digital signal processor (DSP)  308  may be a model TMS320F240 available from Texas Instruments. Flash memory  310  provides a bootstrap loadable program for initially configuring DSP  308  upon power-up. DSP  308  is generally programmed by the instructions in flash memory  310  to request download of software from a host computer after power-up and bootstrap load is completed. Once the software is downloaded from the host it is stored in volatile program memory  312 .  
         [0023]    DSP  308  communicates off-module via a conventional PHY (physical layer device) and LLC (link layer)  314  with serial ports  316   a ,  316   b  and  316   c  that may be IEEE 1394 bus serial ports and which together form a three-port IEEE 1394 bus hub of which some of the serial ports may be 4-wire (unpowered) ports and others may be 6-wire (powered) ports under the IEEE 1394 standard, as desired. To communicate with function unit  304  which in this embodiment is disposed on a separate PCB and connected to the PCB upon which processor/communications unit  302  is disposed via a multi-connector block connector that carries various signals and voltage levels. Function unit  304  may contain circuitry and ports supporting such communications activities as Analog Input ( 318 ), Analog Output ( 320 ), Digital Input ( 322 ), Digital Output ( 324 ), and various types of motor controls ( 326 ). DSP  308  may communicate with function unit  304  via a programmable logic device  328  in a conventional manner. In order to provide an emergency stop function to motorized equipment under control of module  300 , motor control signals are preferably routed via error loop current block  330 . If a low current signal routed through various components of the machine control system and through the “IN” and “OUT” ports of error loop current block  330  is interrupted, the signal(s) controlling the motorized components will cease to pass to the motorized components even if the DSP  308  has crashed or locked up. Error loop current block  330  operates, for example, by providing current to the gate of a switch transistor which allows motor control signals to pass from the switch transistor&#39;s source to drain. Other electrically controlled switch technologies (e.g., relays, opto-isolators, etc.) could be used as well as will now be apparent to those of ordinary skill in the art of circuit design. This feature is provided as a safety feature to provide a positive mechanism for motor shutdown in the case of an emergency or detected anomaly. Power block  332  receives power from an external source on lines “+” and “GND”. Chassis ground input  334  is preferably isolated from “GND” input.  
         [0024]    [0024]FIG. 4 is a schematic diagram of a distributed machine control system in accordance with a specific embodiment of the present invention. FIG. 4 illustrates a typical application for the distributed machine control system of the present invention. A six axis motion system  400  under the control of a host computer  402  includes a number of actuators  404  (X-axis),  406  (Y-axis),  408   a  and  408   b  (Z-axis), and  410   a  and  410   b  (T-axis). Cameras  412   a  and  412   b  are IEEE 1394-type cameras and are present to provide machine vision control. Machine vision algorithms and servo-loops are preferably implemented by a corresponding control module (e.g., control module  414   b  processes machine vision for camera  412   a ). In this embodiment a number of control modules  414   a ,  414   b  and  414   c  provide control to the various actuators and cameras. Control modules  414   a ,  414   b  and  414   c  may be coupled to one another using an IEEE 1394 bus  416  including flexible serial data cables and may be connected in daisy-chain fashion or in a tree fashion.  
         [0025]    While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art having the benefit of this disclosure that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims.