Abstract:
An apparatus for controlling drive of a plurality of actuators is provided. The apparatus comprises a plurality of drive circuits respectively driving the actuators and respectively mounted on a plurality of circuit boards each formed as a module for driving each of the actuators. Each module is detachable to the apparatus. The apparatus comprises a plurality of capacitors each mounted on each of the circuit boards. The capacitors have capacitances different from each other. The apparatus also comprises a charging unit charging the capacitors, a measuring unit measuring a period of time during which a charging potential at each of the capacitors rises up to a predetermined potential, a module type determining unit determining a type of each of the modules in accordance with the period of time for each capacitor measured, and a unit for taking countermeasures depending on a determined result.

Description:
CROSS REFERENCES TO RELATED APPLICATIONS  
       [0001]     The present application relates to and incorporates by reference Japanese Patent application No. 2003-349426 filed on Oct. 8, 2003.  
       BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention relates to a drive controller including a plurality of drive modules for driving a plurality of actuators, and a method for determining the drive module in the drive controller.  
         [0004]     2. Description of the Related Art  
         [0005]     One of control systems that use a plurality of actuators is known as an industrial robot. Such a robot is for example equipped with a robot main body working as a polyarticular type of robot member, a controller controlling the robot main body, and a teaching pendant that can be used to provide necessary commands to the controller.  
         [0006]     In this conventional configuration, the robot main body usually has one or more manipulators each using a plurality of joints, at each of which a drive motor is disposed. The drive motors are driven respectively by drive signals from drive circuits (drivers) disposed in the controller. It is frequent that each of the driver circuits, which is for example an inverter circuit, is formed as an independent module. The reason that the drive circuits are required in the form of modules is as follows.  
         [0007]     In manufacturing the robot system, the configurations of the robot main body and the controller are not always in one-to-one correspondence. It is often that each of the robot main body and the controller is manufactured as a separate product for use in an appropriate combination of the main body and controller. Various ratings of drive motors (such as 750 W, 400 W, 200 W, 100 W, and 50 W) are used to drive each joint of the robot main body. Each inverter circuit incorporated in the controller thus needs to have current capacitance corresponding to the rating of each drive motor.  
         [0008]     Since there are the above-described requirements, the inverter circuits are typically configured as modules detachable to the unit frame of the controller. Any appropriate inverter circuit is selected for use according to the specification of the robot main body that is to be controlled by the controller.  
         [0009]     For the conventional controller, however, mainly the operators check visually if the type of the inverter circuit to be incorporated in the controller corresponds appropriately to the rating of the drive motor on the robot main body. A problem thus arises in that the robot main body may start its operation if the check is neglected, even if the inverter circuit corresponds in ratings to the drive motor in an inappropriate manner (that is, the inverter circuit is not machined to the drive motor). If the robot main body continues to operate regardless of the inappropriate correspondence (mismatched state) between the inverter circuit and the drive motor, the inverter circuit may be overloaded.  
       SUMMARY OF THE INVENTION  
       [0010]     In view of the above problems in the conventional art, the present invention has been made and has an object to provide an apparatus and method for controlling the drive of a plurality of actuators, in which the actuators are driven by drive circuits whose circuits are formed as modules, respectively, which can be mounted in the apparatus without fail, thus avoiding unwanted troubles which may occur in a mismatched state between the drive circuits (modules) and the actuators.  
         [0011]     According to one aspect of the present invention, there is provided an apparatus for controlling drive of a plurality of actuators, comprising: a plurality of drive circuits respectively driving the actuators and respectively mounted on a plurality of circuit boards each formed as a module for driving each of the actuators, each module being detachable to the apparatus; a plurality of capacitors each mounted on each of the circuit boards, the capacitors having capacitance values different from each other; a charging unit charging the capacitors; a measuring unit measuring a period of time during which a charging potential at each of the capacitors rises up to a predetermined potential; a module type determining unit determining a type of each of the modules in accordance with the period of time for each capacitor measured by the measuring unit; and a unit for taking countermeasures depending on a result determined by the module type determining unit.  
         [0012]     For example, the type of the drive module may be determined by providing a dip switch or the like on the circuit board, selecting ON or OFF setting with respect to the type of the drive module, and reading out the selected condition. Such a method, however, needs more data bits to determine more types of the drive modules. For example, determining five or more types of the drive modules needs three bits for each module, and extra signal lines need to be provided, accordingly.  
         [0013]     In contrast, the present invention uses capacitors with different capacitances, which have different times for their charged potential to reach a predetermined potential depending on their capacitance. The measurement of the time can thus determine the types of the drive modules. Because the potential can be observed by selecting sequentially each single signal line provided on each drive module, more types of the drive module do not need more signal lines for each drive module.  
         [0014]     Preferably, the control circuit uses a logic circuit element to determine whether or not the charged potential of the determination capacitor reaches the predetermined potential. Specifically, if the charged potential is given as the input signal to the logic circuit element, the logic circuit element can have a changed output signal level when the charged potential exceeds the threshold level, and the control circuits can thus determine very easily that the charged potential reaches the predetermined potential.  
         [0015]     Still preferably, the control circuit determines whether or not the drive module for each actuator corresponds to the rating of each actuator, and if there is any mismatched combination, the control circuit stops the control of the actuator. The drive circuit can thus be prevented from being overloaded.  
         [0016]     It is also preferred that if there is the above-described any mismatched combination, the control circuit performs notification to a user by a notification means, so that the user can rapidly take action to restart the drive control, such as by exchanging the drive module.  
         [0017]     Preferably, the plurality of actuators drive joints of an articulated robot. Specifically, the multi-articulated robot includes a plurality of actuators corresponding to each joint (i.e., drive shaft), so that the drive controller according to the present invention can be applied to the controller of the robot to determine rapidly whether or not the drive module in the drive controller in question is appropriate to drive each part of the articulated robot.  
         [0018]     As another aspect, the present invention provides the methods for controlling the drive of a plurality of actuators, which is also advantageous over the prior art as described above. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0019]     Other objects and aspects of the present invention will become apparent from the following description and embodiments with reference to the accompanying drawings in which:  
         [0020]      FIG. 1  is a perspective view showing the configuration of an industrial robot system according to an embodiment of the present invention;  
         [0021]      FIG. 2  is a circuit diagram showing the configuration of a controller for controlling a polyarticular type of robot of the robot system, the circuit diagram showing an electrical circuit with a central focus on the controller;  
         [0022]      FIG. 3  shows the internal configuration of an FPGA embedded in the drive controller, particularly a part of the FPGA that is relevant to the scope of the present invention;  
         [0023]      FIG. 4  shows a timing chart illustrative of a signal waveform at each component during the performance of a determination process;  
         [0024]      FIG. 5  shows a flowchart illustrative of the processing performed by a CPU and the FPGA in the controller when the controller is powered on;  
         [0025]      FIG. 6  is a table exemplifying the relation between capacitances given to determination capacitors and count values used by the counter; and  
         [0026]      FIG. 7  is a circuit diagram showing the configuration of a conventional controller for controlling a polyarticular type of robot, the circuit diagram being adopted to show a difference from the configuration of the circuit diagram shown in  FIG. 2 . 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0027]     Referring to  FIGS. 1-7 , an apparatus and method for controlling the dive of plural actuators, which is according to an embodiment of the present invention, will now be described.  
         [0028]     In the present embodiment the control apparatus and method are reduced into practice in an industrial robot system, but is not always limited to such a robot system. Any system is able to use this control apparatus and method, as long as a plurality of actuators is individually driven by drive circuits formed as detachable modules.  
         [0029]      FIG. 1  shows the configuration of an industrial robot system that adopts the control apparatus and method according to the present invention. The system includes a robot main body  1 , a controller  20  for controlling the robot main body  1 , and a teaching pendant connected to the controller  20 .  
         [0030]     The robot main body  1  is configured as an articulated robot, which includes a base  4 , a shoulder  5  that is horizontally and rotatably supported on the base, a lower arm  6  that is vertically and rotatably supported on the shoulder  5 , an upper arm  7  that is vertically and rotatably supported on the lower arm  6 , and a wrist  8  that is vertically and rotatably supported on the upper arm  7 . The wrist  8  includes a rotatable (twistable) flange  9  at its end. Although not shown, hands or gripping works can be attached to the flange  9 .  
         [0031]      FIG. 1  schematically shows a drive system for the robot. For example, a circuit breaker  12  and a power supply switch  13  are connected in series between a commercial single-phase alternating current source (200 V)  10  and each of main power supply lines  11   a  and  11   b.  The power supply switch  13  may include a semiconductor switching element such as a triac, or a mechanical switch such as a relay switch.  
         [0032]     Connected to the main power supply lines  11   a  and  11   b  is a rectifier module  14 , which includes a full wave rectifier circuit and a smoothing capacitor (both not shown). This rectification module  14  has a couple of output terminals, which connects to direct current bus bars  15   a  and  15   b  on the plus and minus sides, respectively. The bus bars  15   a  and  15   b  connect to a plurality of inverter circuits (i.e., drive circuits)  21  (A, B, C, . . . ) for driving a plurality of drive motors (i.e., actuators)  16  (A, B, C, . . . ), each of which is disposed on each joint of the robot main body  1 . The inverter circuits  21  reside in a main circuit of the controller  20 .  
         [0033]     Each inverter circuit  17  is a known circuit that includes six switching elements  18  (such as IGBTs) connected in a three-phase bridge and includes a flywheel diode  19  connected in parallel with each switching element  18 . The controller  20  sends a PWM (i.e., Pulse Width Modulation) signal that turns on and off each switching element  18 .  
         [0034]     Although not specifically shown, to detect displacement positions of the shoulder s, each arm  6 ,  7 , wrist  8 , and flange  9 , the corresponding drive motors  16  each incorporate a rotary encoder. The controller  20  can detect the displacement positions of the shoulder  5 , each arm  6 ,  7 , wrist  8 , and flange  9  based on the detection signals from the rotary encoder to feedback control the components during their operation according to an operation program.  
         [0035]     Moreover the controller  20  is provided with some components inherent to the present embodiment of the present invention.  
         [0036]     Specifically, the inverter circuit  21  (A, B, C, . . . ) resides on a circuit board that bears a capacitor  22  (A, B, C, . . . ) with different capacitance. Each determination capacitor  22  has one end connected to the circuit ground, and the other end connected to the input port of FPGA (i.e., Field Programmable Gate Array)  23 . The inverter circuit  21  (A, B, C, . . . ) is configured as a drive module mechanically detachable to the casing of a controller unit in which the controller  20  is mounted. When being mounted in the casing, the inverter circuit  21  is eclectically connected to the remaining electrical circuit, thus forming the electrical configuration shown in  FIG. 2 .  
         [0037]     The controller  20  is able to control drive motors  16  using mainly CPU (i.e., control circuit)  24  and FPGA (i.e., control circuit)  23 .  FIG. 3  shows the internal configuration of components in the FPGA, particularly the portion thereof that is relevant to the concept of the present invention. The FPGA  23  includes components such as a counter  25 , a data latch  26 , a multiplexer (MPX)  27 , and an AND gate (i.e., logic circuit element)  28 . The multiplexer  27  has each input terminal that connects via an input resistor  30  and an input buffer  31  to a signal line  29  (A, B, C, . . . ) that connects to the other end of the determination capacitor  22  in each inverter circuit  21 .  
         [0038]     The input buffer  31  has an input that connects to the output terminal of the output buffer  32 . The output buffer  32  has a tri-state output and has an input terminal connected to the ground of the circuit (i.e., data “0”). The signal line  29  connects via a pull-up resistor  33  to a 3.3 V control power supply. The pull-up resistor  33  has a diode  34  connected in parallel across it. The multiplexer  27  has an output terminal that connects to one of the input terminals of the AND gate  28 . The AND gate  28  has the other input terminal that receives an enable signal (i.e., high active) for the counter  25 . The AND gate  28  sends an output signal that is provided to the data latch  26  as a latch signal.  
         [0039]     Referring to FIGS.  4  to  6 , the operation and advantages this embodiment will be described below.  
         [0040]      FIG. 5  shows a flowchart illustrative of the processing of a test conducted by both of the CPU  24  and FPGA  23  in a cooperative manner, when the controller  20  is powered on. The test is conducted to exclude erroneously connection (attachment) of the inverter circuits (i.e., drive modules)  21  to the controller  20 .  FIG. 4  shows a timing chart illustrative of the signal waveform at each component during the test of the inverter circuits  21 . The test includes processing for determination of types of the drive modules.  
         [0041]     First, the CPU  24  reads in various control parameters stored in, although not-shown, a non-volatile memory (step S 1 ). The parameters include the specification data of the robot main body  1  inputted using the teaching pendant  3 .  
         [0042]     The CPU  24  then outputs a control signal to FPGA  23  to reset the charge (i.e., discharge) of the determination capacitor  22  (step S 2 ). Specifically, if the output buffer  32  is disabled, then the determination capacitor  22  is charged up to 3.3 V through the pull-up resistor  33  (see  FIGS. 4 , ( a ) and ( b ), time point ( 1 )). If the output buffer  32  is enabled, the signal line  29  is driven to the ground level to discharge the charge of the determination capacitor  22  (see  FIGS. 4 , ( a ) and ( b ), time point ( 2 )).  
         [0043]     The CPU  24  then determines whether or not determining the types of all the inverter circuits  21  (i.e., for all the drive shafts of the robot main body  21 ) has been completed (step S 3 ).. If not (“NO”), the CPU disables the output buffer connected to the signal line  29  of the drive module that is to be determined at that time, and at the same time activates the enable signal for the counter  25  (step S 4 , see  FIGS. 4 , ( a ) and ( c ), time point ( 3 )).  
         [0044]     The determination capacitor  22  then starts being charged to increase its terminal voltage (see  FIG. 4 , ( b )). The counter starts to count at the same time (step  55 ) with the start of the charging. When the charged potential of the determination capacitor  22  reaches 2.0 V (predetermined potential) of the threshold level (Vth) of AND gate  28 , the output terminal of AND gate  28  changes to a high level (see  FIG. 4 , ( d ), time point ( 4 )). The data latch  26  thus latches the count data of the counter  25  at the time point ( 4 ) shown in  FIG. 4  (step S 6 , “YES”). The CPU  24  then reads in the output data from the data latch  26  in FPGA  23 , and determines whether or not the read data corresponds to the rating of the drive motor  16  of the robot main body  1  that is to be driven by the drive module (step S 7 ).  
         [0045]      FIG. 6  shows an example of the capacitance setting of the determination capacitor  22  vs. the count of the counter  25 . The determination capacitor  22  can set six levels of capacitance from “SS” of 120 pF to “LLL” of 2200 μF. These correspond to the types of the drive modules, which vary with the magnitude of the rating of the drive motor  16 . Even if the determination capacitor  22  is not mounted, FPGA  23  can have the input capacitance (stray capacitance and others) of about 20 pF, so that “not mounted” can be used as one setting level.  
         [0046]     The control power supply voltage of 3.3 V is a standard value. The actual voltage values may vary over a range of about 0.3 V between the minimum and maximum voltages. For the determination capacitor  22 , the actual products generally have capacitance with ±5% or ±10% or the like, and these accuracy conditions (i.e., variations) may thus vary the charging time to the predetermined potential and the count. The charging time may generally vary from a few tens of nanoseconds to ten-odd seconds for the entire range from the minimum to maximum capacitance setting of the determination capacitor  22 .  
         [0047]     The counter  25  with 16 bits counts up at 40 MHz clock. The count is then “0” to “5” for “not mounted,” “6” to “27” for “SS,” “33” to “155” for “S,” and “159” to “754” for “M” or the like. The CPU  24  can thus determine the drive module inverter circuit) type according to any count range to which the count of the counter  25  belongs.  
         [0048]     Referring again to  FIG. 5 , at step S 7 , the CPU  24  determines the type of an inverter circuit  21  in question, as described above, based on the count read from the data latch  26  (step S 7 ), and then determines whether or not the determined inverter-circuit type corresponds to the rating of the drive motor  16  of the robot main body  1  that is to be driven by the drive module in question (step S 8 ). If so (i.e., “YES”), the processing is returned to step S 3 , where the multiplexer  27  selects another signal line  29  and a determination is made on the next drive module.  
         [0049]     If there is any mismatched combination of the drive module type and drive motor rating at step  7  (i.e., “NO”), CPU  24  performs notification to the user by a notification means such as by sounding, although not-shown, a buzzer provided on the main body of the controller  20  or by activating a warning lamp (a mismatch error output, step S 9 ). The process is then stopped as it is. Specifically, the controller  20  stops the control of the robot main-body  1  at that time.  
         [0050]     Meanwhile the determination at step S 3  is YES, that is, the determination for all the inverter circuits  21  has been competed, the CPU  24  performs, on a not shown display, that the determination has been completed, before shifting its processing to other types of necessary processing.  
         [0051]     In the present embodiment, both the CPU and the FPGA cooperatively operate to realize the essential part of the charging unit, measuring unit, module type determining unit, countermeasure taking unit, and informing unit of the present invention.  
         [0052]      FIG. 7  shows the configuration of a controller used by a conventional robot system, for a comparison with the controller according to the present embodiment. As shown in  FIG. 7 , a controller  2  is provided instated of the foregoing controller  20 . The controller  2  is identical in configuration and operation to that described in the foregoing embodiment, except that the capacitors  22  (A, B, . . . ), FPGA  23 , and CPU  24  adopted by the present embodiment (in  FIG. 2 ) are eliminated to provide inverter circuits  17  (A, B, . . . ) with no capacitors. Hence, the arrangement of the capacitors  22  (A, B, . . . ), FPGA  23 , and CPU  24  is a distinctive feature for the present invention and making it possible that the drive circuits (drive modules) can be disposed into the controller and connected to the motors without fail when the robot system is installed after being manufactured.  
         [0053]     As described above, this embodiment disposes a determination capacitor  22  with different capacitance on each circuit board bearing each of a plurality of inverter circuits  21 , and allows CPU  24  of the controller  20  to charge each determination capacitor  22  through FPGA  23  and to measure the time for the charged potential to reach a predetermined potential, in order to determine the types of a plurality of drive modules, i.e., the inverter circuits  21 . The capacitance difference between the determination capacitors  22  can thus help to determine the type of each drive module. The charged potential of the determination capacitor  22  can be observed by selecting sequentially each signal line  29  provided on each drive module. This embodiment thus does not need more signal lines  29  on each drive module for more types of the drive module.  
         [0054]     Because the FPGA  23  uses the AND gate  28  to determine whether or not the charged potential of the determination capacitor  22  reaches a predetermined potential, it can be determined very easily whether or not the charged potential reaches a predetermined potential. Because AND gate  28  is a TTL (i.e., Transistor-Transistor Logic), the FPGA  23  can determine the potential more rapidly than with a CMOS logic.  
         [0055]     The CPU  24  determines whether or not the drive module for each drive motor  16  corresponds to the rating of each drive motor  16 , and if there is any mismatched combination, CPU  24  stops the control of the drive motor  16 , so that the inverter circuit  21  can be prevented from being overloaded. In addition, if there is any mismatched combination, CPU  24  performs notification to the user by a notification means, so that the user can rapidly take action to restart the drive control, such as by exchanging the drive module.  
         [0056]     Because the present invention is applied to the drive controller  20  for controlling the articulated robot main body  1 , it is possible to rapidly determine whether or not the drive module appropriately matches the robot main body  1  having the number of drive motors  16  for driving each joint.  
         [0057]     The present invention is not limited to the embodiments described herein and shown in the drawings, and various other changes and extension may be made as follows.  
         [0058]     The notification by the notification means may be performed if necessary.  
         [0059]     Instead of stopping the drive motor  16  when the matching is inappropriate, CPU  24  may, if the controller  20  contains extra drive modules, automatically select connection to a drive module that appropriately matches the drive motor  16  and then start to drive the drive motor  16 .  
         [0060]     The present invention is not limited to FPGA  23 , but any other devices such as agate array and a discrete device may be used to form the same circuit.  
         [0061]     For the circuit that determines the charged potential, AND gate  28  may be replaced by a CMOS logic AND gate or a comparator.  
         [0062]     The switching element included in the inverter circuit  21  is not limited to IGBT, but may be a power transistor or a power MOSFET.  
         [0063]     The actuator is not limited to the drive motor  16 , but may be in any form that can displace the driven object according to the electrical signal.  
         [0064]     Of course, the commercial alternator may be in three phases and the voltage may be 100 V.  
         [0065]     The present invention is not limited to the application to the robot controller, but may be applied to any drive controller that includes a plurality of drive circuits for driving a plurality of actuators.  
         [0066]     The present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the present invention being indicated by the appended claims rather than by the foregoing description and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.