[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2021153591A1 - 動作制御装置、動作制御方法、プログラム - Google Patents

動作制御装置、動作制御方法、プログラム Download PDF

Info

Publication number
WO2021153591A1
WO2021153591A1 PCT/JP2021/002768 JP2021002768W WO2021153591A1 WO 2021153591 A1 WO2021153591 A1 WO 2021153591A1 JP 2021002768 W JP2021002768 W JP 2021002768W WO 2021153591 A1 WO2021153591 A1 WO 2021153591A1
Authority
WO
WIPO (PCT)
Prior art keywords
actuator
control
controlled
period
target
Prior art date
Application number
PCT/JP2021/002768
Other languages
English (en)
French (fr)
Inventor
與語照明
路海寧
可兒敏弘
Original Assignee
株式会社オプトン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2020011386A external-priority patent/JP6787616B1/ja
Priority claimed from JP2020075017A external-priority patent/JP6829505B1/ja
Application filed by 株式会社オプトン filed Critical 株式会社オプトン
Priority to CN202180011396.8A priority Critical patent/CN115023672A/zh
Priority to EP21747218.2A priority patent/EP4099108A4/en
Priority to KR1020227014615A priority patent/KR102476171B1/ko
Publication of WO2021153591A1 publication Critical patent/WO2021153591A1/ja
Priority to US17/864,205 priority patent/US20220350310A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4097Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23QDETAILS, COMPONENTS, OR ACCESSORIES FOR MACHINE TOOLS, e.g. ARRANGEMENTS FOR COPYING OR CONTROLLING; MACHINE TOOLS IN GENERAL CHARACTERISED BY THE CONSTRUCTION OF PARTICULAR DETAILS OR COMPONENTS; COMBINATIONS OR ASSOCIATIONS OF METAL-WORKING MACHINES, NOT DIRECTED TO A PARTICULAR RESULT
    • B23Q15/00Automatic control or regulation of feed movement, cutting velocity or position of tool or work
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31368MAP manufacturing automation protocol
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36243Convert source, high level code to machine, object code
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36276Program virtual, logical tools, select tool from tables
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36296Order, select, determine, change machining sequence, order

Definitions

  • the present invention relates to a technique for controlling the operation of an automatic manufacturing machine provided with a plurality of actuators according to a control program.
  • This operation chart has the feature that it can be easily created if the operation of the automatic manufacturing machine is understood. Therefore, even when the number of actuators mounted on the automatic manufacturing machine is large, the YOGO chart of the automatic manufacturing machine can be created in a short time. Furthermore, even when a manufacturing system is formed by combining a plurality of types of automatic manufacturing machines, a YOGO chart of those automatic manufacturing machines can be created in a short time. Then, if the YOGO chart is created, the control program can be easily generated.
  • the present invention has been made to solve the above-mentioned problems of the prior art, and provides a technique capable of easily executing a control program generated from an operation chart (YOGO chart). The purpose.
  • the motion control device of the present invention adopts the following configuration. That is, Operation control applied to an automatic manufacturing machine (10, 20, 30) equipped with a plurality of actuators to control the operation of the automatic manufacturing machine by operating the plurality of actuators according to a control program stored in advance.
  • the device (120) The operation period from the start to the end of the operation of the automatic manufacturing machine is divided into a plurality of partial periods, and the actuator to be operated and the operation content of the actuator are divided for each partial period.
  • a control content extraction unit (124) that extracts a control target actuator, which is the actuator to be controlled during the control target period, and a control target operation content, which is the operation content of the control target actuator, from the control program.
  • the control target period selection unit is characterized in that when the feedback control for the control target actuator is completed, the subperiod next to the current control target period is selected as a new control target period.
  • the motion control method of the present invention corresponding to the above-described motion control device adopts the following configuration. That is, It is applied to an operation control device (120) that controls the operation of an automatic manufacturing machine (10, 20, 30) equipped with a plurality of actuators, and by operating the plurality of actuators according to a control program stored in advance.
  • An operation control method for controlling the operation of the automatic manufacturing machine The operation period from the start to the end of the operation of the automatic manufacturing machine is divided into a plurality of partial periods, and the actuator to be operated and the operation content of the actuator are divided for each partial period.
  • a step (STEP59) of feedback-controlling the operation of the controlled actuator so that the controlled actuator operates according to the controlled operation content is provided.
  • the step of selecting the control target period is characterized in that when the feedback control for the control target actuator is completed, the subperiod next to the current control target period is selected as the new control target period.
  • the following control program is used for control.
  • the operation period of the automatic manufacturing machine is divided into a plurality of partial periods, and the operation of the automatic manufacturing machine is described by assigning the actuator to be operated and the operation content of the actuator to each partial period.
  • the partial periods to be controlled are selected one by one in order, and the actuators assigned to the partial periods and the operation contents of the actuators are extracted from the control program. Then, the operation of the actuator is feedback-controlled so that the extracted actuator operates according to the extracted operation content.
  • a control program to which actuators of a predetermined allowable allocation number or less are assigned may be stored for any partial period.
  • the number of actuators to be controlled at the same time can be suppressed to a predetermined allowable number or less, so that the control program can be executed without using an operation control device having a high processing capacity. ..
  • the actuator motion target value and the motion (that is, elapsed motion) in the process until the actuator reaches the motion target value are generated as the actuator motion contents assigned to the partial period.
  • the control program in which the information for the purpose is described may be stored.
  • the transitional operation of the controlled target actuator is extracted by extracting the operation target value assigned to the controlled target period and the information for generating the elapsed operation as the controlled target operation content.
  • the operation of the controlled target actuator may be feedback-controlled so that the controlled target actuator reaches the operation target value according to the elapsed operation.
  • the actuator can be controlled so as to reach the desired operation target value through the transitional operation of the desired mode, so that the automatic manufacturing machine can be controlled more appropriately.
  • the motion of the controlled actuator may be feedback-controlled by the following method. First, the elapsed target value for each predetermined time interval until the controlled actuator reaches the operation target value through the elapsed operation is calculated. Then, the operation of the controlled actuator may be detected at a predetermined time interval, and the operation of the controlled actuator may be feedback-controlled so that the detected value becomes the elapsed target value.
  • the above-described motion control method of the present invention can be grasped as a program for realizing the motion control method of the present invention by using a computer mounted on the motion control device. That is, the program of the present invention It is applied to an operation control device (120) that controls the operation of an automatic manufacturing machine (10, 20, 30) equipped with a plurality of actuators, and by operating the plurality of actuators according to a control program stored in advance.
  • the operation period from the start to the end of the operation of the automatic manufacturing machine is divided into a plurality of partial periods, and the actuator to be operated and the operation content of the actuator are divided for each partial period.
  • a function (STEP59) of feedback-controlling the operation of the controlled object actuator is realized by using a computer so that the controlled object actuator operates according to the controlled operation content.
  • the function of selecting the control target period is a function of selecting the next partial period of the current control target period as a new control target period when the feedback control for the control target actuator is completed. And.
  • FIG. 1 is an explanatory diagram illustrating a manufacturing system 1 that manufactures a finished product B having a predetermined shape by bending a pipe-shaped material A.
  • the illustrated manufacturing system 1 includes an arm robot 20 that grabs the material A piled up in the accumulation site and attaches it to the pipe bender 10, a pipe bender 10 that bends the attached pipe-shaped material A, and a pipe bender 10. It is equipped with an arm robot 30 that grabs the finished product B bent by the above and stacks it on the collection site.
  • the pipe bender 10 and the arm robots 20 and 30 are connected to the central control device 100.
  • the central control device 100 has a built-in control program generation device 110 and an operation control device 120.
  • the control program generation device 110 generates a control program for controlling the operations of the pipe bender 10 and the arm robots 20 and 30, and outputs the control program to the operation control device 120.
  • the motion control device 120 controls the motions of the pipe bender 10 and the arm robots 20 and 30 according to the control program.
  • the arm robots 20 and 30 and the pipe bender 10 correspond to the "automatic manufacturing machine” in the present invention, but the automatic manufacturing machine is limited to the arm robots 20 and 30 and the pipe bender 10. Do not mean. That is, the "automatic manufacturing machine” in the present invention is a manufacturing machine equipped with a plurality of actuators and capable of automatically performing a plurality of operations such as gripping, transporting, processing, and heating with respect to an object. Corresponds to.
  • FIG. 2 is an explanatory diagram showing a rough structure of the arm robot 20 and the arm robot 30 used in the manufacturing system 1.
  • FIG. 2 also shows a state in which the arm robot 20 and a plurality of actuators mounted on the arm robot 30 are connected to the motion control device 120.
  • the arm robot 20 and the arm robot 30 shown in FIG. 2 have a structure in which a mechanism for gripping an object is connected to the tip of a general 6-axis arm robot. Since the arm robot 20 and the arm robot 30 of this embodiment have the same structure, the arm robot 20 will be described below, and the arm robot 30 will be replaced with the description of the arm robot 20.
  • the numbering of the arm robot 20 is displayed without (), and the numbering of the arm robot 30 is attached with () in the state of being written together with the numbering. It is displayed in.
  • the arm robot 20 (30) of this embodiment has a base 21 (31) installed on the floor and a main body 22 (32) attached to the base 21 (31).
  • It has a palm portion 27 (37). Further, on the palm portion 27 (37), two grip portions 28 (38) are erected facing each other.
  • the main body 22 (32) is rotatably attached to the base 21 (31), and the first arm 23 (33) is rotatably attached to the main body 22 (32). ing.
  • “swivel” means an operation in which one member rotates so as to twist with respect to the other member
  • “rotation” means an operation in which one member bends with respect to the other member. It represents a rotating motion.
  • the second arm portion 24 (34) is rotatably attached to the first arm portion 23 (33), and the third arm portion 25 (35) is attached to the second arm portion 24 (34).
  • the fourth arm portion 26 (36) is rotatably attached to the third arm portion 25 (35).
  • the palm portion 27 (37) is rotatably attached to the fourth arm portion 26 (36).
  • the actuator Ac21 (Ac31) is built in the base 21 (31), and when the actuator Ac21 (Ac31) is driven, the main body portion 22 (32) turns with respect to the base 21 (31). Further, the actuator Ac22 (Ac32) is built in the connecting portion between the main body portion 22 (32) and the first arm portion 23 (33), and when the actuator Ac22 (Ac32) is driven, the first arm portion 23 (33) is driven. ) Rotates with respect to the main body portion 22 (32). Further, an actuator Ac23 (Ac3) is built in the connecting portion between the first arm portion 23 (33) and the second arm portion 24 (34), and when the actuator Ac23 (Ac3) is driven, the second arm portion 24 (34) rotates with respect to the first arm portion 23 (33). Further, the actuator Ac24 (Ac34) is built in the second arm portion 24 (34), and when the actuator Ac24 (Ac34) is driven, the third arm portion 25 (35) becomes the second arm portion 24 (34). Turn against.
  • An actuator Ac25 (Ac35) is built in the connection portion between the third arm portion 25 (35) and the fourth arm portion 26 (36), and when the actuator Ac25 (Ac35) is driven, the fourth arm portion 26 (36) is driven. ) Rotates with respect to the third arm portion 25 (35). Further, the actuator Ac26 (Ac36) is built in the fourth arm portion 26 (36), and when the actuator Ac26 (Ac36) is driven, the palm portion 27 (37) with respect to the fourth arm portion 26 (36). Turn. Further, an actuator Ac27 (Ac37) is built in the palm portion 27 (37), and when the actuator Ac27 (Ac37) is driven, two grip portions 28 (38) erected from the palm portion 27 (37) are formed.
  • a servomotor is adopted as the actuators Ac21 to Ac27 (Ac31 to Ac37).
  • the actuator is not limited to the servo motor, and may be an actuator that operates by a different method such as a stepping motor.
  • the driver amplifier DA21 (DA31) that drives the actuator Ac21 (Ac31) is connected to the actuator Ac21 (Ac31).
  • the "driver amplifier” is a device having the following functions. In order to drive the actuator, it is necessary to supply the actuator with a current that conforms to the actuator drive method and standard. Therefore, even if the same operation is performed, if the type of actuator to be operated and the manufacturer are different, the current value to be supplied and the form of the current may differ for each actuator. Therefore, in general, a driver amplifier for the actuator is prepared for the actuator, and when a drive amount is input to the driver amplifier, the driver amplifier generates a current that matches the drive method and standard of the actuator, and the actuator. Is designed to drive.
  • Driver amplifiers are also connected to actuators other than the actuator Ac21 (Ac31). That is, as shown in FIG. 2, the actuator Ac22 (Ac32) is connected to the driver amplifier DA22 (DA32) that drives the actuator Ac22 (Ac32), and the actuators Ac23 to Ac27 (Ac33 to Ac37) are also connected. Driver amplifiers DA23 to DA27 (DA33 to DA37) that drive actuators Ac23 to Ac27 (Ac33 to Ac37) are connected.
  • driver amplifiers DA21 to DA27 (DA31 to DA37) are connected in series with each other, and the driver amplifier on one end side (driver amplifier DA27 (DA37) in the illustrated example) controls the operation in the central control device 100. It is connected to the device 120. Therefore, a driver amplifier other than the driver amplifier on one end side (driver amplifier DA27 (DA37) in the illustrated example) directly connected to the operation control device 120 is connected to the operation control device 120 via another driver amplifier. It will be.
  • the connection form is not limited to this, and for example, the respective driver amplifiers DA23 to DA27 (DA33 to DA37) may be directly connected to the operation control device 120.
  • the motion control device 120 is a member driven by the actuators Ac21 to Ac27 (Ac31 to Ac37) (for example, the main body portion 22 (32), the first arm portion 23 (33), and the first arm portion 23 (33).
  • the operation of the driver amplifiers DA21 to DA27 (DA31 to DA37) is feedback-controlled so that the position of the two arm portions 24 (34) and the like) becomes the target position.
  • the actuators Ac21 to Ac27 (Ac31 to Ac37) have a built-in encoder (not shown) for detecting the rotation position, and the driver amplifiers DA21 to DA27 (DA31 to DA37) are built in the actuators Ac21 to Ac27. It also has a function of transmitting information on the rotation position detected by using the encoder to the motion control device 120.
  • FIG. 3 is an explanatory diagram showing a rough structure of the pipe bender 10 used in the manufacturing system 1. As described above, the pipe bender 10 has a function of manufacturing a finished product B having a predetermined shape by bending a long pipe-shaped material A.
  • the pipe bender 10 of this embodiment has a roughly horizontally long rectangular parallelepiped shape, and two rails 11 are erected in the longitudinal direction on the upper surface side of the rectangular parallelepiped, and are on the rail 11.
  • a delivery unit 12 that grips a pipe-shaped material A (not shown) and sends it out in the longitudinal direction is mounted.
  • a processing unit 13 that bends the pipe-shaped material A is mounted.
  • a cylindrical gripping shaft 12a is projected from the delivery unit 12, and a chuck 12b for gripping a material A (not shown) is attached to the tip of the gripping shaft 12a. Therefore, by moving the delivery unit 12 on the rail 11 while the material A is gripped by the chuck 12b, the material A is supplied to the processing unit 13 and the material A is bent by the processing unit 13. It is possible.
  • the pipe bender 10 of this embodiment can control the feed amount of the pipe-shaped material A by the movement amount of the delivery unit 12, the position where the material A is bent can be freely controlled. Further, the pipe-shaped material A can be bent in a desired direction by rotating the gripping shaft 12a to which the chuck 12b is attached around the axis (so-called twisting operation). In order to realize such a thing, in order to move the actuator Ac10 for opening and closing the chuck 12b, the actuator Ac11 for turning the gripping shaft 12a, and the gripping shaft 12a in the axial direction inside the delivery unit 12. The actuator Ac12 of the above, the actuator Ac13 for moving the delivery unit 12 forward and backward on the rail 11, and the like are mounted.
  • all of these actuators Ac10 to Ac13 use a servomotor that operates with an AC power supply, but depending on the performance required for the actuator, an actuator of another drive type (for example, an actuator of another drive type) is used. , Hydraulic cylinders, solenoids, stepping motors, etc.) can be adopted.
  • the delivery unit 12 is also equipped with an encoder for detecting the rotation position of the gripping shaft 12a and the movement position of the delivery unit 12, and sensors such as a limit switch, but the drawing becomes complicated. For the purpose of avoiding this, the illustration is omitted in FIG.
  • the actuator Ac16 for bending the pipe-shaped material A, the actuator Ac17 for moving the position where a force is applied to the material A when bending the material A, and the entire processing unit 13 are moved up and down.
  • An actuator Ac18 for moving in a direction, an actuator Ac19 for forming a flat end surface called a flange on a pipe-shaped material A, and an annular convex portion called a bulge are mounted.
  • the processing unit 13 is also equipped with switches and sensors such as an encoder and a contact switch, but these are not shown in order to avoid complicating the drawings.
  • a plurality of driver amplifiers for driving the various actuators Ac10 to Ac13 and Ac16 to Ac19 described above are mounted inside the processing unit 13, but the driver amplifiers are not shown in FIG. 3 as well. There is.
  • various mechanical parts are also mounted in the space below the two rails 11, and this space is a plurality of driver amplifiers (shown) mounted in the processing unit 13. Signals from the electric cable (not shown) that supplies the drive current to the various actuators Ac10 to 13 in the transmission unit 12 and the various switches and sensors mounted on the transmission unit 12. , A space for wiring a signal cable (not shown) for transmitting to the processing unit 13. If these electric cables and signal cables move in the space as the transmission unit 12 moves forward and backward on the rail 11, there is a risk that they may get entangled with each other or get caught in something.
  • the unnecessary play is eliminated by pulling the cable, and the electric cable or the electric cable or the signal cable is used.
  • the actuators Ac14 and Ac15 are also mounted to give the cable an appropriate amount of play by sending out the hand-held cable.
  • air cylinders are adopted as actuators Ac14 and Ac15, and the operation of these air cylinders is also controlled by the operation control device 120 via a driver amplifier (not shown).
  • FIG. 4 is an explanatory view showing how a plurality of actuators Ac10 to Ac19 mounted on the pipe bender 10 are connected to the operation control device 120 via the driver amplifiers DA10 to DA19.
  • 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.
  • driver amplifiers DA12 to DA19 for driving the actuators Ac12 to Ac19 are connected to the actuators Ac12 to Ac19.
  • the driver amplifiers DA10 to DA19 are connected in series with each other, and the driver amplifier on one end side (driver amplifier DA10 in the illustrated example) is connected to the operation control device 120 in the central control device 100.
  • driver amplifier other than the driver amplifier on one end side (driver amplifier DA10 in the illustrated example) directly connected to the operation control device 120 is connected to the operation control device 120 via another driver amplifier.
  • the connection form is not limited to this, and for example, the respective driver amplifiers DA10 to DA19 may be directly connected to the operation control device 120.
  • DA21 to DA27 of the arm robot 20, DA10 to DA19 of the pipe bender 10, and DA31 to DA37 of the arm robot 30 are connected to the operation control device 120 in the central control device 100. (See FIGS. 2 and 4).
  • the operation control device 120 controls the operations of the actuators Ac10 to Ac19, Ac21 to Ac27, and Ac31 to Ac37 via these driver amplifiers DA10 to DA19, DA21 to DA27, and DA31 to DA37.
  • an operation control device 120 having a high processing capacity is required. Therefore, when there are a large number of actuators to be controlled as in the manufacturing system 1 of the present embodiment, the control program may not be executed at a required speed due to insufficient processing capacity of the motion control device 120. With this, even if the control program can be easily created, it cannot be said that the manufacturing system 1 or the automatic manufacturing machine can be easily controlled. Therefore, the operation control device 120 of this embodiment decides to execute the control program automatically generated from the YOGO chart by the method described below. When executed in such a manner, the processing capacity required to execute the control program can be suppressed.
  • FIG. 5 is an explanatory diagram of a principle of automatically generating a control program of an automatic manufacturing machine (here, a pipe bender 10 and arm robots 20 and 30) based on a special operation chart named YOGO chart. ..
  • FIG. 5A shows a primitive YOGO chart before various improvements have been made.
  • the YOGO chart of this embodiment which will be described later, is an improved version of the primitive YOGO chart shown in FIG. 5 (a), but the principle of automatically generating a control program is a primitive YOGO chart. Is the same as. Therefore, in order to facilitate understanding, the principle of automatically generating a control program from the YOGO chart will be described using the primitive YOGO chart shown in FIG. 5 (a).
  • an automatic manufacturing machine is equipped with a plurality of actuators, and the automatic manufacturing machine operates by operating these actuators.
  • the YOGO chart describes the operation of an automatic manufacturing machine by combining the basic operations of a plurality of actuators mounted on the automatic manufacturing machine.
  • the basic operation of the actuator is an operation in the direction of freedom of the actuator (hereinafter referred to as a basic operation).
  • a basic operation For example, in the case of a rotating actuator such as a motor, the rotation operation is the basic operation, and in the case of an actuator such as a cylinder that moves forward and backward, the operation of moving forward and backward is the basic operation.
  • the basic operation of the actuator is a simple operation in which the actuator operates in the direction of the degree of freedom of the actuator by a specified amount of operation.
  • the operation period from the start to the end of the operation of the automatic manufacturing machine is divided into a plurality of subperiods, and the basic operation of each actuator is divided into a plurality of subperiods. It is assigned to any one subperiod selected for each basic operation.
  • the basic operation act1 of a certain actuator is assigned to the first partial period (partial period 1) when the automatic manufacturing machine starts operation, and the next partial period (partial period) is assigned.
  • a basic operation act2 by the same or another actuator as the actuator
  • a basic operation act3 and a basic operation act4 are assigned.
  • the basic operation act5 and the basic operation act6 are assigned to the next partial period (partial period 3), the basic operation act7 is assigned to the next partial period (partial period 4), and the next part is further assigned.
  • a basic operation act8 and a basic operation act9 are assigned to the period (partial period 5).
  • the operation of the automatic manufacturing machine is decomposed into the basic operations of a plurality of actuators mounted on the automatic manufacturing machine, and those basic operations are assigned to any partial period to automatically perform the operation. Describe the operation of the manufacturing machine.
  • the partial period indicates the period during which the assigned actuator operates, and does not indicate the length of time.
  • the length of time in partial period 1 is the time required to execute the basic operation act1
  • the length of time in partial period 2 is the longer time required to execute the basic operations act2, act3, and act4. It has become. Therefore, the length of time in each subperiod is usually different from each other.
  • the basic operation of the actuator assigned to the partial period is a simple operation such as rotating the motor by a certain amount or moving the cylinder forward or backward by a certain amount. Therefore, a small program (hereinafter referred to as a program element) for causing the actuator to perform basic operation can be created in advance.
  • a program element prog1 for causing a certain actuator to perform the basic operation act1 can be created in advance.
  • program elements prog2 to prog9 for performing those basic operations can be created in advance.
  • program elements for causing the actuator to perform basic operations are created in advance, and a plurality of program elements are combined so that the program elements are activated one after another in the order described in the YOGO chart.
  • a control program for operating the automatic manufacturing machine can be automatically generated from the YOGO chart.
  • the YOGO chart is described by assigning the basic operation of the actuator to a partial period (see FIG. 5A), and the control program generated from the YOGO chart is a program element corresponding to the basic operation.
  • the control program generated from the YOGO chart is a program element corresponding to the basic operation.
  • the number of basic operations assigned to a certain sub-period in the YOGO chart will be significantly larger than that of other sub-periods.
  • the number of actuators for which the movement should be controlled is larger than that in the other partial periods. It will be significantly more.
  • the basic operations act10 to act18 assigned to the partial period 6 in FIG. 6A do not necessarily have to be executed at the same time. That is, the contents described in the YOGO chart are that these nine basic operations acts10 to act18 must be executed after the completion of the basic operations assigned to the partial period 5, and that the basic operations assigned to the partial period 7 are completed. This is something that needs to be done before the operation starts. Therefore, it is not described that these nine basic operations act10 to act18 need to be executed at the same time.
  • the partial period to which these nine basic operations acts10 to act18 are assigned can be divided into a plurality of partial periods.
  • the partial period 6 in FIG. 6A is divided into two partial periods, a partial period 6 and a partial period 7. Then, the nine basic operation acts10 to act18 assigned to the partial period 6 in FIG. 6A are appropriately assigned to either the partial period 6 or the partial period 7 in FIG. 6B.
  • the number of actuators to be operated can be distributed in advance for each partial period. Then, since the control program generated from the YOGO chart executes the program elements that control the operation of the actuator for each partial period, the number of program elements to be executed at the same time can be suppressed.
  • the program element realizes the basic operation which is the basic operation of the actuator, the processing power required to execute each program element may be small. For this reason, even if the motion control device 120 does not have such a high processing capacity, it is possible to execute the control program of the automatic control machine equipped with a large number of actuators at a sufficiently practical speed. Become.
  • the creator of the YOGO chart may use a plurality of the partial periods. It was explained as being divided into partial periods. However, the number of basic operations that can be assigned to one partial period (allowable allocation number) is set in advance, and in the YOGO chart created by the creator of the YOGO chart, basic operations that exceed the allowable allocation number are generated. If the allocated sub-period exists, the sub-period may be automatically divided.
  • the permissible allocation number is set to "4", and the number of basic operations allocated in the partial period 6 exceeds the permissible allocation number. Therefore, the partial period 6 is divided into two partial periods, a partial period 6-1 and a partial period 6-2. Then, the basic operations act10 to act13 from the beginning to the allowable allocation number assigned to the partial period 6 are assigned to the partial period 6-1 and the other basic operations acts14 to act18 are assigned to the partial period 6-2.
  • FIG. 7B shows a state in which the partial period 6 is divided into the partial period 6-1 and the partial period 6-2 in this way.
  • the basic operations assigned to the partial period 6-1 are within the allowable allocation number, but the basic operations assigned to the partial period 6-2 exceed the allowable allocation number.
  • the partial period 6-2 is divided into two partial periods (partial period 6-2 and partial period 6-3). Therefore, the sub-period 6 in FIG. 7 (a) is divided into three sub-periods.
  • the basic operation acts14 to act17 from the beginning to the allowable allocation number assigned to the partial period 6-2 are assigned to the partial period 6-2 after the division, and the other basic operation act18 is assigned to the partial period 6-. Assign to 3.
  • the number of assigned basic operations is less than or equal to the allowable allocation number for any of the three subperiods 6-1 to 6-3 in which the subperiod 6 is divided. Can fit.
  • the computer automatically modifies the YOGO chart created by humans, so that the number of basic operations assigned to the partial period is less than the allowable number of YOGO charts. Can also be generated. As a result, even when the motion control device 120 does not have such a high processing capacity, the control program generated from the YOGO chart can be quickly executed.
  • FIG. 8 is an explanatory diagram for explaining the outline of the YOGO chart 200 of this embodiment.
  • the YOGO chart 200 shown in FIG. 8 is a chart describing the operation of the pipe bender 10 shown in FIG. 3, but a similar chart can be created for the arm robot 20 and the arm robot 30 shown in FIG. can. If the scale is reduced to display the entire YOGO chart 200, the display is crushed and becomes unreadable. Therefore, a part (upper left corner portion) of the YOGO chart 200 is displayed in FIG.
  • the YOGO chart 200 has a shape like a large table in which a plurality of horizontal lines and a plurality of vertical lines intersect. In the following, among the plurality of intersecting lines, the horizontal line will be referred to as "partition line” 201, and the vertical line will be referred to as "trigger line” 202.
  • the trigger line 202 is given a serial number starting from 1.
  • the serial number of the trigger line 202 below the upper end column of the YOGO chart 200 is described.
  • the area between the trigger lines 202 adjacent to each other is the partial period described above with reference to FIG. 5, and the partial period is also given a serial number starting from No. 1 (hereinafter, referred to as a partial period number).
  • the trigger line 202 is drawn in the vertical direction. Therefore, the partial period sandwiched between the trigger line 202 and the trigger line 202 is arranged in the horizontal direction.
  • the trigger line 202 may be drawn in the horizontal direction, and in this case, a plurality of partial periods are arranged in the vertical direction.
  • the YOGO chart 200 of this embodiment is divided into a plurality of horizontally long areas by a plurality of partition lines 201, and these horizontally long areas are assigned serial numbers starting from No. 1 (hereinafter, referred to as actuator numbers).
  • the actuator mounted on the pipe bender 10 is assigned to any of a plurality of horizontally long regions.
  • the actuator Ac10 (see FIG. 3) is assigned to the region having the actuator number 1
  • the actuator Ac11 (see FIG. 3) is assigned to the region having the actuator number 2.
  • Actuator Ac12 (see FIG. 3) is assigned to the region where the actuator number is 3. Since the pipe bender 10 of this embodiment is equipped with 10 actuators Ac10 to Ac19, a horizontally long region is allocated to all of these actuators one by one.
  • the basic operation of the actuators Ac10 to Ac19 is described at an appropriate position on the horizontally long area to which the actuators Ac10 to Ac19 are assigned.
  • the actuator Ac10 is basically operated in the partial period 4, the coordinate position of the grid specified by the partial period number 4 on the horizontally long region where the actuator number is 1 on the YOGO chart 200. Describes the basic operation 206 to be caused by the actuator Ac10.
  • the actuator Ac10 is basically operated in the partial period 4 and the partial period 8
  • the basic operation 206 to be caused by the actuator Ac10 will be described at the coordinate position where the partial period number is No.
  • the basic operation of the actuator Ac10 is described on the horizontally long region of the actuator number 1 on the YOGO chart 200, and the basic operation of the actuator Ac11 is described on the horizontally long region of the actuator number 2.
  • the basic operation of the actuators Ac10 to Ac19 is described on the YOGO chart 200 on the horizontally long region to which the actuators Ac10 to Ac19 are assigned.
  • the basic operation is described as follows.
  • the basic operation 206 of the actuator Ac13 that first operates in the YOGO chart 200 of FIG. 8 will be described. Since the operating actuator is the actuator Ac13, the corresponding actuator number is No. 4, and since it operates first, the corresponding partial period number is No. 1. Therefore, the position on the YOGO chart 200 where the basic operation is described is a grid-like coordinate position where the actuator number is No. 4 and the partial period number is No. 1.
  • the square corresponding to the coordinate position where the partial period number is No. 1 is the square sandwiched between the No. 1 trigger line 202 existing on the left side and the No. 2 trigger line 202 existing on the right side.
  • An operation line 203 indicating the operation of the actuator is entered from the No. 2 trigger line 202 to the No. 2 trigger line 202. Then, the start point 204 indicating the start of the operation is entered at the left end of the operation line 203 (hence, on the first trigger line 202), and the end of the operation is entered at the right end of the operation line 203 (hence, on the second trigger line 202). Enter the end point 205 indicating.
  • the operation line 203 is indicated by a thick solid line
  • the start point 204 is indicated by a white circle
  • the end point 205 is indicated by a black circle.
  • the basic operation 206 is entered using the two elements of the “operation description” and the “numerical value table”.
  • two indications " ⁇ -AC” and “AC-B11” are written on the operation line 203 having the actuator number 4 and the partial period number 1.
  • the display " ⁇ -AC” is the operation description 206a
  • the display "AC-B11” is the numerical table 206b.
  • the operation description 206a is a display describing the qualitative contents (for example, forward movement, backward movement, rotation, etc.) of the basic movement 206. ..
  • the numerical table 206b is a table in which numerical values indicating the quantitative contents (for example, movement amount, speed, torque, etc.) of the basic operation 206 are set.
  • the indications of " ⁇ -AC” and "AC-B01" in which the actuator number is No. 4 and the partial period number is No. 1 are as follows. That is, the actuator having the actuator number 4 (actuator Ac13 in the example of FIG. 8) is basically operated and basically operated according to the operation description 206a of " ⁇ -AC" at the timing when the partial period number is 1.
  • the specific numerical value used in this case indicates that the numerical value set in the numerical table 206b called "AC-B01" is used.
  • the operation description 206a of " ⁇ -AA” is entered for the actuator Ac10, but the operation description of " ⁇ -AB” is entered for the actuator Ac11.
  • 206a is entered, and the operation description 206a is different.
  • the actuator Ac10 is an actuator for opening and closing the chuck 12b
  • the actuator Ac11 is an actuator for turning (that is, twisting) the gripping shaft 12a around the axis. Because there is.
  • the actuator Ac12 and the actuator Ac13 use the same operation description 206a of " ⁇ -AC".
  • the actuator Ac12 is an actuator for moving the gripping shaft 12a forward and backward in the axial direction
  • the actuator Ac13 is an actuator for moving the entire delivery unit 12 forward and backward, and is moved.
  • the size, weight, and amount of movement of the object are different, they are the same in that the object is moved forward and backward. Therefore, the actuator Ac12 and the actuator Ac13 can use the same operation description 206a.
  • the actuator Ac16 is an actuator for moving the entire machining unit 13 up and down, but since the up and down movement can be considered as a kind of forward and backward movement, the actuator Ac16 is also " ⁇ -AC" like the actuator Ac12 and the actuator Ac13.
  • the operation description 206a can be used.
  • the actuators Ac14 and Ac15 are both actuators that move the air cylinder forward and backward, the operation description 206a of " ⁇ -CA" is used for both of them.
  • the basic operation 206 of the actuator is described (in principle) by using the operation description 206a and the numerical table 206b.
  • the operation description 206a can be shared for many actuators.
  • the pipe bender 10 of this embodiment is equipped with 10 actuators Ac10 to Ac19, and the operation description 206a used in the YOGO chart 200 describing the operation of the pipe bender 10 There are four types.
  • FIG. 9 is an explanatory diagram of the details of the operation description 206a used in the YOGO chart 200 of this embodiment.
  • the operation description 206a of " ⁇ -AA” is an operation description 206a indicating that the actuator is operated to open and close, and this operation description 206a assumes an actuator in which a chuck mechanism is combined with an AC servomotor. Conversely, if the actuator is not an AC servomotor combined with a chuck mechanism, the operation description 206a of " ⁇ -AA" cannot be used even if the operation of the actuator is an opening / closing operation.
  • the operation description 206a of " ⁇ -AA” describes a simple operation content of opening and closing an actuator in which a chuck mechanism is combined with an AC servomotor, a small program for realizing the operation content is described. (That is, the program element) can be created in advance. For this reason, the operation description 206a stores a serial number (hereinafter referred to as a program element number) for specifying a program element that realizes the operation content in association with the operation description 206a. Even if the actuator operates in the same way, the operation description 206a of " ⁇ -AA” cannot be used unless the actuator is a combination of an AC servomotor and a chuck mechanism. The reason is that the program element number is stored in association with the operation description 206a. That is, if the structure of the actuator is different, it is considered that the program elements for operating the actuator are different. Therefore, as long as the associated program elements are different, the operation description 206a also needs to be different.
  • a serial number hereinafter referred to as a
  • the operation description 206a of " ⁇ -AB” is an operation description 206a indicating that the actuator is rotated by assuming an actuator in which a reduction mechanism is combined with an AC servomotor.
  • the program element number 7 is associated and stored.
  • the operation description 206a of " ⁇ -AC” is an operation description 206a indicating that an actuator in which a ball screw mechanism is combined with an AC servomotor is assumed and the actuator is moved forward and backward, and the program element number is 4.
  • the numbers are associated and stored.
  • the operation description 206a of " ⁇ -CA” is an operation description 206a indicating that the actuator is moved forward and backward assuming an actuator using an air cylinder, and the program element number 2 is associated and stored. Has been done.
  • the second program element is as simple as switching the open / closed state of the air cylinder port, it should be realized by a simpler method (for example, relay, logic circuit, sequence control, etc.). It is possible to do. However, by realizing the simple contents by using a program element, it becomes possible to handle a simple control assuming an air cylinder in the same manner as other complicated controls assuming an AC servomotor.
  • the operation description 206a is merely a qualitative description of the contents of the operation such as opening / closing operation, rotation operation, advance / retreat operation, etc.
  • the operation description 206a is used in combination with the numerical table 206b in principle.
  • NS for example, in the YOGO chart 200 described above with reference to FIG. 8, the operation description 206a used for the actuator Ac10 having the actuator number 1 is " ⁇ -AA", but for the numerical table 206b, the partial period number is The numerical table 206b called “AA-B01" is used at the timing of No. 4, the numerical table 206b called “AA-B01" is used at the timing of the partial period number 6, and "AA-" is used at the timing of the partial period number 10.
  • a numerical table 206b called “B01” is used.
  • the name “AA-B01” indicates that the numerical table 206b “B01” is used in combination with the operation description 206a " ⁇ -AA”.
  • the name “AA-B02” indicates that it is a numerical table 206b "B02” used in combination with the operation description 206a " ⁇ -AA”.
  • FIG. 10 is an explanatory diagram illustrating a numerical table 206b used in combination with the operation description 206a of " ⁇ -AA".
  • FIG. 10A shows a numerical table 206b called “AA-B01”
  • FIG. 10B shows a numerical table 206b called “AA-B02”.
  • two numerical tables 206b are illustrated in FIG. 10, more numerical tables 206b can be set as needed.
  • three items of "numerical table number”, "opening / closing speed”, and “opening / closing load” are set.
  • the "numerical table number” is a serial number of the numerical table 206b. For example, if the numerical table number is specified as No.
  • one operation description 206a of " ⁇ -AB” is used for the actuator Ac11 having the actuator number 2, but the partial period number is 2.
  • the numerical table 206b called “AB-B01” is used in combination
  • the numerical table 206b called “AB-B02” is used in combination.
  • the names "AB-B01” and “AB-B02” indicate that they are the numerical tables 206b "B01” and “B02” used in combination with the operation description 206a " ⁇ -AB", respectively.
  • FIG. 11 is an explanatory diagram illustrating a numerical table 206b used in combination with the operation description 206a of " ⁇ -AB".
  • FIG. 11A shows a numerical table 206b called “AB-B01”
  • FIG. 11B shows a numerical table 206b called “AB-B02”.
  • two numerical tables 206b are illustrated in FIG. 11, more numerical tables 206b can be set as needed.
  • a total of four items of "rotation angle”, “rotation speed”, and “rotation torque” are set.
  • the items of "rotation angle”, “rotation speed”, and “rotation torque” are items used to describe the basic operation in combination with the operation description 206a.
  • the reason why the items of "rotation angle”, “rotation speed”, and “rotation torque” are set in the numerical table 206b of FIG. 11 is that the numerical table 206b has an operation of " ⁇ -AB" indicating a rotation operation. This is because it is used in combination with the description 206a. That is, since the operation description 206a of " ⁇ -AB" can only be used for rotational operation, the rotation angle, rotation speed, and rotation torque are the “rotation angle”, “rotation speed”, and “rotation torque”.
  • a numerical value is set in the numerical value table 206b in the item ".” The fact that a positive value is set for the "rotation angle" of the numerical table 206b and a case where a negative value is set indicates that the rotation directions are opposite.
  • the actuator Ac12 having the actuator number 3, the actuator Ac13 having the actuator number 4 and the actuator Ac16 having the actuator number 7 are all referred to as " ⁇ -AC".
  • the operation description 206a is used.
  • different numerical tables 206b are used for the actuator Ac12 having the actuator number 3, the actuator Ac13 having the actuator number 4, and the actuator Ac16 having the actuator number 7. .. That is, the numerical table 206b of "AC-B01" or “AC-B02" is used in combination for the actuator Ac12 having the actuator number 3, and "AC-B01" is used for the actuator Ac13 having the actuator number 4.
  • the numerical table 206b of "AC-B11” or “AC-B12” is used in combination, and the numerical table 206b of "AC-B21” or “AC-B22” is used in combination for the actuator Ac16 having the actuator number 7.
  • the names “AC-B01”, “AC-B02”, “AC-B11”, “AC-B12”, “AC-B21”, and “AC-B22” are each operated as “ ⁇ -AC”.
  • Indicates that the numerical table 206b is "B01", “B02”, “B11”, “B12”, “B21”, “B22”, which is used in combination with the description 206a. Similar to the numerical table 206b described with reference to FIG. 10 or 11, the numerical table 206b in which the items corresponding to the operation description 206a are set is preset for these numerical tables 206b.
  • the operation description 206a of " ⁇ -AD” is used for the actuator Ac17 having the actuator number 8
  • the numerical table 206b is a numerical table of "AD-B01" or "AD-B02". 206b is used.
  • a numerical table 206b in which items corresponding to the operation description 206a are set is preset.
  • the operation description 206a of " ⁇ -CA" is used for both the actuator Ac14 having the actuator number 5 and the actuator 15 having the actuator number 6. This corresponds to the fact that the actuators Ac14 and Ac15 are both air cylinders, and the content of the basic operation is "advance / retreat operation". Further, the numerical table 206b is not combined with the operation description 206a of " ⁇ -CA". The reason for this is that the actuators Ac14 and Ac15 are air cylinders, and since these air cylinders operate by switching the operation port that applies air pressure among the two operation ports, the content of the operation is described using quantitative numerical values. This is because there is no need to describe it.
  • the actuator and the basic operation to be basically operated by entering the basic operation 206 at the coordinate position defined by the combination of the partial period number and the actuator number. Specify the timing to make it.
  • the basic operation 206 is expressed by a combination of the operation description 206a and the numerical table 206b in principle. In this way, when creating the YOGO chart 200, it is possible to concentrate on entering the operation description 206a and to fill in the numerical table 206b for the time being.
  • the work of writing the operation description 206a on the YOGO chart 200 is practically the same as the work of expressing the content that humans think in a straightforward manner. It can be significantly reduced.
  • Outline of control program generator 110 If the YOGO chart 200 described above is created, a control program can be automatically generated from the YOGO chart 200 by using the control program generation device 110 (see FIG. 1) mounted on the central control device 100. can.
  • FIG. 12 is an explanatory diagram of the control program generation device 110 mounted on the central control device 100.
  • the control program generation device 110 of this embodiment includes a YOGO chart creation unit 111, a basic operation storage unit 112, a YOGO chart analysis unit 113, a control program generation unit 114, and the like. .. It should be noted that these "parts" are abstract concepts representing a plurality of functions provided by the control program generation device 110 for creating the YOGO chart 200 and generating the control program. Therefore, it does not mean that the control program generator 110 is formed by combining the parts corresponding to these "parts".
  • these "parts" can be realized in the form of a program executed by a CPU, in the form of an electronic circuit in which an IC chip, an LSI, or the like is combined, and further. It can be realized in various forms such as a form in which these are mixed.
  • the YOGO chart creation unit 111 is connected to a monitor screen 100 m, an operation input button 100s, etc., and a mechanical engineer or the like who has knowledge about an automatic manufacturing machine (pipe bender 10, arm robots 20, 30, etc.) can use it.
  • a mechanical engineer or the like who has knowledge about an automatic manufacturing machine (pipe bender 10, arm robots 20, 30, etc.) can use it.
  • the operation input button 100s By operating the operation input button 100s while looking at the monitor screen 100 m, the YOGO chart 200 as illustrated in FIG. 8 is created.
  • An engineer who has knowledge about the operation of an automatic manufacturing machine can easily create a YOGO chart 200.
  • the basic operation when the basic operation is entered in the YOGO chart 200, the basic operation is entered using the operation description 206a and the numerical table 206b in principle, but the operation description that can be used depends on the actuator. 206a is fixed (see FIG. 9). Therefore, the name of the actuator and the operation description 206a that can be used by the actuator are stored in advance in the basic operation storage unit 112 in association with each other.
  • FIG. 13 is an explanatory diagram showing how the name of the actuator and the usable operation description 206a are associated with each other.
  • the basic operation storage unit 112 stores an operation description 206a that can be used by the actuator in a state of being associated with the actuator, and further, a program element associated with each operation description 206a.
  • the number is memorized.
  • the program element number is a number that specifies a program element for realizing the operation of the operation description 206a by using the actuator.
  • the structure of the actuator and the contents of the basic operation of the actuator are also stored in a state of being associated with each actuator.
  • the numerical table 206b illustrated in FIGS. 10 and 11 is also stored in the basic operation storage unit 112.
  • the above-mentioned basic operation storage unit 112 is connected to the YOGO chart creation unit 111. Therefore, the mechanical engineer can refer to the basic operation storage unit 112 when creating the YOGO chart 200.
  • a mechanical engineer who has sufficient knowledge about the pipe bender 10 knows what kind of actuator is to be operated and how to operate it. Therefore, it is appropriate from the operation descriptions 206a that can be used according to the actuator.
  • the operation description 206a can be selected.
  • a temporary numerical table 206b may be set. That is, as described above with reference to FIG.
  • the name of the numerical table 206b is a combination of a predetermined part in the name of the operation description 206a used in combination and a serial number, so that the numerical value is used for the time being.
  • the name of the table 206b can be determined and entered in the YOGO chart 200, and the numerical value of the numerical table 206b can be modified or the numerical table 206b can be changed later. Further, when a numerical table 206b having a new name is created, a new numerical table number (see FIGS. 10 and 11) is automatically assigned to the numerical table 206b.
  • the YOGO chart analysis unit 113 reads and analyzes the YOGO chart 200 created by the YOGO chart creation unit 111 to generate intermediate data, and then outputs the intermediate data to the control program generation unit 114.
  • the process of generating intermediate data from the YOGO chart will be described in detail later.
  • the YOGO chart 200 is created by a computer 50 provided separately from the central control device 100, and the YOGO chart 200 is created. May be read and analyzed by the YOGO chart analysis unit 113.
  • control program generation unit 114 When the control program generation unit 114 receives the intermediate data, the control program generation unit 114 generates a control program from the intermediate data by referring to the correspondence stored in the basic operation storage unit 112. The method of generating the control program from the intermediate data will be described in detail later. Then, the obtained control program is output to the operation control device 120 described later.
  • FIG. 14 is a flowchart showing an outline of the control program generation process executed by the control program generation device 110 described above.
  • the YOGO chart is first read (STEP 1). Subsequently, the read YOGO chart is analyzed to generate intermediate data (STEP2).
  • FIG. 15 is a flowchart of a process (YOGO chart analysis process) in which the YOGO chart analysis unit 113 in the control program generator 110 analyzes the YOGO chart and generates intermediate data.
  • the YOGO chart analysis process is started, first, the partial period number N and the actuator number M are initialized to "1" (STEP 10). Subsequently, it is determined whether or not the basic operation is entered at the position of the coordinates (N, M) on the YOGO chart (STEP 11).
  • the coordinates (N, M) on the YOGO chart represent the coordinate positions in a grid pattern specified by the combination of the partial period number N and the actuator number M on the YOGO chart.
  • the actuator number M has reached the final value (STEP14: yes)
  • this time it is determined whether or not the partial period number N has reached the final value (STEP16). For example, if the operation of the pipe bender 10 is described using 100 partial periods on the YOGO chart, the final value of the partial period number N is 100.
  • FIG. 16 illustrates intermediate data obtained when the YOGO chart 200 illustrated in FIG. 8 is analyzed.
  • the intermediate data is a set of data in which a partial period number N, an actuator number M, an operation description 206a, and a numerical table 206b are arranged in this order (hereinafter, referred to as "data record"). Is a collection of.
  • the partial period number N of each data record takes any value from 1 to the final value of the partial period number N
  • the actuator number M is any value of the actuator number M shown in the YOGO chart 200. I take the.
  • FIG. 17 shows a control program generated from the intermediate data illustrated in FIG.
  • the control program is a collection of a set of data (that is, a data record) in which a partial period number N, an actuator number M, a program element number P, and a numerical table number T are arranged in this order. It has become a program.
  • the data record of the control program has an operation description 206a in the data record of the intermediate data.
  • the operation description 206a is replaced with the program element number P (see FIG. 13), and the numerical table 206b in the data record of the intermediate data is replaced with the numerical table number T corresponding to the numerical table 206b. (See FIGS. 10 and 11).
  • the operation of replacing the operation description 206a and the numerical table 206b in the intermediate data with the program element number and the numerical table number, respectively, is executed by the control program generation unit 114 in FIG. 12 referring to the basic operation storage unit 112. .. That is, the operation description 206a is stored in the basic operation storage unit 112 in association with the program element number (see FIG. 13). Further, the basic operation storage unit 112 stores the numerical table 206b illustrated in FIGS. 10 and 11, and a numerical table number is set in each numerical table 206b. Therefore, the control program generation unit 114 refers to the operation description 206a and the numerical value in the intermediate data by referring to the correspondence relationship of FIG. 13 stored in the basic operation storage unit 112 and the numerical table 206b of FIGS. 10 and 11. Table 206b is replaced with a program element number and a numerical table number.
  • control program generation process is terminated.
  • the motion control device 120 of this embodiment controls the motion of the automatic manufacturing machine (pipe bender 10, arm robots 20, 30, etc.) according to such a control program.
  • FIG. 18 is an explanatory diagram of the operation control device 120 of this embodiment.
  • the operation control device 120 includes a control program storage unit 121, an activation detection unit 122, a control target period selection unit 123, a control content extraction unit 124, a command generation unit 125, and a command storage unit 126. It also includes a control execution unit 127 and the like. It should be noted that these "parts" are abstract concepts representing a plurality of functions provided by the motion control device 120 for controlling the motion of the plurality of actuators according to the control program.
  • the motion control device 120 is formed by combining the parts corresponding to these "parts".
  • these "parts" can be realized in the form of a program executed by a CPU, in the form of an electronic circuit in which an IC chip, an LSI, or the like is combined, and further. It can be realized in various forms such as a form in which these are mixed.
  • the control program storage unit 121 stores in advance the control program generated by the control program generation device 110. Further, the activation detection unit 122 is connected to the activation switch 120a provided in the central control device 100, and when it detects that the activation switch 120a is pressed, it outputs to that effect to the control target period selection unit 123.
  • control target period selection unit 123 When the control target period selection unit 123 receives the information that the activation switch 120a is pressed, the control target period selection unit 123 selects the first partial period described in the YOGO chart as the control target partial period (hereinafter referred to as the control target period). Then, the partial period number of the partial period is output to the control content extraction unit 124.
  • the control content extraction unit 124 is connected to the control program storage unit 121, and when it receives the partial period number of the control target period, the partial period of the control target period is selected from the control programs stored in the control program storage unit 121. Extract the data record with the number.
  • the actuator number M, the program element number P, and the numerical table number T are stored in the data record together with the partial period number N.
  • the actuator number M represents an actuator to be controlled.
  • the program element number P represents a program element used for controlling the actuator
  • the numerical table number T represents a numerical table in which numerical values used for controlling the actuator are set.
  • the combination of the program element and the numerical table represents a specific control content (that is, an operation content to be controlled).
  • extracting the data record having the partial period number of the control target period from the control program means extracting the actuator to be controlled and the control content for the actuator.
  • the control content extraction unit 124 outputs the actuator and the control content extracted in this way to the command generation unit 125.
  • the actuators and control contents corresponding to the respective data records are output to the command generation unit 125.
  • the command generation unit 125 When the command generation unit 125 receives the actuator to be controlled in the control target period and the control content of the actuator, the command generation unit 125 generates a command according to the content and outputs the command to the control execution unit 127 with the actuator specified. do.
  • the method of generating a command will be described in detail later, but the command storage unit 126 stores the program element number P and the command in association with each other, and when the command generation unit 125 receives the control content, the control content is stored.
  • a command is generated by referring to the command storage unit 126 using the program element number P included in.
  • a command is generated for each actuator and output to the control execution unit 127.
  • the control execution unit 127 is connected to the driver amplifiers DA10 to DA19, the driver amplifiers DA21 to DA27, and the driver amplifiers DA31 to DA37.
  • Actuators Ac10 to Ac19 of the pipe bender 10 are connected to the driver amplifiers DA10 to DA19, actuators Ac21 to Ac27 of the arm robot 20 are connected to the driver amplifiers DA21 to DA27, and the actuator amplifiers DA31 to DA37 are connected. Is connected to the actuators Ac31 to Ac37 of the arm robot 30.
  • the control execution unit 127 executes feedback control so that the actuator performs the basic operation corresponding to the command by driving the driver amplifier corresponding to the specified actuator. .. This point will be explained in detail later. If there are a plurality of actuators to be controlled, feedback control is executed for each actuator.
  • the control execution unit 127 outputs to the control target period selection unit 123 that the control in the control target period is completed. Then, the control target period selection unit 123 selects the next sub-period of the sub-period previously selected as the control target period as a new control target period, and controls the sub-period number N of the new control target period. Output to the content extraction unit 124.
  • the control content extraction unit 124 extracts the control content for the new control target period as described above, outputs the result to the command generation unit 125, and the command generation unit 125 generates a command to control the new control target period. Output to the execution unit 127.
  • the control execution unit 127 starts the control of the actuator in the new control target period. Further, even during the execution of such control, the control execution unit 127 can stop the control by pressing the stop switch 120b provided in the central control device 100.
  • the motion control device 120 of the present embodiment operates the actuators mounted on the automatic manufacturing machine by selecting the partial periods one by one in order from the first partial period to the final partial period. To control.
  • FIG. 19 is a flowchart of an operation control process executed by the operation control device 120 of this embodiment in order to control the operation of each actuator mounted on the automatic manufacturing machine.
  • the control program stored in the control program storage unit 121 is read out (STEP 50).
  • the partial period number N is set to "1" (STEP51), and the data record having the set partial period number N is extracted from the control program (STEP52). If a plurality of data records having the set partial period number N exist in the control program, all the data records are extracted. Since the partial period number N is set to "1" immediately after the operation control process is started, the data record (1, 4, 4, 19) is extracted from the control program illustrated in FIG. It will be.
  • the actuator to be controlled is specified based on the actuator number M in the extracted data record (STEP53). Assuming that the data record read in STEP 52 is (1, 4, 4, 19), the second "4" in the data record is the actuator number M, and the actuator number M is the actuator "4". Is the actuator to be controlled. When a plurality of data records are read in STEP 52, each actuator to be controlled is specified based on the actuator number M stored in each data record.
  • the command storage unit 126 of the operation control device 120 shown in FIG. 18 stores in advance the correspondence between the program element number P and the command, and the command is acquired by referring to this correspondence.
  • FIG. 21 is an explanatory diagram illustrating the correspondence between the program element number P stored in the command storage unit 126 of the operation control device 120 and the command.
  • the program element number 1 is associated with the command name "ACMTR_OC_wT”, and this command is a command for opening and closing the program using an AC servomotor.
  • the program element number 3 is associated with the command name "ACMTR_OC_woT”, and this command is also a command for opening and closing the program using the AC servomotor.
  • the difference between the command "ACMTR_OC_wT” and the command "ACMTR_OC_woT” is whether or not the time required to perform the opening / closing operation is specified.
  • the command "ACMTR_OC_wT” is a command for opening and closing operation in the required time
  • the command "ACMTR_OC_woT” is a command for opening and closing operation without limiting the required time.
  • the program element number 2 is associated with the command name "ARCYL_OC”, and this command is a command for opening and closing using an air cylinder.
  • STEP 54 of the operation control process shown in FIG. 19 the command corresponding to the program element number P is acquired by referring to the correspondence as shown in FIG.
  • the command is set with an argument according to the command name.
  • the command For example, it is necessary to set three arguments for the command "ACMTR_OC_wT" corresponding to the program element number 1, and a value of either "0" or "1" is set for the first argument.
  • "0” indicates that the opening operation is performed
  • "1” indicates that the closing operation is performed.
  • the opening / closing amount for opening / closing operation is set in the second argument
  • the time required for opening / closing operation is set in the third argument.
  • the numerical table number T stored in the data record is acquired, and the numerical table 206b corresponding to the numerical table number T is read out (STEP55).
  • the numerical table 206b is also stored in advance in the command storage unit 126 of the operation control device 120. Further, as described above with reference to FIG. 10 or 11, various values are set in advance in the numerical table 206b. Then, the command is generated by setting the value set in the read numerical value table 206b to the argument of the command acquired earlier (STEP56).
  • FIG. 22 is an explanatory diagram illustrating a state in which a numerical sequence of transitional target values corresponding to a command is generated.
  • the command name is "ACMTR_FR_woT” (that is, a command that moves the actuator forward and backward by a specified amount of movement, but the time required for movement is not determined (see FIG. 21)).
  • ACMTR_FR_woT that is, a command that moves the actuator forward and backward by a specified amount of movement, but the time required for movement is not determined (see FIG. 21)
  • the case where the movement amount Dt is specified is shown. Since the required time is not specified, the standard drive pattern shown in FIG. 22A, that is, the predetermined acceleration time Tac is applied to accelerate the actuator from the stopped state to the predetermined standard speed Ss, and then accelerate.
  • FIG. 22B shows how the actuator moves with the passage of time when driven by the drive pattern shown in FIG. 22A.
  • the time Tt elapses from the start of driving the actuator
  • the movement amount of the actuator reaches the movement amount Dt specified by the argument. Therefore, when the command name is "ACMTR_FR_woT" and the command with the movement amount Dt specified (the required time is not specified) is received, the position of the actuator may be controlled as shown in FIG. 22 (b). ..
  • the change in the actuator position is calculated in advance at a predetermined time interval dT. That is, the movement amount D1 at the time when the time dT has elapsed since the start of driving is calculated, the movement amount D2 at the time when the time dT has elapsed is calculated, and the movement amount at the time when the time dT has further elapsed.
  • the position of the actuator is calculated every dT for a predetermined time, such as calculating D3. By doing so, a numerical sequence as shown in FIG. 22 (c) can be obtained.
  • This numerical string is a numerical string of the transitional target value corresponding to the command, and represents the position of the target for moving the actuator with the passage of time.
  • the above-mentioned numerical sequence of the progress target is generated according to the command generated in STEP 56 of FIG.
  • a numerical string generated when the command name is the command "ACMTR_FR_woT” has been described.
  • the command name is "ACMTR_FR_wT” (that is, a command that moves the actuator forward and backward by a specified amount of movement in a specified required time (see FIG. 21))
  • it is as shown in FIG.
  • a string of numbers is generated.
  • the required time specified as an argument of the command is a time Tc shorter than the time Tt required for movement in FIG. 22.
  • the movement amount specified by the argument is the same movement amount Dt as in FIG.
  • the actuator is accelerated to a moving speed Sc larger than the standard speed Ss.
  • the acceleration at this time can be the same as the standard drive pattern shown in FIG. 22 (a).
  • the actuator is moved (advanced or retracted) at a constant moving speed Sc, and when the moving amount approaches the specified moving amount Dt, the moving speed Sc is decelerated to a speed of 0.
  • the deceleration at this time can also be the same as the standard drive pattern shown in FIG. 22 (a).
  • FIG. 23 (b) shows how the actuator moves with the passage of time when driven by the drive pattern shown in FIG. 23 (a).
  • a numerical sequence of transitional target values as shown in FIG. 23C can be obtained.
  • the movement amount Dt described above corresponds to the "movement target value” in the present invention
  • the numerical sequence of the transitional target value corresponds to the "progression movement” in the present invention.
  • the numerical string of the progress target value is generated based on the movement amount Dt and the command, and the command is determined by the operation description 206a described in the YOGO chart 200. Therefore, in the present embodiment, the operation description 206a corresponds to the "information for generating the transitional operation" in the present invention.
  • the numerical sequence of the transitional target value corresponding to the command is generated as described above.
  • the process of generating the numerical sequence of the elapsed target value is executed by the control execution unit 127 in the operation control device 120 shown in FIG.
  • the control execution unit 127 in the operation control device 120 detects the state quantity of the actuator to be controlled (STEP 58 in FIG. 20).
  • the state amount of the actuator is a physical quantity determined according to the operation of the actuator. For example, when the operation of the actuator is an advance / retreat operation, it is a movement amount, and when the operation of the actuator is a rotation operation, it is a rotation amount. Further, when the operation caused by the actuator is an opening / closing operation, it is an opening / closing amount.
  • the state quantity of the actuator can also be a moving speed, a rotating speed, or the like. Further, as described above with reference to FIG.
  • the actuators Ac10 to Ac19, Ac21 to Ac27, and Ac31 to Ac37 have built-in sensors such as encoders, and the control execution unit 127 of the operation control device 120. Can detect the state quantity of the actuator by acquiring the outputs of the sensors via DA10 to DA19, DA21 to DA27, and DA31 to DA37.
  • the drive amount output to the driver amplifier DA of the actuator is feedback-controlled so that the detected state amount of the actuator changes according to the numerical sequence of the elapsed target value (STEP59). That is, when a predetermined time dT elapses after the actuator starts to be driven, the elapsed target value at the beginning of the numerical sequence is read out and compared with the state quantity of the actuator, and the deviation between the elapsed target value and the state quantity of the actuator is small. The drive amount output to the driver amplifier DA is changed so as to be.
  • the partial period number N is a serial number assigned to the partial period of the YOGO chart 200, and when there are 100 partial periods in the YOGO chart 200, the final value of the partial period number N is "100". It becomes. Then, when it is determined that the partial period number has not reached the final value (STEP62: no), there is a data record that has not been processed yet in the control program, so one partial period number N is used. Increase (STEP63). After that, the process returns to STEP 52 in FIG.
  • a new data record having a partial period number N is extracted from the control program, and then the series of operations described above (STEP 53 to STEP 62) are repeated. While repeating such an operation, the partial period number N eventually reaches the final value. Then, it is determined in STEP 62 that "yes", and the operation control process shown in FIGS. 19 and 20 is terminated.
  • the operation control device 120 of this embodiment reads the control program described in the form of a plurality of data records having the partial period number N
  • the data record having the same partial period number N is extracted.
  • a command corresponding to the contents of the extracted data record is generated (see STEP 56).
  • a numerical sequence of transitional target values corresponding to the command is generated (see STEP 57), and the operation of the actuator is feedback-controlled (see STEP 58 to STEP 60 in FIG. 20).
  • the control program data records are controlled in an interpreter format (that is, the contents are interpreted for each data record having the same partial period number N).
  • the number of operating actuators can be easily reduced to less than a certain number. It can be fixed. Then, in the control program generated from the YOGO chart 200 modified in this way, the number of data records having the same partial period number N is also less than a certain number, so that the number of actuators to be controlled at the same time may be less than a certain number. can. As a result, the control program can be executed at a sufficiently practical speed even if the operation control device 120 having a general processing speed is used.
  • one partial period is selected as the control target period from the plurality of partial periods, and when the basic operation 206 of all the actuators assigned to the control target period is completed (FIG. FIG. 20 STEP61: yes), described as selecting the next subperiod as the new controlled period.
  • the manufacturing system 1 or the automatic manufacturing machine
  • a condition for assuming that the basic operation 206 of the actuator has been completed is set, and when the condition is satisfied, it is considered that the basic operation 206 has ended (STEP 61: yes in FIG. 20).
  • the next subperiod may be selected as the new controlled period.
  • the operation description 206a of the basic operation 206 of the actuator Ac11 is " ⁇ -AB”
  • the numerical table 206b is "AB-B01”.
  • the operation description 206a of " ⁇ -AB” represents a rotation operation (see FIG. 9).
  • the numerical table 206b called "AB-B01”
  • "90" degrees is set as the rotation angle of the target to be rotated. Therefore, when the rotation angle of the actuator Ac11 reaches 90 degrees, the basic operation 206 of the actuator Ac11 ends and the next basic operation 206 of the actuator Ac12 starts.
  • an item “next operation permitted position” is added to the numerical table 206b in FIG. 11 (a).
  • This item can be regarded as the end of the basic operation 206 at the position just before the value set in the item "Next operation permitted position” with respect to the value set in the item “Rotation angle” in the numerical table 206b. It represents that.
  • the item “rotation angle” is set to "90” degrees
  • the basic operation 206 if the basic operation 206 is completed or can be regarded as completed, the basic operation 206 assigned to the next partial period (here, the partial period whose partial period number is 7) is (here). Then, the basic operation 206) of the actuator Ac12 is started.
  • the start time of the basic operation 206 assigned to the next partial period can be advanced, so that the time required to end all the partial periods can be shortened. As a result, it becomes possible to improve the manufacturing efficiency of the manufacturing system 1.
  • the control execution unit 127 in the motion control device 120 generates a numerical sequence of transitional target values corresponding to commands and outputs a drive amount to the driver amplifier of the actuator.
  • the driver amplifier for driving the actuator is generally supplied together with the actuator from the actuator manufacturer when the actuator is purchased.
  • the controller sometimes called a motion controller
  • the controller that receives a command, generates a numerical sequence corresponding to the above-mentioned progress target value, and outputs it to the driver amplifier is supplied from the actuator manufacturer.
  • a dedicated controller for driving the mounted actuator may be supplied. When such a controller is supplied, the following operation control device 120 can be used.
  • FIG. 25 is an explanatory diagram of the operation control device 120 of the second modification.
  • the motion control device 120 of the second modification shown in FIG. 25 is different from the motion control device 120 of the present embodiment described above with reference to FIG. 18, instead of the control execution unit 127, the controllers MC10 to MC19 and the controller. The difference is that they are equipped with CN20 and CN30.
  • the command generation unit 125 of the second modification When the command generation unit 125 of the second modification generates a command, the command generation unit 125 outputs the command to the controllers MC10 to MC19, and the controllers MC10 to MC19 control the operation of the actuators Ac10 to Ac19 via the driver amplifiers DA10 to DA19.
  • the controllers CN20 and CN30 control the operations of the actuators Ac21 to Ac27 and Ac31 to Ac37 via the driver amplifiers DA21 to DA27 and DA31 to DA37.
  • the command generation unit 125 detects that fact via the controllers MC10 to MC19, and when the control of the actuators Ac21 to Ac27 and Ac31 to Ac37 is completed, the commands CN20 and CN30 are used. Detect to that effect through. Then, when the command generation unit 125 detects that the control of all the actuators in operation has been completed, it outputs to that effect to the control target period selection unit 123, and in response to this, the control target period selection unit 123 newly controls. The target period is selected. Further, in the second modification shown in FIG. 25, when the stop switch 120b is pressed, the command generation unit 125 detects that fact and issues a command to the controllers MC10 to MC19, CN20, and CN30 to stop the control. It is designed to output.
  • the motion control device 120 of the second modification shown in FIG. 25 is different from the motion control device 120 of the present embodiment described above with reference to FIG. 18 in the above points, but the operation of the present embodiment is different from the other points. It is the same as the control device 120. Even with the motion control device 120 of the second modification, it is possible to obtain the same effect as the motion control device 120 of the present embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Geometry (AREA)
  • Programmable Controllers (AREA)
  • Feedback Control In General (AREA)

