Control program generation device, control program generation method, and program

By grouping sub-periods into parallel periods and allowing simultaneous execution of basic operations, the control program generation device and method address the issue of long operation times in automated manufacturing machines, enhancing efficiency.

JP7808865B2Active Publication Date: 2026-01-30OPTON CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023179201
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-02-03
Filing Date
2023-10-17
Publication Date
2026-01-30
Estimated Expiration
2043-10-17

AI Technical Summary

Technical Problem

Existing control programs for automated manufacturing machines take a long time to complete operations due to waiting times caused by actuators with significantly different operation durations within the same sub-periods.

Method used

The control program generation device and method employ a configuration that groups consecutive sub-periods into parallel periods, allowing simultaneous execution of basic operations across these periods, thereby reducing wait times and shortening the overall operation time.

Benefits of technology

This approach enables the automatic generation of a control program that significantly reduces the time required for an automated manufacturing machine to start and finish its operations by eliminating long wait times between actuators with varying operation durations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007808865000001
    Figure 0007808865000001
  • Figure 0007808865000002
    Figure 0007808865000002
  • Figure 0007808865000003
    Figure 0007808865000003
Patent Text Reader

Abstract

To automatically generate a control program (400) in which an automatic manufacturing machine (10) has a short operation time from start to finish of the operation.SOLUTION: The operation of an automatic manufacturing machine is described by allocating basic operations of actuators to a plurality of partial periods of an operation chart, and a control program is generated by combining program elements corresponding to the basic operations in the order of the partial periods on the operation chart. A parallel period (210) in which a plurality of partial periods and a plurality of parallel partial periods are formed in parallel is set in the operation chart, and the basic operation of a predetermined selected actuator is assigned to the parallel partial periods of the parallel period, and the basic operation of an actuator other than the selected actuator is assigned to the partial periods of the parallel period. Within the parallel period of the operation chart, program elements of the basic operations assigned to the parallel partial periods are combined in the order of the parallel partial periods, and the program elements of the basic operations assigned to the partial periods are combined in the order of the partial periods to generate the control program.SELECTED DRAWING: Figure 12
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a technique for automatically generating a control program for an automated manufacturing machine equipped with multiple actuators. [Background technology]

[0002] A technology has been developed that automatically generates a control program for an automated manufacturing machine by recording the operations of multiple actuators installed in the automated manufacturing machine on a special operation chart (hereinafter referred to as a YOGO chart) and loading the YOGO chart into a computer (Patent Document 1). The YOGO chart is a tabular chart with multiple vertical and horizontal axes, and one of the vertical or horizontal axes is assigned to each of the multiple actuators installed in the automated manufacturing machine. The other axis of the YOGO chart represents the operation period from when the automated machine starts to when it finishes its operation, and this operation period is divided into multiple subperiods. Therefore, each square in the tabular YOGO chart corresponds to a combination of one of the multiple actuators and one of the multiple subperiods. Therefore, in the YOGO chart, the actuator that performs the operation and the subperiod in which it will operate are specified by recording the actuator's operation in the position of the square.

[0003] Furthermore, the basic operation of the actuator is written in the squares of the YOGO chart. Here, the basic operation of the actuator is the most basic operation of the actuator, such as moving the actuator forward or backward a predetermined distance or rotating it by a predetermined angle. Since any complex operation of an automated manufacturing machine can be broken down into the basic operations of individual actuators, the operation of the automated manufacturing machine can be described by writing the basic operations in the squares of the YOGO chart. Once such a YOGO chart is created, the automated manufacturing machine can be made to perform the desired operation by repeatedly reading the contents assigned to each partial period, starting from the first, and causing the actuator to perform the basic operation. For this reason, a control program for operating an automated manufacturing machine can be automatically generated from the YOGO chart. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Patent No. 6829505 Summary of the Invention [Problem to be solved by the invention]

[0005] However, the above-mentioned developed technology has a problem in that the time required for an automated manufacturing machine to start and finish its operation can be long. The reason for this is as follows: First, a control program automatically generated from a YOGO chart operates multiple actuators in the order of their sub-periods. Here, if there are multiple actuators operating in the same sub-period, and one of those actuators takes a long time to operate, the next sub-period operation cannot begin until that actuator has finished operating. Therefore, for the other actuators, the time from when they finish their operation until the last actuator finishes operating becomes a waiting time. Furthermore, if one of the multiple actuators operating in the same sub-period takes a particularly long time compared to the other actuators, the waiting time becomes particularly long. When such a long waiting time occurs, the time required for an automated manufacturing machine to start and finish its operation becomes long.

[0006] The present invention has been made to solve the above-mentioned problems associated with previously developed technologies, and aims to provide technology for automatically generating a control program that shortens the time required for an automatic manufacturing machine to finish operating. [Means for solving the problem]

[0007] In order to solve the above-mentioned problems, the control program generating device of the present invention employs the following configuration: A control program generator (110) for generating a control program (400) for an automated manufacturing machine (10) having a plurality of actuators, comprising: a basic operation storage unit (112) that stores basic operations in which the actuator operates in the direction of the degree of freedom of the actuator by a specified operation amount, in association with program elements that realize the basic operations; an operation chart reading unit (111) that reads an operation chart (200) in which an operation period from when the automatic manufacturing machine starts to when it finishes its operation is divided into a plurality of partial periods, the operation of the automatic manufacturing machine is broken down into a plurality of basic operations, and the basic operations are assigned to any one of the plurality of partial periods, thereby describing the operation of the automatic manufacturing machine; a control program generating unit (113, 114) that generates the control program for operating the automatic manufacturing machine by combining the program elements of the plurality of basic operations assigned to the plurality of partial periods on the operation chart in accordance with the order of the partial periods on the operation chart; Equipped with The operation chart read by the operation chart reading unit is Two or more consecutive partial periods among the plurality of partial periods are grouped together to form a parallel period (210); In the parallel period, a plurality of the partial periods and a plurality of parallel partial periods (212) that divide the parallel period are formed in parallel, the basic operation of a selected actuator selected from the plurality of actuators is assigned to the parallel partial period of the parallel period, the basic operation of the actuator other than the selected actuator is assigned to the partial period of the parallel period; The control program generation unit The program elements of the basic operations assigned to the parallel sub-periods within the parallel period are combined in accordance with the order of the parallel sub-periods; The program elements of the basic operations assigned to the partial periods within the parallel period are combined in accordance with the order of the partial periods to generate the control program. It is characterized by:

[0008] Furthermore, the control program generating method of the present invention corresponding to the above-mentioned control program generating device employs the following configuration: A control program generation method for generating a control program (400) for an automated manufacturing machine (10) having a plurality of actuators by a computer, comprising: an operation chart reading step (STEP 1) for reading an operation chart (200) in which an operation period from when the automatic manufacturing machine starts to when it finishes its operation is divided into a plurality of partial periods, the operation of the automatic manufacturing machine is decomposed into a plurality of basic operations in which the actuator moves in the direction of the degree of freedom of the actuator by a specified operation amount, and the basic operation is assigned to any one of the plurality of partial periods, thereby describing the operation of the automatic manufacturing machine; a control program generation step (STEP 4 to STEP 6) of converting the basic operations described in the operation chart into program elements by referring to a correspondence relationship in which the basic operations described in the operation chart and program elements for realizing the basic operations are associated and stored, and combining the program elements in accordance with the order of the partial periods, thereby generating the control program for operating the automatic manufacturing machine; Equipped with The operation chart read in the operation chart reading step is Two or more consecutive partial periods among the plurality of partial periods are grouped together to form a parallel period (210); In the parallel period, a plurality of the partial periods and a plurality of parallel partial periods (212) that divide the parallel period are formed in parallel, the basic operation of a selected actuator selected from the plurality of actuators is assigned to the parallel partial period of the parallel period, the basic operation of the actuator other than the selected actuator is assigned to the partial period of the parallel period; The control program generation step includes: The program elements of the basic operations assigned to the parallel sub-periods within the parallel period are combined in accordance with the order of the parallel sub-periods; The program elements of the basic operations assigned to the partial periods within the parallel period are combined in accordance with the order of the partial periods to generate the control program. It is characterized by:

[0009] In the control program generation device and control program generation method of the present invention, the operation of an automated manufacturing machine is described by assigning basic operations of actuators to multiple sub-periods of an operation chart, and a control program is generated by combining program elements corresponding to the basic operations in accordance with the order of the sub-periods on the operation chart. The control program thus generated operates the automated manufacturing machine by executing the program elements of the basic operations assigned to the sub-periods in order, starting from the first sub-period. Furthermore, a parallel period set in the operation chart is formed by multiple sub-periods and multiple parallel sub-periods in parallel, and a basic operation of a selected actuator selected from multiple actuators is assigned to a parallel sub-period of a parallel period. Furthermore, a basic operation of an actuator other than the selected actuator is assigned to a sub-period that is not a parallel sub-period within a parallel period. Within a parallel period of the operation chart, the program elements of the basic operations assigned to the parallel sub-periods are combined in accordance with the order of the parallel sub-periods, and the program elements of the basic operations assigned to the sub-periods are combined in accordance with the order of the sub-periods, thereby generating a control program.

[0010] In a control program generated from an operation chart, program elements corresponding to basic operations assigned to sub-periods are executed in order, starting from the first sub-period. When multiple basic operations are assigned to the same sub-period, the basic operation of the next sub-period cannot start until the basic operation requiring the longest operation time among those basic operations is completed. This causes a wait time for the short-time basic operations. The greater the difference in the operation times required for multiple basic operations assigned to the same sub-period, the longer the wait time, resulting in a longer operation time for the automated manufacturing machine. However, by forming a parallel period in which multiple sub-periods and multiple parallel sub-periods are arranged in parallel in an operation chart and assigning basic operations to the sub-periods and parallel sub-periods of a parallel period, the next parallel sub-period can start without waiting for the completion of the basic operation in the previous sub-period, and the next sub-period can start without waiting for the completion of the basic operation in the parallel sub-period. This prevents long wait times from occurring even when a short-time basic operation and a long-time basic operation are executed in parallel. As a result, it is possible to automatically generate a control program that shortens the time required for an automatic manufacturing machine to complete its operation from start to finish.

[0011] Furthermore, the control program generation device of the present invention described above may be configured to read a local chart separately from an operation chart describing the operation of the automatic manufacturing machine. Here, a local chart is a small operation chart created by extracting a parallel period from the operation chart and assigning at least one basic operation of a selected actuator to each parallel sub-period of the parallel period. Then, instead of assigning at least one basic operation of a selected actuator to each parallel sub-period in the parallel period of the operation chart describing the operation of the automatic manufacturing machine, a local chart symbol unique to the local chart may be assigned to the parallel period.

[0012] In this way, the local chart can be identified based on the local chart symbol assigned to the parallel period of the operation chart, and the basic operation of the selected actuator assigned to the parallel partial period of the parallel period of the operation chart can be identified based on the local chart. In this way, the basic operation of the selected actuator can be assigned to the parallel partial period of the parallel period of the operation chart via the local chart, so there is no need to assign the basic operation to the parallel partial period on the operation chart. As a result, the work of creating the operation chart and the work of understanding the contents of the operation chart become easier.

