Distributed control system

Disclosed is a method for controlling a plurality of machines. The method includes identifying a first prerequisite operating condition for a first machine in the plurality of machines, the first machine having at least one control unit and configured to perform at least a first operation, obtaining at least one current operating condition corresponding to a second machine in the plurality of machines and if the at least one current operating condition meets the first prerequisite operating condition, performing the first operation.

FIELD OF THE INVENTION

The present invention pertains to controlling multiple cooperative machines, such as machinery in an automated manufacturing plant.

BACKGROUND

Automated machinery is becoming increasingly common in many environments. Many modern factories and manufacturing plants include automated machinery to manufacture or process goods. Such automated machinery can include a wide range of machines, such as robots, conveyors, clamps, pins, welders and other machines. Automated machinery can also be used in environments other than factories and manufacturing plants. For example, car washes can use automated brushes and sprayers to wash cars.

Automated machinery typically requires various operations to be performed in a specific order. To increase the efficiency of automated machinery, the time between many operations should be as small as possible. As a result, various methods have been developed for machines to perform operations in a specific order while also attempting to minimize the time between operations.

An early method of minimizing the time between operations includes timing the machinery to perform each operation at a specific time. For example, if performance of a second operation requires that performance of a first operation be complete, one can determine when each cycle of the first operation will be complete. One can then time cycles of the second operation to begin almost immediately after each cycle of the first operation is complete. However, controlling the performance of various operations on the sole basis of time can have drawbacks. For example, if the first operation is not complete at its normal time due to a machine defect or some other malfunction, the second operation may still be attempted after the expected completion time of the first operation.

A more modern method includes using analog sensors to determine the status of at least some of the various operations performed by the machinery. The machinery can include multiple individual machines, and each individual machine can include one of the analog sensors. A central control center, e.g., a computer, can receive signals from the sensors by connecting respective output lines from the sensors to the central control center, and the central control center can also control each individual machine by connecting each machine to the central control center with respective input lines. For example, an analog sensor for determining whether a pneumatic clamp is open or closed can be coupled to a central control center via an output line, and a pressure source for operating the clamp can be coupled to the central control center via an input line for controlling operation of the clamp.

The central control center can thus determine the status of each individual machine (and thus each individual operation), and the control center can thereby determine whether a first operation is complete before instructing the next machine to perform a second operation. Returning to the above example involving the pneumatic clamp, if the clamp is used to hold a component while a welding operation is performed, the control center can receive a signal indicating that the welding operation is complete. After receiving this signal, the central control center can cycle through a check of all signals, can determine that the conditions for operating the clamp have been met, and can provide an input signal to the pressure source, causing the pressure source to provide pressure to or release pressure from the pneumatic clamp. The pneumatic clamp, in turn, can open to release the component, and its analog sensor can output a signal to the central control center indicating that the clamp is open. The central control center can then cycle through a check of all operations to determine that the welding operation and the clamping step are complete, and can instruct another machine to perform the next operation.

SUMMARY

Embodiments of a method for controlling a plurality of machines are disclosed herein. In one embodiment, the method includes identifying a first prerequisite operating condition for a first machine in the plurality of machines, the first machine having at least one control unit and configured to perform at least a first operation. The method also includes obtaining at least one current operating condition corresponding to a second machine in the plurality of machines. The method includes performing the first operation if the at least one current operating condition meets the first prerequisite operating condition.

Embodiments of a method of distributed control of a plurality of machines with each machine of the plurality of machines having at least one control unit are also disclosed herein. In one embodiment, the method includes identifying a first prerequisite operating condition for a first operation of a first machine having a first control unit and identifying a second prerequisite operating condition for a second operation of a second machine having a second control unit. The method also includes obtaining at least a first and a second current operating condition from at least one other control unit. Further, the method includes performing the first operation if the first prerequisite operating condition is met by the at least one first current operating condition and performing the second operation if the second prerequisite operating condition is met by the at least one second current operating condition.

Embodiments of an apparatus in a first machine for controlling a plurality of machines, the first machine configured to perform at least a first operation are also disclosed herein. In one embodiment, the apparatus includes a memory and a processor configured to execute instructions stored in the memory to identify a first prerequisite operating condition for the first machine and obtain at least one current operating condition corresponding to a second machine in the plurality of machines. The processor is also configured to execute instructions stored in the memory to generate a signal to perform the first operation if the at least one current operating condition meets the first prerequisite operating condition.