Abstract

自動製造機械(10、20、30)が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されて、各々の部分期間に動作させるアクチュエータと、アクチュエータの動作内容とが割り当てられた制御プログラムを記憶しておく。そして、制御対象の部分期間を順番に1つずつ選択して、その部分期間に割り当てられたアクチュエータの動作をフィードバック制御する。こうすれば、たとえ多数のアクチュエータを搭載した自動製造機械の動作を制御する場合でも、同時に制御するアクチュエータの数が抑制されるので、高い処理能力を有する動作制御装置(120)を用意する必要が無く、制御プログラムを容易に且つ迅速に実行することができる。

Description

動作制御装置、動作制御方法、プログラム
 本発明は、複数のアクチュエータを備えた自動製造機械の動作を、制御プログラムに従って制御する技術に関する。
 工場などの製造現場の生産性を向上させるためには、自動製造機械を利用した製造工程の自動化が不可欠となる。ここで製造工程には、加工あるいは製造しようとする対象物や、加工の内容(例えば、切削加工や、曲げ加工)などに応じて様々な工程が存在する。このため、自動化しようとする製造工程に応じて、様々なタイプの自動製造機械が開発されている(例えば、特許文献1、特許文献2)。
 また、同じような製造工程であっても、具体的な内容は製造現場毎に異なっている。このため、他の製造現場に導入されている自動製造機械を流用することは困難であり、製造現場毎に専用の自動製造機械を開発しなければならないことが一般的である。そして、専用の自動製造機械を開発すると、その自動製造機械を制御するための制御プログラムも、新たに開発する必要が生じる。
 ところが、制御プログラムを開発するためには多大な労力が必要となる。加えて、製造現場の生産性を向上させるためには、自動製造機械に複雑な動作を行わせたり、複数種類の自動製造機械を組み合わせて製造システムを形成したりする必要が生じ、それに伴って、制御プログラムの開発に必要な労力は更に増加する。そこで本願の発明者らは、自動製造機械の動作を特殊な動作チャートに記述することで、動作チャートから制御プログラムを自動生成することが可能な技術を開発して既に出願済みである(特願2020-011386、特願2020-075017)。尚、この特殊な動作チャートは、本願の発明者が開発した動作チャートであって、従来には存在しないものであるため、以下では、この動作チャートのことを「YOGOチャート」と称することにする。
 この動作チャート(YOGOチャート)は、自動製造機械の動作を理解していれば容易に作成することができるという特長を有している。このため、自動製造機械に搭載されるアクチュエータの数が多くなった場合でも、自動製造機械のYOGOチャートを短時間で作成することができる。更には、複数種類の自動製造機械を組み合わせて製造システムを形成する場合でも、それらの自動製造機械のYOGOチャートを短時間で作成することができる。そして、YOGOチャートを作成しておけば、制御プログラムを容易に生成することが可能となる。