[0013] The control program generation method of the present invention can also be understood as a program for realizing the control program generation method using a computer. A program for implementing a method for generating a control program (400) for an automated manufacturing machine (10) having a plurality of actuators using a computer, comprising: an operation chart reading function (STEP 1) for reading an operation chart (200) in which an operation period from when the automatic manufacturing machine starts to when it finishes its operation is divided into a plurality of partial periods, the operation of the automatic manufacturing machine is decomposed into a plurality of basic operations in which the actuator moves in the direction of the degree of freedom of the actuator by a specified operation amount, and the basic operation is assigned to any one of the plurality of partial periods, thereby describing the operation of the automatic manufacturing machine; a control program generation function (STEP 4 to STEP 6) that converts the basic operations described in the operation chart into program elements by referring to a correspondence relationship in which the basic operations described in the operation chart and program elements for realizing the basic operations are associated and stored, and combines the program elements in accordance with the order of the partial periods, thereby generating the control program that operates the automatic manufacturing machine; is realized using the computer, and The operation chart read by the operation chart reading function is Two or more consecutive partial periods among the plurality of partial periods are grouped together to form a parallel period (210); In the parallel period, a plurality of the partial periods and a plurality of parallel partial periods (212) that divide the parallel period are formed in parallel, the basic operation of a selected actuator selected from the plurality of actuators is assigned to the parallel partial period of the parallel period, the basic operation of the actuator other than the selected actuator is assigned to the partial period of the parallel period; The control program generation function The program elements of the basic operations assigned to the parallel sub-periods within the parallel period are combined in accordance with the order of the parallel sub-periods; The function is to generate the control program by combining the program elements of the basic operations assigned to the partial periods within the parallel period in accordance with the order of the partial periods. It is characterized by:

[0014] By loading and executing such a program into a computer, it is possible to automatically generate a control program that shortens the time required for an automatic manufacturing machine to start and finish its operation. [Brief explanation of the drawings]

[0015] [Figure 1] 1 is an explanatory diagram showing the general structure of a pipe bender 10 controlled by a control device 100 of the present embodiment. [Figure 2] 1 is a block diagram conceptually showing how a control device 100 controls the operations of various actuators Ac10 to Ac18 mounted on a pipe bender 10. FIG. [Figure 3] This is an explanatory diagram of the basic principle of automatically generating a control program from a YOGO chart. [Figure 4]FIG. 4 is an explanatory diagram of several basic actions used in the YOGO chart of FIG. 3. [Figure 5] This is an explanatory diagram showing the results of classifying multiple basic actions that can be used in the YOGO chart. [Figure 6] FIG. 2 is an explanatory diagram illustrating a portion of a YOGO chart 200. [Figure 7] 10 is an explanatory diagram illustrating an example of how parameter values ​​are set for parameter symbols 206b written on a YOGO chart 200. FIG. [Figure 8] FIG. 10 is an explanatory diagram showing why a control program automatically generated from a YOGO chart 200 tends to take a long time from when an automatic manufacturing machine starts to when it finishes its operation. [Figure 9] FIG. 2 is an explanatory diagram illustrating a YOGO chart 200 of the present embodiment in which a parallel period 210 is set. [Figure 10] FIG. 2 is an explanatory diagram conceptually showing the structure of a YOGO chart 200 in which a parallel period 210 is set. [Figure 11] 2 is an explanatory diagram in which a YOGO chart 200 in which a parallel period 210 is set is redrawn so that the length of an operating line 203 represents the length of the actuator operating time. [Figure 12] FIG. 10 is an explanatory diagram illustrating another example of a YOGO chart 200 in which a parallel period 210 is set. [Figure 13] FIG. 10 is an explanatory diagram illustrating another example of a YOGO chart 200 in which a parallel period 210 is set. [Figure 14] FIG. 2 is an explanatory diagram of a control program generating device 110 installed in the control device 100. [Figure 15] 10 is a flowchart of a control program generation process executed by the control program generator 110 to generate a control program from a YOGO chart 200. [Figure 16] FIG. 2 is an explanatory diagram illustrating a YOGO chart 200 that is read in the control program generation process. [Figure 17] FIG. 2 is an explanatory diagram showing a main chart 200M separated from a YOGO chart 200. [Figure 18] FIG. 18 is an explanatory diagram showing a local chart 200L incorporated in the area surrounded by the dashed line in FIG. 17. [Figure 19] FIG. 18 is an explanatory diagram showing a local chart 200L incorporated in the area surrounded by the two-dot chain line in FIG. 17. [Figure 20] 10 is a flowchart of an intermediate data generation process executed during the control program generation process. [Figure 21] FIG. 10 is an explanatory diagram illustrating an example of intermediate data 300M generated from a main chart 200M. [Figure 22] FIG. 10 is an explanatory diagram illustrating intermediate data 300M to which the start position and end position of a local chart 200L have been added. [Figure 23] 10 is an explanatory diagram illustrating intermediate data 300L of a local chart 200L generated by a YOGO chart analysis process. FIG. [Figure 24] FIG. 10 is an explanatory diagram illustrating a main program 400M generated by converting intermediate data 300M of a main chart 200M. [Figure 25] FIG. 10 is an explanatory diagram illustrating a local program 400L generated by converting intermediate data 300L of a local chart 200L. [Figure 26] 10 is a flowchart of the first half of the operation control process executed by the operation control device 120 using a control program. [Figure 27] 10 is a flowchart of the second half of the operation control process. [Figure 28] 10 is a flowchart of the first half of a local program execution process that is started in the operation control process. [Figure 29] 10 is a flowchart of the second half of the local program execution process. [Figure 30] FIG. 10 is an explanatory diagram illustrating a YOGO chart 200 of a first modified example in which a local chart symbol 220 is entered. [Figure 31]FIG. 10 is an explanatory diagram illustrating a local chart 200L corresponding to a local chart symbol 220 called "lclchrt1." [Figure 32] FIG. 10 is an explanatory diagram illustrating a local chart 200L corresponding to a local chart symbol 220 called "lclchrt2." [Figure 33] FIG. 10 is an explanatory diagram illustrating a YOGO chart 200 of a second modified example in which multiple types of local chart symbols 220 with different numbers of parallel partial periods 212 are written in the same parallel period 210. [Figure 34] FIG. 2 is an explanatory diagram illustrating a global chart 200G. [Figure 35] FIG. 10 is an explanatory diagram illustrating a second modified YOGO chart 200 in which a local chart symbol 220 and a global chart symbol 230 are depicted. [Figure 36] FIG. 10 is an explanatory diagram illustrating another aspect of the YOGO chart 200 of the second modified example. DETAILED DESCRIPTION OF THE INVENTION

[0016] A. Equipment configuration: FIG. 1 is an explanatory diagram illustrating the general external shape of a pipe bender 10. The pipe bender 10 is a type of automatic manufacturing machine that can automatically bend long pipe material to form it into a desired shape. In the following description, the automatic manufacturing machine will be described as the pipe bender 10, but it may be any automatic manufacturing machine other than the pipe bender 10 as long as it is equipped with multiple actuators and can automatically perform multiple operations on an object, such as gripping, transporting, processing, and heating. For example, it may be an arm robot with multiple joints, or a manufacturing system that combines an arm robot with multiple joints and a transport device.

[0017] The pipe bender 10 illustrated in FIG. 1 has a roughly horizontally elongated rectangular parallelepiped exterior shape. Two rails 11 are installed longitudinally on the top surface of the rectangular parallelepiped. A conveying unit 12 is mounted on one end (the left side in FIG. 1 ) of the rails 11, which grips and conveys a pipe material (not shown) to be processed. Furthermore, a processing unit 13 is mounted on the opposite side of the side on which the conveying unit 12 is mounted, which performs a bending process on the pipe material (not shown). A cylindrical gripping shaft 12a protrudes from the conveying unit 12, and a chuck 12b is attached to the tip of the gripping shaft 12a, which grips the pipe material (not shown). Therefore, by moving the conveying unit 12 on the rails 11 while the pipe material is gripped by the chuck 12b, the pipe material can be supplied to the processing unit 13, where it can be bent.

[0018] The pipe bender 10 of this embodiment can control the feed rate of the pipe material by the movement of the transport unit 12, allowing for flexible adjustment of the bending position on the pipe material. Furthermore, the pipe material can be bent in a desired direction by rotating the gripping shaft 12a, to which the chuck 12b is attached, around its axis (i.e., twisting). To achieve this, the transport unit 12 is equipped with an actuator Ac10 for opening and closing the chuck 12b, an actuator Ac11 for rotating the gripping shaft 12a around its axis, an actuator Ac12 for translating the gripping shaft 12a in the left-right direction relative to the axial direction, and an actuator Ac13 for moving the transport unit 12 back and forth on the rail 11. In the pipe bender 10 of this embodiment, these actuators Ac10 to Ac13 are all AC servo motors powered by AC power sources. However, actuators of other drive types (e.g., hydraulic cylinders, solenoids, pulse motors, etc.) can also be used depending on the performance required of the actuators. The conveying unit 12 is also equipped with sensors such as an encoder and a limit switch for detecting the rotational position of the gripping shaft 12a and the movement position of the conveying unit 12, but these are omitted from Figure 1 to avoid cluttering the drawing.

[0019] A plurality of actuators Ac15, Ac16, Ac17, and Ac18 used to bend the pipe material are mounted inside the processing unit 13. Furthermore, an actuator Ac14 is also mounted in the space below the two rails 11. The operation of these actuators Ac14 to Ac18 will be explained in detail later. Note that switches and sensors such as encoders and contact switches are also mounted inside the processing unit 13 and in the space below the two rails 11, but these are not shown in the drawings to avoid cluttering the drawing.

[0020] The machining unit 13 also includes multiple driver amplifiers (not shown) for driving the multiple actuators Ac10 to Ac18. Here, a driver amplifier is an electrical component having the following functions: To cause the actuators Ac10 to Ac18 to perform the desired operation, it is necessary to supply each actuator Ac10 to Ac18 with a drive current having an appropriate waveform and voltage. However, the drive current to be supplied to the actuators Ac10 to Ac18 differs depending on the drive method of the actuators Ac10 to Ac18. Furthermore, even for actuators of the same method, the waveform and voltage of the drive current differ depending on the actuator. Therefore, a dedicated electrical component called a driver amplifier is provided for each of the actuators Ac10 to Ac18. When a drive amount is specified for each driver amplifier from the control device 100 that controls the pipe bender 10, the driver amplifier outputs an appropriate drive current to the actuators Ac10 to Ac18 to drive the actuators Ac10 to Ac18.

[0021] 2 is an explanatory diagram showing how a plurality of actuators Ac10 to Ac18 mounted on a pipe bender 10 are connected to a control device 100 via driver amplifiers DA10 to DA18. A driver amplifier DA10 for driving the actuator Ac10 is connected to the actuator Ac10, and a driver amplifier DA11 for driving the actuator Ac11 is connected to the actuator Ac11. Similarly, driver amplifiers DA12 to DA18 for driving the actuators Ac12 to Ac18 are connected to the actuators Ac12 to Ac18. The driver amplifiers DA10 to DA18 are connected to one another in series, and the driver amplifier on one end (driver amplifier DA10 in the illustrated example) is connected to the control device 100. However, the connection is not limited to this, and for example, each of the driver amplifiers DA10 to DA18 may be directly connected to the control device 100.

[0022] Here, in order to bend a pipe with the pipe bender 10, it is necessary to operate the actuators Ac10 to Ac18 at appropriate timing and with appropriate movement amounts. To achieve this, it is necessary to create a control program that runs on the control device 100 and is capable of specifying appropriate drive amounts at appropriate timing for the driver amplifiers DA10 to DA18. Creating such a control program requires more effort than creating hardware such as the pipe bender 10.

[0023] However, the inventor of the present application has developed a technology for automatically generating a control program and has already obtained a patent for it. This patented technology breaks down the operation of an automatic manufacturing machine (here, pipe bender 10) equipped with multiple actuators into the basic operations of the multiple actuators (here, actuators Ac10 to Ac18), and describes the operation of the automatic manufacturing machine by entering these basic operations on a special operation chart named a "YOGO chart." In this way, a control program can be automatically generated from a YOGO chart. The principle of automatically generating a control program from a YOGO chart is explained below.

[0024] B. Principle of automatically generating a control program from a YOGO chart: FIG. 3 is an explanatory diagram of the principle of automatically generating a control program for an automatic manufacturing machine (here, a pipe bender 10) using a special operation chart called a YOGO chart. FIG. 3(a) shows a primitive YOGO chart before any improvements have been made. The YOGO chart of the present embodiment, which will be described later, is an improved version of the primitive YOGO chart shown in FIG. 3(a), but the principle of automatically generating a control program is the same as that of the primitive YOGO chart. Therefore, to facilitate understanding, the principle of automatically generating a control program from a YOGO chart will be explained using the primitive YOGO chart shown in FIG. 3(a).