These and other embodiments will be described in additional detail hereinafter.

DETAILED DESCRIPTION

FIG. 1shows a distributed control system11for controlling multiple machines13a,13band13c(referred to collectively as “machines13”). Each of machines13includes at least one control unit, such as control units10a,10band10c(referred to collectively as “control units10”), can include one or more sensors, such as sensors16a,16band16c(referred to collectively as “sensors16”) and can include one or more devices, such as devices21a,21b, and21c(referred to collectively as “devices21”).

The machines13can be any machines that perform coordinated operations, such as automated machines in a manufacturing plant or automated machines in a car wash. While three machines13are shown inFIG. 1, in practice the number of machines can vary and may be less than or exceed three. As an example that is used in this application, machine13acan be a pneumatic clamp, machine13bcan be a welding robot, and machine13ccan be a conveyor.

The control units10of machines13can be connected to a network switch30using lines20. The lines20can be powerline communication lines, for example, of the type in conformity with one of the various Ethernet-over-powerline standards, such as one of the standards promoted by the HomePlug Power Alliance or the Universal Powerline Association. Thus, the lines20may provide both power and means for communication to the control units10. Another method of providing both power and network connectivity to machines13can be using a Power over Ethernet (PoE) implementation, for example, those in conformity with standards promoted by the IEEE.

Alternatively, other structures for powering and communicating with each of the control units10can be used, such as a dedicated power line (e.g., a conventional power wire) and a separate, dedicated communication line (e.g., an Ethernet cable) for communication with the network switch30. As another example, each control unit10can communicate wirelessly with the network switch30via inclusion of a wireless device (e.g., a Wi-Fi card) with the control unit10.

Since each control unit10can be connected to the network switch30, an Ethernet local area network (LAN) can be formed for communication between control units10. Alternatively, if wireless communication is used instead of the lines20, a Wi-Fi LAN or other type of network can be formed. Thus, the network switch30can route a communication generated by one of the control units10to another control unit10. Instead of the network switch30, another networking device, such as a router, or a combination of networking devices can alternatively be used.

As shown inFIG. 2, each control unit10can include a CPU12, a memory14, a bus15, an input/output (I/O) device17, a network interface card (NIC)18, and a location-sensing device19. The control unit10can also include other components, such as an RFID chip, and the control unit10need not necessarily include each of the illustrated components (e.g., the control unit10need not necessarily include the GPS receiver19). The bus15can connect the CPU12, memory14, the I/0device17, NIC18and location-sensing device19.

The CPU12can be, for example, a microprocessor, a computer-on-a-chip or another type of CPU. The CPU12can perform calculations (e.g., algorithms stored on the memory14), control components of the control unit10, and perform other operations.

The location-sensing device19can be, for example, a GPS receiver. Alternately, the location-sensing device may use other methods of sensing location. For example, the location-sensing device may use wireless triangulation to locate the machine's location in, for example, a manufacturing plant. Other methods of determining a machine's location are also possible.

The memory14can be RAM, EEPROM, or another type of memory. As shown inFIG. 3, the memory14can be used to store information pertaining to one or more of the machines13, such as design performance characteristics22, a bill of materials (BOM)24, technical drawings26and operating conditions28for the machine13. The operating condition(s)28can include current operating condition(s)28aand prerequisite operating condition(s)28b. The current operating conditions28aof the machine13includes the current state of the machine13. The current operating conditions28amay also include indications of previous states of the machine13. The prerequisite operating conditions28bmay include any condition precedent for any operation to be performed by machine13. The memory14can additionally store other information, such as programs or algorithms executed by the CPU12. The memory14can also store a control unit identification29that can be used to identify the control unit10to other nodes on the network, including other control device(s), visual display(s)31, and personal computer(s)32.

Referring back toFIG. 2, an input connection of the I/O device17can be in communication with one or more sensors16, and an output connection of the I/O device17can be in communication with one or more of the devices21. For example, the I/O device17can be connected by wiring to one or more sensors16and to one or more devices21. As a result, the I/O device17can relay information from one or more sensors16to the CPU12, and it can also output an instruction from the control unit10to one or more devices21.