特開2011-245602号公報 特開2018-192570号公報
 しかし、上述した出願中の技術では、制御プログラムを容易に作成することが可能ではあるものの、作成した制御プログラムを容易に実行できるとは限らないという問題があった。この理由は、制御対象となるアクチュエータの数が多くなると、それらのアクチュエータを制御するために必要な処理能力が増加するため、高い処理能力を有する制御装置を用意しなければ、制御プログラムを必要な速度で実行することができないためである。また、複数種類の自動製造機械を用いて製造システムを形成した場合も、制御すべきアクチュエータの数が多くなるため、高い処理能力を有する制御装置を用意しなければ、制御プログラムを必要な速度で実行することができないためである。
 この発明は、従来の技術が有する上述した課題を解決するために成されたものであり、動作チャート(YOGOチャート)から生成された制御プログラムを、容易に実行することが可能な技術の提供を目的とする。
 上述した課題を解決するために、本発明の動作制御装置は次の構成を採用した。すなわち、
 複数のアクチュエータを搭載した自動製造機械(10,20,30)に適用されて、予め記憶されている制御プログラムに従って複数の前記アクチュエータを動作させることによって、前記自動製造機械の動作を制御する動作制御装置(120)であって、
 前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、各々の前記部分期間に対して、動作させる前記アクチュエータと、前記アクチュエータの動作内容とを割り当てることによって前記自動製造機械の動作を記述した動作記述データを、前記制御プログラムとして記憶している制御プログラム記憶部(121)と、
 複数の前記部分期間の中から1の前記部分期間を制御対象期間として選択する制御対象期間選択部(123)と、
 前記制御プログラムの中から、前記制御対象期間での制御対象となる前記アクチュエータである制御対象アクチュエータと、前記制御対象アクチュエータの動作内容である制御対象動作内容とを抽出する制御内容抽出部(124)と、
 前記制御対象アクチュエータが前記制御対象動作内容で動作するように、前記制御対象アクチュエータの動作をフィードバック制御する制御実行部(127)と
 を備え、
 前記制御対象期間選択部は、前記制御対象アクチュエータに対する前記フィードバック制御が終了すると、現在の前記制御対象期間の次の前記部分期間を新たな前記制御対象期間として選択する
 ことを特徴とする。
 また、上述した動作制御装置に対応する本発明の動作制御方法は次の構成を採用した。すなわち、
 複数のアクチュエータを搭載した自動製造機械(10,20,30)の動作を制御する動作制御装置(120)に適用されて、予め記憶されている制御プログラムに従って複数の前記アクチュエータを動作させることによって、前記自動製造機械の動作を制御する動作制御方法であって、
 前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、各々の前記部分期間に対して、動作させる前記アクチュエータと、前記アクチュエータの動作内容とを割り当てることによって前記自動製造機械の動作を記述した前記制御プログラムを読み出す工程(STEP50)と、
 複数の前記部分期間の中から1の前記部分期間を制御対象期間として選択する工程(STEP51、STEP63)と、
 前記制御プログラムの中から、前記制御対象期間の制御対象となる前記アクチュエータである制御対象アクチュエータと、前記制御対象アクチュエータの動作内容である制御対象動作内容とを抽出する工程(STEP52~STEP55)と、
 前記制御対象アクチュエータが前記制御対象動作内容で動作するように、前記制御対象アクチュエータの動作をフィードバック制御する工程(STEP59)と
 を備え、
 前記制御対象期間を選択する工程は、前記制御対象アクチュエータに対する前記フィードバック制御が終了すると、現在の前記制御対象期間の次の前記部分期間を新たな前記制御対象期間として選択する
 ことを特徴とする。
 かかる本発明の動作制御装置および動作制御方法では、次のような制御プログラムを制御に使用する。先ず、自動製造機械の動作期間が複数の部分期間に分割されており、各々の部分期間に対して、動作させるアクチュエータと、アクチュエータの動作内容とが割り当てられることによって、自動製造機械の動作が記述された制御プログラムを使用する。自動製造機械の動作を制御するに際しては、制御対象の部分期間を順番に1つずつ選択して、制御プログラムの中から、その部分期間に割り当てられたアクチュエータおよびアクチュエータの動作内容を抽出する。そして、抽出したアクチュエータが、抽出した動作内容で動作するように、アクチュエータの動作をフィードバック制御する。こうすれば、たとえ多数のアクチュエータを搭載した自動製造機械の動作を制御する場合でも、同時に制御するアクチュエータの数を抑制することができる。その結果、高い処理能力を有する動作制御装置を用意する必要が無くなるので、制御プログラムを容易に実行することが可能となる。
 また、上述した本発明の動作制御装置においては、何れの部分期間に対しても、所定の許容割当数以下のアクチュエータが割り当てられている制御プログラムを記憶しておいてもよい。
 こうすれば、同時に制御するアクチュエータの数を、所定の許容割当数以下に抑制することができるので、高い処理能力を有する動作制御装置を用いなくても、制御プログラムを実行することが可能となる。
 また、上述した本発明の動作制御装置においては、部分期間に割り当てられたアクチュエータの動作内容として、アクチュエータの動作目標値と、動作目標値に達するまでの過程の動作(すなわち経過動作)を生成するための情報とが記述されている制御プログラムを記憶しておいても良い。そして、制御対象期間を選択すると、その制御対象期間に割り当てられた動作目標値と、経過動作を生成するための情報とを、制御対象動作内容として抽出することにより、制御対象アクチュエータについての経過動作を生成する。そして、その経過動作に従って制御対象アクチュエータが動作目標値に達するように、制御対象アクチュエータの動作をフィードバック制御しても良い。
 こうすれば、アクチュエータが所望の態様の経過動作を経て、所望の動作目標値に達するように制御することができるので、自動製造機械をより適切に制御することが可能となる。
 また、上述した本発明の動作制御装置においては、次のような方法で、制御対象アクチュエータの動作をフィードバック制御しても良い。先ず、制御対象アクチュエータが経過動作を経て動作目標値に達するまでの、所定の時間間隔毎の経過目標値を算出しておく。そして、所定の時間間隔で制御対象アクチュエータの動作を検出して、検出値が経過目標値となるように、制御対象アクチュエータの動作をフィードバック制御するようにしても良い。
 こうすれば、所定の時間間隔を小さな値に設定しておくことで、アクチュエータの動作を精密に制御することが可能となる。
 また、前述した本発明の動作制御方法は、動作制御装置に搭載されたコンピュータを用いて本発明の動作制御方法を実現するためのプログラムとして把握することも可能である。すなわち、本発明のプログラムは、
 複数のアクチュエータを搭載した自動製造機械(10,20,30)の動作を制御する動作制御装置(120)に適用されて、予め記憶されている制御プログラムに従って複数の前記アクチュエータを動作させることによって、前記自動製造機械の動作を制御する動作制御方法を、前記動作制御装置に搭載されたコンピュータを用いて実現させるプログラムであって、
 前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、各々の前記部分期間に対して、動作させる前記アクチュエータと、前記アクチュエータの動作内容とを割り当てることによって前記自動製造機械の動作を記述した前記制御プログラムを読み出す機能(STEP50)と、
 複数の前記部分期間の中から1の前記部分期間を制御対象期間として選択する機能(STEP51、STEP63)と、
 前記制御プログラムの中から、前記制御対象期間の制御対象となる前記アクチュエータである制御対象アクチュエータと、前記制御対象アクチュエータの動作内容である制御対象動作内容とを抽出する機能(STEP52~STEP55)と、
 前記制御対象アクチュエータが前記制御対象動作内容で動作するように、前記制御対象アクチュエータの動作をフィードバック制御する機能(STEP59)と
 をコンピュータを用いて実現させると共に、
 前記制御対象期間を選択する機能は、前記制御対象アクチュエータに対する前記フィードバック制御が終了すると、現在の前記制御対象期間の次の前記部分期間を新たな前記制御対象期間として選択する機能である
 ことを特徴とする。
 このようなプログラムを動作制御装置のコンピュータに読み込ませて実行させれば、高い勝利能力を有する動作制御装置を用意しなくても、十分に実用的な速度で制御プログラムを実行することが可能となる。