[0025] As mentioned above, the YOGO chart describes the operation of an automated manufacturing machine by combining the basic operations of multiple actuators installed in the automated manufacturing machine. Here, a basic operation of an actuator refers to a simple operation in which the actuator moves by a specified amount in the direction of its degrees of freedom. For example, for a rotating actuator such as a motor, this corresponds to an operation of rotating by a specified angle, and for an actuator that moves forward and backward such as a cylinder, this corresponds to an operation of moving by a specified distance. Furthermore, for an actuator that moves a member that meshes with the ball screw forward and backward by rotating a ball screw using a motor, this corresponds to an operation of either rotating the motor by a specified angle or moving the member by a specified distance. Note that, hereinafter, a simple operation in which the actuator moves by a specified amount in the direction of its degrees of freedom is referred to as a "basic operation."

[0026] In the YOGO chart, the operating period from when an automated manufacturing machine starts to when it finishes operating is divided into multiple sub-periods, and the basic operations of each actuator are assigned to one of these sub-periods, selected for each basic operation. In the example shown in Figure 3(a), the first sub-period (sub-period 1) when the automated manufacturing machine starts operating is assigned the basic operation act1 of a certain actuator, and the next sub-period (sub-period 2) is assigned the basic operations act2, act3, and act4 (by the same or a different actuator). The next sub-period (sub-period 3) is assigned the basic operations act5 and act6, the next sub-period (sub-period 4) is assigned the basic operation act7, and the next sub-period (sub-period 5) is assigned the basic operations act8 and act9.

[0027] In this way, it is possible to describe a series of operations performed by multiple actuators. That is, first, a basic operation act1 is started by a certain actuator, and when that basic operation act1 is completed, the corresponding actuator starts basic operations act2, act3, and act4. When those basic operations are completed, basic operations act5 and act6 are started. When those basic operations are completed, basic operations act7 is started, and when basic operation act7 is completed, basic operations act8 and act9 are started, and so on. In this way, a YOGO chart describes the operation of an automatic manufacturing machine by breaking down the operation of the automatic manufacturing machine into the basic operations of the multiple actuators installed in the automatic manufacturing machine and assigning those basic operations to any of the partial periods.

[0028] As is clear from the above explanation, the sub-periods indicate the periods during which the assigned actuators operate, and do not indicate the lengths of time. For example, the length of sub-period 1 is the time required to execute basic action act1, and the length of sub-period 2 is the longer of the times required to execute basic actions act2, act3, and act4. Therefore, the lengths of time of each sub-period are usually different from one another.

[0029] As mentioned above, the basic operation of an actuator is a simple operation, such as rotating a motor a certain amount or moving a cylinder back and forth a certain amount. Therefore, programs (program elements) for causing an actuator to perform basic operations can be created in advance. For example, a program element prog1 can be created in advance to cause a certain actuator to perform basic operation act1. Similarly, program elements prog2 to prog9 can be created in advance to cause basic operations act2 to act9 to be performed.

[0030] By connecting these program elements as described in the primitive YOGO chart shown in Figure 3(a), a control program for operating an automated manufacturing machine can be automatically generated. Specifically, as shown in Figure 3(b), program element prog1 is first launched, and when program element prog1 finishes, program elements prog2 through prog4 are launched. When program elements prog2 through prog4 finish, program elements prog5 and prog6 are launched. When program elements prog5 and prog6 finish, program element prog7 is launched. When program element prog7 finishes, program elements prog8 and prog9 are launched. In this way, program elements that cause the actuator to perform basic operations are created in advance, and multiple program elements are combined so that these program elements are launched one after another in the order described in the YOGO chart. In this way, a control program for operating an automated manufacturing machine can be automatically generated from a YOGO chart.

[0031] Furthermore, although it is necessary to create all the program elements (here, program elements prog1 to prog9) for realizing the basic operations, this is not particularly difficult. The reason for this is as follows. FIG. 4 is an explanatory diagram showing the operation modes (rotational operation, forward / backward operation, etc.) and operation mechanisms (rough structure of the actuator) for the basic operations act1 to act9 shown in FIG. 3(a). For example, basic operation act1 is an operation in which the actuator rotates, and this operation is realized by reducing the rotational speed of the rotating shaft of the AC servo motor using a speed reducer. Furthermore, basic operation act2 is an operation in which the actuator moves forward and backward, and this operation is realized by converting the rotational movement of the rotating shaft of the AC servo motor into linear movement using a conversion mechanism. Furthermore, basic operation act3 is an operation in which the actuator moves forward and backward, and this operation is realized by a linear servo motor.

[0032] Basic actions act4, act5, and act8 are movements in which the actuator rotates, just like basic action act1, and are realized by combining a reduction mechanism with an AC servo motor. Also, basic actions act6 and act7 are movements in which the actuator moves forward and backward, just like basic action act2, and are realized by combining a conversion mechanism with an AC servo motor. Furthermore, basic action act9 is a movement in which the actuator moves forward and backward, just like basic action act3, and is realized by a linear servo motor.

[0033] As described above, the motion mechanisms that realize the basic actions act1, act4, act5, and act8 are all combinations of AC servo motors and reduction mechanisms. The only differences are the AC servo motor output and the reduction ratio of the reduction mechanisms. Therefore, the program elements for these basic actions can be standardized. Furthermore, the motion mechanisms that realize the basic actions act2, act6, and act7 are all combinations of AC servo motors and conversion mechanisms. Therefore, the program elements for these basic actions can be standardized. Furthermore, the program elements for the basic actions act3 and act9 can also be standardized for similar reasons. Ultimately, by preparing three program elements prog1 to prog3 to realize the nine basic actions act1 to act9, selecting the appropriate program element for each basic action and specifying the appropriate motion amount (such as rotation angle or movement amount), all of the basic actions act1 to act9 can be realized. Furthermore, this situation (i.e., the ability to standardize program elements that realize many basic actions) is not limited to the case shown in Figure 3 but is generally applicable.

[0034] Figure 5 is an explanatory diagram showing the classification of general basic movements used in the YOGO chart. As shown in Figure 5, the motion patterns of basic movements (excluding special movements) can be classified as either forward / backward movements or rotational movements. Furthermore, it is almost certain that the motion mechanism for achieving forward / backward movements is either a mechanism combining an AC servo motor with a conversion mechanism, a mechanism using a linear servo motor, a mechanism using an air cylinder, or a mechanism using a hydraulic cylinder. Similarly, it is almost certain that the motion mechanism for achieving rotational movements is either a mechanism combining an AC servo motor with a reduction mechanism, or a mechanism combining a pulse motor with a reduction mechanism. Therefore, all basic movements are classified into six types: four forward / backward movements and two rotational movements. Since basic movements of the same type can be realized using the same program elements, it is believed that preparing six program elements will be able to handle almost all basic movements.

[0035] Therefore, the YOGO chart described below uses "operation symbols" to specify the type of basic operation. For example, the operation symbol "CNC-XA" in the YOGO chart represents an advance / retract operation performed by an actuator that combines an AC servo motor with a conversion mechanism. The operation symbol "CNC-XL" represents an advance / retract operation using a linear servo motor as an actuator, the operation symbol "AC" represents an advance / retract operation performed by an air cylinder, and the operation symbol "OC" represents an advance / retract operation performed by a hydraulic cylinder. The operation symbol "CNC-θA" represents a rotation operation performed by an actuator that combines an AC servo motor with a reduction mechanism, and the operation symbol "OPN-θP" represents a rotation operation performed by an actuator that combines a pulse motor with a reduction mechanism. Each program element that realizes the basic operation of each operation symbol is assigned a unique program element number. This makes it possible to identify the program element by its program element number.

[0036] C.How to fill out the YOGO chart: FIG. 6 is an explanatory diagram of a method for describing the operation of an automated manufacturing machine using a YOGO chart 200. In the illustrated example, the automated manufacturing machine is equipped with five actuators, actuators A to E. As shown in FIG. 6, the YOGO chart 200 is shaped like a large table, with multiple horizontal lines and multiple vertical lines intersecting each other. Hereinafter, of the multiple intersecting lines, the horizontal lines will be referred to as "partition lines" 201, and the vertical lines will be referred to as "trigger lines" 202.

[0037] The trigger lines 202 are assigned consecutive numbers starting from 1. In the example shown in FIG. 6, the consecutive numbers of the trigger lines 202 below them are written in the top column of the YOGO chart 200. The areas between adjacent trigger lines 202 are the partial periods described above with reference to FIG. 3, and the partial periods are also assigned consecutive numbers starting from 1 (hereinafter referred to as partial period numbers). In the YOGO chart 200 shown in FIG. 6, the trigger lines 202 are drawn vertically, and therefore the partial periods sandwiched between the trigger lines 202 are arranged horizontally. However, the trigger lines 202 may also be drawn horizontally, in which case multiple partial periods would be arranged vertically.

[0038] Furthermore, the YOGO chart 200 of this embodiment is divided into a plurality of horizontally elongated regions (hereinafter also referred to as "rows") by a plurality of partition lines 201, and these horizontally elongated rows are assigned consecutive numbers (hereinafter referred to as actuator numbers) starting from 1. The actuators mounted on the automatic manufacturing machine are assigned to any of the multiple horizontally elongated rows. For example, assuming that the actuators mounted on the automatic manufacturing machine are five actuators, actuator A to actuator E, as shown in FIG. 6, actuator A is assigned to row with actuator number 1, actuator B is assigned to row with actuator number 2, and actuator C is assigned to row with actuator number 3. Similarly, actuator D is assigned to row with actuator number 4, and actuator E is assigned to row with actuator number 5.

[0039] The basic operations of actuators A to E are then written in appropriate positions on the horizontal rows to which those actuators A to E are assigned. For example, the basic operation that actuator A is to perform in partial period 1 is written in the coordinate position of a grid where the horizontal row with actuator number 1 intersects with the vertical region (hereinafter sometimes referred to as a "column") with partial period number 1. When writing a basic operation, an operation line 203 is written in the coordinate position of the grid where the basic operation is to be written on YOGO chart 200, and an operation symbol 206a and a parameter symbol 206b are written on that operation line 203, thereby writing the basic operation.

[0040] 6, an operation line 203 having a start point 204 indicated by a white circle and an end point 205 indicated by a black circle is drawn in the square of the coordinate position (hereinafter referred to as "chart coordinates (1,1)") on the YOGO chart 200 where the actuator number is 1 and the partial period number is 1. A basic operation 206 is drawn on the operation line 203 using an operation symbol 206a, "CNC-XA," written after a white star, and three parameter symbols 206b written after a black star. Here, the fact that the start point 204 is drawn on the trigger line 202 No. 1 and the end point 205 is drawn on the trigger line 202 No. 2 indicates that the basic operation 206 starts at the timing of the trigger line 202 No. 1 and ends at the timing of the trigger line 202 No. 2. 5, the operation symbol 206a "CNC-XA" written above the operation line 203 represents the forward / backward movement by an actuator that combines an AC servo motor with a conversion mechanism. Conversely, the fact that the operation symbol 206a "CNC-XA" is written at the coordinate position of the actuator number 1 indicates that the actuator A corresponding to the actuator number 1 is an actuator that performs forward / backward movement by combining an AC servo motor with a conversion mechanism. Furthermore, the parameter symbol 206b written below the operation symbol 206a represents the specific details of the forward / backward movement (i.e., the distance of forward / backward movement, the speed of movement during forward / backward movement, and the movement torque during forward / backward movement). The parameter symbol 206b will be described in detail later.

[0041] Furthermore, in the square corresponding to the coordinate position (chart coordinates (2,2)) of actuator number 2 and partial period number 2, a basic operation 206 is written on the operation line 203 using an operation symbol 206a called "CNC-θA" and three parameter symbols 206b. Here, the operation symbol 206a called "CNC-θA" represents a rotational operation performed by an actuator that combines an AC servomotor with a speed reduction mechanism. Therefore, actuator B corresponding to actuator number 2 is an actuator that performs a rotational operation by combining an AC servomotor with a speed reduction mechanism. Furthermore, the three parameter symbols 206b written below this operation symbol 206a represent the rotation angle, rotation speed, and rotational torque. The specific numerical values ​​(parameter values) of each parameter symbol 206b are preset for each actuator.

