MACHINE CONTROLLER

Abstract: A machine controller which can execute control asynchronously and simultaneously even when control objects compete in a plurality of jobs. The controller includes first execution means for storing commands describing the operation of a plurality of control objects as a first cooperative job and for executing them, second execution means for storing commands describing the operation of at least one control object other than a plurality of control objects governed by the first execution means as a second cooperative job and for executing them, and third execution means for storing commands for activating the first and second series execution means and for executing them asynchronously and simultaneously. The first and second execution means have a master-slave relation, and one designated as the slave refers to the output of the other as the master so as to correct the command of its own.

Description: [Technical Field] The present invention relates to a controller for industrial robots and more particularly to a machine controller which is applicable when a control object (a mechanism comprising a robot(s) and one or a plurality of external axes) is commonly used for performing a plurality of jobs. [Background Technology] As disclosed in Japanese Unexamined Patent Publication No. Hei 4-252304, a known method exists for controlling a robot and a turntable comprising a plurality of axes and, as disclosed in Japanese Unexamined Patent Publication No. Sho 63-216689, it also causes a cooperative operation to be performed by a single robot and a plurality of positioners. A machine controller of this kind is disclosed in US 5 127 104 which has been used to formulate the preamble part of claim 1. To control the operation of a lathe, several execution means are provided. Control objects of the first execution means are the X1 axis and Z1 axis of a first cutter table, control objects of the second execution means are the X2 axis and the Z2 axis, control objects of the third execution means are the X3 axis and Z3 axis. Therefore, each of the execution means controls different axes. US 3 890 552 describes program controlled manipulators, where first and second manipulators cooperate which each other in executing a series of operations including motions in what may be called the mirror-image mode. The control objects are axis, as for example described in connection with figures 4 and 6. EP 0 416 116 A1 describes a spindle control instruction system for controlling a plurality of spindles either individually or synchronously. Again, the control objects are axes. EP 0 087 983 again relates to the control of axis in a manipulator or robot having a plurality of power-driven, signal-controlled links which are controlled to perform movements corresponding to store sequences of command positions. A non-synchronous mode of operation and a synchronous mode are possible. None of these documents suggests that the machine controller controls a plurality of control objects or that each of the control objects is controlled as a set of one or more axis. Further, as shown in Fig. 1, there exists a method by which three control objects (two robots (B) and (C) and a single station (A) comprising a plurality of axes) are controlled by a single controller. In this case, all the control objects (A) - (B) - (C) are controlled synchronously with one another or in such a manner that a cooperative operation is first performed between (A) and (B) and after that, a cooperative operation is performed between (A) and (C). However, where all the control objects (A) - (B) - (C) are synchronously controlled, since the control objects are controlled in a simultaneous start/stop mode, they can not be controlled individually at separate speeds. Further, where a cooperative operation is performed between (A) and (C) after the completion of a cooperative operation between (A) and (B), the control object (C) can work independently during the cooperative operation between (A) and (B) and the control object (B) can work independently during the cooperative operation between (A) and (C). However, a problem exists in that control objects (C) or (B) cannot both perform a cooperative operation with (A) at the same time, thus lowering working efficiency. [Disclosure of the Invention] Accordingly, the present invention has been developed to eliminate the above problem, and an object of the present invention is to provide a machine controller which is capable of controlling the machine asynchronously and simultaneously even when control objects compete in a plurality of jobs. In order to solve the above problem, the present invention provides a machine controller for controlling a plurality of control objects such as robots, external axes and etc. The machine controller is characterized by the provision of: a first system execution means for storing a command describing the operation of a plurality of control objects as a first cooperative job and for executing it; a second system execution means for storing a command describing the operation of any one of the plurality of control objects and the operation of at least one control object other than the plurality of control objects governed by the first system execution means as a second cooperative job and for executing it; and a third system execution means for storing commands for starting the first system execution means and the second system execution means and for executing them asynchronously and simultaneously. It should be noted in this connection that the third series execution means is a specific system execution means governing the starting of the first and second system execution means, and has the function of regulating the master/slave relationship between the first and second system execution means. The execution system designated as the slave corrects its own command by referring to the output of the other as the master. [Brief Description of the Drawings] Fig. 1 is a perspective view of a system to which the present invention is applicable; Fig. 2 is a conceptual diagram illustrating one embodiment of the present invention; Fig. 3 is an illustration of the operation of a machine controller according to the present invention; Fig. 4 is a view showing an example of a job of bilateral symmetry; Fig. 5 is an illustration of a position data reversing axis where a job according to the present invention is bisymmetrical; and Fig. 6 is an illustration of an operation when the job is bisymmetrical. [Best Modes for Executing the Invention] One embodiment of the present invention will now be described with reference to the accompanying drawings. Fig. 2 shows one embodiment of the present invention wherein a machine controller 10 comprises three system execution sections including a system-0 execution section 1, a system-1 execution section 2 and a system-2 execution section 3, an operation command output area 4 and a drive control section 5. Each of the system execution sections is taught by a teaching device 6 to interpret and execute stored commands, and generates an operation command prepared thereby to an operation command output area 4. When the operation commands are ready, they are simultaneously given so that a plurality of control objects can be driven. These execution systems become executable asynchronously with one another in a multitask mode. The term "system" means a job and one job is a command row with respect to a set of at least two machines. However, system-0 differs from the remaining systems in that it governs only the commands to the other systems. In the present application, the job done by system-0 is called a "master job" and the job governing the actual operation is called a "subjob". In the present invention, the controller is provided with a single system-0 execution section and two or more system execution sections governing actual operations. Further, as will be described later, the above-mentioned two or more system execution sections effecting actual operations are classified into a main system execution section and other dependent system execution sections. It should be noted that jobs between the systems are executed asynchronously, but a plurality of control objects governed by systems other than system-0 are controlled synchronously with one another within the systems. Accordingly, the job to be governed by each of the systems may be called a cooperative job. The operation of the controller according to the present invention will be described by taking, as an example, a case in which a job shown in Fig. 3 is executed. Reference numeral 201 designates a master job to be executed by the system-0 execution section, reference numeral 202 designates a subjob (SUB1) to be executed by the series 1 execution section so as to drive control objects (A) and (B), and reference numeral 203 designates a subjob (SUB2) to be executed by the system-2 execution section so as to drive control objects (A) and (C). That is, subjobs 1 and 2 have control object (A) in common. In the instant example, control objects (B) and (C) are welding robots and control object (A) is a station (i.e., work positioner). The essential nature of the present invention, however, has nothing at all to do with what the control objects (A), (B) and (C) actually are. Upon reception of the second line command, master job 201 causes the system-1 execution section to start (PSTART) to execute the subjob (SUB 1). Similarly, upon reception of the third line command, master job 201 causes the system-2 execution section to start (PSTART) to execute the subjob (SUB 2), but in this case, the attachment of the indication [SYNC] to the command indicates that the control object is doubled with the result that the job attached with the indication [SYNC] becomes a slave and the job without the indication [SYNC] becomes a master. Where there are three or more jobs, only one of them is without the indication [SYNC] with all the remaining jobs being attached with the indication [SYNC]. In the case of system-1, since operations with respect to control objects (A) and (B) are already taught, the system-1 execution section interprets and executes commands relating thereto so that the operation commands on control objects (A) and (B) are written in operation command output area 4. Similarly, in the case of system-2, the system-2 execution section interprets and executes the commands relating thereto, but since system-2 has the knowledge from system-0 that it is with the indication SYNC (i.e., dependent on the series 1), it calculates the difference between operation command output data (which is temporarily stored in the operation command output area 4 for reference) prepared by the system-1 and teaching data (which is taught by the teaching device 6 and stored) with respect to control object (A) which is also governed by system-1, prepares operation command output data on control object (C) to compensate for the difference calculated, and the prepared data is written in the operation command output area. The reason why the operation command output data is prepared is so that, as the operating locus (i.e., the welding line of the robot) of control object (C) deviates due to the rotation of the station of control object (A), it is necessary to correct the amount of deviation. Thus, when the operation command output data for all control objects has been prepared, the data is actually outputted to the servo system. That is, the main system executes its own control operation without any regard for the other systems, but each of the dependent series refers to the operation command output data from the main system and corrects its own operation command to be affected thereby every control cycle. Thus, all commands with respect to the axes of all control objects are put together to be passed to drive control section 5 so that there will be no fear that the operation of any system designated as a dependent (or slave) system is delayed with respect to the main system. Next, a teaching method in the example shown in Fig. 3 will be described. (1) To teach a cooperative job (SUB 1) between robot B and station A. (2) To register a cooperative job (SUB 2) between robot C and station A (To temporarily register only the title without any concrete teaching). (3) To prepare and register the master job. (4) To cause the master job to perform a next operation (to cause the master job to operate step by step for operation confirmation). To cause two PSTART commands to be executed to start SUB 1 and SUB 2. (5) To make the operating object for SUB 1 (on the premise that the designation of the job desired can be made through the key switch ((not shown)) of the teaching device), to cause robot B to move to step 1 (the first teaching point) and to determine the position of station A. (6) To switch the operating object to SUB 2 and to teach step 1 (the first teaching point) of robot C with respect to SUB 1. (7) Even after step 2 (the second teaching point) downward, to teach steps in the order of the above paragraphs (5) and (6). As described above, since the designation and switching of the job desired can be made through the key switch of display device 6, the position determined in a certain job can be made use of for the preparation and addition of other jobs in a simple manner. In addition, where the work is bisymmetrical (refer to Fig. 4), it is possible to prepare a cooperative job (SUB 2) between robot C and station A' as described below after teaching the cooperative job (SUB 1) between robot B and station A'. This can be realized in such a manner that when one operation is taught to a first cooperative job and the operation of more than one control object other than a plurality of control objects governed by the above-mentioned first cooperative job is produced as a second cooperative job, a conversion means is additionally provided in controller 10 so that the position data of the control object other than the control objects governed by the first cooperative job is converted to become bisymmetrical on the basis of the position data of the control objects governed by the first cooperative job. Practically, the work job stored in the series 1 execution section is read out. Where the work is bisymmetrical, the rotational directions (indicated by arrows) of specific axes determined by the robot mechanism (in the case of the robots in the instant embodiment, the first, fourth and sixth axes as shown in Fig. 5) are reversed to generate position data to thereby make the job for the system-2 execution section. As a result, the operation will be as illustrated in Fig. 6. Where the work is the same on both right and left sides, mere copying of the job stored in the System-1 execution section can of course serve the purpose. As described above, according to the present invention, even when control objects are overlapping, they can be controlled simultaneously and asynchronously so that the working efficiency can be improved. Further, the teaching regarding subjobs is quite the same as in the conventional system and it is only the regulation of the master/slave relationship in master jobs. For this reason, the simple alteration of the master/slave relationship after teaching provides an extremely high degree of practicality. [Industrial Availability] The present invention applies to a case where a plurality of robots perform a welding operation in cooperation with one another.