本実施例の動作制御装置120によって制御される製造システム1を例示した説明図である。 製造システム1で用いられるアームロボット20,30の大まかな構造を示した説明図である。 製造システム1で用いられるパイプベンダ10の大まかな構造を示した説明図である。 パイプベンダ10に搭載された複数のアクチュエータAc10~Ac19が、ドライバアンプDA10~DA19を介して本実施例の動作制御装置120に接続されている様子を示した説明図である。 制御するアクチュエータの総数が多くなっても、制御プログラムの実行に必要な処理能力の増大を回避することが可能な基本原理についての説明図である。 制御プログラムの実行に必要な処理能力の増大を回避することが可能な基本原理について補足説明する説明図である。 YOGOチャートの部分期間に割り当てられた基本動作の数が許容割当数以下となるように、YOGOチャートを自動的に修正する方法についての説明図である。 本実施例の制御プログラム生成装置110が読み込むYOGOチャート200の一部を例示した説明図である。 YOGOチャート200に記入される各種の基本動作の動作記述206aについての説明図である。 「Ω-AA」という動作記述206aと組み合わせて用いられる数値テーブル206bを例示した説明図である。 「Ω-AB」という動作記述206aと組み合わせて用いられる数値テーブル206bを例示した説明図である。 中央制御装置100に搭載された制御プログラム生成装置110についての説明図である。 アクチュエータと動作記述206aとプログラム要素番号とが対応づけられて記憶されている様子を示した説明図である。 制御プログラム生成装置110がYOGOチャート200から制御プログラムを生成するために実行する制御プログラム生成処理のフローチャートである。 制御プログラム生成処理の中で実行されるYOGOチャート解析処理のフローチャートである。 YOGOチャート解析処理によって生成される中間データを例示した説明図である。 中間データを変換することによって生成された制御プログラムを例示した説明図である。 中央制御装置100に搭載された本実施例の動作制御装置120についての説明図である。 本実施例の動作制御装置120が制御プログラムに従って自動製造機械の動作を制御する動作制御処理の前半部分のフローチャートである。 動作制御処理の後半部分のフローチャートである。 各種のプログラム要素番号Pに対応付けてコマンドが記憶されている様子を示した説明図である。 コマンドに応じて経過目標値の数値列を生成する様子を示した説明図である。 他のコマンドに応じて経過目標値の数値列を生成する様子を示した説明図である。 基本動作が終了したものとみなすための条件が設定された第1変形例の数値テーブル206bを例示した説明図である。 第2変形例の動作制御装置120についての説明図である。
A.装置構成 :
A-1.製造システム1の概要 :
 図1は、パイプ状の素材Aに曲げ加工を施すことによって所定形状の完成品Bを製造する製造システム1を例示した説明図である。図示した製造システム1は、集積場に積み上げられた素材Aを掴んでパイプベンダ10に装着するアームロボット20と、装着されたパイプ状の素材Aに曲げ加工を施すパイプベンダ10と、パイプベンダ10で曲げ加工された完成品Bを掴んで集積場に積み上げるアームロボット30とを備えている。パイプベンダ10や、アームロボット20,30は中央制御装置100に接続されている。
 中央制御装置100には、制御プログラム生成装置110や動作制御装置120が内蔵されている。制御プログラム生成装置110は、パイプベンダ10やアームロボット20,30の動作を制御するための制御プログラムを生成して、動作制御装置120に出力する。動作制御装置120は、その制御プログラムに従って、パイプベンダ10やアームロボット20,30の動作を制御するようになっている。
 尚、本実施例では、アームロボット20,30や、パイプベンダ10が、本発明における「自動製造機械」に対応するが、自動製造機械は、アームロボット20,30や、パイプベンダ10に限られるわけではない。すなわち、複数のアクチュエータを搭載して、対象物に対して把持、搬送、加工、加熱などの複数の動作を自動で実行することが可能な製造機械であれば、本発明における「自動製造機械」に対応する。
A-2.アームロボット20,30の概要 :
 図2は、製造システム1で用いられるアームロボット20およびアームロボット30の大まかな構造を示した説明図である。図2中には、アームロボット20およびアームロボット30に搭載された複数のアクチュエータが動作制御装置120に接続されている様子も示されている。図2に示したアームロボット20およびアームロボット30は、一般的な6軸式のアームロボットの先端に、対象物を把持するための機構が接続された構造となっている。尚、本実施例のアームロボット20とアームロボット30とは同じ構造となっているので、以下ではアームロボット20について説明し、アームロボット30については、アームロボット20についての説明を読み替えるものとする。このことに対応して、図2中では、アームロボット20についての付番は()を付けずに表示され、その付番に併記される状態で、アームロボット30についての付番が()付きで表示されている。
 図2に示されるように、本実施例のアームロボット20(30)は、床面に設置された基台21(31)と、基台21(31)に取り付けられた本体部22(32)と、本体部22(32)に取り付けられた第1アーム部23(33)と、第1アーム部23(33)に取り付けられた第2アーム部24(34)と、第2アーム部24(34)に取り付けられた第3アーム部25(35)と、第3アーム部25(35)に取り付けられた第4アーム部26(36)と、第4アーム部26(36)に取り付けられた掌部27(37)とを備えている。更に、掌部27(37)には、2つの把持部28(38)が互いに向かい合わせに立設されている。本体部22(32)は、基台21(31)に対して旋回可能に取り付けられており、第1アーム部23(33)は、本体部22(32)に対して回動可能に取り付けられている。尚、「旋回」とは、一方の部材が他方の部材に対して捻れるように回転する動作を表しており、「回動」とは、一方の部材が他方の部材に対して折れ曲がるように回転する動作を表している。また、第2アーム部24(34)は、第1アーム部23(33)に対して回動可能に取り付けられており、第3アーム部25(35)は、第2アーム部24(34)に対して旋回可能に取り付けられ、第4アーム部26(36)は、第3アーム部25(35)に対して回動可能に取り付けられている。更に、掌部27(37)は、第4アーム部26(36)に対して旋回可能に取り付けられている。
 基台21(31)にはアクチュエータAc21(Ac31)が内蔵されており、アクチュエータAc21(Ac31)を駆動すると、本体部22(32)が基台21(31)に対して旋回する。また、本体部22(32)と第1アーム部23(33)との接続部分にはアクチュエータAc22(Ac32)が内蔵されており、アクチュエータAc22(Ac32)を駆動すると、第1アーム部23(33)が本体部22(32)に対して回動する。更に、第1アーム部23(33)と第2アーム部24(34)との接続部分にはアクチュエータAc23(Ac3)が内蔵されており、アクチュエータAc23(Ac3)を駆動すると、第2アーム部24(34)が第1アーム部23(33)に対して回動する。また、第2アーム部24(34)にはアクチュエータAc24(Ac34)が内蔵されており、アクチュエータAc24(Ac34)を駆動すると、第3アーム部25(35)が第2アーム部24(34)に対して旋回する。
 第3アーム部25(35)と第4アーム部26(36)との接続部分にはアクチュエータAc25(Ac35)が内蔵されており、アクチュエータAc25(Ac35)を駆動すると、第4アーム部26(36)が第3アーム部25(35)に対して回動する。また、第4アーム部26(36)にはアクチュエータAc26(Ac36)が内蔵されており、アクチュエータAc26(Ac36)を駆動すると、掌部27(37)が第4アーム部26(36)に対して旋回する。更に、掌部27(37)にはアクチュエータAc27(Ac37)が内蔵されており、アクチュエータAc27(Ac37)を駆動すると、掌部27(37)から立設された2つの把持部28(38)が、駆動方向に応じて、互いに近づいたり遠ざかったりする。尚、本実施例のアームロボット20(30)では、アクチュエータAc21~Ac27(Ac31~Ac37)としてサーボモータが採用されている。しかし、サーボモータに限らず、ステッピングモータなど、異なる方式で動作するアクチュエータであっても良い。
 アクチュエータAc21(Ac31)には、アクチュエータAc21(Ac31)を駆動するドライバアンプDA21(DA31)が接続されている。ここで、「ドライバアンプ」とは、次のような機能を有する機器である。アクチュエータを駆動するためには、アクチュエータに対して、アクチュエータの駆動方式および規格に合致した電流を供給する必要がある。従って、同じ動作をさせる場合でも、動作させるアクチュエータの種類や製造メーカなどが異なっていれば、それぞれのアクチュエータ毎に、供給すべき電流値や電流の形態が異なる可能性がある。そこで、アクチュエータには、一般に、そのアクチュエータ用のドライバアンプが用意されており、ドライバアンプに対して駆動量を入力すると、ドライバアンプがアクチュエータの駆動方式および規格に合致した電流を生成して、アクチュエータを駆動するようになっている。
 アクチュエータAc21(Ac31)以外のアクチュエータについても、それぞれにドライバアンプが接続されている。すなわち、図2に示されるように、アクチュエータAc22(Ac32)には、アクチュエータAc22(Ac32)を駆動するドライバアンプDA22(DA32)が接続されており、アクチュエータAc23~Ac27(Ac33~Ac37)にも、アクチュエータAc23~Ac27(Ac33~Ac37)を駆動するドライバアンプDA23~DA27(DA33~DA37)が接続されている。
 また、ドライバアンプDA21~DA27(DA31~DA37)は、互いに直列に接続されており、一端側のドライバアンプ(図示した例では、ドライバアンプDA27(DA37))が、中央制御装置100内の動作制御装置120に接続されている。このため、動作制御装置120に直接接続された一端側のドライバアンプ(図示した例では、ドライバアンプDA27(DA37))以外のドライバアンプは、他のドライバアンプを介して動作制御装置120に接続されていることになる。しかし、このような接続形態に限らず、例えば、それぞれのドライバアンプDA23~DA27(DA33~DA37)が、動作制御装置120に直接接続されるようにしても良い。
 更に、詳細には後述するが、動作制御装置120は、アクチュエータAc21~Ac27(Ac31~Ac37)によって駆動される部材(たとえば本体部22(32)や、第1アーム部23(33)や、第2アーム部24(34)など)の位置が目標位置となるように、ドライバアンプDA21~DA27(DA31~DA37)の動作をフィードバック制御している。このことに対応して、アクチュエータAc21~Ac27(Ac31~Ac37)には回転位置を検出する図示しないエンコーダが内蔵されており、ドライバアンプDA21~DA27(DA31~DA37)は、アクチュエータAc21~Ac27に内蔵されたエンコーダを用いて検出した回転位置の情報を、動作制御装置120に送信する機能も有している。