[0042] FIG. 7 is an explanatory diagram showing how parameter values ​​are pre-assigned to parameter symbols 206b for each actuator. A table in which parameter values ​​are assigned to parameter symbols 206b for each actuator is called "Table B." For example, five parameter symbols 206b are assigned to Table B shown in FIG. 7(a), which are parameter symbols 206b used for actuator A. As described above, actuator A is an actuator that moves forward and backward by combining an AC servo motor with a conversion mechanism. Therefore, the parameter values ​​specified using the parameter symbols 206b are the travel distance, travel speed, and travel torque. Correspondingly, two parameter symbols 206b, "AA-pos1" and "AA-pos2," are used to specify the travel distance, and parameter values ​​of 50 mm and 150 mm are assigned to them, respectively. Furthermore, two parameter symbols 206b, "AA-spd1" and "AA-spd2," are used to specify the travel speed, and parameter values ​​of 10 mm / sec and 15 mm / sec are assigned to them, respectively. Furthermore, the parameter symbol 206b "AA-trq1" is used to specify the allowable movement torque when moving forward or backward as a ratio to the standard torque of the AC servo motor, and is set to a parameter value of 100 percent (a value that means that up to the standard torque is allowed).

[0043] Table B shown in FIG. 7(b) also has five parameter symbols 206b set, which are parameter symbols 206b used for actuator B. As described above, actuator B is an actuator that rotates by combining an AC servo motor with a speed reducer, and so the parameter values ​​specified using the parameter symbols 206b are the rotation angle, rotation speed, and rotation torque. Correspondingly, two parameter symbols 206b, "AB-pos1" and "AB-pos2," are used to specify the rotation angle, and parameter values ​​of 90 degrees and 30 degrees are set, respectively. Two parameter symbols 206b, "AB-spd1" and "AB-spd2," are used to specify the rotation speed, and parameter values ​​of 15 degrees / second and 10 degrees / second are set, respectively. Furthermore, parameter symbol 206b, "AB-trq1," is used to specify the allowable movement rotation torque during forward and backward movement as a ratio to the standard torque of the AC servo motor, and a parameter value of 100 percent (a value indicating that up to the standard torque is allowed) is set.

[0044] Similarly, the five parameter symbols 206b set in Table B of FIG. 7(c) are parameter symbols 206b used for actuator C, and the five parameter symbols 206b set in Table B of FIG. 7(d) are parameter symbols 206b used for actuator D. Furthermore, the three parameter symbols 206b set in Table B of FIG. 7(e) are parameter symbols 206b used for actuator E. The parameter symbols 206b set for each actuator are parameter symbols 206b unique to that actuator. For example, the parameter symbol 206b "AB-spd1" is a parameter symbol 206b for specifying the rotational speed for actuator B, and this parameter symbol 206b cannot be used for any other purpose.

[0045] In the YOGO chart 200, the basic operations 206 are written using the operation symbols 206a and parameter symbols 206b described above. For example, in the YOGO chart 200 of FIG. 6, the basic operation 206 at chart coordinates (1,1) (i.e., the coordinate position of actuator number 1 and partial period number 1) has the operation symbol 206a "CNC-XA" and the parameter symbols 206b "AA-pos1," "AA-spd1," and "AA-trq1." Therefore, this basic operation 206 is an operation to move the actuator forward or backward, with a movement distance of 50 mm, a movement speed of 10 mm / sec, and a movement torque up to the maximum allowable specified torque of the AC servo motor.

[0046] As described above, the YOGO chart 200 is written by entering the operation symbol 206a and the parameter symbol 206b of the basic operation 206 in a grid at a coordinate position determined by the actuator number and the partial period number. The actuator number at the coordinate position where the basic operation 206 is written indicates the actuator that performs the basic operation 206, and the partial period number indicates the timing at which the basic operation 206 is performed. Furthermore, the operation symbol 206a and the parameter symbol 206b of the basic operation 206 indicate the specific content of the basic operation 206. In this way, by writing the basic operation 206 at the coordinate position on the YOGO chart 200, the operation of an automatic manufacturing machine can be described. For example, the YOGO chart 200 of FIG. 6 first operates actuator A according to the content specified in the basic operation 206. After actuator A's operation is completed, actuators B to D are operated according to the content specified in their respective basic operations 206. After actuators B to D are completed, actuators A and E are then operated according to the content of their respective basic operations 206. Then, when the operations of actuator A and actuator E are completed, actuator C and actuator D are operated according to the contents of their respective basic operations 206. It is possible to describe such a series of operations.

[0047] In this embodiment, the basic actions 206 are described on the YOGO chart 200 using the action symbol 206a and the plurality of parameter symbols 206b, but the method of describing the basic actions 206 on the YOGO chart 200 is not limited to this. For example, in the example shown in Fig. 6, a table is set in which the plurality of parameter symbols 206b listed below the action symbol 206a correspond to the parameter values ​​corresponding to those parameter symbols 206b, and a unique table symbol is assigned to each table. Then, instead of listing the plurality of parameter symbols 206b below the action symbol 206a, a table symbol for the table in which the parameter values ​​corresponding to those parameter symbols 206b are set may be written.

[0048] By recording the operation of an automatic manufacturing machine in the YOGO chart 200 in this way, it is possible to automatically generate a control program for operating the automatic manufacturing machine by converting the YOGO chart 200. However, a problem with control programs generated in this way is that the overall operating time from when the automatic manufacturing machine starts to finish operating tends to be long. The reason for this is as follows.

[0049] D. Reasons why the overall operating time of automatic manufacturing machines tends to be long: FIG. 8 is an explanatory diagram showing why the time required for an automatic manufacturing machine to finish operation from start to finish tends to be long when the automatic manufacturing machine is operated using a control program automatically generated from a YOGO chart 200. FIG. 8(a) illustrates a YOGO chart 200 that describes the operation of an automatic manufacturing machine equipped with five actuators A to E. In the YOGO chart 200 of FIG. 8(a), in order to avoid cluttering the illustration, only the operation symbol 206a is displayed on the operation line 203, and the parameter symbol 206b is omitted. Similarly, the parameter symbol 206b is omitted from the YOGO charts 200 of FIG. 8 and subsequent figures.

[0050] As shown in Figure 8(a), looking at the YOGO chart 200, it appears that the five actuators A to E are operating in a predetermined order. For example, in the second partial period from the beginning (partial period number 2), the same length of operation lines 203 are drawn for the three actuators B to D, so it appears that the actuators B to D all start operating at the same time and finish operating at the same time. However, the length of the operation lines 203 drawn on the YOGO chart 200 does not represent the operation time of the actuators.

[0051] FIG. 8(b) shows a YOGO chart 250 in which the length of the operation line 203 has been redrawn to correspond to the length of time each actuator operates. The elapsed time is displayed at the top of the redrawn YOGO chart 250. As shown in the YOGO chart 250 in FIG. 8(b), in the first partial period (the partial period with partial period number 1), only actuator A operates, and the operation takes 10 seconds. Therefore, 10 seconds after the start of operation, partial period number 2 begins, and the three actuators B to D begin operating. In the illustrated example, the operation of actuator B takes 6 seconds, the operation of actuator C takes 8 seconds, and the operation of actuator D takes 26 seconds. Therefore, for actuators B and C, even though their own operations have ended, actuator D has not yet completed its operation, and so a state occurs in which the current partial period cannot be completed (i.e., a state in which they are waiting for actuator D to complete its operation). This waiting time is 20 (=26-6) seconds for actuator B and 18 (=26-8) seconds for actuator C.

[0052] Furthermore, when the partial period with partial period number 2 ends, the partial period with partial period number 3 begins, and the two actuators A and E begin operating. In the example shown, the time required for actuator A to operate during the partial period with partial period number 3 is 30 seconds, and the time required for actuator E to operate is 6 seconds. Therefore, actuator E is in a state of waiting for actuator A to finish operating. This waiting time is 24 (= 30 - 6) seconds. After the partial period with partial period number 3 ends, the partial period with partial period number 4 begins, and actuator B begins operating.

[0053] When such long wait times occur, the time it takes for an automated manufacturing machine to start and finish operating increases. The direct cause of this situation is that among multiple actuators operating in the same sub-period, there is an actuator that operates for a longer time than the other actuators. However, an indirect cause is also thought to be the fact that multiple sub-periods in YOGO chart 200 are connected in a line from the first sub-period to the last sub-period. In other words, when sub-periods are connected in a line, actuators that operate at the same timing have no choice but to be assigned to the same sub-period. As a result, multiple actuators with significantly different operating times are assigned to the same sub-period, resulting in long wait times.

[0054] E. How to reduce the overall operating time of automated manufacturing machines: Taking note of the above points, the inventors of the present application have devised a method for shortening the overall operating time of an automatic manufacturing machine. In this method, partial periods are parallelized in a part of the operating period of the automatic manufacturing machine (from the first partial period to the last partial period), and the operations of the partial periods are executed independently in different paralleled columns. This makes it possible to shorten the overall operating time of the automatic manufacturing machine for the following reasons.

[0055] In the YOGO chart 200 illustrated in FIG. 8, a wait time occurs in the sub-periods with sub-period numbers 2 and 3. Therefore, by adding a new sub-period in parallel to the sub-periods with sub-period numbers 2 and 3, the sub-periods are parallelized within this range (the range of sub-period numbers 2 and 3). Then, within the range in which the sub-periods are parallelized, the actuator operation is assigned to the added sub-period in addition to the original sub-period. Note that, hereinafter, the range in which the sub-periods are parallelized is referred to as a "parallel period." Furthermore, a new sub-period added within a parallel period is referred to as a "parallel sub-period." Furthermore, when it is necessary to distinguish the original sub-period from the parallel sub-periods, the original sub-period is referred to as a "normal sub-period."

[0056] FIG. 9 illustrates a YOGO chart 200 of this embodiment in which parallel periods are set. In the illustrated example, parallel periods 210 are set in partial periods with partial period numbers 2 and 3, and the parallel period 210 is divided into two parallel partial periods 212. The basic operation of actuator D is assigned to the first parallel partial period 212, labeled "S1," and the basic operation of actuator E is assigned to the second parallel partial period 212, labeled "S2." Note that S1 and S2 are the partial period numbers of the parallel partial periods 212. Therefore, hereinafter, the parallel partial period 212 labeled "S1" will be referred to as the "parallel partial period 212 with partial period number S1," and the parallel partial period 212 labeled "S2" will be referred to as the "parallel partial period 212 with partial period number S2." In addition, in the example illustrated in FIG. 9, actuators D and E correspond to the "selected actuators" of the present invention.

[0057] Fig. 10 is an explanatory diagram conceptually showing the structure of the YOGO chart 200 (having parallel periods 210) shown in Fig. 9. As shown in the figure, among the normal partial periods 211 with partial period numbers 1 to 5, two parallel partial periods 212 with partial period numbers S1 and S2 are added to the normal partial periods 211 with partial period numbers 2 and 3. Using a YOGO chart 200 with such a structure, the following operations can be described.

[0058] First, the actuator assigned to the normal sub-period 211 with sub-period number 1 is operated, and once this operation is completed, the actuator assigned to the normal sub-period 211 with sub-period number 2 and the actuator assigned to the parallel sub-period 212 with sub-period number S1 are operated. Then, once the operation of the normal sub-period 211 with sub-period number 2 is completed, the actuator assigned to the normal sub-period 211 with sub-period number 3 is operated. Furthermore, once the operation of the parallel sub-period 212 with sub-period number S1 is completed, the actuator assigned to the parallel sub-period 212 with sub-period number S2 is operated. Here, the operation of the normal sub-period 211 with sub-period number 3 can be started without waiting for the end of the operation of the parallel sub-period 212 with sub-period number S1. Furthermore, the operation of the parallel sub-period 212 with sub-period number S2 can be started without waiting for the end of the operation of the normal sub-period 211 with sub-period number 2. This is because the normal partial period 211 and the parallel partial period 212 are partial periods of different systems (i.e., parallel). Also, the operation assigned to the normal partial period 211 with partial period number 4 will start after the operation of the normal partial period 211 with partial period number 3 has ended and the operation of the parallel partial period 212 with partial period number S2 has ended.