Claims: A machine controller for cooperatively controlling a plurality of control objects (A, B, C) such as robots, external axes and the like, each of said control objects being controlled as a set of one or more axes and through execution means, said machine controller comprising: a first system execution means (2) which stores commands describing the operation of said plurality of control objects (A, B) as a first cooperative job (202) and executes them; and at least one second system execution means (3) which stores commands describing the operations of any one of the plurality of control objects (A) governed by said first system execution means (2) and one or more control objects (C) other than said plurality of control objects (A, B) as a second cooperative job (203) and executes them; characterized by a third system execution means (1) which stores only commands (201) for starting said first system execution means (2) and said at least one second system execution means (3) and which executes them asynchronously and simultaneously and wherein said first system execution means (2) are designated as a master and said second system execution means (3) are designated as a slave by said third system execution means (1) and further characterized in that said first system execution means (2) executes its commands without any regard for the other systems and that said at least one second system execution means (3) executes the commands by calculating the difference between operation command output data prepared by said first system execution means (2) and data with respect to a control object (A) also governed said first system execution means (2), and prepares operation command output data on a control object C) not governed by said first system execution means (2) to compensate for the difference calculated. A machine controller according to claim 1, wherein a conversion means is provided such that in case where the operations of a plurality of control objects (B, C) are performed symmetrically, and when one operation is taught to the first cooperative job (SUB1) and the operation of one or more control objects (C, A') other than a plurality of control objects (B, A') governed by said first cooperative job (SUB1) is produced from the cooperative job, as a second cooperative job (SUB2), position data of said one or more control objects (C, A') is converted to become symmetrical on the basis of the position data of the control objects (B, A') governed by said first cooperation job (SUB1). A machine controller according to claim 1, comprising an operation command output area (4) for temporarily storing an operation command outputted from the system execution means (2, 3). A machine controller according to claim 1, wherein the system execution means designated as the slave refers to the operation command outputted to said operation command output area (4) with respect to the system execution means designated as a master and controls its own operation so as to compensate for the difference at the time of teaching. A machine controller according to claim 4, wherein a means capable of designating and switching an operation object job for preparing and editing said cooperative job is provided so that a position designated by a certain cooperative job can be used for the preparation and addition of any other job.

Inventors: OKABAYASHI KAZUO, SAKANASHI KOUJI, OKABAYASHI, KAZUO, SAKANASHI, KOUJI, OKABAYASHI, Kazuo, Kabushiki Kaisha Yaskawa Denki, SAKANASHI, Kouji, Kabushiki Kaisha Yaskawa Denki
Applicants: YASKAWA DENKI SEISAKUSHO KK, KABUSHIKI KAISHA YASKAWA DENKI
Application year: 1995
Main classification: G05B19
IPC codes: B25J9