A-3.パイプベンダ10の概要 :
 図3は、製造システム1で用いられるパイプベンダ10の大まかな構造を示した説明図である。前述したようにパイプベンダ10は、長尺でパイプ状の素材Aに曲げ加工を施すことによって所定形状の完成品Bを製造する機能を有している。
 図3に示したように、本実施例のパイプベンダ10は、大まかには横長の直方体形状となっており、直方体の上面側には長手方向に2本のレール11が架設され、レール11上の一端側(図3では左側)には、図示しないパイプ状の素材Aを把持して長手方向に送り出す送出ユニット12が搭載されている。また、送出ユニット12が搭載されている側に対して反対側には、パイプ状の素材Aに曲げ加工を施す加工ユニット13が搭載されている。送出ユニット12には、円柱形状の把持軸12aが突設されており、把持軸12aの先端には、図示しない素材Aを把持するチャック12bが取り付けられている。このため、チャック12bで素材Aを把持した状態で送出ユニット12をレール11上で移動させることによって、素材Aを加工ユニット13に供給し、その素材Aに対して加工ユニット13で曲げ加工を施すことが可能となっている。
 本実施例のパイプベンダ10は、送出ユニット12の移動量によってパイプ状の素材Aの送り量を制御することができるので、素材Aに曲げ加工を施す位置を自由に制御することができる。また、チャック12bが取り付けられた把持軸12aを軸回りに旋回(いわゆる捻り動作)させることによって、パイプ状の素材Aを所望の方向に曲げることも可能となっている。こうしたことを実現するために、送出ユニット12の内部には、チャック12bを開閉させるためのアクチュエータAc10や、把持軸12aを旋回させるためのアクチュエータAc11や、把持軸12aを軸方向に進退動させるためのアクチュエータAc12や、レール11上で送出ユニット12を進退動させるためのアクチュエータAc13などが搭載されている。本実施例のパイプベンダ10では、これらのアクチュエータAc10~Ac13は何れも交流電源で動作するサーボモータが用いられているが、アクチュエータに要求される性能に応じて、他の駆動方式のアクチュエータ(例えば、油圧シリンダや、ソレノイドや、ステッピングモータなど)を採用することができる。尚、送出ユニット12には、把持軸12aの回転位置や、送出ユニット12の移動位置を検出するためのエンコーダや、リミットスイッチなどのセンサー類も搭載されているが、図面が煩雑となることを回避する目的で、図3では図示が省略されている。
 加工ユニット13の内部には、パイプ状の素材Aを曲げるためのアクチュエータAc16や、素材Aを曲げる際に、素材Aに力を加える位置を移動させるためのアクチュエータAc17や、加工ユニット13全体を上下方向に移動させるためのアクチュエータAc18や、パイプ状の素材Aに対してフランジと呼ばれる平坦な端面を形成したり、バルジと呼ばれる環状の凸部を形成したりするためのアクチュエータAc19などが搭載されている。尚、加工ユニット13にも、エンコーダや、接点スイッチなどのスイッチ・センサー類が搭載されているが、図面が煩雑となることを避けるため、これらについては図示が省略されている。また、加工ユニット13の内部には、上述した各種のアクチュエータAc10~Ac13、Ac16~Ac19を駆動するための複数のドライバアンプが搭載されているが、ドライバアンプについても図3では図示が省略されている。
 更に、図3に示されるように、2本のレール11の下方の空間にも各種の機械部品が搭載されているが、この空間は、加工ユニット13内に搭載された複数のドライバアンプ(図示は省略)から、送出ユニット12内の各種のアクチュエータAc10~13に向かって駆動電流を供給する電気ケーブル(図示は省略)や、送出ユニット12に搭載された各種のスイッチ・センサー類からの信号を、加工ユニット13に伝達するための信号ケーブル(図示は省略)などが配線される空間となっている。レール11上で送出ユニット12が進退動する動きに伴って、これらの電気ケーブルや信号ケーブルが空間内で移動すると、互いに絡まったり、何かに引っ掛かったりする虞が生じる。そこで、こうした事態が発生することを避けるため、レール11の下方の空間には、電気ケーブルや信号ケーブルに不要な遊びがある場合はケーブルを手繰ることによって不要な遊びを解消し、電気ケーブルや信号ケーブルが強い力で引っ張られる場合は、手繰ったケーブルを送り出すことによって、ケーブルに適度な遊びを持たせるためのアクチュエータAc14、Ac15も搭載されている。本実施例のパイプベンダ10では、アクチュエータAc14、Ac15としてエアシリンダが採用されており、これらのエアシリンダの動作も、図示しないドライバアンプを介して動作制御装置120によって制御されている。
 図4は、パイプベンダ10に搭載された複数のアクチュエータAc10~Ac19が、ドライバアンプDA10~DA19を介して動作制御装置120に接続されている様子を示した説明図である。アクチュエータAc10には、アクチュエータAc10を駆動するためのドライバアンプDA10が接続されており、アクチュエータAc11には、アクチュエータAc11を駆動するためのドライバアンプDA11が接続されている。同様に、アクチュエータAc12~Ac19には、アクチュエータAc12~Ac19を駆動するためのドライバアンプDA12~DA19が接続されている。また、ドライバアンプDA10~DA19は互いに直列に接続されており、一端側のドライバアンプ(図示した例では、ドライバアンプDA10)が、中央制御装置100内の動作制御装置120に接続されている。このため、動作制御装置120に直接接続された一端側のドライバアンプ(図示した例では、ドライバアンプDA10)以外のドライバアンプは、他のドライバアンプを介して動作制御装置120に接続されていることになる。しかし、このような接続形態に限らず、例えば、それぞれのドライバアンプDA10~DA19が、動作制御装置120に直接接続されるようにしても良い。
 以上に説明したように、中央制御装置100内の動作制御装置120には、アームロボット20のDA21~DA27や、パイプベンダ10のDA10~DA19や、アームロボット30のDA31~DA37が接続されている(図2および図4参照)。そして、動作制御装置120は、これらのドライバアンプDA10~DA19、DA21~DA27、DA31~DA37を介して、アクチュエータAc10~Ac19、Ac21~Ac27、Ac31~Ac37の動作を制御している。
 ここで、アクチュエータAc10~Ac19、Ac21~Ac27、Ac31~Ac37の動作を制御するためには、動作制御装置120上で動作する制御プログラムを作成する必要がある。このような制御プログラムの作成には、アームロボット20,30やパイプベンダ10などのハードウェアを作成するよりも多くの労力が必要であった。特に、本実施例の製造システム1のように、制御すべきアクチュエータが多数存在している場合、制御プログラムの作成に要する労力は更に大きなものとなる。
 しかし、本願の発明者は、制御プログラムを自動的に生成する技術を開発して、既に特許出願済みである。この特許出願済みの技術では、複数のアクチュエータを備えた自動製造機械(ここでは、アームロボット20,30やパイプベンダ10)の動作を、複数のアクチュエータ(ここでは、アクチュエータAc10~Ac19、Ac21~Ac27、Ac31~Ac37)の基本的な動作に分解し、それらの基本的な動作を、「YOGOチャート」と命名した特殊な動作チャート上に記入することで自動製造機械の動作を記述する。こうすれば、後述するメカニズムによって、YOGOチャートから自動的に制御プログラムを生成することができる。従って、本実施例の製造システム1のように、制御すべきアクチュエータが多数存在している場合でも、制御プログラムを容易に作成することが可能となる。
 もっとも、多数のアクチュエータの動作を制御するためには、高い処理能力を有する動作制御装置120が必要となる。このため、本実施例の製造システム1のように制御すべきアクチュエータが多数存在する場合、動作制御装置120の処理能力の不足から、制御プログラムを必要な速度で実行できない場合が起こり得る。これでは、たとえ制御プログラムを容易に作成できたとしても、製造システム1あるいは自動製造機械を容易に制御できるとは言い難い。そこで、本実施例の動作制御装置120は、YOGOチャートから自動的に生成された制御プログラムを、以下に説明する方法で実行することとした。このような方法で実行すれば、制御プログラムを実行するために必要な処理能力を抑制することができる。このため、制御すべきアクチュエータの数が多くなっても、特別に高い処理能力を有する動作制御装置120を用意することなく、製造システム1あるいは自動製造機械を制御することが可能となる。以下では、本実施例の動作制御装置120が制御プログラムを実行する方法について説明するが、理解の便宜から、先ず初めに、YOGOチャートから制御プログラムを自動生成する原理について説明し、その説明を踏まえて、本実施例の動作制御装置120が、制御プログラムを実行するための処理能力を抑制可能な原理について説明する。その後、実際の処理内容について具体的に説明する。
B.YOGOチャートを作成して自動製造機械の動作を制御する方法の概要 :
B-1.YOGOチャートから制御プログラムを自動で生成する原理 :
 図5は、YOGOチャートと命名した特殊な動作チャートに基づいて、自動製造機械(ここでは、パイプベンダ10や、アームロボット20,30)の制御プログラムを自動で生成する原理についての説明図である。図5(a)には、各種の改良を施す前の原始的なYOGOチャートが示されている。後述する本実施例のYOGOチャートは、図5(a)に示した原始的なYOGOチャートを発展させて改良したものとなっているが、制御プログラムを自動で生成する原理は原始的なYOGOチャートと同じである。そこで、理解を容易とするために、図5(a)に示した原始的なYOGOチャートを用いて、YOGOチャートから制御プログラムを自動で生成する原理について説明する。
 一般に自動製造機械には複数のアクチュエータが搭載されており、それらのアクチュエータが動作することによって自動製造機械が動作する。YOGOチャートでは、自動製造機械に搭載された複数のアクチュエータの基本的な動作を組み合わせることによって、自動製造機械の動作を記述する。ここで、アクチュエータの基本的な動作とは、アクチュエータが有する自由度方向への動作(以下、基本動作)のことである。例えば、モータのような回転するアクチュエータであれば、回転動作が基本動作となり、シリンダのような進退動するアクチュエータであれば、進退動する動作が基本動作となる。また、モータによってボールねじを回転させることによって、ボールねじに噛み合う部材を進退動させるようなアクチュエータの場合は、モータの回転動作、あるいは部材が進退動する動作の何れかが基本動作となる。このように、アクチュエータの基本動作は、アクチュエータが指定された動作量だけアクチュエータの自由度方向に動作するという単純な動作となっている。
 また、YOGOチャートでは、自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、個々のアクチュエータの基本動作は、これら複数の部分期間の中から、基本動作毎に選択された何れか1つの部分期間に割り当てられている。図5(a)に示した例では、自動製造機械が動作を開始した初めの部分期間(部分期間1)には、あるアクチュエータの基本動作act1が割り当てられており、次の部分期間(部分期間2)には、(そのアクチュエータと同じあるいは別のアクチュエータによる)基本動作act2と、基本動作act3と、基本動作act4とが割り当てられている。その次の部分期間(部分期間3)には、基本動作act5と、基本動作act6とが割り当てられており、その次の部分期間(部分期間4)には基本動作act7が、更にその次の部分期間(部分期間5)には、基本動作act8と、基本動作act9とが割り当てられている。
 このようにすることで、複数のアクチュエータによる一連の動作を記述することができる。すなわち、先ず初めは、あるアクチュエータによる基本動作act1が開始され、その基本動作act1が終了すると、対応するアクチュエータによって基本動作act2と、基本動作act3と、基本動作act4とが開始される。それらの基本動作が終了すると、今度は基本動作act5と基本動作act6とが開始される。それらの基本動作が終了すると今度は基本動作act7が開始され、基本動作act7が終了すると、基本動作act8および基本動作act9が開始されるというような一連の動作を記述することができる。このように、YOGOチャートでは、自動製造機械の動作を、その自動製造機械に搭載された複数のアクチュエータの基本動作に分解して、それらの基本動作を何れかの部分期間に割り当てることによって、自動製造機械の動作を記述する。
 尚、以上の説明から明らかなように、部分期間は、割り当てられたアクチュエータが動作する期間を示しており、時間の長さを示しているわけではない。例えば、部分期間1の時間の長さは基本動作act1の実行に要する時間であり、部分期間2の時間の長さは基本動作act2,act3,act4の実行に要する時間の中で長い方の時間となっている。従って、それぞれの部分期間の時間の長さは、互いに異なっていることが通常である。
 また、部分期間に割り当てられるアクチュエータの基本動作は、例えばモータを一定量だけ回転させたり、あるいはシリンダを一定量だけ進退動させたりするといった単純な動作である。従って、アクチュエータに基本動作させるための小さなプログラム(以下、プログラム要素)を予め作成しておくことができる。例えば、あるアクチュエータに基本動作act1を行わせるためのプログラム要素prog1を予め作成しておくことができる。同様に、基本動作act2~act9についても、それらの基本動作を行わせるためのプログラム要素prog2~prog9を予め作成しておくことができる。
 そこで、これらのプログラム要素を、図5(a)に示した原始的なYOGOチャートに記述された通りに連結してやれば、自動製造機械を動作させるための制御プログラムを自動で生成することが可能となる。すなわち、図5(b)に示したように、初めにプログラム要素prog1を起動させ、プログラム要素prog1が終了したらプログラム要素prog2~prog4を起動させる。それらのプログラム要素prog2~prog4が終了したら、プログラム要素prog5およびプログラム要素prog6を起動させ、それらのプログラム要素prog5、prog6が終了したら、プログラム要素prog7を起動させる。そして、プログラム要素prog7が終了したら、今度はプログラム要素prog8およびプログラム要素prog9を起動させる。このように、アクチュエータに基本動作を行わせるプログラム要素を予め作成しておき、それらのプログラム要素がYOGOチャートに記述された順序で次々に起動するように、複数のプログラム要素を組み合わせてやる。こうすれば、自動製造機械を動作させるための制御プログラムを、YOGOチャートから自動で生成することが可能となる。
B-2.制御プログラムを実行するための処理能力を抑制可能な原理 :
 上述したように、YOGOチャートは、アクチュエータの基本動作を部分期間に割り当てることによって記述されており(図5(a)参照)、YOGOチャートから生成された制御プログラムは、基本動作に対応するプログラム要素を、基本動作が割り当てられた部分期間の順番で実行するものとなっている(図5(b)参照)。このため、自動製造機械に搭載されているアクチュエータの数が多い場合でも、現在実行中の部分期間に対して基本動作が割り当てられたアクチュエータを制御しておけば良い。従って、同時に制御するアクチュエータの数を抑制することが可能である。
 もちろん、YOGOチャート中の、ある部分期間に割り当てられた基本動作の数が、他の部分期間に対して大幅に多くなる事態は起こり得る。例えば、図6(a)に示した例では、部分期間6に対して9つもの基本動作act10~act18が割り当てられている。このようなことが生じると、多くの基本動作が割り当てられた部分期間(例えば図6(a)中の部分期間6)では、他の部分期間に比べて、動作を制御すべきアクチュエータの数が大幅に多くなる。
 しかし、図6(a)中の部分期間6に割り当てられた基本動作act10~act18は、必ずしもこれらを同時に実行する必要があるわけではない。すなわち、YOGOチャートが記載している内容は、これら9つの基本動作act10~act18は部分期間5に割り当てられた基本動作の終了後に実行する必要があること、および、部分期間7に割り当てられた基本動作の開始前に実行する必要があることである。従って、これら9つの基本動作act10~act18を同時に実行する必要があるという内容が記載されているわけではない。
 このことから、これら9つの基本動作act10~act18が割り当てられた部分期間を、複数の部分期間に分割することができる。図6(b)に例示したYOGOチャートでは、図6(a)中の部分期間6が、部分期間6および部分期間7の2つの部分期間に分割されている。そして、図6(a)中の部分期間6に割り当てられていた9つの基本動作act10~act18が、図6(b)では部分期間6または部分期間7の何れかに適宜、振り分けられている。
 このように、YOGOチャートを用いれば、部分期間毎に動作させるアクチュエータの数を予め分散させておくことができる。そして、YOGOチャートから生成された制御プログラムは、部分期間毎に、アクチュエータの動作を制御するプログラム要素を実行するので、同時に実行するプログラム要素の数を抑制することができる。加えて、プログラム要素は、アクチュエータの基本的な動作である基本動作を実現させるものなので、個々のプログラム要素を実行するために必要な処理能力は小さくて良い。このような理由から、動作制御装置120がそれほど高い処理能力を有していない場合でも、多数のアクチュエータを搭載した自動制御機械の制御プログラムを、十分に実用的な速度で実行することが可能となる。
 尚、以上の説明では、YOGOチャートの部分期間の中に、割り当てられた基本動作の数が大幅に多い部分期間が存在していた場合には、YOGOチャートの作成者がその部分期間を複数の部分期間に分割するものとして説明した。しかし、1つの部分期間に割り当てることが可能な基本動作の数(許容割当数)を予め設定しておき、YOGOチャートの作成者によって作成されたYOGOチャート中に、許容割当数を超える基本動作が割り当てられた部分期間が存在していた場合には、自動的に部分期間を分割するようにしても良い。
 例えば、図7(a)に示した例では、許容割当数が「4」に設定されており、部分期間6に割り当てられた基本動作の数が許容割当数を超えている。そこで、部分期間6を、部分期間6-1および部分期間6-2の2つの部分期間に分割する。そして、部分期間6に割り当てられていた先頭から許容割当数までの基本動作act10~act13は部分期間6-1に割り当てて、それ以外の基本動作act14~act18については部分期間6-2に割り当てる。
 図7(b)には、このようにして部分期間6を部分期間6-1と部分期間6-2とに分割した状態が示されている。図7(b)に示すように、部分期間6-1に割り当てられた基本動作は許容割当数以下に収まっているが、部分期間6-2に割り当てられた基本動作は許容割当数を超えている。そこで、部分期間6-2を2つの部分期間(部分期間6-2および部分期間6-3)に分割する。従って、図7(a)の部分期間6が3つの部分期間に分割されたことになる。そして、部分期間6-2に割り当てられていた先頭から許容割当数までの基本動作act14~act17は、分割後の部分期間6-2に割り当てて、それ以外の基本動作act18については部分期間6-3に割り当てる。その結果、図7(c)に示したように、部分期間6が分割された3つの部分期間6-1~6-3の何れについても、割り当てられた基本動作の数を許容割当数以下に収めることができる。
 以上のような方法を用いれば、人間が作成したYOGOチャートに対して、コンピュータが自動的に修正を加えることで、部分期間に割り当てられた基本動作の数が許容割当数以下に収まったYOGOチャートを生成することも可能となる。その結果、動作制御装置120がそれほど高い処理能力を有していない場合でも、YOGOチャートから生成された制御プログラムを迅速に実行することが可能となる。
C.YOGOチャートから制御プログラムを自動生成する方法 :
 以下では、YOGOチャートから制御プログラムを自動生成する詳細な方法について説明するが、その準備として、YOGOチャートについて具体的に説明しておく。以下に説明するYOGOチャートは、図5(a)を用いて前述した原始的なYOGOチャートに対して各種の改良を加えることによって得られたものである。