[0059] In the YOGO chart 200 having such a structure, the operations of the normal sub-periods 211 are executed in order starting from the first normal sub-period 211, as in the conventional YOGO chart 200. Furthermore, the operations of the parallel sub-periods 212 within the parallel period 210 are also executed in order starting from the first parallel sub-period 212. Furthermore, at the start of the parallel period 210 (i.e., the portion where the parallel sub-period 212 separates from the normal sub-period 211), the operations of the first normal sub-period 211 and the first parallel sub-period 212 within the parallel period 210 do not start until the operations of the immediately preceding normal sub-period 211 have ended. Furthermore, at the end of the parallel period 210 (i.e., the portion where the normal sub-period 211 and the parallel sub-period 212 join together), the operations of the normal sub-period 211 following the parallel period 210 do not start until the operations of both the last normal sub-period 211 and the last parallel sub-period 212 within the parallel period 210 have ended. Therefore, the only major difference from the conventional YOGO chart is that the operation of the normal sub-period 211 and the operation of the parallel sub-period 212 are executed independently within the parallel period 210. Therefore, even when using the YOGO chart 200 in which some parts are parallelized, it is possible to automatically generate a control program for an automatic manufacturing machine in the same way as with the conventional YOGO chart 200.

[0060] As is clear from the above explanation, in a YOGO chart 200 in which parallel periods 210 are set, it is necessary to assign at least one basic operation of an actuator to each of all parallel sub-periods 212 formed in the parallel period 210. This is because, when the actuators are operated in order from the first parallel sub-period 212 in the parallel period 210, if there is a parallel sub-period 212 to which no basic operation of an actuator is assigned, it will be impossible to start the operation of the parallel sub-period 212 following that parallel sub-period 212.

[0061] Furthermore, it is advisable to avoid setting a basic operation for an actuator for which a basic operation has been set for a parallel partial period 212 in the parallel period 210, in the normal partial period 211 of the same parallel period 210. This is because, in the parallel period 210, the operation of the normal partial period 211 and the operation of the parallel partial period 212 are executed independently. Therefore, if a basic operation of the same actuator is assigned to the normal partial period 211 and the parallel partial period 212 within the same parallel period 210, the timing of those operations will overlap, and it may become impossible to execute either basic operation.

[0062] 11 shows a YOGO chart 250 obtained by redrawing the partially parallelized YOGO chart 200 shown in FIG. 9 so that the length of the operation line 203 represents the length of the actuator operation time. The elapsed time is displayed at the top of the YOGO chart 250. The YOGO chart 250 shown in FIG. 11 differs from the YOGO chart 250 shown in FIG. 8(b) in that some partial periods are parallelized, but the operation times of actuators A to E are the same. Note that in FIG. 11, some of the operation lines 203 for actuators D and E are displayed as dashed lines, indicating that the corresponding operations are set in the parallel partial period 212.

[0063] In the YOGO chart 250 of FIG. 11 , while the operation of the parallel sub-period 212 with sub-period number S1 is being executed, the normal sub-period 211 with sub-period number 2 ends and the operation of the normal sub-period 211 with sub-period number 3 begins. Also, while the operation of the normal sub-period 211 with sub-period number 3 is being executed, the operation of the parallel sub-period 212 with sub-period number S2 begins. This significantly reduces wait time, shortening the overall operating time of the automated manufacturing machine. In this way, by using a YOGO chart 200 with some operations parallelized, it is possible to shorten the overall operating time of the automated manufacturing machine.

[0064] 9 to 11, two parallel partial periods 212 are set in a parallel period 210 that is set by combining two normal partial periods 211. Therefore, the number of parallel partial periods 212 formed in the parallel period 210 is the same as the number of normal partial periods 211. However, the number of parallel partial periods 212 in the parallel period 210 does not have to be the same as the number of normal partial periods 211. For example, in the example shown in FIG. 12(a), the parallel period 210 is formed by two normal partial periods 211, but the parallel period 210 is formed by three parallel partial periods 212 with partial period numbers S1 to S3. Alternatively, in the example shown in FIG. 12(b), the parallel period 210 is formed by three normal partial periods 211, but the parallel period 210 is formed by two parallel partial periods 212 with partial period numbers S1 and S2.

[0065] A single YOGO chart 200 may have multiple parallel periods 210. Furthermore, the parallel periods 210 may overlap at least partially. For example, in the example shown in FIG. 13, a parallel period 210 surrounded by a dashed line is set in the range of partial period numbers 2 and 3, and two parallel partial periods 212, with partial period numbers A1 and A2, are formed within this dashed line parallel period 210. A parallel period 210 surrounded by a two-dot chain line is set in the range of partial period numbers 3 to 5, and three parallel partial periods 212, with partial period numbers B1 to B3, are formed within this dashed line parallel period 210. In this way, a single YOGO chart 200 may have multiple parallel periods 210, and the parallel periods 210 may overlap at least partially. In the example shown in FIG. 13, actuators D, E, and G to I correspond to the "selected actuators" of the present invention.

[0066] 9, 12, and 13, parallel sub-periods 212 of the same parallel period 210 are set for actuators adjacent to each other on the YOGO chart 200. That is, on the YOGO chart 200 of FIGS. 9 and 12, a parallel sub-period 212 is set for actuators D and E. Also, on the YOGO chart 200 of FIG. 13, two parallel periods 210 are set, and the parallel sub-period 212 of one parallel period 210 is set for actuators D and E, and the parallel sub-period 212 of the other parallel period 210 is set for actuators G to I. However, parallel sub-periods 212 of the same parallel period 210 may be set for actuators that are distant from each other on the YOGO chart 200 (for example, actuator A and actuator D).

[0067] F. Control program generator 110: The partially parallelized YOGO chart 200 is converted into a control program by the following control program generator 110. The control program generator 110 of this embodiment is incorporated into the control device 100 together with an operation control device 120 that controls the operation of the automated manufacturing machine using the generated control program.

[0068] F-1. Overview of the control device 100 and the control program generation device 110: FIG. 14 is an explanatory diagram of a control device 100 incorporating a control program generation device 110. As shown in the figure, the control device 100 includes a chart creation unit 101, a chart storage unit 102, a control program generation device 110, and an operation control device 120. Furthermore, the control program generation device 110 includes a chart reading unit 111, a basic operation storage unit 112, an intermediate data generation unit 113, and an intermediate data conversion unit 114. Note that these "units" are abstract concepts that represent the functions of the control device 100 to create and store YOGO charts 200, and the functions of the control program generation device 110 to read the YOGO charts 200 and generate a control program. Therefore, it does not represent that the control device 100 or the control program generation device 110 is formed by combining parts corresponding to these "units." In reality, these "units" can be realized in the form of a program executed by a CPU, or in the form of an electronic circuit combining IC chips, LSIs, etc., or even in a variety of other forms, such as a mixture of these.

[0069] The chart creation unit 101 is connected to the monitor screen 100m, the operation input buttons 100s, etc., and a mechanical engineer or the like with sufficient knowledge of automated manufacturing machines such as the pipe bender 10 creates the YOGO chart 200 shown in Figures 9, 12, and 13 by operating the operation input buttons 100s while looking at the monitor screen 100m. Any engineer with sufficient knowledge of the operation of automated manufacturing machines can easily create the YOGO chart 200.

[0070] Furthermore, in this embodiment, when entering the basic action 206 in the YO-GO chart, the basic action 206 is entered using the action symbol 206a and the parameter symbol 206b as a rule, but the action symbol 206a, the parameter symbol 206b, and the parameter values ​​corresponding to the parameter symbol 206b are stored in the basic action storage unit 112. Therefore, the chart creation unit 101 can refer to the basic action storage unit 112, and when creating the YO-GO chart 200, the basic action 206 can be entered while referring to the basic action storage unit 112. Then, once the YO-GO chart 200 is completed, it is stored in the chart storage unit 102.

[0071] The chart reading unit 111 of the control program generating device 110 reads the YOGO chart 200 stored in the chart storage unit 102 and outputs it to the intermediate data generating unit 113. The intermediate data generating unit 113 analyzes the read YOGO chart 200 to generate intermediate data (described later), and then outputs the intermediate data to the intermediate data converting unit 114. The process of generating intermediate data from a YOGO chart will be described in detail later. Note that the chart reading unit 111 may read the YOGO chart 200 from a computer 50 provided separately from the control device 100, instead of reading the YOGO chart 200 from the chart storage unit 102.

[0072] Upon receiving the intermediate data, the intermediate data conversion unit 114 generates a control program from the intermediate data by referring to the basic operation storage unit 112. The method of generating a control program from the intermediate data will be explained in detail later. The obtained control program is then output to the operation control device 120, which will be described later. In this embodiment, the intermediate data generation unit 113 and the intermediate data conversion unit 114 correspond to the "control program generation unit" in the present invention.

[0073] F-2. Control program generation process: 15 is a flowchart showing an outline of the control program generation process executed by the control program generation device 110. As shown in the figure, in the control program generation process, first, a YOGO chart is read (STEP 1). Here, it is assumed that the YOGO chart 200 shown in FIG. 16 is read.

[0074] In the YOGO chart 200 of FIG. 16, parallel periods 210 are set in two locations: a range of partial periods with partial period numbers 3 to 7, and a range of partial periods with partial period numbers 6 to 10. In the first parallel period 210, surrounded by a dashed line in the figure, six parallel partial periods 212 with partial period numbers A1 to A6 are formed for actuators Ac13 to Ac15, whose actuator numbers M are 4 to 6. Furthermore, in the second parallel period 210, surrounded by a dashed line in the figure, three parallel partial periods 212 with partial period numbers B1 to B3 are formed for actuators Ac17 and Ac18, whose actuator numbers M are 8 and 9. In the first parallel period 210, actuators Ac13 to Ac15 correspond to the "selected actuators" of the present invention, and in the second parallel period 210, actuators Ac17 and Ac18 correspond to the "selected actuators" of the present invention.

[0075] After the YOGO chart 200 is read in STEP 1 of Fig. 15, the YOGO chart 200 is separated into a portion formed by the normal partial period 211 and a portion formed by the parallel partial period 212 (STEP 2). Note that, hereinafter, the portion of the YOGO chart 200 formed by the parallel partial period 212 will be referred to as the "local chart." Also, the portion of the YOGO chart 200 excluding the local chart (i.e., the portion formed by the normal partial period 211) will be referred to as the "main chart."

[0076] FIG. 17 is an explanatory diagram showing the main chart 200M separated from the YOGO chart 200 of FIG. 16. The areas surrounded by the dashed-dotted line and the areas surrounded by the two-dot-dotted line in the figure are areas where local charts were incorporated. FIG. 18 is an explanatory diagram showing the local chart 200L incorporated in the area surrounded by the dashed-dotted line in FIG. 17. FIG. 19 is an explanatory diagram showing the local chart 200L incorporated in the area surrounded by the two-dot-dotted line in FIG. 17. In the local chart 200L extracted from the YOGO chart 200, the partial period numbers have been renumbered starting from 1 (see FIGS. 18 and 19).

[0077] After separating the YOGO chart 200 into the main chart 200M and the local chart 200L in STEP 2 of FIG. 15, intermediate data generation processing as described below is performed on the main chart 200M to generate intermediate data 300M for the main chart 200M (STEP 3).