The NIC18can connect to the line20for communication between the control unit10and the network switch30, though the NIC18can alternatively be capable of wireless communication with the network switch30. Thus, the NIC18, operating in conjunction with the lines20and the network switch30, can allow each control unit10to communicate with other control units10.

As an example of communication between control units10of the machines13, the CPU12of one of the control units10can convert input from one of its sensors16into XML format, and the CPU12can instruct the NIC18to output the XML message to another control unit10via the network switch30. The receiving control unit10can then read the XML message and, if warranted, instruct its one or more devices21to perform an operation. Additionally, a control unit10can instruct its NIC18to output the XML message to a visual display device31within the network that is directly or indirectly connected.

Referring again toFIG. 1, the one or more sensors16can include analog sensors and/or digital sensors. Digital sensors can be useful due to their ability to provide more precise information than analog sensors. The sensors16can include, e.g., a position sensor, an acceleration sensor, a pressure sensor, a temperature sensor, a light sensor, an electrical sensor and/or other types of sensors. The specific type of sensors16used can depend on the type of machine whose operation is sensed, and multiple types of sensors16can be used for a single machine.

For example, if machine13ais the pneumatic clamp, its sensor16acan include a digital position sensor for determining the degree that the clamp is open. If machine13bis the welding robot, its sensors16bcan include position sensors for determining the position of the robot (e.g., multiple position sensors may be used to determine the position of the robot in three dimension if the robot is independently moveable in different dimensions), as well as another sensor for determining whether the robot is performing a welding operation, such as a temperature sensor or electrical sensor. If machine13cis a conveyor, its sensors16ccan include a position sensor. The sensors16can thus detect the status of the machines13and output the status to the control units10.

The one or more devices21can include any type of mechanical, electro-mechanical, or electronic device that performs an operation. For example, devices21can include a hydraulic valve device21afor controlling the pneumatic clamp13a, a servo motor device21bfor controlling the robot13b, and an electric motor device21cfor controlling the conveyor13c. The specific types of devices21used can depend on the type of machine13that the devices are used within. Additionally, multiple devices may be used within a machine. For example, a robot can have a plurality of servo motors. In some instances, a device may contemporaneously have a sensor. For example, a servo motor may include both a means for moving a robot, but may also include a sensor of the position of the servo motor. In some embodiments, one or more machines may not include any device21.

As shown inFIG. 4, after connecting a control unit10of a machine13to the system11as shown in step S10(for example, by plugging the line20into the NIC18), the control unit10can be assigned an IP address (e.g., an IPv6 address) as shown in step S12by a device on the LAN, such as a DHCP server. As shown in step S14, a set-up procedure can then be initiated. The set-up procedure can include the control unit10obtaining the design performance characteristics22of its machine13by having one or more sensors16monitor the machine13during performance of its operation. The set-up procedure can also include inputting the prerequisite operating conditions28bto the control unit10by requesting a user to place the operation performed by the machine13controlled by the control unit10into a sequence of operations, and the procedure can also include requesting the user to indicate which preceding operations are prerequisite operating conditions28b. Alternatively, the set-up procedure can be performed in another manner, such as by programming the design performance characteristics22and prerequisite operating conditions28binto the control unit10before installation.

Once installed and set-up, the control unit10can receive (e.g. current operating conditions28a) output by other control units10as shown in step S16. The control unit10can also broadcast its status (e.g. current operating condition28a), such as whether or not it is currently operating, what stage the operation of its machine13is currently at, and if the operation of its machine13has been completed, as shown in step S18.

As can be understood fromFIG. 5, each control unit10controls its machine13based on signals received by the machine's own sensor(s)16and/or by signals routed through the network switch30to the control unit10from one or more of the other controls units10. That is, control unit10acan continuously monitor signals on the system11to determine whether its prerequisite operating conditions28bhave been met as shown in step S1. Once control unit10areceives a signal indicating that its prerequisite operating conditions28bhave been met, control unit10acan instruct device21aof machine13ato perform its operation as shown in step S2. Control unit10acan then monitor the performance of machine13aand/or device21ausing sensor16a. Control unit10acan continuously output the current operating conditions28aof machine13a, and control unit10acan alternatively or additionally output its current operating conditions28aonce machine13ahas completed its operation. Current operating conditions28aoutput by control unit10acan be routed to control unit10bvia lines20and network switch30.