C-1.YOGOチャートの概要 :
 図8は、本実施例のYOGOチャート200の概要を説明するための説明図である。図8に示したYOGOチャート200は、図3に示したパイプベンダ10の動作を記述したチャートであるが、図2に示したアームロボット20やアームロボット30についても同様なチャートを作成することができる。尚、YOGOチャート200の全体を表示するために縮尺すると、表示が潰れて判読不能となってしまうので、図8ではYOGOチャート200の一部分(左上隅の部分)が表示されている。図8に示されるように、YOGOチャート200は、複数本の横線と複数本の縦線とが交差した大きな表のような形状となっている。以下では、交差する複数本の線のうち、横線については「仕切線」201と称し、縦線については「トリガー線」202と称することにする。
 トリガー線202には、1番から始まる通し番号が付けられている。図8に示した例では、YOGOチャート200の上端の欄内に、その下のトリガー線202の通し番号が記載されている。また、互いに隣接するトリガー線202の間の領域は、図5を用いて前述した部分期間となっており、部分期間にも1番から始まる通し番号(以下、部分期間番号と称する)が付けられている。尚、図8に例示したYOGOチャート200では、トリガー線202が縦方向に引かれており、従って、トリガー線202とトリガー線202とに挟まれた部分期間は横方向に並んでいる。しかし、トリガー線202は横方向に引いても良く、この場合は、複数の部分期間が縦方向に並ぶことになる。
 また、本実施例のYOGOチャート200は、複数の仕切線201によって複数の横長の領域に分割されており、これらの横長の領域には1番から始まる通し番号(以下、アクチュエータ番号と称する)が付けられている。パイプベンダ10に搭載されたアクチュエータは、複数の横長の領域の何れかに割り当てられている。図8に示した例では、アクチュエータ番号が1番の領域には、アクチュエータAc10(図3参照)が割り当てられており、アクチュエータ番号が2番の領域にはアクチュエータAc11(図3参照)が割り当てられ、アクチュエータ番号が3番の領域にはアクチュエータAc12(図3参照)が割り当てられている。本実施例のパイプベンダ10にはアクチュエータAc10~Ac19の10個のアクチュエータが搭載されているから、これら全てのアクチュエータについて、このように横長の領域が1つずつ割り当てられることになる。
 そして、アクチュエータAc10~Ac19の基本動作は、そのアクチュエータAc10~Ac19が割り当てられた横長の領域上の適切な位置に記載されるようになっている。例えば、アクチュエータAc10を部分期間4で基本動作させるのであれば、YOGOチャート200上で、アクチュエータ番号が1番の横長の領域上で、部分期間番号が4番で特定されるマス目状の座標位置に、アクチュエータAc10にさせたい基本動作206を記載する。また、部分期間4と部分期間8とでアクチュエータAc10に基本動作させるのであれば、アクチュエータ番号が1番の横長の領域上で、部分期間番号が4番のマス目状の座標位置と、同じ横長の領域上で部分期間番号が8番の座標位置とに、アクチュエータAc10にさせたい基本動作206を記載することになる。このように、アクチュエータAc10の基本動作は、YOGOチャート200上でアクチュエータ番号が1番の横長の領域上に記載され、アクチュエータAc11の基本動作は、アクチュエータ番号が2番の横長の領域上に記載されるというように、アクチュエータAc10~Ac19の基本動作は、YOGOチャート200上でそのアクチュエータAc10~Ac19が割り当てられた横長の領域上に記載されるようになっている。
 このため、アクチュエータAc10~Ac19に対応する横長の領域上に視線を走らせれば、それぞれのアクチュエータAc10~Ac19が、どの部分期間で動作するのかを視覚によって容易に把握することができ、各アクチュエータの動作回数を容易に認識することができる。このため、例えば、元の位置に復帰していないアクチュエータが存在していたり、動作を記述し忘れているアクチュエータが存在していたりした場合でも、そのことを容易に認識することができるので、YOGOチャート200の記載ミスを防止することが可能となる。
 また、本実施例のYOGOチャート200では、次のようにして基本動作を記述する。一例として、図8のYOGOチャート200で最初に動作するアクチュエータAc13の基本動作206について説明する。動作するアクチュエータはアクチュエータAc13であるから、対応するアクチュエータ番号は4番であり、且つ、最初に動作するのであるから、対応する部分期間番号は1番となる。従って、YOGOチャート200上で基本動作が記載される位置は、アクチュエータ番号が4番で、部分期間番号が1番のマス目状の座標位置となる。部分期間番号が1番の座標位置に対応するマス目は、左側に存在する1番のトリガー線202と、右側に存在する2番のトリガー線202とに挟まれたマス目であるから、1番のトリガー線202から2番のトリガー線202に向かって、アクチュエータの動作を示す動作線203を記入する。そして、動作線203の左端(従って1番のトリガー線202上)には動作の開始を示す始点204を記入し、動作線203の右端(従って2番のトリガー線202上)には動作の終了を示す終点205を記入する。図8に示した例では、動作線203は太い実線で示されており、始点204は白抜きの丸印で示されて、終点205は黒い丸印で示されている。
 更に、動作線203の上には、アクチュエータにさせようとする基本動作206を記入する。ここで、本実施例のYOGOチャート200では、基本動作206を「動作記述」と「数値テーブル」の2つの要素を用いて記入する。図8に示した例では、アクチュエータ番号が4番で、部分期間番号が1番の動作線203の上には、「Ω-AC」と「AC-B11」という2つの表示が記入されているが、「Ω-AC」という表示が動作記述206aであり、「AC-B11」という表示が数値テーブル206bである。動作記述206aおよび数値テーブル206bの詳細については後述するが、大まかにいうと、動作記述206aとは、基本動作206の定性的な内容(例えば、前進、後退、回転など)を記述した表示である。また、数値テーブル206bとは、基本動作206の定量的な内容(例えば、移動量や、速度や、トルクなど)を示す数値が設定されたテーブルである。
 従って、図8のYOGOチャート200上で、アクチュエータ番号が4番、部分期間番号が1番の座標位置に記入された「Ω-AC」、「AC-B01」という表示は、以下のような内容、すなわち、アクチュエータ番号が4番のアクチュエータ(図8の例ではアクチュエータAc13)を、部分期間番号が1番のタイミングで、「Ω-AC」という動作記述206aに従って基本動作させ、且つ、基本動作させる際に使用する具体的な数値は、「AC-B01」という数値テーブル206bに設定された数値を用いることを表している。
 また、図8のYOGOチャート200に示されるように、アクチュエータAc10に対しては「Ω-AA」という動作記述206aが記入されているが、アクチュエータAc11に対しては「Ω-AB」という動作記述206aが記入されており、動作記述206aが異なっている。この理由は、図3を用いて前述したように、アクチュエータAc10はチャック12bを開閉させるためのアクチュエータであり、アクチュエータAc11は把持軸12aを軸回りに旋回(すなわち、捻り動作)させるためのアクチュエータであるためである。すなわち、アクチュエータAc10の基本動作の動作記述206aは「開閉動作」となり、アクチュエータAc11の基本動作の動作記述206aは「回転動作」となるため、アクチュエータAc10とアクチュエータAc11とでは、異なる動作記述206aが使用される。同様な理由から、アクチュエータAc11とアクチュエータAc12とも、異なる動作記述206aが使用される。
 これに対して、アクチュエータAc12およびアクチュエータAc13は「Ω-AC」という同じ動作記述206aが使用される。図3を用いて前述したように、アクチュエータAc12は把持軸12aを軸方向に進退動させるためのアクチュエータであり、アクチュエータAc13は送出ユニット12の全体を進退動させるためのアクチュエータであって、移動させる対象物の大きさや重量や移動量などは異なるが、対象物を進退動させる点では同じである。このため、アクチュエータAc12およびアクチュエータAc13は、同じ動作記述206aを使用することができる。また、アクチュエータAc16は加工ユニット13の全体を上下動させるためのアクチュエータであるが、上下動は進退動の一種と考えることができるから、アクチュエータAc16も、アクチュエータAc12やアクチュエータAc13と同じく「Ω-AC」という動作記述206aを使用することができる。更に、アクチュエータAc14、Ac15は、何れもエアシリンダを進退動させるアクチュエータであるから、これらは何れも「Ω-CA」という動作記述206aが使用されている。
 このように、本実施例のYOGOチャート200では、アクチュエータの基本動作206を、(原則として)動作記述206aと数値テーブル206bとを用いて記述する。こうすれば、多くのアクチュエータについて、動作記述206aを共通化することが可能となる。図3に示したように、本実施例のパイプベンダ10にはアクチュエータAc10~Ac19の10個のアクチュエータが搭載されているが、パイプベンダ10の動作を記述するYOGOチャート200で用いられる動作記述206aは4種類となっている。
 図9は、本実施例のYOGOチャート200で用いられる動作記述206aの詳細についての説明図である。「Ω-AA」という動作記述206aは、アクチュエータに開閉動作させることを表す動作記述206aであり、この動作記述206aはACサーボモータにチャック機構を組み合わせたアクチュエータを想定している。逆に言えば、ACサーボモータにチャック機構を組み合わせたアクチュエータでない場合は、たとえ、そのアクチュエータの動作が開閉動作である場合でも、「Ω-AA」という動作記述206aを使用することはできない。
 また、「Ω-AA」という動作記述206aは、ACサーボモータにチャック機構を組み合わせたアクチュエータに開閉動作させるという単純な動作内容を記述したものであるから、その動作内容を実現するための小さなプログラム(すなわち、プログラム要素)を予め作成しておくことができる。このことから、動作記述206aには、その動作内容を実現させるプログラム要素を特定するための通し番号(以下、プログラム要素番号)が対応付けて記憶されている。尚、同じように開閉動作するアクチュエータであっても、ACサーボモータにチャック機構を組み合わせたアクチュエータでない場合は、「Ω-AA」という動作記述206aを使用することができない。その理由は、動作記述206aにプログラム要素番号が対応付けて記憶されるからである。すなわち、アクチュエータの構造が異なれば、アクチュエータを動作させるためのプログラム要素は異なると考えられるので、対応付けられるプログラム要素が異なる以上、動作記述206aも異ならせておく必要があるためである。
 また、図9に示すように、「Ω-AB」という動作記述206aは、ACサーボモータに減速機構を組み合わせたアクチュエータを想定して、そのアクチュエータに回転動作させることを表す動作記述206aであり、プログラム要素番号は7番が対応付けて記憶されている。同様に、「Ω-AC」という動作記述206aは、ACサーボモータにボールねじ機構を組み合わせたアクチュエータを想定して、そのアクチュエータに進退動作させることを表す動作記述206aであり、プログラム要素番号は4番が対応付けて記憶されている。更に、「Ω-CA」という動作記述206aは、エアシリンダを用いたアクチュエータを想定して、そのアクチュエータに進退動作させることを表す動作記述206aであり、プログラム要素番号は2番が対応付けて記憶されている。尚、2番のプログラム要素は、エアシリンダのポートの開閉状態を切り換えるだけの単純なものであるため、本来であれば、より単純な方法(例えばリレーや、論理回路、シーケンス制御など)によって実現することが可能である。しかし、その単純な内容を、プログラム要素を用いて実現することで、エアシリンダを想定した単純な制御を、ACサーボモータを想定した他の複雑な制御と同様に取り扱うことが可能となる。
 また、動作記述206aは、開閉動作や、回転動作、進退動作などのように、動作の内容を定性的に記述したものに過ぎないので、動作記述206aは原則として数値テーブル206bと組み合わせて使用される。例えば、図8を用いて前述したYOGOチャート200では、アクチュエータ番号が1番のアクチュエータAc10に対して用いられる動作記述206aは「Ω-AA」であるが、数値テーブル206bについては、部分期間番号が4番のタイミングでは「AA-B01」という数値テーブル206bが使用され、部分期間番号が6番のタイミングでは「AA-B01」という数値テーブル206bが、部分期間番号が10番のタイミングでは「AA-B01」という数値テーブル206bが使用されている。ここで、「AA-B01」という名称は、「Ω-AA」という動作記述206aと組み合わせて使用される「B01」という数値テーブル206bであることを表している。同様に、「AA-B02」という名称は、「Ω-AA」という動作記述206aと組み合わせて使用される「B02」という数値テーブル206bであることを表している。
 図10は「Ω-AA」という動作記述206aと組み合わせて使用される数値テーブル206bを例示した説明図である。図10(a)には「AA-B01」という数値テーブル206bが示されており、図10(b)には「AA-B02」という数値テーブル206bが示されている。尚、図10では2つの数値テーブル206bが例示されているが、必要に応じてより多くの数値テーブル206bを設定することができる。図10に例示した数値テーブル206bには、「数値テーブル番号」、「開閉速度」、「開閉荷重」の3つの項目が設定されている。このうちの「数値テーブル番号」は数値テーブル206bの通し番号である。例えば、数値テーブル番号を5番と指定すると、図10(a)の「AA-B01」という数値テーブル206bが特定され、数値テーブル番号を6番と指定すると、図10(b)の「AA-B02」という数値テーブル206bが特定される。
 また、図10に例示した数値テーブル206bには3つの項目が設定されているが、動作記述206aと組み合わせて、基本動作206を記述するために用いられるのは、「開閉速度」と「開閉荷重」という2つの項目である。ここで、「開閉速度」と「開閉荷重」という2つの項目が設定されている理由は、この数値テーブル206bが、開閉動作を表す「Ω-AA」という動作記述206aと組み合わせて使用されるためである。すなわち、「Ω-AA」という動作記述206aだけでは、開閉動作させるという定性的な内容しか分からず、開閉動作させる速度や開閉時の荷重といった定量的な内容については分からない。そこで、数値テーブル206bに「開閉速度」および「開閉荷重」という項目を設けて、これらの数値を設定しておくようになっている。尚、数値テーブル206bの「開閉速度」にはプラスの数値が設定されているのは、閉動作させることを表しており(図10(a)参照)、マイナスの数値が設定されているのは開動作させることを表している(図10(b)参照)。
 また、図8を用いて前述したYOGOチャート200では、アクチュエータ番号が2番のアクチュエータAc11に対しては「Ω-AB」という1つの動作記述206aが使用されるが、部分期間番号が2番のタイミングでは「AB-B01」という数値テーブル206bが組み合わせて用いられ、部分期間番号が8番のタイミングでは「AB-B02」という数値テーブル206bが組み合わせて用いられている。「AB-B01」および「AB-B02」という名称は、それぞれ「Ω-AB」という動作記述206aと組み合わせて使用される「B01」および「B02」という数値テーブル206bであることを表している。
 図11は「Ω-AB」という動作記述206aと組み合わせて使用される数値テーブル206bを例示した説明図である。図11(a)には「AB-B01」という数値テーブル206bが示されており、図11(b)には「AB-B02」という数値テーブル206bが示されている。尚、図11では2つの数値テーブル206bが例示されているが、必要に応じてより多くの数値テーブル206bを設定することができる。図11に例示した数値テーブル206bには、「数値テーブル番号」に加えて、「回転角度」、「回転速度」、「回転トルク」の全部で4つの項目が設定されている。これらの内で「回転角度」、「回転速度」、「回転トルク」の項目が、動作記述206aと組み合わせて、基本動作を記述するために用いられる項目である。また、図11の数値テーブル206bに「回転角度」、「回転速度」、「回転トルク」の項目が設定されている理由は、この数値テーブル206bが、回転動作を表す「Ω-AB」という動作記述206aと組み合わせて使用されるためである。すなわち、「Ω-AB」という動作記述206aだけでは回転動作させることしか分からないので、回転させる角度や、回転させる速度、回転させるトルクについては、「回転角度」、「回転速度」、「回転トルク」という項目で数値テーブル206bに数値を設定しておくようになっている。尚、数値テーブル206bの「回転角度」にプラスの数値が設定される場合と、マイナスの数値が設定される場合とが存在するのは、回転方向が逆であることを表している。
 更に、図8のYOGOチャート200では、アクチュエータ番号が3番のアクチュエータAc12、アクチュエータ番号が4番のアクチュエータAc13、およびアクチュエータ番号が7番のアクチュエータAc16に対しては、何れも「Ω-AC」という動作記述206aが使用されている。その一方で、数値テーブル206bについては、アクチュエータ番号が3番のアクチュエータAc12と、アクチュエータ番号が4番のアクチュエータAc13と、アクチュエータ番号が7番のアクチュエータAc16とで、異なる数値テーブル206bが使用されている。すなわち、アクチュエータ番号が3番のアクチュエータAc12に対しては、「AC-B01」あるいは「AC-B02」という数値テーブル206bが組み合わせて用いられ、アクチュエータ番号が4番のアクチュエータAc13に対しては、「AC-B11」あるいは「AC-B12」という数値テーブル206bが、アクチュエータ番号が7番のアクチュエータAc16に対しては、「AC-B21」あるいは「AC-B22」という数値テーブル206bが組み合わせて用いられている。ここで、「AC-B01」、「AC-B02」、「AC-B11」、「AC-B12」、「AC-B21」、「AC-B22」という名称は、それぞれ「Ω-AC」という動作記述206aと組み合わせて使用される「B01」、「B02」、「B11」、「B12」、「B21」、「B22」という数値テーブル206bであることを表している。これらの数値テーブル206bについても、図10あるいは図11を用いて説明した数値テーブル206bと同様に、動作記述206aに応じた項目が設定された数値テーブル206bが予め設定されている。
 また、アクチュエータ番号が8番のアクチュエータAc17に対しては、「Ω-AD」という動作記述206aが使用されており、数値テーブル206bについては、「AD-B01」あるいは「AD-B02」という数値テーブル206bが使用されている。これらの数値テーブル206bについても、動作記述206aに応じた項目が設定された数値テーブル206bが予め設定されている。
 更に、図8のYOGOチャート200で、アクチュエータ番号が5番のアクチュエータAc14、およびアクチュエータ番号が6番のアクチュエータ15に対しては、何れも「Ω-CA」という動作記述206aが使用されている。これは、アクチュエータAc14,Ac15が何れもエアシリンダであり、基本動作の内容が「進退動作」であることに対応している。また、「Ω-CA」という動作記述206aに対しては、数値テーブル206bが組み合わされていない。この理由は、アクチュエータAc14,Ac15がエアシリンダであり、このエアシリンダは、2つの動作ポートの内で空気圧を加える動作ポートを切り換えることで動作するため、定量的な数値を用いて動作の内容を記述する必要が無いためである。
 以上に詳しく説明したように、本実施例のYOGOチャート200では、部分期間番号とアクチュエータ番号との組み合わせで規定される座標位置に、基本動作206を記入することによって、基本動作させるアクチュエータと基本動作させるタイミングとを特定する。更に、基本動作206は、原則として、動作記述206aと数値テーブル206bとの組み合わせによって表現することとしている。こうすれば、YOGOチャート200を作成する際には動作記述206aを記入することに集中し、数値テーブル206bについては取りあえず記入しておくことができる。YOGOチャート200に動作記述206aを記入する作業は、実質的には、人間が考えた内容を素直に表現する作業と同じになるので、YOGOチャート200に誤った内容を記入してしまう可能性を大幅に減少させることができる。
C-2.制御プログラム生成装置110の概要 :
 以上に説明したYOGOチャート200を作成しておけば、中央制御装置100に搭載されている制御プログラム生成装置110(図1参照)を用いて、YOGOチャート200から制御プログラムを自動で生成することができる。
 図12は、中央制御装置100に搭載されている制御プログラム生成装置110についての説明図である。図12に示されるように、本実施例の制御プログラム生成装置110は、YOGOチャート作成部111や、基本動作記憶部112や、YOGOチャート解析部113や、制御プログラム生成部114などを備えている。尚、これらの「部」は、制御プログラム生成装置110が、YOGOチャート200を作成して、制御プログラムを生成するために備える複数の機能を表した抽象的な概念である。従って、制御プログラム生成装置110が、これらの「部」に相当する部品を組み合わせて形成されていることを表しているわけではない。実際には、これらの「部」は、CPUで実行されるプログラムの形態で実現することもできるし、ICチップやLSIなどを組み合わせた電子回路の形態で実現することもできるし、更には、これらが混在した形態など、様々な形態で実現することができる。
 YOGOチャート作成部111は、モニター画面100mや、操作入力ボタン100sなどに接続されており、自動製造機械(パイプベンダ10や、アームロボット20,30など)についての知識を有する機械技術者などが、モニター画面100mを見ながら操作入力ボタン100sを操作することによって、図8に例示したようなYOGOチャート200を作成する。自動製造機械の動作についての知識を有する技術者であれば、YOGOチャート200を簡単に作成することができる。
 また、本実施例では、YOGOチャート200に基本動作を記入する際には、原則として動作記述206aと数値テーブル206bとを用いて基本動作を記入するが、アクチュエータに応じて、使用可能な動作記述206aは決まっている(図9参照)。そこで、基本動作記憶部112には、アクチュエータの名称と、そのアクチュエータで使用可能な動作記述206aとが対応付けて予め記憶されている。
 図13は、アクチュエータの名称と、使用可能な動作記述206aとが対応付けられている様子を示した説明図である。このような対応関係は、基本動作記憶部112に記憶されている。図示されるように基本動作記憶部112には、アクチュエータに対応付けられた状態で、そのアクチュエータで使用可能な動作記述206aが記憶されており、更に、それぞれの動作記述206aに対応付けてプログラム要素番号が記憶されている。前述したようにプログラム要素番号とは、アクチュエータを用いて動作記述206aの動作を実現するためのプログラム要素を特定する番号である。例えば、アクチュエータAc17やアクチュエータAc18には、動作の態様が異なる2つの動作記述206aが選択可能となっているが、それぞれの動作記述206aに対してプログラム要素番号が記憶されている。また、それぞれのアクチュエータに対応付けられた状態で、アクチュエータの構造や、アクチュエータの基本動作の内容も併せて記憶されている。更に、図10や図11に例示した数値テーブル206bも、基本動作記憶部112に記憶されている。
 上述した基本動作記憶部112は、YOGOチャート作成部111に接続されている。このため機械技術者は、YOGOチャート200を作成するに際して基本動作記憶部112を参照することができる。そして、パイプベンダ10について十分な知識を有する機械技術者であれば、どのようなアクチュエータをどのように動作させるかは分かっているので、アクチュエータに応じて使用可能な動作記述206aの中から適切な動作記述206aを選択することができる。また、数値テーブル206bについては、仮の数値テーブル206bを設定しておけば良い。すなわち、図10あるいは図11を用いて前述したように、数値テーブル206bの名称は、組み合わせて用いる動作記述206aの名称中の所定部分と通し番号とが組み合わされたものとなっているから、取りあえず数値テーブル206bの名称を決定してYOGOチャート200に記入しておき、そして、後から数値テーブル206bの数値を修正したり、数値テーブル206bを変更したりすることができる。また、新たな名称の数値テーブル206bを作成すると、その数値テーブル206bには新たな数値テーブル番号(図10、図11参照)が自動的に付番されるようになっている。
 YOGOチャート解析部113は、YOGOチャート作成部111で作成されたYOGOチャート200を読み込んで解析することによって、中間データを生成した後、中間データを制御プログラム生成部114に出力する。YOGOチャートから中間データを生成する処理については、後ほど詳しく説明する。尚、制御プログラム生成装置110内のYOGOチャート作成部111でYOGOチャート200を作成する代わりに、中央制御装置100とは別体に設けたコンピュータ50でYOGOチャート200を作成しておき、そのYOGOチャートをYOGOチャート解析部113が読み込んで解析しても良い。
 制御プログラム生成部114は、中間データを受け取ると、基本動作記憶部112に記憶されている対応関係を参照することによって、中間データから制御プログラムを生成する。中間データから制御プログラムを生成する方法については、後ほど詳しく説明する。そして、得られた制御プログラムを、後述する動作制御装置120に出力する。
 図14は、上述した制御プログラム生成装置110が実行する制御プログラム生成処理の概要を示したフローチャートである。図示されるように、制御プログラム生成処理では、先ず初めにYOGOチャートを読み込む(STEP1)。続いて、読み込んだYOGOチャートを解析して中間データを生成する(STEP2)。
 図15は、制御プログラム生成装置110内のYOGOチャート解析部113が、YOGOチャートを解析して中間データを生成する処理(YOGOチャート解析処理)のフローチャートである。図示したように、YOGOチャート解析処理を開始すると、先ず初めに、部分期間番号Nおよびアクチュエータ番号Mを「1」に初期化する(STEP10)。続いて、YOGOチャート上での座標(N,M)の位置に、基本動作が記入されているか否かを判断する(STEP11)。ここで、YOGOチャート上での座標(N,M)とは、YOGOチャート上で、部分期間番号Nとアクチュエータ番号Mとの組み合わせで特定されるマス目状の座標位置を表している。STEP10で部分期間番号Nおよびアクチュエータ番号Mを初期化した直後は、NおよびMは何れも「1」であるから、YOGOチャート上の座標(1,1)の位置に基本動作が記入されているか否かを判断することになる。
 図8に例示したYOGOチャートの場合では、座標(1,1)には基本動作は記入されていないから、STEP11では「no」と判断して、アクチュエータ番号Mが最終値に達したか否かを判断する(STEP14)。本実施例のパイプベンダ10には10個のアクチュエータAc10~Ac19が搭載されているから、アクチュエータ番号Mの最終値は10となる。従って、座標(1,1)の基本動作の有無を確認した後のSTEP14の判断では、「no」と判断されるので、アクチュエータ番号Mを1つ増加させる(STEP15)。そして、増加させたアクチュエータ番号Mを用いて、再び、座標位置(N,M)に基本動作が記入されているか否かを判断する(STEP11)。
 このように、部分期間番号Nは「1」のまま、アクチュエータ番号Mを1つずつ増加させながら、座標(1,M)に基本動作が記入されているか否かを判断して行く。そして、基本動作が記入されている座標(1,M)に達すると、STEP11で「yes」と判断されることになる。
 そして、STEP11で「yes」と判断された場合は、その座標に記入されている基本動作の動作記述206aを読み込み、更に、基本動作の数値テーブル206bも記入されている場合は数値テーブル206bを読み込む(STEP12)。図8に例示したYOGOチャート200では、座標(1,4)に達すると、STEP11で「yes」と判断されて、「Ω-AC」という動作記述206aと、「AC-B11」という数値テーブル206bとを、基本動作として読み込むことになる。
 続いて、基本動作を読み込んだ座標(N,M)と、読み込んだ基本動作の動作記述206a、および数値テーブル206bを含んだデータ(以下、中間データ(N,M,動作記述,数値テーブル))をメモリに記憶する(STEP13)。図8に例示したYOGOチャートの座標(1,4)の場合であれば、(1,4,Ω-AC,AC-B11)という中間データをメモリに記憶することになる。従って、この中間データは、YOGOチャート上で部分期間番号が1番、アクチュエータ番号Mが4番の位置に、「Ω-AC」という動作記述206aと「AC-B11」という数値テーブル206bとによって規定される基本動作206が記入されていることを表している。
 こうして、YOGOチャート200から読み出した中間データをメモリに記憶した後は(STEP13)、アクチュエータ番号Mが最終値(ここでは、10)に達したか否かを判断する(STEP14)。その結果、最終値に達していない場合は(STEP14:no)、アクチュエータ番号Mを1つ増加させた後(STEP15)、STEP11に戻って、再び、YOGOチャート200上の座標(N,M)に基本動作が記入されているか否かを判断する。
 これに対して、アクチュエータ番号Mが最終値に達していた場合は(STEP14:yes)、今度は、部分期間番号Nが最終値に達したか否かを判断する(STEP16)。例えば、YOGOチャート上で、パイプベンダ10の動作が100個の部分期間を用いて記述されているのであれば、部分期間番号Nの最終値は100となる。
 その結果、部分期間番号Nが最終値に達していない場合は(STEP16:no)、部分期間番号Nを1つ増加させると共に(STEP17)、アクチュエータ番号Mを「1」に初期化した後(STEP18)、STEP11に戻って、再び、YOGOチャート200上の座標(N,M)に基本動作が記入されているか否かを判断する。すなわち、YOGOチャート200上で(図8参照)、部分期間番号Nが1番の部分期間を上から順番に確認して行き、一番下まで確認したら、今度は、部分期間番号Nが2番の部分期間を上から順番に確認して行き、2番の部分期間を確認し終わったら、部分期間番号Nが3番の部分期間というように、部分期間番号Nが小さな部分期間から大きな部分期間に向かって順番に、YOGOチャート200に記入されている基本動作を読み出して、中間データをメモリに記憶して行くのである。
 そして、このような操作を繰り返していき、最終的に、部分期間番号Nが最終値に達したと判断したら(STEP16:yes)、YOGOチャート200に記入された全ての基本動作を読み出したことになる。そこで、メモリに記憶しておいた中間データを読み出して、制御プログラム生成部114に出力する(STEP19)。
 図16には、図8に例示したYOGOチャート200を解析した場合に得られる中間データが例示されている。図示されるように中間データは、部分期間番号Nと、アクチュエータ番号Mと、動作記述206aと、数値テーブル206bとが、この順序で並んだ一組のデータ(以下、「データレコード」と呼ぶ)が集まったものとなっている。また、各データレコードの部分期間番号Nは、1~部分期間番号Nの最終値までの何れかの値を取り、アクチュエータ番号Mは、YOGOチャート200に記載されたアクチュエータ番号Mの何れかの値を取る。また、YOGOチャート200上の全ての部分期間番号Nは、必ず何れかのデータレコードに記載されており、YOGOチャート200に記載された全てのアクチュエータ番号Mは、必ず何れかのデータレコードに記載されている。このような中間データを出力したら、図16のYOGOチャート解析処理を終了して、図15の制御プログラム生成処理に復帰する。
 図15に示した制御プログラム生成処理では、このようにして得られた中間データに基づいて、制御プログラムを生成する(STEP3)。図17には、図16に例示した中間データから生成された制御プログラムが示されている。図示されるように制御プログラムは、部分期間番号Nと、アクチュエータ番号Mと、プログラム要素番号Pと、数値テーブル番号Tとが、この順序で並んだ一組のデータ(すなわち、データレコード)が集まったものとなっている。図16に示した中間データのデータレコードと、図17に示した制御プログラムのデータレコードとを比較すれば明らかなように、制御プログラムのデータレコードは、中間データのデータレコード中の動作記述206aが、その動作記述206aに対応するプログラム要素番号Pに置き換えられ(図13参照)、中間データのデータレコード中の数値テーブル206bが、その数値テーブル206bに対応する数値テーブル番号Tに置き換えられたものとなっている(図10、図11参照)。
 中間データ中の動作記述206aおよび数値テーブル206bを、それぞれプログラム要素番号および数値テーブル番号に置き換える操作は、図12中の制御プログラム生成部114が、基本動作記憶部112を参照することによって実行される。すなわち、基本動作記憶部112には、動作記述206aがプログラム要素番号と対応付けて記憶されている(図13参照)。更に、基本動作記憶部112には、図10や図11に例示した数値テーブル206bが記憶されており、それぞれの数値テーブル206bには数値テーブル番号が設定されている。そこで、制御プログラム生成部114は、基本動作記憶部112に記憶されている図13の対応関係や、図10や図11の数値テーブル206bを参照することによって、中間データ中の動作記述206aや数値テーブル206bを、プログラム要素番号および数値テーブル番号に置き換えて行く。
 以上のようにして、中間データから制御プログラムを生成したら(図15のSTEP3)、生成した制御プログラムを、中央制御装置100に搭載された動作制御装置120に出力して(STEP4)、図15の制御プログラム生成処理を終了する。そして、本実施例の動作制御装置120は、このような制御プログラムに従って、自動製造機械(パイプベンダ10や、アームロボット20,30など)の動作を制御する。