[0078] FIG. 20 is a flowchart of the intermediate data generation process. This process is executed by the intermediate data generation unit 113 in the control program generation device 110. As shown in the figure, the intermediate data generation process first initializes the partial period number N and the actuator number M to "1" (STEP 10). Next, it is determined whether a basic operation has been entered at chart coordinates (M, N) on the YOGO chart (here, the main chart 200M) (STEP 11). Note that the chart coordinates (M, N) are the coordinate position on the YOGO chart 200 specified by the combination of the actuator number M and the partial period number N. Immediately after the partial period number N and the actuator number M are initialized in STEP 10, both N and M are "1," so it is determined whether a basic operation has been entered at chart coordinates (1, 1) on the YOGO chart.

[0079] In the case of the main chart 200M illustrated in FIG. 17, no basic operation is entered at the chart coordinate (1,1), so the answer is "no" in STEP 11, and it is then determined whether or not the actuator number M has reached its final value (STEP 14). The main chart 200M illustrated in FIG. 17 has nine actuators Ac10 to Ac18 entered, so the final value of the actuator number M is 9. Therefore, the answer is "no" in STEP 14 after checking whether or not a basic operation has been entered at the chart coordinate (1,1), so the actuator number M is incremented by one (STEP 15). Then, using the incremented actuator number M, it is again determined whether or not a basic operation has been entered at the chart coordinate (M,N) (STEP 11).

[0080] In this way, while the partial period number N remains "1", the actuator number M is incremented by one, and it is determined whether or not a basic operation is entered at the chart coordinate (M, 1). When it reaches the chart coordinate (M, 1) where a basic operation is entered, the result in STEP 11 is "yes".

[0081] If the determination in STEP 11 is "yes," the operation symbol 206a and parameter symbol 206b of the basic operation written at that chart coordinate are read (STEP 12). In the main chart 200M illustrated in Fig. 17, when the chart coordinate (3,1) is reached, the determination in STEP 11 is "yes," and the operation symbol 206a and parameter symbol 206b of the basic operation 206 written at the chart coordinate (3,1) of the main chart 200M are read. Note that, in order to avoid cluttering the illustration, the display of the parameter symbol 206b is omitted in the main chart 200M in Fig. 17.

[0082] Next, data including the chart coordinates (M, N) where the basic operation 206 was read and the read operation symbol 206a and parameter symbol 206b (hereinafter referred to as intermediate data (N, M, operation symbol, numerical value table)) is stored in memory (STEP 13). After the intermediate data read from the YOGO chart is stored in memory in this way (STEP 13), it is determined whether the actuator number M has reached the final value (9 in this case) (STEP 14). As a result, if the final value has not been reached (STEP 14: no), the actuator number M is incremented by one (STEP 15), and then the process returns to STEP 11 to again determine whether a basic operation has been entered at the chart coordinates (M, N) on the YOGO chart.

[0083] On the other hand, if the actuator number M has reached its final value (STEP 14: yes), then it is determined whether the partial period number N has reached its final value (STEP 16). In the main chart 200M illustrated in Figure 17, the last partial period number is 12, so the final value of the partial period number N is 12.

[0084] If the sub-period number N has not yet reached its final value (STEP 16: no), the sub-period number N is incremented by one (STEP 17), and the actuator number M is initialized to "1" (STEP 18). Then, the process returns to STEP 11, where it is again determined whether a basic operation has been entered at the chart coordinates (M, N) on the YOGO chart. In this manner, the sub-periods with sub-period number N of 1 are checked from top to bottom, and once they have been checked, the sub-periods with sub-period number N of 2 are checked from top to bottom. After checking sub-period number 2, the sub-periods with sub-period number N of 3 are checked, and so on. The basic operations entered on the YOGO chart are read out and the intermediate data are stored in memory, in order from the smallest sub-period number N to the largest sub-period number N. This process is repeated until it is determined that the sub-period number N has finally reached its final value (STEP 16: yes). This means that all basic operations entered on the YOGO chart have been read out. Therefore, the intermediate data stored in the memory is read out and output to the intermediate data conversion unit 114 (see FIG. 14) (STEP 19).

[0085] FIG. 21 illustrates an example of intermediate data 300M generated from the main chart 200M illustrated in FIG. 17. As illustrated, the intermediate data 300 is a collection of a set of data (hereinafter referred to as a "data record") in which a partial period number N, an actuator number M, an operation symbol 206a, and a parameter symbol 206b are arranged in this order. The partial period number N in each data record takes any value from 1 to the final value of the partial period number N, and the actuator number M takes any value of the actuator number M listed in the YOGO chart. Every partial period number N on the YOGO chart is always listed in one of the data records, and every actuator number M listed in the YOGO chart is always listed in one of the data records. After outputting this intermediate data 300M, the intermediate data generation process of FIG. 20 ends, and the process returns to the control program generation process of FIG. 15.

[0086] Once the intermediate data 300M for the main chart 200M has been generated in this way, the start and end positions of the local chart 200L are added to the intermediate data 300M (STEP 4). In the YOGO chart 200 shown in FIG. 16, the first parallel period 210, enclosed by the dashed-dotted line, is set to have partial period numbers ranging from 3 to 7. Therefore, the start position of the first local chart 200L is the partial period with partial period number 3, and the end position of the local chart 200L is the partial period with partial period number 7. Therefore, a data record indicating the start of the first local chart 200L is added to the end of the data record with partial period number 3 in the intermediate data 300. Furthermore, a data record indicating the end of the first local chart 200L is added to the end of the data record with partial period number 7 in the intermediate data 300.

[0087] FIG. 22 is an explanatory diagram showing intermediate data 300M to which the start and end positions of the local chart 200L have been added. The data record (3, 0, lclchrt1-str) shown in the figure is data record 207, which indicates the start position of the local chart 200L, and the data record (7, 0, lclchrt1-end) is data record 208, which indicates the end position of the local chart 200L. Here, the data "lclchrt1-str" in data record 207, which indicates the start position, indicates that the first local chart 200L starts, and the data "lclchrt1-end" in data record 208, which indicates the end position, indicates that the first local chart 200L ends. Furthermore, the first data in these data records indicates the partial period number where the local chart 200L starts or ends. Furthermore, the fact that the second-to-first data in these data records is "0" indicates that these data records indicate the start or end position of the local chart 200L. That is, in a normal data record (a data record that indicates the basic operation of an actuator), the second piece of data from the beginning represents the actuator number M, which is a natural number starting from "1" and therefore cannot be "0." Therefore, when the second piece of data from the beginning in a data record is "0," this indicates that the data record is not a normal data record that indicates the basic operation of an actuator, but a data record related to the local chart 200L.

[0088] 16, the start and end positions of the local chart 200L are similarly added to the intermediate data 300 of the main chart 200M. That is, because the partial period numbers for the second local chart 200L are set in the range of 6 to 10, the start position of the second local chart 200L is the partial period with partial period number 6, and the end position is the partial period with partial period number 10. Therefore, as shown in FIG. 22, a data record 207 (6, 0, lclchrt2-str) indicating the start position of the second local chart 200L is added to the end position of the data record with partial period number 6 in the intermediate data 300, and a data record 208 (10, 0, lclchrt2-end) indicating the end position of the second local chart 200L is added to the end position of the data record with partial period number 10. Here, the data "lclchrt2-str" indicates that the second local chart 200L is to start, and the data "lclchrt2-end" indicates that the second local chart 200L is to end.

[0089] After the start and end positions of the local chart 200L have been added to the intermediate data 300M of the main chart 200M in the above manner (STEP 4 in FIG. 15), the intermediate data 300L for the local chart 200L is then generated (STEP 5). As described above, the two local charts 200L shown in FIGS. 18 and 19 are extracted from the YOGO chart 200 shown in FIG. 16, and the intermediate data generation process of FIG. 20 is applied to each of the local charts 200L. In this way, the intermediate data 300L shown in FIG. 23(a) is generated from the local chart 200L in FIG. 18, and the intermediate data 300L shown in FIG. 23(b) is generated from the local chart 200L in FIG. 19.

[0090] The intermediate data 300M of the main chart 200M obtained in this way and the intermediate data 300L of the two local charts 200L are converted into respective control programs 400 (STEP 6). Note that, hereinafter, the control program 400 obtained by converting the intermediate data 300M of the main chart 200M will be referred to as the "main program," and the control program 400 obtained by converting the intermediate data 300L of the local chart 200L will be referred to as the "local program."

[0091] Figure 24 is an explanatory diagram of a main program 400M obtained by converting the intermediate data 300M of the main chart 200M shown in Figure 22. Figures 25(a) and 25(b) are explanatory diagrams of a local program 400L obtained by converting the intermediate data 300L of the local chart 200L shown in Figures 23(a) and 23(b), respectively. For convenience of explanation, the local program 400L will be described first.

[0092] 25(a) and 25(b), the local program 400L is a collection of sets of data (i.e., data records) in which a partial period number N, an actuator number M, a program element number P, and a parameter value V are arranged in this order. As is clear from a comparison of the data records of the intermediate data 300L shown in FIGS. 23(a) and 23(b) with the data records of the local program 400L shown in FIGS. 25(a) and 25(b), in the data records of the local program 400L, the operation symbol 206a in the data records of the intermediate data 300L is replaced with the program element number P corresponding to that operation symbol 206a, and the parameter symbol 206b in the data records of the intermediate data 300 is replaced with the parameter value V corresponding to that parameter symbol 206b. Each of the local programs 400L generated in this manner is assigned a unique identification number and stored in a memory (not shown) of the control program generation device 110 shown in FIG. 14.

[0093] The intermediate data 300M of the main chart 200M can also be converted into the main program 400M in a similar manner. However, as described above with reference to Figure 22, a data record 207 indicating the start position of the local chart 200L and a data record 208 indicating the end position have been added to the intermediate data 300M of the main chart 200M. These data records are converted as follows.

[0094] First, the data record 207 indicating the start position is a data record in which the partial period number N, "0," and data indicating the start of the local chart 200L are arranged in this order. Here, the second data "0" indicates that this data record is a data record related to the local chart 200L. Therefore, the first two data are used as is as data for the main program 400M. Furthermore, the third data (data indicating the start of the local chart 200L) is converted to "1," which is data indicating the start of the local chart 200L. Furthermore, the fourth data is stored as the identification number of the local program 400L generated from the local chart 200L. The data record 401 in the main program 400M shown in FIG. 24 is a data record generated in this way from the data record 207 indicating the start position. For example, the data record 401 (3,0,1,100) in FIG. 24 indicates that the local program 400L starts in the partial period whose partial period number is 3, and the identification number of the local program 400L is "100."

[0095] The data record 208 indicating the end position is also converted in a similar manner. That is, the first two pieces of data in the data record 208 indicating the end position are used as data for the main program 400M as is. The third piece of data (the data indicating that the local chart 200L is ending) is converted to "0," which is data indicating the end of the local chart 200L. Furthermore, a fourth piece of data is added, and this data stores the identification number of the local program 400L that is ending. The data record 402 in the main program 400M shown in FIG. 24 is a data record generated in this way from the data record 208 indicating the end position. For example, the data record 402 of (7,0,0,100) in FIG. 24 indicates that the local program 400L ended in the partial period whose partial period number was 7, and the identification number of that local program 400L is "100."

[0096] The operation of converting the intermediate data 300M and the intermediate data 300L into the main program 400M and the local program 400L as described above is performed by the intermediate data conversion unit 114 in FIG. 14 by referring to the basic operation storage unit 112. That is, the basic operation storage unit 112 stores an operation symbol 206a in association with a program element number (see FIG. 5). Furthermore, the basic operation storage unit 112 stores a parameter symbol 206b in association with a parameter value V set for the parameter symbol 206b, as illustrated in FIG. 7. Therefore, the intermediate data conversion unit 114 refers to these and replaces the operation symbol 206a and the parameter symbol 206b in the intermediate data with the program element number P and the parameter value V.

[0097] Once the main program 400M and the local program 400L have been generated from the intermediate data 300M and the intermediate data 300L in the above manner (STEP 6 in Figure 15), the generated main program 400M and the local program 400L are output to the operation control device 120 (STEP 7), and the control program generation process of Figure 15 is completed.