Still referring toFIG. 5, one of the prerequisite operating conditions28bof control unit10bcan be that control unit10ahas successfully performed one or more operations. The control unit10bcan also include a second prerequisite operation condition28brequiring that its own machine13bsuccessfully perform one or more operations. Thus, control unit10bcan continuously monitor signals on the system11, as well as signals from its sensor(s)16bto determine whether its prerequisite operating conditions28bhave been met as shown in step S3. Once control unit10breceives the signal output by the control unit10aindicating that the first operating condition28bof control unit10bhas been met, control unit10bcan instruct device21bof machine13bto perform a first operation as shown in step S4.

Control unit10bcan then monitor the performance of machine13busing sensor16bas shown in step S5. Control unit10bcan continuously output the operational status of machine13b, and control unit10bcan alternatively or additionally output a signal once machine13bhas performed its specific operation. However, since machine13bin this example has a second operation to perform, control unit10bcan instruct device21bof machine13bto perform the second operation as shown in step S6once control unit10bdetermines that the first operation was successfully completed. Control unit10bcan then monitor the progress of the second operation in the same fashion as it monitored the status of the first operation, and control unit10bcan output current operating conditions28aaccordingly. Current operating conditions28aoutput by control unit10bcan be sent to control unit10cvia lines20and network switch30.

Also as shown inFIG. 5, once control unit10creceives signals that all of its prerequisite conditions28bhave been met (e.g., that machine13bhas performed its operations) as shown in step S7, control unit10ccan instruct device21cof machine13cto perform its operation as shown in step S8. WhileFIG. 5shows three machines13, the process can include additional machines if more machines are present. Additionally, variations on the described process are possible. For example, machine13ccan have prerequisite operating conditions28aincluding operations being successfully performed by both machine13aand machine13b, and control unit10ccan therefore receive signals output by both control units10aand10b. Further, machine13acan have as a prerequisite operating condition28athat machine13bsuccessfully perform an operation. The control units can work in synchronous or asynchronous operation(s).

Thus, the system11as described herein allows one control unit10to communicate directly to another control unit10via a LAN. In contrast to known systems which each include a central control center that must cycle through a time and computing resource consuming check of the statuses of all its sensors, the system11permits communication directly between control units10. Since each control unit10can keep track of whether or not its own prerequisite operating conditions28ahave been met, the system11can operate faster with less computing power than known systems.

In addition, the control units10can communicate to other controllers34such as a robotic controller, weld controller, motion controller, etc. The various controllers are in communication with the control units10to perform work in synchronous or asynchronous operation.

Further, the ability to use digital sensors allows the control units10to determine with greater precision the status of the machines13, while known systems typically use analog sensors that can only indicate one of two states of a machine.

In addition to allowing for communication between control units10, the system11can perform other functions. For example, the design performance characteristics22of one of the machines13can be used to determine whether that machine13has properly performed an operation. For example, the position or other characteristic of one of the machines13or devices21of the machines13detected by its sensor16can be compared to the design performance characteristic22of the machine13to determine whether the machine13has fully performed its operation.

Additionally, a comparison between a sensed characteristic of one of the machines13and the design performance characteristic22of the machine13can be used for maintenance purposes. For example, if one of the machines13takes a longer amount of time to perform an operation than it should as indicated by its design performance characteristic22, the control unit10can determine that the machine13is not operating optimally (i.e. if the amount of time exceeds a design performance characteristic threshold). The control unit10can then send out an alert message or failure indicator notifying maintenance workers that its machine13may require maintenance. Further, if maintenance is to be performed on one of the machines13, its control unit10can indicate the position of the machine13as detected by the location-sensing device19. Thus, in a large, complex manufacturing plant, a maintenance worker can easily locate the malfunctioning machine.

Once a worker arrives at a malfunctioning machine (or alternately, remotely), the worker can use a personal computer32as shown inFIG. 1to access the LAN, e.g., using a Wi-Fi card, in order to troubleshoot the machine13. The worker can immediately obtain the BOM24and technical drawings26for the machine13. Thus, the maintenance task performed by the worker can be simplified. After work on the machine is complete, the worker may also use the personal computer32to enter work completed and identify root cause of failure, or enter work completed for preventive maintenance.