D.動作制御装置120が自動製造機械の動作を制御する方法 :
D-1.動作制御装置120の内部構造 :
 図18は、本実施例の動作制御装置120についての説明図である。図示されるように、動作制御装置120は、制御プログラム記憶部121や、起動検知部122や、制御対象期間選択部123や、制御内容抽出部124や、コマンド生成部125や、コマンド記憶部126や、制御実行部127などを備えている。尚、これらの「部」は、動作制御装置120が制御プログラムに従って複数のアクチュエータの動作を制御するために備える複数の機能を表した抽象的な概念である。従って、動作制御装置120が、これらの「部」に相当する部品を組み合わせて形成されていることを表しているわけではない。実際には、これらの「部」は、CPUで実行されるプログラムの形態で実現することもできるし、ICチップやLSIなどを組み合わせた電子回路の形態で実現することもできるし、更には、これらが混在した形態など、様々な形態で実現することができる。
 制御プログラム記憶部121は、制御プログラム生成装置110で生成された制御プログラムを予め記憶している。また、起動検知部122は、中央制御装置100に設けられた起動スイッチ120aに接続されており、起動スイッチ120aが押されたことを検知すると、その旨を制御対象期間選択部123に出力する。
 制御対象期間選択部123は、起動スイッチ120aが押された旨の情報を受け取ると、制御対象となる部分期間(以下、制御対象期間)として、YOGOチャートに記載された先頭の部分期間を選択して、その部分期間の部分期間番号を制御内容抽出部124に出力する。
 制御内容抽出部124は制御プログラム記憶部121に接続されており、制御対象期間の部分期間番号を受け取ると、制御プログラム記憶部121に記憶されている制御プログラムの中から、制御対象期間の部分期間番号を有するデータレコードを抽出する。前述したようにデータレコードには、部分期間番号Nと共に、アクチュエータ番号Mや、プログラム要素番号Pや、数値テーブル番号Tが記憶されている。アクチュエータ番号Mは、制御対象となるアクチュエータを表している。また、プログラム要素番号Pはアクチュエータの制御に用いるプログラム要素を表し、数値テーブル番号Tは、アクチュエータの制御に用いる数値が設定された数値テーブルを表している。そして、プログラム要素および数値テーブルの組み合わせは具体的な制御内容(すなわち、制御しようとする動作内容)を表している。従って、制御プログラム中から制御対象期間の部分期間番号を有するデータレコードを抽出するということは、制御対象のアクチュエータと、そのアクチュエータに対する制御内容とを抽出していることになる。制御内容抽出部124は、こうして抽出したアクチュエータおよび制御内容を、コマンド生成部125に出力する。また、複数のデータレコードが抽出された場合には、それぞれのデータレコードに対応するアクチュエータおよび制御内容が、コマンド生成部125に出力されることになる。
 コマンド生成部125は、制御対象期間で制御するアクチュエータと、アクチュエータの制御内容とを受け取ると、その内容に応じたコマンドを生成して、アクチュエータが指定された状態で制御実行部127にコマンドを出力する。コマンドを生成する方法については後ほど詳しく説明するが、コマンド記憶部126には、プログラム要素番号Pとコマンドとが対応付けて記憶されており、コマンド生成部125は制御内容を受け取ると、その制御内容に含まれるプログラム要素番号Pを用いてコマンド記憶部126を参照することによってコマンドを生成する。尚、制御対象期間で制御するアクチュエータが複数存在する場合には、それぞれのアクチュエータに対してコマンドが生成されて、制御実行部127に出力される。
 制御実行部127は、ドライバアンプDA10~DA19や、ドライバアンプDA21~DA27や、ドライバアンプDA31~DA37に接続されている。そして、ドライバアンプDA10~DA19には、パイプベンダ10のアクチュエータAc10~Ac19が接続されており、ドライバアンプDA21~DA27には、アームロボット20のアクチュエータAc21~Ac27が接続され、ドライバアンプDA31~DA37には、アームロボット30のアクチュエータAc31~Ac37が接続されている。制御実行部127は、アクチュエータが指定された状態でコマンドを受け取ると、指定されたアクチュエータに対応するドライバアンプを駆動することによって、アクチュエータがコマンドに対応する基本動作を行うようにフィードバック制御を実行する。この点についても後ほど詳しく説明する。また、制御対象のアクチュエータが複数存在する場合には、それぞれのアクチュエータについてフィードバック制御を実行する。
 その結果、全てのアクチュエータで基本動作が完了したことを検知したら、制御実行部127は、制御対象期間での制御が終了した旨を、制御対象期間選択部123に出力する。すると、制御対象期間選択部123は、前回に制御対象期間として選択した部分期間の次の部分期間を、新たな制御対象期間として選択して、その新たな制御対象期間の部分期間番号Nを制御内容抽出部124に出力する。制御内容抽出部124は新たな制御対象期間について、前述したように制御内容を抽出して、その結果をコマンド生成部125に出力し、それを受けてコマンド生成部125がコマンドを生成して制御実行部127に出力する。そして、そのコマンドに従って、制御実行部127が新たな制御対象期間でのアクチュエータの制御を開始する。また、こうした制御の実行中であっても、中央制御装置100に設けられた停止スイッチ120bを押すことによって、制御実行部127に制御を停止させることもできる。上述したように、本実施例の動作制御装置120は、先頭の部分期間から最終の部分期間まで、順番に1つずつ部分期間を選択することによって、自動製造機械に搭載された各アクチュエータの動作を制御する。
D-2.動作制御装置120が実行する動作制御処理 :
 図19は、本実施例の動作制御装置120が、自動製造機械に搭載された各アクチュエータの動作を制御するために実行する動作制御処理のフローチャートである。図19に示すように、動作制御処理を開始すると、先ず初めに、制御プログラム記憶部121に記憶されている制御プログラムを読み出す(STEP50)。続いて、部分期間番号Nを「1」に設定して(STEP51)、設定された部分期間番号Nを有すデータレコードを、制御プログラムの中から抽出する(STEP52)。尚、設定された部分期間番号Nのデータレコードが、制御プログラム中に複数存在する場合は、全てのデータレコードを抽出する。動作制御処理を開始した直後であれば、部分期間番号Nは「1」に設定されているから、図17に例示した制御プログラムから、(1,4,4,19)というデータレコードを抽出することになる。
 続いて、抽出したデータレコード中のアクチュエータ番号Mに基づいて、制御対象となるアクチュエータを特定する(STEP53)。STEP52で読み出したデータレコードを(1,4,4,19)とすれば、データレコード中で2番目に記載されている「4」がアクチュエータ番号Mであり、アクチュエータ番号Mが「4」のアクチュエータが制御対象のアクチュエータとなる。また、STEP52で複数のデータレコードを読み出していた場合には、それぞれのデータレコードに記憶されているアクチュエータ番号Mに基づいて、制御対象となるそれぞれのアクチュエータを特定する。
 更に、読み出したデータレコード中のプログラム要素番号Pを読み出して、そのプログラム要素番号Pに対応するコマンドを取得する(STEP54)。図18に示した動作制御装置120のコマンド記憶部126には、プログラム要素番号Pとコマンドとの対応関係が予め記憶されており、この対応関係を参照することによってコマンドを取得する。
 図21は、動作制御装置120のコマンド記憶部126に記憶されているプログラム要素番号Pとコマンドとの対応関係を例示した説明図である。例えば、プログラム要素番号1番には、「ACMTR_OC_wT」というコマンド名が対応付けられているが、このコマンドは、ACサーボモータを用いて開閉動作させるためのコマンドである。また、プログラム要素番号3番には、「ACMTR_OC_woT」というコマンド名が対応付けられているが、このコマンドも、ACサーボモータを用いて開閉動作させるためのコマンドである。「ACMTR_OC_wT」というコマンドと、「ACMTR_OC_woT」というコマンドとの違いは、開閉動作を行うための所要時間が指定されるか否かの違いである。すなわち、「ACMTR_OC_wT」というコマンドは、所要時間で開閉動作させるためのコマンドであるのに対して、「ACMTR_OC_woT」というコマンドは、所要時間を限定せずに開閉動作させるためのコマンドとなっている。また、プログラム要素番号2番には、「ARCYL_OC」というコマンド名が対応付けられているが、このコマンドは、エアシリンダを用いて開閉動作させるためのコマンドである。図19に示した動作制御処理のSTEP54では、図21に示すような対応関係を参照することによって、プログラム要素番号Pに対応するコマンドを取得する。
 また、図21に示したように、コマンドには、コマンド名に応じた引数を設定するようになっている。例えば、プログラム要素番号1番に対応する「ACMTR_OC_wT」というコマンドには3つの引数を設定する必要があり、第1引数には、「0」または「1」の何れかの値を設定する。ここで「0」は開動作させることを示し、「1」は閉動作させることを示している。また、第2引数には、開閉動作させる際の開閉量を設定し、第3引数には、開閉動作させる際の所要時間を設定するようになっている。逆に言えば、コマンド名を取得しただけではコマンドを生成することはできず、コマンドを生成するには、コマンドに応じた引数を設定する必要がある。
 そこで、図19の動作制御処理では、データレコードに記憶されている数値テーブル番号Tを取得して、その数値テーブル番号Tに対応する数値テーブル206bを読み出す(STEP55)。数値テーブル206bも、動作制御装置120のコマンド記憶部126に予め記憶されている。また、図10あるいは図11を用いて前述したように、数値テーブル206bには予め各種の値が設定されている。そして、読み出した数値テーブル206bに設定されている値を、先に取得したコマンドの引数に設定することによって、コマンドを生成する(STEP56)。
 尚、コマンドの中には、引数が不要なコマンドも存在する。例えば、図21に示したように、プログラム要素番号2番に対応する「ARCYL_OC」というコマンドには、引数が不要となっている。このことに対応して、データレコードの中には数値テーブル番号Tが設定されていないデータレコードも存在する。例えば、プログラム要素番号Pとして「2」が設定されているデータレコードには、数値テーブル番号Tが設定されていない。図19のSTEP52で抽出したデータレコードがこのようなデータレコードであった場合は、STEP55で数値テーブル206bを読み出したり、STEP56でコマンドに引数を設定したりする操作は不要となる。
 続いて、生成したコマンドに対応する経過目標値の数値列を生成する(STEP57)。図22は、コマンドに対応する経過目標値の数値列を生成する様子を例示した説明図である。図22に示した例では、コマンド名が「ACMTR_FR_woT」というコマンド(すなわち、アクチュエータを指定された移動量だけ進退動作させるが、移動に要する所要時間は決められていないコマンド(図21参照))で、移動量Dtが指定された場合が示されている。所要時間が指定されていないので、図22(a)に示した標準的な駆動パターン、すなわち、所定の加速時間Tacをかけて、アクチュエータが停止した状態から所定の標準速度Ssまで加速させ、その後は一定の標準速度Ssで移動(前進あるいは後退)させる。そして、移動量が引数で指定された移動量Dtに近付くと、所定の減速時間Tdcをかけて、標準速度Ssから速度0まで減速させる。この時のアクチュエータの駆動時間は、引数で指定された移動量Dtに応じて定まる時間Ttとなる。
 図22(b)には、図22(a)に示した駆動パターンで駆動した時に、時間の経過と共にアクチュエータが移動する様子が示されている。図22(b)に示されるように、アクチュエータの駆動を開始してから時間Ttが経過すると、アクチュエータの移動量が、引数で指定された移動量Dtに達する。従って、コマンド名が「ACMTR_FR_woT」で、移動量Dtが指定されたコマンド(所要時間の指定は無し)を受け取った場合には、アクチュエータの位置を図22(b)に示すように制御すれば良い。
 そこで、所定の時間間隔dTでアクチュエータの位置の変化を予め算出しておく。すなわち、駆動を開始してから時間dTが経過した時点での移動量D1を算出し、更に時間dTが経過した時点での移動量D2を算出し、更に時間dTが経過した時点での移動量D3を算出するというように、所定時間dT毎のアクチュエータの位置を算出する。このようにすることで、図22(c)に示すような数値列を得ることができる。この数値列が、コマンドに対応する経過目標値の数値列であり、時間の経過と共にアクチュエータを移動させる目標の位置を表している。
 上述した経過目標の数値列は、図19のSTEP56で生成されたコマンドに応じて生成される。例えば、図22では、コマンド名が「ACMTR_FR_woT」というコマンドであった場合に生成される数値列について説明した。しかし、コマンド名が「ACMTR_FR_wT」というコマンド(すなわち、アクチュエータを指定された移動量だけ、指定された所要時間で進退動作させるコマンド(図21参照))であった場合は、図23に示すような数値列が生成される。
 例えば、コマンドの引数として指定された所要時間が、図22で移動に要した時間Ttよりも短い時間Tcであったとする。尚、引数で指定された移動量は図22と同じ移動量Dtとする。この場合、図22(a)に示した標準速度Ssで移動させたのでは、移動に要する所要時間が時間Tcに収まらない。そこで、図23(a)に示すように、アクチュエータを標準速度Ssよりも大きな移動速度Scまで加速させる。この時の加速度は、図22(a)に示した標準的な駆動パターンと同じ加速度とすることができる。その後は一定の移動速度Scでアクチュエータを移動(前進あるいは後退)させ、そして、移動量が指定された移動量Dtに近付くと、移動速度Scを速度0まで減速させる。この時の減速度も、図22(a)の標準的な駆動パターンと同じ減速度とすることができる。
 図23(b)には、図23(a)に示した駆動パターンで駆動した時に、時間の経過と共にアクチュエータが移動する様子が示されている。このようなアクチュエータの位置の変化を、所定の時間間隔dTで算出することによって、図23(c)に示すような経過目標値の数値列を求めることができる。尚、上述した移動量Dtは、本発明における「動作目標値」に対応し、経過目標値の数値列は、本発明における「経過動作」に対応する。そして、経過目標値の数値列は、移動量Dtおよびコマンドに基づいて生成されており、そのコマンドは、YOGOチャート200に記載された動作記述206aによって決定されている。従って、本実施例では動作記述206aが、本発明における「経過動作を生成するための情報」に対応する。
 図19のSTEP57では、以上のようにして、コマンドに対応する経過目標値の数値列を生成する。尚、経過目標値の数値列を生成する処理は、図18に示した動作制御装置120内の制御実行部127によって実行される。
 続いて、動作制御装置120内の制御実行部127は、制御対象のアクチュエータの状態量を検出する(図20のSTEP58)。アクチュエータの状態量は、アクチュエータにさせる動作に応じて決まる物理量であり、例えば、アクチュエータにさせる動作が進退動作の場合は移動量となり、アクチュエータにさせる動作が回転動作の場合は回転量となる。更に、アクチュエータにさせる動作が開閉動作の場合は開閉量となる。アクチュエータの状態量は、移動速度や回転速度などとすることもできる。また、図2あるいは図4を用いて前述したように、アクチュエータAc10~Ac19、Ac21~Ac27、Ac31~Ac37には、エンコーダなどのセンサー類が内蔵されており、動作制御装置120の制御実行部127は、DA10~DA19、DA21~DA27、DA31~DA37を介してセンサー類の出力を取得することにより、アクチュエータの状態量を検出することができる。
 そして、検出したアクチュエータの状態量が、経過目標値の数値列に従って変化するように、アクチュエータのドライバアンプDAに出力する駆動量をフィードバック制御する(STEP59)。すなわち、アクチュエータの駆動開始後、所定の時間dTが経過すると、数値列中の先頭の経過目標値を読み出して、アクチュエータの状態量と比較し、経過目標値とアクチュエータの状態量との偏差が小さくなるように、ドライバアンプDAに出力する駆動量を変更する。
 その後、数値列に含まれる全ての経過目標値に対してフィードバック制御を終了したか否かを判断する(STEP60)。数値列中の先頭の経過目標値を読み出してフィードバック制御しただけでは、まだ全ての経過目標値に対してフィードバック制御を終了してはいないので、STEP60では「no」と判断して、STEP58に戻って、所定の時間dTが経過後のアクチュエータの状態量を検出する。そして、数値列中の先頭から2番目の経過目標値を読み出して、アクチュエータの状態量と比較し、経過目標値とアクチュエータの状態量との偏差が小さくなるように、ドライバアンプDAに出力する駆動量を変更した後(STEP59)、数値列中の全ての経過目標値に対してフィードバック制御を終了したか否かを判断する(STEP60)。また、制御対象のアクチュエータが複数存在する場合には、全てのアクチュエータに対して上述した操作(STEP58~STEP60)を並行して実施する。
 こうした操作を繰り返しているうちに、数値列中の最後の経過目標値に対してフィードバック制御を終了した後は(STEP59)、STEP60で「yes」と判断される。続いて、全てのアクチュエータに対して上述したフィードバック制御が終了したか否かを判断し(STEP61)、まだ終了していないアクチュエータが残っていた場合は(STEP61:no)、STEP58に戻って、まだ制御が終了していないアクチュエータに対して、上述した一連の操作(STEP58~STEP60)を繰り返す。
 その結果、全てのアクチュエータに対して上述した制御が終了したと判断した場合は(STEP61:yes)、今度は、部分期間番号Nが最終値に達したか否かを判断する(STEP62)。ここで、部分期間番号Nとは、YOGOチャート200の部分期間に付された通し番号であり、YOGOチャート200に100個の部分期間が存在する場合は、部分期間番号Nの最終値は「100」となる。そして、部分期間番号が最終値に達していないと判断した場合は(STEP62:no)、制御プログラム中で未だ処理していないデータレコードが残っていることになるので、部分期間番号Nを1つ増加させる(STEP63)。その後、図19のSTEP52に戻って、制御プログラムの中から新たな部分期間番号Nのデータレコードを抽出した後、続く上述した一連の操作(STEP53~STEP62)を繰り返す。このような操作を繰り返すうちに、やがては部分期間番号Nが最終値に達する。すると、STEP62で「yes」と判断して、図19および図20に示した動作制御処理を終了する。
 以上に詳しく説明したように、本実施例の動作制御装置120は、部分期間番号Nを有する複数のデータレコードの形式で記述された制御プログラムを読み込むと、同じ部分期間番号Nのデータレコードを抽出して(図19のSTEP52参照)、抽出したデータレコードの内容に応じたコマンドを生成する(STEP56参照)。そして、コマンドに応じた経過目標値の数値列を生成して(STEP57参照)、アクチュエータの動作をフィードバック制御する(図20のSTEP58~STEP60参照)。その結果、制御プログラムのデータレコードを、インタープリタ形式で(すなわち、同じ部分期間番号Nのデータレコード毎に内容を解釈して)、制御を実行していることになる。このため、自動製造機械の多数のアクチュエータが搭載されている場合や、複数の自動製造機械を制御する場合でも、同時に制御するアクチュエータの数を抑制することができる。その結果、高い処理能力の動作制御装置120を用意しなくても、十分に実用的な速度で制御プログラムを実行することが可能となる。
 また、YOGOチャート200は、動作するアクチュエータの数が多い部分期間が生じた場合でも、図6あるいは図7を用いて前述したように、動作するアクチュエータの数が一定数より少なくなるように簡単に修正することができる。そして、このように修正したYOGOチャート200から生成した制御プログラムでは、部分期間番号Nが同じデータレコードの数も一定数よりも少なくなるので、同時に制御するアクチュエータの数も一定数以下とすることができる。その結果、一般的な処理速度の動作制御装置120を用いても、制御プログラムを十分に実用的な速度で実行することが可能となる。