[0098] G. Overview of control of automatic manufacturing machines using control programs: The operation control device 120 of the control device 100 stores the control programs (i.e., the main program 400M and the local program 400L) received from the control program generation device 110 in a memory not shown, and controls the operation of the automatic manufacturing machine as follows.

[0099] 26 and 27 are flowcharts of the operation control process in which the operation control device 120 controls the operation of an automatic manufacturing machine using a control program. When the operation control process starts, first, the main program 400M stored in memory is read (STEP 50). Then, after setting the partial period number N to 1 (STEP 51), the data record with the set partial period number N is extracted from each data record in the main program 400M (STEP 52).

[0100] Immediately after the start of the motion control process, the partial period number N is set to 1, so a data record (1, 3, 1, 15, 50, 100) is extracted from the main program 400M in Fig. 24. Here, the first number in the data record is the partial period number N, the second number is the actuator number M, and the third number is the program element number P. Furthermore, the fourth to sixth numbers in the record are parameter values ​​V specified for the program element. Therefore, the actuator to be controlled is identified based on the actuator number M in the data record (STEP 53), and further, a command to be output to the actuator is generated based on the program element number P and parameter value V (STEP 54).

[0101] Then, it is determined whether or not the data record 401 indicating the start of the local program 400L exists among the data records with partial period number N extracted in STEP 52 (STEP 55). In the case of the main program 400M in Fig. 24, the data record 401 indicating the start of the local program 400L does not exist among the data records with partial period number N of 1, so the determination is "no" in STEP 55. Then, the command generated in STEP 54 is output to the actuator to be controlled identified in STEP 53, thereby starting control of the operation of the actuator (STEP 56).

[0102] Next, it is determined whether or not all actuators whose control was started in STEP 56 have completed operation (STEP 58 in FIG. 27). If there are any actuators whose operation has not yet completed (STEP 58: no), the determination in STEP 58 is repeated, and the system enters a standby state until all actuators have completed operation. If it is determined that all actuators have completed operation (STEP 58: yes), it is determined whether or not a data record indicating the end of the local program 400L exists among the data records extracted in STEP 52 (STEP 59). If the partial period number N is 1, there should be no data record indicating the end of the local program 400L, and so the determination in STEP 59 is "no."

[0103] Next, it is determined whether the partial period number N has reached its final value (STEP 61). If the partial period number N is 1, the partial period number N has not yet reached its final value (STEP 61: no), so the partial period number N is incremented by one (STEP 62), and the process returns to STEP 52 in FIG. 26 to extract a data record with a new partial period number N from the main program 400M. Then, the above-described series of operations is performed on the extracted data record. That is, the actuator to be controlled is identified (STEP 53), a command for the identified actuator is generated (STEP 54), and it is determined whether a data record indicating the start of the local program 400L is present among the extracted data records (STEP 55). In the case of the main program 400M illustrated in FIG. 24, if a data record with a partial period number N of 2 is extracted, a data record indicating the start of the local program 400L is not present. However, if a data record with a partial period number N of 3 is extracted, it is determined that a data record indicating the start of the local program 400L is present.

[0104] If it is determined in STEP 55 that there is no data record indicating the start of the local program 400L (STEP 55: no), control is started by outputting the command generated in STEP 54 to the actuator to be controlled identified in STEP 53 (STEP 56). On the other hand, if it is determined that there is a data record indicating the start of the local program 400L (STEP 55: yes), the local program 400L identified by the identification number in the data record is started (STEP 57), and then control is started by outputting a command to the actuator to be controlled (STEP 56). Note that starting the local program 400L starts the local program execution process, which will be described later.

[0105] Thereafter, it is determined whether all actuators have completed operation (STEP58 in FIG. 27). If there are actuators whose operation has not yet completed (STEP58: no), the determination of STEP58 is repeated to enter a standby state. Then, when all actuators have completed operation (STEP58: yes), it is determined whether a data record indicating the end of the local program 400L is present among the data records extracted in STEP52 (STEP59). If a data record indicating the end of the local program 400L is present (STEP59: yes), it is determined whether the local program 400L scheduled to terminate has terminated (STEP60). If the local program 400L has not yet terminated (STEP60: no), the determination of STEP60 is repeated to enter a standby state. Then, when the local program 400L scheduled to terminate has terminated (STEP60: yes), it is determined whether the partial period number N has reached its final value (STEP61). As a result, if the partial period number N has not reached the final value (STEP 61: no), the partial period number N is incremented by one (STEP 62), and then the process returns to STEP 52 in Figure 26 to extract the data record with the new partial period number N from the main program 400M.

[0106] In this way, after performing the operations of STEP 52 to STEP 61 while incrementing the partial period number N by one, when it is determined that the partial period number N has finally reached the final value (STEP 61: yes), the operation control process shown in Figures 26 and 27 is terminated.

[0107] Furthermore, when the local program 400L is started in STEP 57 of the above-described operation control processing, the following local program execution processing is initiated. Figures 28 and 29 are flowcharts of the local program execution processing started in the above-described operation control processing. Comparing the above-described operation control processing and the local program execution processing, the only difference is that the operation control processing executes the main program 400M, while the local program execution processing executes the local program 400L. Therefore, the processing content of the local program execution processing is almost the same as the processing content of the above-described operation control processing, and the only difference is that another local program 400L is not started from the local program execution processing. Therefore, a brief explanation of the local program execution processing will be given, focusing on this difference.

[0108] When the local program execution process starts, first, the local program 400L specified by the identification number is read (STEP 70). The identification number is specified when the local program 400L is started in the operation control process described above (see STEP 57 in FIG. 26). The local program 400L is stored in memory by the control program generation process described above with reference to FIG. 15 (see STEP 7).

[0109] Next, after setting the partial period number N to 1 (STEP 71), the data record having the set partial period number N is extracted from each data record of the local program 400L (STEP 72). Then, the actuator to be controlled is identified based on the actuator number M in the data record (STEP 73), and further, a command to be output to the actuator is generated based on the program element number P and the parameter value V (STEP 74).

[0110] In the above-described operation control process, it is next determined whether or not there is a data record 401 indicating the start of the local program 400L (STEP 55 in FIG. 26). However, in this embodiment, since it is assumed that a local program 400L will not start another local program 400L, the local program execution process does not make a determination corresponding to STEP 55 in FIG.

[0111] Then, a command is output to the actuator to be controlled, thereby starting control of the actuator's operation (STEP 75). Next, a determination is made as to whether all actuators have completed their operations (STEP 76). If there are any actuators whose operations have not yet completed (STEP 76: no), the determination of STEP 76 is repeated to enter a standby state. After that, if it is determined that all actuators have completed their operations (STEP 76: yes), a determination is made as to whether the partial period number N has reached its final value (STEP 77 in FIG. 29). In the operation control process described above, prior to determining whether the partial period number N has reached its final value, a determination is made as to whether there is a local program 400L to be terminated (STEP 59 in FIG. 27). However, in this embodiment, a local program 400L is not configured to start another local program 400L, and therefore, the determination corresponding to STEP 59 in FIG. 27 is not made in the local program execution process.

[0112] Then, as a result of determining whether the partial period number N has reached the final value, if the final value has not been reached (STEP 77: no), the partial period number N is incremented by one (STEP 78), and the process returns to STEP 72 in Fig. 28 to extract the data record with the new partial period number N from the local program 400L. On the other hand, if the partial period number N has reached the final value (STEP 77: yes), this means that the local program 400L has ended, and the local program execution process shown in Figs. 28 and 29 is terminated.

[0113] As explained in detail above, by configuring the YOGO chart 200 so that a portion of the structure is parallelized, it is possible to reduce the waiting time for each actuator to operate. Therefore, by controlling the operation of an automated manufacturing machine using a control program 400 automatically generated from the YOGO chart 200, it is possible to shorten the overall operation time from when the automated manufacturing machine starts to when it finishes operating.

[0114] H. Variations: There are several variations of the present embodiment described above, and the variations will be described below, focusing on the differences from the present embodiment.

[0115] H-1. First variant: In the above-described embodiment, the local chart 200L is directly entered into the YOGO chart 200 (see FIG. 16). However, it is also possible to enter a local chart symbol in the YOGO chart 200 indicating the presence of the local chart 200L, and create the local chart 200L separately from the YOGO chart 200.

[0116] 30 is an explanatory diagram of a YOGO chart 200 of a first modified example in which a local chart symbol 220 is entered. In the illustrated example, an operation line 221 shown as a dashed line is entered in the range where actuator number M is 4 and partial period numbers N are 3 to 7, and a local chart symbol 220 saying "lclchrt1" is entered above the operation line 221, followed by a white star. Note that a start point 222 indicating the start position of the operation line 221 is represented by a white square, and an end point 223 indicating the end position of the operation line 221 is represented by a black square. Similarly, in the horizontally long columns (i.e., rows) where actuator numbers M are 5 and 7, an operation line 221 shown as a dashed line is entered in the range where partial period numbers N are 3 to 7, and a local chart symbol 220 saying "lclchrt1" is entered above the operation line 221. These descriptions indicate that, in the range of partial period numbers N from 3 to 7, the operations of actuators Ac13, Ac14, and Ac16 having actuator numbers M of 4, 5, and 7, respectively, are described on the local chart 200L identified by the local chart symbol 220. Therefore, the range of partial period numbers N from 3 to 7 is the parallel period 210, and in this parallel period 210, actuators Ac13, Ac14, and Ac16 having actuator numbers M of 4, 5, and 7 correspond to the "selected actuators" in the present invention.

[0117] 30, a local chart symbol 220 "lclchrt2" is also written above the two-dot chain line local chart symbol 220 in the range where the actuator numbers M are 8 and 9 and the partial period numbers N are 6 to 10. This writing indicates that in the range where the partial period numbers N are 6 to 10, the operations of actuators Ac17 and Ac18, whose actuator numbers M are 8 and 9, are also written in the local chart 200L identified by the local chart symbol 220. Therefore, the range where the partial period numbers N are 6 to 10 also becomes a parallel period 210, and in this parallel period 210, actuators Ac17 and Ac18, whose actuator numbers M are 8 and 9, correspond to the "selected actuators" of the present invention.

[0118] FIG. 31 is an explanatory diagram illustrating a local chart 200L corresponding to a local chart symbol 220 called "lclchrt1." The illustrated local chart 200L describes the basic operations of actuators Ac13, Ac14, and Ac16, whose actuator numbers M are 4, 5, and 7, for six partial periods whose partial period numbers are 1 to 6. The reason why the actuators whose basic operations are described in the local chart 200L are these three actuators Ac13, Ac14, and Ac16 is because the actuators described in the YOGO chart 200 of FIG. 30 for which the local chart symbol 220 called "lclchrt1" is described are these three actuators Ac13, Ac14, and Ac16. Furthermore, the parallel period 210 in which the local chart symbol 220 called "lclchrt1" is described in the YOGO chart 200 of FIG. 30 is formed by five partial periods whose partial period numbers are 3 to 7. Therefore, while five partial periods with partial period numbers 3 to 7 progress in the YOGO chart 200 in FIG. 30, six partial periods in the local chart 200L shown in FIG. 31 progress.

[0119] FIG. 32 is an explanatory diagram illustrating a local chart 200L corresponding to the local chart symbol 220 "lclchrt2." The illustrated local chart 200L describes the basic operations of two actuators Ac17 and Ac18, whose actuator numbers M are 8 and 9, for three partial periods whose partial period numbers are 1 to 3. The reason that the actuators whose basic operations are described in the local chart 200L are these two actuators Ac17 and Ac18 is because the actuators described in the YOGO chart 200 of FIG. 30 for which the local chart symbol 220 "lclchrt2" is described are these two actuators Ac17 and Ac18. Furthermore, the parallel period 210 in which the local chart symbol 220 "lclchrt2" is described in the YOGO chart 200 of FIG. 30 is formed by five partial periods whose partial period numbers are 6 to 10. Therefore, while five partial periods with partial period numbers 6 to 10 progress in the YOGO chart 200 in FIG. 30, three partial periods in the local chart 200L shown in FIG. 32 progress.

[0120] As described above, by recording the local chart symbols 220 on the YOGO chart 200 and creating a local chart 200L corresponding to the local chart symbols 220 separately from the YOGO chart 200, it is possible to create a YOGO chart 200 that is partially parallel to the present embodiment described above. Therefore, for the same reasons as the present embodiment described above, it is possible to shorten the overall operating time of the automatic manufacturing machine.

[0121] Furthermore, by using the method of the first modified example described above, it is only necessary to write the local chart symbol 220 on the YOGO chart 200, so writing the YOGO chart 200 does not become complicated. As a result, it is possible to reduce the possibility of making mistakes when creating a YOGO chart 200 with some parts parallelized or when understanding the contents of the YOGO chart 200.

[0122] H-2. Second variant: In the above-described first modified example, it has been described that one type of local chart 200L is set in one parallel period 210. For example, in the YOGO chart 200 illustrated in Fig. 30, it has been described that a local chart 200L called "localchart1" is set in the parallel periods 210 having partial period numbers 3 to 7, and a local chart 200L called "localchart2" is set in the parallel periods 210 having partial period numbers 6 to 10. However, it is also possible to set multiple types of local charts 200L having different numbers of parallel partial periods 212 in one parallel period 210.

[0123] For example, in the YOGO chart 200 illustrated in Fig. 33, partial periods with partial period numbers 3 to 7 are grouped together into a parallel period 210, and in this parallel period 210, a local chart symbol 220 called "lclchrt1" is written for three actuators with actuator numbers M of 4, 5, and 7, and a local chart symbol 220 called "lclchrt2" is written for two actuators with actuator numbers M of 8 and 9. Here, the local chart symbol 220 called "lclchrt1" indicates a local chart 200L called "localchart1" that describes operations over six partial periods (see Fig. 31), and the local chart symbol 220 called "lclchrt2" indicates a local chart 200L called "localchart2" that describes operations over three partial periods (see Fig. 32).

[0124] In this way, by setting multiple types of local charts 200L with different numbers of parallel partial periods 212 for one parallel period 210, it becomes possible to more flexibly describe the operation of each actuator on the YOGO chart 200. As a result, it becomes possible to further suppress the occurrence of "waiting time" in which, even though the operation of one actuator has finished, the next operation cannot be started because the operation of another actuator has not finished.

[0125] Furthermore, if the operations of the normal partial period 211 within the parallel period 210 (i.e., the operations of actuators whose operations are not described in the local chart 200L) are summarized in a chart (hereinafter referred to as the global chart 200G) separate from the local chart 200L, the description of the YOGO chart 200 can be simplified.

[0126] For example, in the parallel period 210 of the YOGO chart 200 illustrated in FIG. 33, the operations of three actuators Ac13, Ac14, and Ac16, whose actuator numbers M are 1, 5, and 7, and the operations of two actuators Ac17 and Ac18, whose actuator numbers M are 8 and 9, are shown in the local chart 200L of FIGS. 31 and 32. However, the operations of the other actuators (four actuators Ac10 to Ac12 and Ac15, whose actuator numbers M are 1 to 3 and 6) are not shown in the local chart 200L. Therefore, as illustrated in FIG. 34, the operations of these actuators are shown in the global chart 200G. Then, in the parallel period 210 of the YOGO chart 200, a global chart symbol 230 corresponding to the global chart 200G may be shown to indicate that the operations of these actuators (four actuators Ac10 to Ac12 and Ac15, whose actuator numbers M are 1 to 3 and 6) are shown in the global chart 200G.

[0127] In the YOGO chart 200 shown in FIG. 35, a global chart symbol 230 called "glblchrt1" is written in the parallel period 210 at positions where the actuator numbers M are 1 to 3 and 6. This indicates that the operations of the actuators Ac10 to Ac12 and Ac15 with actuator numbers M of 1 to 3 and 6 are written in the global chart 200G called "globalchart1." As is clear from a comparison between the YOGO chart 200 in FIG. 35 written using the global chart symbol 230 and the YOGO chart 200 in FIG. 33 written without using the global chart symbol 230, the writing of the YOGO chart 200 can be simplified by using the global chart symbol 230.

[0128] Furthermore, the YOGO chart 200 illustrated in FIG. 35 also displays information that the parallel period 210 is made up of five partial periods (partial periods with partial period numbers 3 to 7). However, in reality, only either the local chart symbol 220 or the global chart symbol 230 is shown throughout the five partial periods that make up the parallel period 210, and there is little need to display that the parallel period 210 is made up of five partial periods. Furthermore, this information can be obtained from the number of partial periods that make up the global chart 200G, so there is no need to display it on the YOGO chart 200.

[0129] 36, the five partial periods (partial periods with partial period numbers 3 to 7) that make up the parallel period 210 may be aggregated into the first partial period (partial period with partial period number 3), and the local chart symbol 220 or the global chart symbol 230 may be written in this single aggregated partial period. This makes it possible to further simplify the writing of the YOGO chart 200.

[0130] The above describes the control program generation device 110 of this embodiment and modified examples, but the present invention is not limited to the above embodiments and modified examples, and can be embodied in various forms without departing from the spirit of the present invention.

[0131] For example, in the above-described embodiment and modified example, it has been described that the parallel period 210 is not set in the local chart 200L. However, the parallel period 210 may be set in the local chart 200L, and the local chart 200L may be set in the parallel period 210 of the local chart 200L. [Explanation of symbols]

[0132] 10...pipe bender, 11...rail, 12...transport unit, 12a...gripping shaft, 12b...chuck, 13...processing unit, 50...computer, 100...controller, 100m...monitor screen, 100s...Operation input button, 101...Chart creation section, 102...chart storage unit, 110...control program generation device, 111...chart reading unit, 112...basic operation memory unit, 113... intermediate data generation unit, 114... intermediate data conversion unit, 120...Motion control device, 200...YOGO chart, 200G...Global chart, 200L...Local chart, 200M...Main chart, 201...Divider line, 202...Trigger line, 203...Movement line, 204...Starting point, 205...Ending point, 206...Basic movement, 206a...operation symbol, 206b...parameter symbol, 207, 208...data records, 210...parallel period, 211…Normal partial period, 212…Parallel partial period, 220...Local chart symbol, 221...Operation line, 222...Start point, 223...End point, 230...Global chart symbol, 300, 300L, 300M... intermediate data, 400... control program, 400L...Local program, 400M...Main program, 401, 402...Data record, Ac10~18...Actuator, DA10~18...driver amplifiers.

Claims

1. A control program generator (110) for generating a control program (400) for an automated manufacturing machine (10) having a plurality of actuators, comprising: a basic operation storage unit (112) that stores basic operations in which the actuator operates in the direction of the degree of freedom of the actuator by a specified operation amount, in association with program elements that realize the basic operations; an operation chart reading unit (111) that reads an operation chart (200) in which an operation period from when the automatic manufacturing machine starts to when it finishes its operation is divided into a plurality of partial periods, the operation of the automatic manufacturing machine is broken down into a plurality of basic operations, and the basic operations are assigned to any one of the plurality of partial periods, thereby describing the operation of the automatic manufacturing machine; a control program generating unit (113, 114) that generates the control program for operating the automatic manufacturing machine by combining the program elements of the plurality of basic operations assigned to the plurality of partial periods on the operation chart in accordance with the order of the partial periods on the operation chart; Equipped with The operation chart read by the operation chart reading unit is Two or more consecutive partial periods among the plurality of partial periods are grouped together to form a parallel period (210); In the parallel period, a plurality of the partial periods and a plurality of parallel partial periods (212) that divide the parallel period are formed in parallel, the basic operation of a selected actuator selected from the plurality of actuators is assigned to the parallel partial period of the parallel period, the basic operation of the actuator other than the selected actuator is assigned to the partial period of the parallel period; The control program generation unit The program elements of the basic operations assigned to the parallel sub-periods within the parallel period are combined in accordance with the order of the parallel sub-periods; The program elements of the basic operations assigned to the partial periods within the parallel period are combined in accordance with the order of the partial periods to generate the control program. A control program generating device comprising:

2. 2. The control program generating device according to claim 1, the operation chart reading unit also reads a local chart (200L) that is created for the parallel period of the operation chart and in which the basic operation of at least one of the selected actuators is assigned to each of the parallel partial periods of the parallel period, separately from the operation chart; A local chart symbol (220) unique to the local chart is assigned to the parallel period of the operation chart read by the operation chart reading unit. A control program generating device comprising:

3. A control program generation method for generating a control program (400) for an automated manufacturing machine (10) having a plurality of actuators by a computer, comprising: an operation chart reading step (STEP 1) for reading an operation chart (200) in which an operation period from when the automatic manufacturing machine starts to when it finishes its operation is divided into a plurality of partial periods, the operation of the automatic manufacturing machine is decomposed into a plurality of basic operations in which the actuator moves in the direction of the degree of freedom of the actuator by a specified operation amount, and the basic operation is assigned to any one of the plurality of partial periods, thereby describing the operation of the automatic manufacturing machine; a control program generation process (STEP 4 to STEP 6) for converting the basic operations described in the operation chart into program elements by referring to a correspondence relationship between the basic operations described in the operation chart and program elements for realizing the basic operations, and for generating the control program for operating the automatic manufacturing machine by combining the program elements in accordance with the order of the partial periods; Equipped with The operation chart read in the operation chart reading step is Two or more consecutive partial periods among the plurality of partial periods are grouped together to form a parallel period (210); In the parallel period, a plurality of the partial periods and a plurality of parallel partial periods (212) that divide the parallel period are formed in parallel, the basic operation of a selected actuator selected from the plurality of actuators is assigned to the parallel partial period of the parallel period, the basic operation of the actuator other than the selected actuator is assigned to the partial period of the parallel period; The control program generation step includes: The program elements of the basic operations assigned to the parallel sub-periods within the parallel period are combined in accordance with the order of the parallel sub-periods; The program elements of the basic operations assigned to the partial periods within the parallel period are combined in accordance with the order of the partial periods to generate the control program. A control program generating method comprising:

4. A program for implementing a method for generating a control program (400) for an automated manufacturing machine (10) having a plurality of actuators using a computer, the program comprising: an operation chart reading function (STEP 1) for reading an operation chart (200) in which an operation period from when the automatic manufacturing machine starts to when it finishes its operation is divided into a plurality of partial periods, the operation of the automatic manufacturing machine is decomposed into a plurality of basic operations in which the actuator moves in the direction of the degree of freedom of the actuator by a specified operation amount, and the basic operation is assigned to any one of the plurality of partial periods, thereby describing the operation of the automatic manufacturing machine; a control program generation function (STEP 4 to STEP 6) that converts the basic operations described in the operation chart into program elements by referring to a correspondence relationship in which the basic operations described in the operation chart and program elements for realizing the basic operations are associated and stored, and combines the program elements in accordance with the order of the partial periods, thereby generating the control program that operates the automatic manufacturing machine; is realized using the computer, and The operation chart read by the operation chart reading function is Two or more consecutive partial periods among the plurality of partial periods are grouped together to form a parallel period (210); In the parallel period, a plurality of the partial periods and a plurality of parallel partial periods (212) that divide the parallel period are formed in parallel, the basic operation of a selected actuator selected from the plurality of actuators is assigned to the parallel partial period of the parallel period, the basic operation of the actuator other than the selected actuator is assigned to the partial period of the parallel period; The control program generation function The program elements of the basic operations assigned to the parallel sub-periods within the parallel period are combined in accordance with the order of the parallel sub-periods; The function is to generate the control program by combining the program elements of the basic operations assigned to the partial periods within the parallel period in accordance with the order of the partial periods. A program characterized by:

Citation Information

Patent Citations

  • Sequence generation method

    JP2016040666A

  • Program creator, program creation method, and program

    JP2021096549A

  • Control program generation device, control program generation method, and program

    JP6829505B1