E.変形例 :
 上述した本実施例の動作制御装置120には、複数の変形例が存在する。以下では、これらの変形例について説明する。尚、以下に説明する変形例は、上述した本実施例と共通する部分が多く存在する。そこで、本実施例と変形例とで共通する構成については、変形例でも同じ符号を付することによって説明を省略し、変形例では本実施例との相違点を中心として説明する。
E-1.第1変形例 :
 上述した本実施例の動作制御装置120では、複数の部分期間の中から1つの部分期間を制御対象期間として選択し、制御対象期間に割り当てられた全てのアクチュエータの基本動作206が終了したら(図20のSTEP61:yes)、次の部分期間を新たな制御対象期間として選択するものとして説明した。しかし、製造システム1(あるいは自動製造機械)の制御では、製造効率(時間あたりの製造数)を出来るだけ高めることが要請される場合がある。このような場合は、アクチュエータの基本動作206が終了したものとみなすための条件を設定しておき、その条件が満足されたら基本動作206が終了したものとみなして(図20のSTEP61:yes)、次の部分期間を新たな制御対象期間として選択するようにしてもよい。
 例えば、図8に例示したYOGOチャート200では、部分期間番号が2番の部分期間にはアクチュエータAc11の基本動作206だけが割り当てられており、アクチュエータAc11の基本動作206が終了したら、部分期間番号が3番の部分期間に割り当てられたアクチュエータAc12の基本動作206が開始されるようになっている。ここで、アクチュエータAc11の基本動作206の動作記述206aは「Ω-AB」であり、数値テーブル206bは「AB-B01」となっている。「Ω-AB」という動作記述206aは回転動作を表している(図9参照)。また、図11(a)に示した例では、「AB-B01」という数値テーブル206bには、回転動作させる目標の回転角度として「90」度が設定されている。従って、アクチュエータAc11の回転角度が90度に達したら、アクチュエータAc11の基本動作206が終了して、次のアクチュエータAc12の基本動作206が開始されることになる。
 これに対して、図24に例示した第1変形例の数値テーブル206bには、図11(a)の数値テーブル206bに対して、「次動作許可位置」という項目が追加されている。この項目は、数値テーブル206bの「回転角度」という項目に設定された数値に対して、「次動作許可位置」という項目に設定された数値だけ手前の位置で、基本動作206が終了したとみなせることを表している。図24に示した例では、「回転角度」という項目には「90」度が設定されており、「次動作許可位置」という項目には「-5」度が設定されているから、アクチュエータAc11の回転角度が85度(=90-5)に達したら、アクチュエータAc11の基本動作206が終了したものとみなして、次のアクチュエータAc12の基本動作206を開始することが可能となる。
 以上では、制御対象期間として選択された部分期間に、1つのアクチュエータの基本動作206だけが割り当てられている場合について説明した。しかし、制御対象期間として選択された部分期間に、複数のアクチュエータの基本動作206が割り当てられている場合も起こり得る。例えば、図8に例示したYOGOチャート200では、部分期間番号が6番の部分期間には、アクチュエータAc10と、アクチュエータAc16と、アクチュエータAc17の3つの基本動作206が割り当てられている。このような場合は、これら3つの基本動作206の数値テーブル206bに、基本動作が終了したものとみなすための条件を示す項目(すなわち、次動作許可位置)を追加することができる。そして、すべての基本動作206について、基本動作206が終了するか、あるいは終了したとみなせたら、次の部分期間(ここでは部分期間番号が7番の部分期間)に割り当てられた基本動作206(ここではアクチュエータAc12の基本動作206)を開始する。
 こうすれば、次の部分期間に割り当てられた基本動作206の開始時期を早めることができるので、全ての部分期間を終了するまでに要する時間を短縮することができる。その結果、製造システム1の製造効率を向上させることが可能となる。
E-2.第2変形例 :
 前述した本実施例の動作制御装置120では、動作制御装置120内の制御実行部127が、コマンドに対応する経過目標値の数値列を生成して、アクチュエータのドライバアンプに対して駆動量を出力するものとして説明した。ここで、アクチュエータを駆動するためのドライバアンプは、アクチュエータを購入する際に、アクチュエータのメーカからアクチュエータと一緒に供給されることが一般的である。しかしドライバアンプだけでなく、コマンドを受け取って前述した経過目標値に対応する数値列を生成してドライバアンプに出力するコントローラ(モーションコントローラと呼ばれることがある)も、アクチュエータのメーカから供給される場合もある。更には、アームロボット20,30については、搭載されたアクチュエータを駆動する専用コントローラが供給される場合もある。このようなコントローラが供給される場合は、次のような動作制御装置120とすることもできる。
 図25は、第2変形例の動作制御装置120についての説明図である。図25に示した第2変形例の動作制御装置120は、図18を用いて前述した本実施例の動作制御装置120に対して、制御実行部127の代わりに、コントローラMC10~MC19や、コントローラCN20,CN30を備えている点が異なっている。第2変形例のコマンド生成部125は、コマンドを生成すると、そのコマンドをコントローラMC10~MC19に出力し、コントローラMC10~MC19がドライバアンプDA10~DA19を介してアクチュエータAc10~Ac19の動作を制御する。また、アームロボット20、30に搭載されたアクチュエータAc21~Ac27、Ac31~Ac37ついては、コマンド生成部125がコマンドを生成すると、そのコマンドをコントローラCN20,CN30に対して出力する。すると、コントローラCN20,CN30が、ドライバアンプDA21~DA27、DA31~DA37を介してアクチュエータAc21~Ac27、Ac31~Ac37の動作を制御する。
 また、コマンド生成部125は、アクチュエータAc10~Ac19の制御が終了すると、コントローラMC10~MC19を介してその旨を検知し、アクチュエータAc21~Ac27、Ac31~Ac37の制御が終了すると、コントローラCN20、CN30を介してその旨を検知する。そしてコマンド生成部125、動作中の全てのアクチュエータの制御が終了したことを検知したら、その旨を制御対象期間選択部123に出力し、それを受けて、制御対象期間選択部123が新たな制御対象期間を選択するようになっている。更に、図25に示した第2変形例では、停止スイッチ120bが押されると、そのことをコマンド生成部125が検知して、コントローラMC10~MC19、CN20、CN30に対して制御を中止するコマンドを出力するようになっている。
 図25に示した第2変形例の動作制御装置120は、以上の点で、図18を用いて前述した本実施例の動作制御装置120と異なるが、その他の点については本実施例の動作制御装置120と同様である。このような第2変形例の動作制御装置120でも、本実施例の動作制御装置120と同様な効果を得ることが可能となる。
 以上、本実施例および各種の変形例の動作制御装置120について説明したが、本発明は上記の実施例および各種の変形例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能である。
  1…製造システム、  10…パイプベンダ、  11…レール、
  12…送出ユニット、  12a…把持軸、   12b…チャック、
  13…加工ユニット、  15…アクチュエータ、
  20…アームロボット、 21…基台、    22…本体部、
  23…第1アーム部、 24…第2アーム部、 25…第3アーム部、
  26…第4アーム部、  27…掌部、    28…把持部、
  30…アームロボット、 31…基台、    32…本体部、
  33…第1アーム部、 34…第2アーム部、 35…第3アーム部、
  36…第4アーム部、  37…掌部、    38…把持部、
  50…コンピュータ、        100…中央制御装置、
  100m…モニター画面、      100s…操作入力ボタン、
  110…制御プログラム生成装置、  112…基本動作記憶部、
  114…制御プログラム生成部、   120…動作制御装置、
  120a…起動スイッチ、      120b…停止スイッチ、
  121…制御プログラム記憶部、   122…起動検知部、
  123…制御対象期間選択部、    124…制御内容抽出部、
  125…コマンド生成部、      126…コマンド記憶部、
  127…制御実行部、  201…仕切線、  202…トリガー線、
  203…動作線、    204…始点、   205…終点、
  206…基本動作、    206a…動作記述、
  206b…数値テーブル、  Ac10~AC19…アクチュエータ、
  AC21~Ac27…アクチュエータ、
  Ac31~Ac37…アクチュエータ、
  CN20、CN30…コントローラ、
  DA10~DA19…ドライバアンプ、
  DA21~DA27…ドライバアンプ、
  DA31~DA37…ドライバアンプ、
  MC10~MC19…コントローラ。

Claims (6)

  1.  複数のアクチュエータを搭載した自動製造機械(10,20,30)に適用されて、予め記憶されている制御プログラムに従って複数の前記アクチュエータを動作させることによって、前記自動製造機械の動作を制御する動作制御装置(120)であって、
     前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、各々の前記部分期間に対して、動作させる前記アクチュエータと、前記アクチュエータの動作内容とを割り当てることによって前記自動製造機械の動作を記述した動作記述データを、前記制御プログラムとして記憶している制御プログラム記憶部(121)と、
     複数の前記部分期間の中から1の前記部分期間を制御対象期間として選択する制御対象期間選択部(123)と、
     前記制御プログラムの中から、前記制御対象期間での制御対象となる前記アクチュエータである制御対象アクチュエータと、前記制御対象アクチュエータの動作内容である制御対象動作内容とを抽出する制御内容抽出部(124)と、
     前記制御対象アクチュエータが前記制御対象動作内容で動作するように、前記制御対象アクチュエータの動作をフィードバック制御する制御実行部(127)と
     を備え、
     前記制御対象期間選択部は、前記制御対象アクチュエータに対する前記フィードバック制御が終了すると、現在の前記制御対象期間の次の前記部分期間を新たな前記制御対象期間として選択する
     ことを特徴とする動作制御装置。
  2.  請求項1に記載の動作制御装置であって、
     前記制御プログラム記憶部は、何れの前記部分期間に対しても、割り当てられる前記アクチュエータの数が、所定の許容割当数以下となっている前記制御プログラムを記憶している
     ことを特徴とする動作制御装置。
  3.  請求項1または請求項2に記載の動作制御装置であって、
     前記制御プログラム記憶部は、前記アクチュエータの動作内容として、前記アクチュエータの動作目標値と、前記動作目標値に達するまでの経過動作を生成するための情報とを含んだ前記制御プログラムを記憶しており、
     前記制御内容抽出部は、前記制御対象動作内容として、前記動作目標値と、前記経過動作を生成するための情報とを抽出しており、
     前記制御実行部は、前記動作目標値と、前記経過動作を生成するための情報とに基づいて前記経過動作を生成して、前記制御対象アクチュエータが前記経過動作で前記動作目標値に達するように、前記制御対象アクチュエータの動作をフィードバック制御する
     ことを特徴とする動作制御装置。
  4.  請求項3に記載の動作制御装置であって、
     前記制御実行部は、
      前記制御対象アクチュエータが前記経過動作で前記動作目標値に達するまでの所定の時間間隔毎の経過目標値を算出し、
      前記所定の時間間隔で前記制御対象アクチュエータの動作を検出して、
      前記制御対象アクチュエータの動作の検出値が前記経過目標値となるように、前記制御対象アクチュエータの動作をフィードバック制御する
     ことを特徴とする動作制御装置。
  5.  複数のアクチュエータを搭載した自動製造機械(10,20,30)の動作を制御する動作制御装置(120)に適用されて、予め記憶されている制御プログラムに従って複数の前記アクチュエータを動作させることによって、前記自動製造機械の動作を制御する動作制御方法であって、
     前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、各々の前記部分期間に対して、動作させる前記アクチュエータと、前記アクチュエータの動作内容とを割り当てることによって前記自動製造機械の動作を記述した前記制御プログラムを読み出す工程(STEP50)と、
     複数の前記部分期間の中から1の前記部分期間を制御対象期間として選択する工程(STEP51、STEP63)と、
     前記制御プログラムの中から、前記制御対象期間での制御対象となる前記アクチュエータである制御対象アクチュエータと、前記制御対象アクチュエータの動作内容である制御対象動作内容とを抽出する工程(STEP52~STEP55)と、
     前記制御対象アクチュエータが前記制御対象動作内容で動作するように、前記制御対象アクチュエータの動作をフィードバック制御する工程(STEP59)と
     を備え、
     前記制御対象期間を選択する工程は、前記制御対象アクチュエータに対する前記フィードバック制御が終了すると、現在の前記制御対象期間の次の前記部分期間を新たな前記制御対象期間として選択する
     ことを特徴とする動作制御方法。
  6.  複数のアクチュエータを搭載した自動製造機械(10,20,30)の動作を制御する動作制御装置(120)に適用されて、予め記憶されている制御プログラムに従って複数の前記アクチュエータを動作させることによって、前記自動製造機械の動作を制御する動作制御方法を、前記動作制御装置に搭載されたコンピュータを用いて実現させるプログラムであって、
     前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、各々の前記部分期間に対して、動作させる前記アクチュエータと、前記アクチュエータの動作内容とを割り当てることによって前記自動製造機械の動作を記述した前記制御プログラムを読み出す機能(STEP50)と、
     複数の前記部分期間の中から1の前記部分期間を制御対象期間として選択する機能(STEP51、STEP63)と、
     前記制御プログラムの中から、前記制御対象期間での制御対象となる前記アクチュエータである制御対象アクチュエータと、前記制御対象アクチュエータの動作内容である制御対象動作内容とを抽出する機能(STEP52~STEP55)と、
     前記制御対象アクチュエータが前記制御対象動作内容で動作するように、前記制御対象アクチュエータの動作をフィードバック制御する機能(STEP59)と
     をコンピュータを用いて実現させると共に、
     前記制御対象期間を選択する機能は、前記制御対象アクチュエータに対する前記フィードバック制御が終了すると、現在の前記制御対象期間の次の前記部分期間を新たな前記制御対象期間として選択する機能である
     ことを特徴とするプログラム。
PCT/JP2021/002768 2020-01-28 2021-01-27 動作制御装置、動作制御方法、プログラム WO2021153591A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202180011396.8A CN115023672A (zh) 2020-01-28 2021-01-27 动作控制装置、动作控制方法、程序
EP21747218.2A EP4099108A4 (en) 2020-01-28 2021-01-27 OPERATIONAL TAX APPARATUS, OPERATIONAL TAX METHOD AND PROGRAM
KR1020227014615A KR102476171B1 (ko) 2020-01-28 2021-01-27 동작 제어 장치, 동작 제어 방법, 프로그램
US17/864,205 US20220350310A1 (en) 2020-01-28 2022-07-13 Operation control apparatus, operation control method, and program

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2020-011386 2020-01-28
JP2020011386A JP6787616B1 (ja) 2020-01-28 2020-01-28 制御プログラム生成装置、制御プログラム生成方法、プログラム
JP2020-075017 2020-04-20
JP2020075017A JP6829505B1 (ja) 2020-04-20 2020-04-20 制御プログラム生成装置、制御プログラム生成方法、プログラム
JP2020112920 2020-06-30
JP2020-112920 2020-06-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/864,205 Continuation US20220350310A1 (en) 2020-01-28 2022-07-13 Operation control apparatus, operation control method, and program

Publications (1)

Publication Number Publication Date
WO2021153591A1 true WO2021153591A1 (ja) 2021-08-05

Family

ID=77079014

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/002768 WO2021153591A1 (ja) 2020-01-28 2021-01-27 動作制御装置、動作制御方法、プログラム

Country Status (5)

Country Link
US (1) US20220350310A1 (ja)
EP (1) EP4099108A4 (ja)
KR (1) KR102476171B1 (ja)
CN (1) CN115023672A (ja)
WO (1) WO2021153591A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4411494A1 (en) * 2023-02-03 2024-08-07 Opton Co., Ltd. Control program generation apparatus, control program generation method, and program

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250715A (ja) * 1992-12-28 1994-09-09 Smc Corp アクチュエータシステム
JPH11202912A (ja) * 1998-01-20 1999-07-30 Takashi Nishikawa シーケンス制御方法
JP2011245602A (ja) 2010-05-28 2011-12-08 Yaskawa Electric Corp ロボット装置及び加工システム並びに加工品の製造方法
JP2018192570A (ja) 2017-05-18 2018-12-06 ファナック株式会社 工作機械
JP2020011386A (ja) 2018-07-13 2020-01-23 株式会社久保田鉄工所 複合部材の製造方法
JP2020075017A (ja) 2018-11-09 2020-05-21 ユニ・チャーム株式会社 吸収性物品用の透液性シート

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03154105A (ja) * 1989-11-10 1991-07-02 Toshiba Mach Co Ltd Ncプログラム作成装置
JP4039595B2 (ja) * 1998-09-03 2008-01-30 リコーエレメックス株式会社 ロボットシステム
GB0220564D0 (en) * 2002-09-04 2002-10-09 Forac Ltd Actuator control device
JP5506618B2 (ja) * 2009-12-28 2014-05-28 本田技研工業株式会社 ロボットの制御装置
US9720393B2 (en) * 2012-08-31 2017-08-01 P.C. Automax Inc. Automation system and method of manufacturing product using automated equipment
WO2014182934A1 (en) * 2013-05-08 2014-11-13 Vigilent Corporation Influence learning in an environmentally managed system
WO2015063925A1 (ja) * 2013-10-31 2015-05-07 三菱電機株式会社 プログラム作成装置、プログラム作成方法、およびプログラム
US10518409B2 (en) * 2014-09-02 2019-12-31 Mark Oleynik Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries
US11312018B2 (en) * 2014-11-14 2022-04-26 Transportation Ip Holdings, Llc Control system with task manager
JP6909616B2 (ja) * 2017-04-10 2021-07-28 株式会社日立製作所 製造システムおよび製造方法
US20210162597A1 (en) * 2017-12-11 2021-06-03 Genesis Robotics And Motion Technologies Canada, Ulc Multi axis robot

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250715A (ja) * 1992-12-28 1994-09-09 Smc Corp アクチュエータシステム
JPH11202912A (ja) * 1998-01-20 1999-07-30 Takashi Nishikawa シーケンス制御方法
JP2011245602A (ja) 2010-05-28 2011-12-08 Yaskawa Electric Corp ロボット装置及び加工システム並びに加工品の製造方法
JP2018192570A (ja) 2017-05-18 2018-12-06 ファナック株式会社 工作機械
JP2020011386A (ja) 2018-07-13 2020-01-23 株式会社久保田鉄工所 複合部材の製造方法
JP2020075017A (ja) 2018-11-09 2020-05-21 ユニ・チャーム株式会社 吸収性物品用の透液性シート

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4099108A4

Also Published As

Publication number Publication date
CN115023672A (zh) 2022-09-06
US20220350310A1 (en) 2022-11-03
KR102476171B1 (ko) 2022-12-08
EP4099108A4 (en) 2024-03-27
TW202147049A (zh) 2021-12-16
EP4099108A1 (en) 2022-12-07
KR20220062676A (ko) 2022-05-17

Similar Documents

Publication Publication Date Title
US20090018690A1 (en) Method of controlling a robotic work station and a corresponding robotic work station
JP7184595B2 (ja) 工作機械システム
CN111796562A (zh) 加工控制系统和加工系统
WO2021153591A1 (ja) 動作制御装置、動作制御方法、プログラム
WO2021153521A1 (ja) 制御プログラム生成装置、制御プログラム生成方法、プログラム
WO2021153544A1 (ja) 制御プログラム生成装置、制御プログラム生成方法、プログラム
JP2018153883A (ja) コントロールシステム、コントローラ及び制御方法
JP2022013621A (ja) 動作制御装置、動作制御方法、プログラム
CN103429399A (zh) 用于命令机器人的系统
CN107791244A (zh) 控制器、作业控制装置、多轴动作控制装置和驱动控制装置
WO2024008257A1 (en) Method and control system for generating a path for a robot arm and a tool attached to the robot arm
GB2602358A (en) Automated stacking arrangement
JP6444947B2 (ja) 製造セルが自律的に製造を行うセル生産システム
JP6829505B1 (ja) 制御プログラム生成装置、制御プログラム生成方法、プログラム
TWI859399B (zh) 動作控制裝置、動作控制方法、程式
JP2022026361A (ja) 制御プログラム生成装置
WO2021153533A1 (ja) 制御プログラム生成装置、制御プログラム生成方法、プログラム
JP2021177371A (ja) 制御プログラム生成装置、制御プログラム生成方法、プログラム
EP3702107A1 (en) Automated stacking arrangement
JP2023104873A (ja) 制御プログラム生成装置、制御プログラム生成方法、プログラム
JP7495499B2 (ja) 数値制御システム
JP3636711B2 (ja) 電気機器の制御システム
JPH10260713A (ja) 生産設備の制御装置
JPH0463402B2 (ja)
KR20230054096A (ko) 서보프레스 제어장치 및 서보프레스 제어 시스템

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21747218

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20227014615

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021747218

Country of ref document: EP

Effective date: 20220829