WO2014185215A1 - 産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法 - Google Patents

産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法 Download PDF

Info

Publication number
WO2014185215A1
WO2014185215A1 PCT/JP2014/060964 JP2014060964W WO2014185215A1 WO 2014185215 A1 WO2014185215 A1 WO 2014185215A1 JP 2014060964 W JP2014060964 W JP 2014060964W WO 2014185215 A1 WO2014185215 A1 WO 2014185215A1
Authority
WO
WIPO (PCT)
Prior art keywords
movement
command
asynchronous
robot
peripheral device
Prior art date
Application number
PCT/JP2014/060964
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
Application filed by 株式会社神戸製鋼所 filed Critical 株式会社神戸製鋼所
Priority to KR1020157032466A priority Critical patent/KR101805283B1/ko
Priority to US14/891,209 priority patent/US9802313B2/en
Priority to EP14797513.0A priority patent/EP2998082B1/en
Priority to CN201480028084.8A priority patent/CN105209225B/zh
Publication of WO2014185215A1 publication Critical patent/WO2014185215A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K9/00Arc welding or cutting
    • B23K9/10Other electric circuits therefor; Protective circuits; Remote controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • 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/34Director, elements to supervisory
    • G05B2219/34399Switch between synchronous and asynchronous mode of controllers
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35374First memory for independent axis, second memory for synchronized axis
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39101Cooperation with one or more rotating workpiece holders, manipulators
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39102Manipulator cooperating with conveyor
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39143One program in robot controller for both robot and machine, press, mold
    • 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/45Nc applications
    • G05B2219/45104Lasrobot, welding robot
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/03Teaching system

Definitions

  • the present invention relates to a control system and a control method for controlling operations of industrial robots and peripheral devices.
  • Industrial robots such as welding robots and their peripheral devices that perform welding operate so as to execute work set by the teaching data by giving the teaching data.
  • the teaching data is composed of, for example, a set of programs describing operations to be executed by the robot or peripheral device.
  • Patent Document 1 in a control device for a work machine that controls a plurality of control objects configured by two or more axes, the actuator and the control are performed when controlling an actuator such as a motor that drives each axis of each control object It is described that an operation command to a control object is distributed to a predetermined actuator and output by relating the object.
  • teaching positions for only the selected control target are registered, and the work program is executed independently of each other.
  • Patent Document 2 in a robot control apparatus that moves a plurality of control objects, an asynchronous control section in which a manipulator and a positioner that are control objects are asynchronously controlled by one work program is set, and each control object Are not controlled synchronously at the same time, but are controlled so as to reach each moving target.
  • each device In a program that describes an operation to be executed by an industrial robot or its peripheral device, the operation of each device may be controlled to be synchronized. In such a case, in order to reduce the total time required for work, a program is created in consideration of the relationship between the operation of industrial robots and peripheral devices, but the time required for creating such a program is reduced. It is desirable to shorten the length. Further, if a section in which each device is not synchronously controlled is set, the program instructions may not be executed in the order described. An object of the present invention is to reduce the total time required for work by reducing the work of correcting a program.
  • the present invention provides a storage unit that stores a teaching program in which an operation to be executed by a robot and a peripheral device is described, and the teaching program stored by the storage unit includes: About a movement-related command that identifies an asynchronous section that is not synchronized with the operation of the robot and a synchronous section that is not the asynchronous section, and is a command related to movement of at least one of the robot and the peripheral device among the instructions of the teaching program A determination unit that determines whether the instruction is in the asynchronous section or the instruction in the synchronous section, and the asynchronous instruction determined as the instruction in the asynchronous section by the determination unit is separated into instructions for each device of the robot and the peripheral device Based on the synchronization command determined by the determination unit and the command of the synchronization interval, A first control unit that controls the operation of the robot and the peripheral device in synchronization, and controls the operation of the robot based on a command related to the robot among the asynchronous commands separated by the separation unit; A control system comprising: a
  • control system stores, in the order in which the commands acquired while the operation of the peripheral device is controlled by the second control unit, the commands related to the peripheral device among the asynchronous commands separated by the separating unit.
  • the storage device further includes a storage unit, and the second control unit executes the instructions stored in the storage unit in order.
  • the control system further includes a peripheral device group including one or more other devices in addition to the peripheral device, and the operation of the peripheral device group is controlled in synchronization with the operation of the robot.
  • the first control unit includes the asynchronous command separated by the separation unit.
  • the operations of the robot and the peripheral device group are controlled synchronously, and the second control unit is configured to include the asynchronous command separated by the separation unit.
  • the operation of the peripheral device is controlled without synchronizing with the operation of the robot and the peripheral device group based on a command related to the peripheral device.
  • control system includes one or a plurality of peripheral devices provided with an asynchronous section that is controlled without being synchronized with the operation of the robot, and the asynchronous section of each peripheral device.
  • the second control unit performs the operation of each peripheral device in which the asynchronous section is provided in the overlapping section. Control is performed without synchronizing with the operation of the apparatus.
  • this control system is characterized in that the movement-related command is described in a sub teaching program called by the main teaching program among the teaching programs.
  • the present invention is stored in a predetermined storage unit, and the operation of the peripheral device is not synchronized with the operation of the robot with respect to a command group related to the operation executed by the robot and the peripheral device. Identifying an asynchronous section and a synchronous section that is not the asynchronous section, and regarding a movement related command that is a command related to movement of at least one of the robot and the peripheral device in the command group, A step of determining whether the instruction is a synchronous section, a step of separating the asynchronous instruction determined to be an instruction of the asynchronous section into instructions for each device of the robot and the peripheral device, and a instruction of the synchronous section Based on the synchronization command, the operation of the robot and the peripheral device is controlled in synchronization, and the asynchronous operation is separated.
  • peripheral devices that are controlled by a control device (robot controller) along with the welding robot are becoming larger.
  • the peripheral device include a positioner that is a device that determines the position of a workpiece to be welded, and a slider that is a device that moves a welding robot.
  • the peripheral devices must be installed before welding starts, such as positioning of the workpiece by the positioner when attaching and detaching the workpiece, and the operation of the slider to retract the welding robot to a position that does not interfere with the operation of the positioner.
  • the operating time is longer. For this reason, the cycle time, which is the total time required for welding one workpiece, is increased.
  • welding peripheral operations such as wire cutting and nozzle replacement by a welding robot are also factors that increase the cycle time.
  • the operations to be executed by the welding robot and peripheral devices are defined in the teaching program, and the teaching program specifies a movement command for instructing the movement of each device and a movement condition such as a movement speed accompanying the movement command. And a command for causing the welding robot to perform wire cutting.
  • the movement command includes target positions of the welding robot and peripheral devices, and the operation of each device may be controlled to be synchronized by the execution of the movement command. For example, there is a case in which each device is controlled so as to simultaneously move toward and reach a target position determined for each device by one movement command. In such a case, the moving speed of the other device is adjusted in accordance with the device having the longest moving time to the target position.
  • the welding robot and the peripheral device are moved independently, or the welding robot is wire-cut while the peripheral device is moving. It is conceivable to execute other operations.
  • the operator needs to individually create a teaching program in which the operations of the devices are mixed in consideration of the relationship of the operations of the devices. For example, if the welding robot is to perform wire cutting in parallel with positioning the workpiece of the positioner, a program for executing the wire cutting by defining the operation of the welding robot in accordance with each movement command to the positioner is performed for each operation. Must be created separately.
  • the time for creating the teaching program increases.
  • it may be more difficult to confirm the contents of the created teaching program and the cycle time may not be shortened depending on the skill of the teaching program creator.
  • the instructions of the teaching program are required to be executed in the order in which they are described.
  • the instruction may not be executed in the order in which the instructions are described simply by setting a section in which each device is asynchronously controlled in the teaching program. . Therefore, in the following, a procedure for realizing the reduction of the cycle time by reducing the program correction work will be described.
  • FIG. 1 is a diagram showing a schematic configuration of a welding robot system according to the present embodiment.
  • the welding robot system includes a welding robot 10 that performs various operations related to welding, a positioner 20 as an example of a peripheral device that determines the position of the workpiece W, and a control that controls each device of the welding robot system.
  • the apparatus 30 includes a wire cutter 40 for cutting a wire, and a teaching pendant 50 used for setting a welding operation and creating a teaching program.
  • the welding robot system according to the present embodiment includes, for example, a slider (not shown) disposed below the welding robot 10 in order to move the welding robot 10. Other peripheral devices may be provided.
  • the welding robot 10 includes an arm having a plurality of joints, and performs various operations related to welding based on a teaching program.
  • a welding torch 11 for performing a welding operation on the workpiece W is provided at the tip of the arm of the welding robot 10.
  • the positioner 20 adjusts the position of the workpiece W based on the teaching program.
  • the control device 30 stores a storage device (memory) that stores a previously taught teaching program, and a processing device that reads the teaching program and controls the operations of the welding robot 10, the positioner 20, and the wire cutter 40 ( CPU).
  • the teaching program may be transmitted from the teaching pendant 50 or may be created by a teaching program creation device (not shown) and transmitted by data communication.
  • the teaching program may be passed to the control device 30 via a removable storage medium such as a memory card.
  • the wire cutter 40 cuts the wire attached to the welding robot 10.
  • the teaching pendant 50 is used for an operator to set a welding path, welding operation conditions, etc., and to create a teaching program in order to perform a welding operation by the welding robot 10.
  • the teaching pendant 50 includes a display screen 51 configured by a liquid crystal display and the like, and an input button 52.
  • FIG. 2 is a diagram illustrating a hardware configuration example of the control device according to the present embodiment.
  • the control device 30 includes a CPU (Central Processing Unit) 61 that is a calculation means and a memory 62 that is a main storage means.
  • the control device 30 includes a magnetic disk device (HDD: Hard Disk Drive) 63 and an input device 64 such as a keyboard and a mouse as external devices.
  • the control device 30 further includes an interface 65 that transmits / receives data to / from an external device and a driver 66 that reads / writes data from / to the storage medium.
  • FIG. 2 merely illustrates a hardware configuration when the control device 30 is realized by a computer system, and the control device 30 is not limited to the illustrated configuration.
  • FIG. 3 is a block diagram illustrating a functional configuration example of the control device 30 according to the present embodiment.
  • the control device 30 sends a teaching program storage unit 31 that stores a teaching program and a movement-related command separation unit 33 (to be described later) to execute a command that is not related to movement.
  • a movement-related command separation unit 33 that determines whether the instruction is a synchronous section instruction or an asynchronous section instruction, and separates the movement-related instruction into instructions for each device according to the determined result.
  • control device 30 is based on the movement-related command buffer unit 34 for selecting whether to send a movement-related command to a sub-trajectory calculation unit 36 (to be described later) or to store it based on the movement state of the device, and on the basis of the movement-related command.
  • a main trajectory calculation unit 35 that calculates information related to movement for a device to be synchronously controlled
  • a sub-trajectory calculation unit 36 that calculates information related to movement for a device that is not a target for synchronous control based on a movement-related command, and an operation of each device
  • a motor drive unit 37 is based on the movement-related command buffer unit 34 for selecting whether to send a movement-related command to a sub-trajectory calculation unit 36 (to be described later) or to store it based on the movement state of the device, and on the basis of the movement-related command.
  • the command interpretation unit 32, the movement related command separation unit 33, the movement related command buffer unit 34, the main trajectory calculation unit 35, the sub trajectory calculation unit 36, and the motor drive unit 37 are, for example, executed by the CPU 61 in the hardware configuration shown in FIG. Realized. More specifically, a program that realizes the functions of the control device 30 according to the present embodiment on a computer is stored in the magnetic disk device 63 via the driver 66 and the interface 65, and this program is expanded in the memory 62 and the CPU 61. Are executed, the functions of the command interpreting unit 32, the movement related command separation unit 33, the movement related command buffer unit 34, the main trajectory calculation unit 35, the sub trajectory calculation unit 36, and the motor drive unit 37 are realized. .
  • the movement related command buffer unit 34 is further realized by a storage unit such as the memory 62 and the magnetic disk device 63 in the hardware configuration shown in FIG.
  • the teaching program storage unit 31 is also realized by a storage unit such as the memory 62 and the magnetic disk device 63.
  • the teaching program storage unit 31 as an example of a storage unit stores a teaching program taught in advance. Then, in response to a request from the instruction interpreting unit 32, the teaching program is transmitted to the instruction interpreting unit 32.
  • the instruction interpretation unit 32 receives an input from the outside, and acquires a teaching program corresponding to the received input content from the teaching program storage unit 31.
  • the input from the outside is performed from the teaching pendant 50 (see FIG. 1) via the interface 65 shown in FIG. 2, or the operator is operated by operating the input device 64 shown in FIG. Etc.
  • the command interpretation unit 32 determines whether the acquired instruction of the teaching program is a movement-related command or a command not related to movement.
  • the command interpretation unit 32 transmits the movement related command to the movement related command separation unit 33. If the acquired command is a command not related to movement, the command interpretation unit 32 executes the command not related to movement.
  • the movement-related commands include a movement command for instructing movement of each device, a command for specifying a movement condition such as a movement speed of the device accompanying the movement command, and the like.
  • the commands not related to movement include IO input / output commands for causing the welding robot 10 to execute wire cutting and nozzle replacement.
  • the command interpretation unit 32 waits for a request for a movement-related command from the main trajectory calculation unit 35 and indicates that the movement of the asynchronous target device has been completed.
  • the notification waits from the movement related command buffer unit 34.
  • the movement-related command separation unit 33 as an example of the determination unit and the separation unit identifies an asynchronous section and a synchronous section in the teaching program, and the movement-related instruction acquired from the instruction interpreter 32 is an asynchronous section instruction or a synchronous section instruction. Determine whether.
  • the synchronization section refers to the operation of the welding robot 10 and a device that is a synchronization control target among devices such as the positioner 20 that is a peripheral device of the welding robot 10 (hereinafter, a device that is a synchronization control target is a synchronization target). This is a section in which the operation of the apparatus is synchronously controlled. Synchronous control is to determine the movement speed of other devices in accordance with the device that has the longest travel time to the target position for a plurality of devices. Controlling to reach the target position at the same time.
  • the asynchronous section is a device set as a device that is not a synchronous control target among devices such as the positioner 20 that is a peripheral device (hereinafter, a device set as a device that is not a synchronous control target is referred to as an asynchronous target device).
  • a device set as a device that is not a synchronous control target is referred to as an asynchronous target device.
  • the asynchronous target device is controlled independently of the operation of the other device, and is controlled to reach the target position at the moving speed specified by the teaching program.
  • the movement-related command separation unit 33 determines that the movement-related command is a movement-related command in the synchronization section, the movement-related command separation unit 33 sends the movement-related command to the main trajectory calculation unit 35.
  • the movement-related command separation unit 33 determines that the movement-related command is an asynchronous section, the movement-related command separation unit 33 separates the movement-related command into commands for each device, and moves-related commands related to the welding robot 10 and the synchronization target device. Is sent to the main trajectory calculation unit 35, and a movement related command relating to the asynchronous target device is sent to the movement related command buffer unit 34.
  • the movement-related command buffer unit 34 as an example of the storage means sends or acquires the movement-related command acquired from the movement-related command separation unit 33 to the sub-trajectory calculation unit 36 based on the movement state of the asynchronous target device. Select whether to store movement-related commands.
  • the movement related command buffer unit 34 acquires the movement state from the sub-trajectory calculation unit 36 for the asynchronous target device corresponding to the acquired movement related command.
  • the movement related command buffer unit 34 stores the movement related command of the asynchronous target device therein.
  • the movement-related command buffer unit 34 When the movement-related command buffer unit 34 accumulates movement-related commands, the movement-related command buffer unit 34 accumulates the movement-related commands in the order in which they are acquired from the movement-related command separation unit 33. On the other hand, when the acquired movement state of the asynchronous target device is not “moving”, the movement-related command buffer unit 34 transmits the movement-related command to the sub-trajectory calculation unit 36.
  • the movement-related command buffer unit 34 When the movement-related command buffer unit 34 receives a request for movement-related commands from the sub-trajectory calculation unit 36, the movement-related command buffer unit 34 stores the movement-related commands stored in the asynchronous target device in the sub-trajectory calculation unit 36 in the order of accumulation. Send.
  • the movement-related command buffer unit 34 transmits a movement completion notification indicating that the movement of the asynchronous target device is completed to the command interpretation unit 32.
  • the main trajectory calculation unit 35 as an example of the first control means includes a movement-related command determined as a movement-related command by the movement-related command separation unit 33 or a movement in an asynchronous section separated by the movement-related command separation unit 33. Based on a movement-related command related to the welding robot 10 and the synchronization target device among the related commands, information related to movement of the welding robot 10 and the synchronization target device (hereinafter, information related to movement is referred to as movement information) is calculated.
  • the movement information is information such as a movement time and a movement speed to the designated target position of each device, and the main trajectory calculation unit 35 sends the calculated movement information of each device to the motor drive unit 37.
  • the main trajectory calculation unit 35 requests the command interpretation unit 32 for the next movement related command.
  • the sub-trajectory calculation unit 36 as an example of the second control means moves the asynchronous target device based on the movement-related command related to the asynchronous target device among the movement-related commands in the asynchronous section separated by the movement-related command separation unit 33. Calculate information. Then, the sub trajectory calculation unit 36 sends the calculated movement information of each device to the motor drive unit 37. Further, the sub-trajectory calculation unit 36 sets the movement state of the asynchronous device that has transmitted the movement information to the motor driving unit 37 to “moving”. When the asynchronous device reaches the target position, the sub-trajectory calculation unit 36 releases the movement state of the device from “moving” and requests the movement-related command buffer unit 34 for the next movement-related command.
  • the motor drive unit 37 as an example of the first control unit and the second control unit is based on the movement information of each device acquired from the main trajectory calculation unit 35 and the sub trajectory calculation unit 36, for example, the interface shown in FIG.
  • the operations of the welding robot 10 and peripheral devices are controlled via 65 to move each device to the target position of each device.
  • FIG. 4 is a diagram showing an example of the main teaching program according to the present embodiment.
  • the teaching program shown in FIG. 4 (hereinafter referred to as teaching program A) is an example of a main teaching program that calls a sub teaching program.
  • the operation of the positioner 20 is controlled as a synchronization target device or an asynchronous target device.
  • the teaching program B which is a sub teaching program is called by the instruction in the first line, and the welding robot 10 is retracted.
  • the calling of the teaching program B is outside the asynchronous section, and when the welding robot 10 is completely retracted, the next command is executed.
  • the asynchronous section of the positioner 20 is started by the command on the second line, and the positioner 20 becomes an asynchronous target device. Therefore, in the teaching program C called by the instruction on the third line, in the teaching program D called by the instruction on the fourth line, the movement related instructions are separated into the movement related instructions of the welding robot 10 and the movement related instructions of the positioner 20. Executed. And the operation
  • the welding robot 10 and the positioner 20 are waited by the instruction on the fifth line of the teaching program A. For example, when the welding robot 10 reaches the target position first with the welding robot 10 and the positioner 20, the welding robot 10 waits for the positioner 20 to reach the target position of the positioner 20. When the positioner 20 reaches the target position, the asynchronous section of the positioner 20 is finished, and synchronous control between the welding robot 10 and the positioner 20 is performed from the next command.
  • the operations of the welding robot 10 and the positioner 20 are controlled has been described, but it is also possible to control a peripheral device group including one or more other devices.
  • the asynchronous section of the positioner 20 is set as the asynchronous section, the movement-related commands in the asynchronous section are separated into commands for each device of the welding robot 10, the positioner 20, and the peripheral device group.
  • the operations of the welding robot 10 and the peripheral device group are controlled in synchronism based on the separated welding robot 10 and peripheral device group movement-related commands. Further, based on the movement-related command of the separated positioner 20, the operation of the positioner 20 is controlled without being synchronized with the operations of the welding robot 10 and the peripheral device group.
  • the instructions in the asynchronous section are described as “teaching program C call” or “teaching program D call”.
  • “asynchronous teaching program C call” or “asynchronous teaching program D call” ” it may be clearly indicated that the instruction is in an asynchronous section.
  • an error may be generated when the instruction is executed.
  • FIG. 5A to 5D are flowcharts illustrating an example of the flow of the teaching program execution process according to the present embodiment.
  • FIG. 5A is a flowchart illustrating an example of the processing flow of the instruction interpretation unit 32 and the movement related instruction separation unit 33.
  • the command interpretation unit 32 receives an input from the outside, and acquires a command of a teaching program corresponding to the received input content from the teaching program storage unit 31 (step 101).
  • the command interpretation unit 32 when acquiring the movement command, the command interpretation unit 32 also acquires other movement-related commands such as a speed setting command following the movement command.
  • the command interpretation unit 32 acquires a command that is not related to movement for driving the wire cutter 40 or the like, it also acquires a command that is not related to movement following the command.
  • the command interpretation unit 32 determines whether or not the command of the acquired teaching program is a movement related command (step 102). If it is not a movement related command (No in step 102), the command interpreter 32 sequentially executes the acquired commands in the order described in the teaching program. Here, if the acquired instruction does not include an instruction to end the asynchronous section (No in step 103), the instruction interpreter 32 executes all the acquired instructions (step 104). Then, the instruction interpretation unit 32 determines whether or not all the instructions of the teaching program to be processed have been executed (step 105). If all the instructions of the teaching program have been executed (Yes in step 105), the teaching program execution process ends. On the other hand, if there is an instruction not executed by the teaching program (No in step 105), the process proceeds to step 101.
  • the instruction interpreter 32 sequentially executes the acquired instructions in the order described in the teaching program, and executes the asynchronous section end instruction. After that, a request for a movement-related command transmitted from the main trajectory calculation unit 35 and a movement completion notification of the asynchronous target device transmitted from the movement-related command buffer unit 34 are awaited (step 106).
  • the command interpretation unit 32 receives both the request for the movement related command and the movement completion notification, the asynchronous section of the asynchronous target device ends.
  • the command interpretation unit 32 may notify the movement-related command separation unit 33 that the subsequent movement-related commands do not have to be separated for each device because the asynchronous section has ended. If there is an instruction that has not been executed in the instruction acquired in step 101 after the end of the asynchronous period, the instruction interpretation unit 32 executes an instruction that has not been executed, and then proceeds to step 105.
  • step 102 If a positive determination (Yes) is made in step 102, that is, if the instruction of the teaching program is a movement-related instruction, the instruction interpreter 32 transmits the movement-related instruction to the movement-related instruction separator 33.
  • the command interpretation unit 32 also transmits other movement-related commands such as a speed setting command acquired together with the movement command to the movement-related command separation unit 33.
  • the movement related command separation unit 33 determines whether or not the acquired movement related command is a command in the synchronization section (step 107).
  • the movement-related command separation unit 33 assigns the movement-related instruction to each device. (Step 108). Then, the movement-related command separation unit 33 transmits a command related to the welding robot 10 and the synchronization target device among the separated commands to the main trajectory calculation unit 35, and transmits a command related to the asynchronous target device to the movement-related command buffer unit 34 ( Step 109).
  • step 107 If the determination in step 107 is affirmative (Yes), that is, if the movement-related command acquired by the movement-related command separation unit 33 is a command in the synchronization section, the process proceeds to step 109, and the movement-related command separation unit 33 transmits a movement-related command to the main trajectory calculation unit 35.
  • the command interpretation unit 32 waits for a command request from the main trajectory calculation unit 35 (step 110).
  • the command interpretation unit 32 receives a command request from the main trajectory calculation unit 35 and proceeds to step 105.
  • the instruction interpreter 32 and the movement-related instruction separator 33 are processed for the instruction of the teaching program.
  • FIG. 5B is a flowchart illustrating an example of a process flow in which the main trajectory calculation unit 35 and the motor drive unit 37 move the welding robot 10 and the synchronization target device.
  • the main trajectory calculation unit 35 acquires a movement related command from the movement related command separation unit 33 in Step 109 of FIG. 5A (Step 201).
  • the main trajectory calculation unit 35 calculates movement information for the welding robot 10 and the synchronization target device based on the acquired movement-related command (step 202).
  • the main trajectory calculation unit 35 transmits the calculated movement information to the motor drive unit 37.
  • the motor drive unit 37 moves the welding robot 10 and the synchronization target device to the target position of each device based on the movement information acquired from the main trajectory calculation unit 35 (step 203). Since the movement information used here is movement information calculated based on a synchronous control command, each device is controlled to reach each target position simultaneously.
  • the main trajectory calculation unit 35 requests the command interpretation unit 32 for a movement-related command to be executed next (step 205).
  • the request for the movement-related command is a request that the command interpretation unit 32 waits at step 106 or 110.
  • the processing of the main trajectory calculation unit 35 and the motor drive unit 37 is performed on the movement related command in the synchronous control.
  • FIG. 5C is a flowchart illustrating an example of a flow of processing in which the movement-related instruction buffer unit 34 accumulates movement-related instructions.
  • the movement-related command buffer unit 34 acquires a movement-related command from the movement-related command separation unit 33 in step 109 of FIG. 5A (step 301).
  • the movement related command buffer unit 34 acquires the movement state from the sub-trajectory calculation unit 36 for the asynchronous target device corresponding to the acquired movement related command, and determines whether the asynchronous target device is “moving”. Judgment is made (step 302).
  • the movement related command buffer unit 34 stores the movement related commands in the order in which they are acquired (Step 303).
  • the movement related command buffer unit 34 transmits the movement related command to the sub-trajectory calculation unit 36 (step 304). As described above, the movement-related command buffer unit 34 performs processing for accumulating movement-related commands.
  • FIG. 5D is a flowchart illustrating an example of a process flow in which the movement-related command buffer unit 34, the sub-trajectory calculation unit 36, and the motor driving unit 37 move the asynchronous target device.
  • the sub-trajectory calculation unit 36 acquires a movement-related command from the movement-related command buffer unit 34 at step 304 in FIG. 5C (step 401).
  • the sub-trajectory calculation unit 36 calculates movement information for the asynchronous target device based on the acquired movement-related command (step 402).
  • the sub-trajectory calculation unit 36 transmits the calculated movement information to the motor driving unit 37, and sets the movement state of the asynchronous target device to “moving”.
  • the motor drive unit 37 moves the asynchronous target device to the target position based on the movement information acquired from the sub-trajectory calculation unit 36 (step 403).
  • the sub-trajectory calculation unit 36 releases the movement state of the asynchronous target device from “moving” and sends a movement-related command to be executed next to the movement-related command buffer unit 34. Request (step 405).
  • the movement related command buffer unit 34 determines whether or not movement related commands of the asynchronous target device are accumulated (step 406). If movement-related commands are stored (Yes in step 406), the process proceeds to step 401, where the movement-related command buffer unit 34 is in the order in which the stored movement-related commands are stored, that is, the movement stored first. It transmits to the sub locus
  • the movement-related command buffer unit 34 also transmits the movement-related command accompanying the movement command to the sub-trajectory calculation unit 36.
  • movement-related commands such as movement commands and speed setting commands are separated for each device, and movement-related commands for the separated asynchronous target devices are accumulated and executed in order, so each device is described in the teaching program. It is guaranteed that the instructions are executed in the order in which they were executed.
  • the movement related command buffer unit 34 transmits a movement completion notification of the asynchronous target device to the command interpretation unit 32 (Step 407). As described above, the movement-related command buffer unit 34, the sub-trajectory calculation unit 36, and the motor driving unit 37 are processed for the movement-related commands of the asynchronous target device.
  • FIGS. 6A to 6C are diagrams showing an example of the sub teaching program according to the present embodiment.
  • Each teaching program shown in FIGS. 6A to 6C is an example of a sub teaching program called from the teaching program A shown in FIG. 6A to 6C are a teaching program B, a teaching program C, and a teaching program D, respectively.
  • the teaching program B is a program for retracting the welding robot 10 to a position where the operation of the positioner 20 does not interfere even when the positioner 20 rotates.
  • the teaching program C is a program in which the positioner 20 determines a work position.
  • the teaching program D is a program in which the welding robot 10 performs wire cutting with the wire cutter 40. The processing when the teaching program A shown in FIG.
  • the instruction interpretation unit 32 receives an input from the outside, and acquires an instruction of the teaching program A corresponding to the received input content from the teaching program storage unit 31 (step 101). Since the instruction acquired here is “Teaching program B call”, the instruction interpreting unit 32 further acquires the instruction “movement instruction robot position A” of the teaching program B. Since “movement command robot position A” is a movement command, the command interpretation unit 32 transmits “movement command robot position A” to the movement-related command separation unit 33 (step 102).
  • “movement command robot position A” is a command in the synchronization section (step 107)
  • the movement related command separation unit 33 transmits this movement command to the main trajectory calculation unit 35 (step 109).
  • movement information is calculated by the main trajectory calculation unit 35 (steps 201 and 202).
  • “Movement command robot position A” is a movement command for moving the welding robot 10 to position A, and includes the movement contents of the positioner 20 as a peripheral device. Therefore, the main trajectory calculation unit 35 calculates movement information of the welding robot 10 and the positioner 20 and transmits the calculated movement information to the motor drive unit 37. Then, the motor drive unit 37 controls the welding robot 10 and the positioner 20 synchronously to move the welding robot 10 to the position A, and also moves the positioner 20 to the target position of the positioner 20 (step 203).
  • the main trajectory calculation unit 35 requests the next movement related command (step 205).
  • the command interpreter 32 receives a command request from the main trajectory calculator 35 (step 110)
  • the command interpreter 32 acquires the next command “movement command robot position B” (steps 105 and 101). Then, similarly to the movement to the position A, the welding robot 10 and the positioner 20 are synchronously controlled, and the welding robot 10 moves to the position B.
  • the execution of the teaching program B ends.
  • the instruction interpretation unit 32 acquires the instruction “asynchronous section positioner start” on the second line of the teaching program A (step 101). Since “asynchronous section positioner start” is an instruction for starting the asynchronous section of the positioner and is not a movement related instruction nor an instruction for ending the asynchronous section, the instruction interpreter 32 executes “asynchronous section ⁇ positioner start” to execute the positioner. Asynchronous section is started (steps 102 to 104). Therefore, from the instruction “Teaching Program C Call” on the third line of the teaching program A, the movement related instruction separating unit 33 separates the movement related instruction into the movement related instruction of the welding robot 10 and the movement related instruction of the positioner 20. The movement-related command of the welding robot 10 is transmitted to the main trajectory calculation unit 35, and the movement-related command of the positioner 20 is transmitted to the movement-related command buffer unit 34.
  • the instruction interpreting unit 32 Since the next instruction acquired by the instruction interpreting unit 32 is “Teaching program C call” of the teaching program A, the instruction interpreting unit 32 further acquires “movement instruction positioner position a” of the teaching program C (step 101). . Since “movement command positioner position a” is a movement command and is an asynchronous section command, the movement-related command separation unit 33 separates the movement command of the welding robot 10 and the movement command of the positioner 20 (step 108). Then, the movement related command separation unit 33 transmits a command related to the welding robot 10 among the separated commands to the main trajectory calculation unit 35 and transmits a command related to the positioner 20 to the movement related command buffer unit 34 (step 109).
  • the movement-related command buffer unit 34 acquires the movement command of the positioner 20, and transmits the movement command to the sub-trajectory calculation unit 36 because the movement state of the positioner 20 is not “moving” (steps 301, 302, and 304). Then, the sub-trajectory calculation unit 36 acquires a movement command and starts moving the positioner 20 to the position a (steps 401 to 403).
  • the target position of the welding robot 10 in the three movement commands (first line, second line, and fourth line) of the teaching program C is fixed. Therefore, the movement based on the movement command of the separated welding robot 10 is immediately completed, and the main trajectory calculation unit 35 requests the next movement-related command (steps 201 to 205).
  • the command interpretation unit 32 obtains the next command “movement command positioner position b” and “movement speed setting positioner 10%” which is a command for setting the movement speed of the positioner 20. Since these commands are also movement-related commands in the asynchronous section, the movement-related command separation unit 33 separates the movement-related commands of the welding robot 10 and the movement-related commands of the positioner 20 (step 108). However, since the target position of the welding robot 10 is fixed, the movement is completed immediately, and the main trajectory calculation unit 35 requests the next movement-related command (steps 201 to 205).
  • the movement command for the positioner 20 at “movement command positioner position b”, and the speed setting command for the positioner 20. Is stored in the movement related command buffer unit 34 (steps 301 to 303). In this way, the movement-related command buffer unit 34 accumulates movement-related commands for the positioner 20 acquired while the positioner 20 moves to the position a.
  • the command interpretation unit 32 When receiving the command request from the main trajectory calculation unit 35, the command interpretation unit 32 acquires the next command in parallel with the movement of the positioner 20 (steps 110, 105, 101).
  • the next command acquired by the command interpreter 32 is “movement command positioner position c” and “moving speed setting ⁇ positioner 100%” of the teaching program C, and the movement related command separation unit 33 separates the movement related command into commands for each device. To do. If the positioner 20 is moving to the position a, the movement-related command of the positioner 20 is accumulated in the movement-related command buffer unit 34. On the other hand, since the target position of the welding robot 10 is fixed, the movement is immediately completed, and the main trajectory calculation unit 35 requests the next movement command (steps 201 to 205).
  • FIG. 7 is a diagram illustrating an example of a state in which the movement-related instruction buffer unit 34 accumulates movement-related instructions. While the positioner 20 moves to the position a, the movement-related command (commands in the second to fifth lines) of the positioner 20 of the teaching program C is transmitted to the movement-related command buffer unit 34 and represents the accumulated state. First, the movement command for the second line of the teaching program C is accumulated, and then the speed setting command for the third line, the movement instruction for the fourth line, and the speed setting instruction for the fifth line are accumulated in order. Further, since the movement command is separated into the movement command for the welding robot 10 and the movement command for the positioner 20, only the movement command for the positioner 20 is stored in the movement-related command buffer unit 34.
  • the command interpreter 32 acquires the next command of the teaching program A (steps 110, 105, 101).
  • the next instruction acquired by the instruction interpreter 32 is “call teaching program D”, and further acquires “positioning unnecessary positioner” of the teaching program D.
  • the “positioning unnecessary positioner” is a command for setting the teaching program D so that the positioner 20 is not moved and the moving command does not include the positioner. Since “positioning unnecessary positioner” is not a movement-related command and is not an asynchronous section end command, the command interpretation unit executes (steps 102 to 104). Next, the command interpretation unit 32 obtains “movement command robot position C”. To do.
  • the next “movement command robot position C” is a movement command and is an asynchronous section command, and is transmitted to the movement related command separation unit 33 (step 107). However, since the positioner 20 does not move in the teaching program D, the movement command for the positioner 20 is not transmitted to the movement-related command buffer unit 34. Then, the movement command of the welding robot 10 is transmitted to the main trajectory calculation unit 35 (step 109), the welding robot 10 moves to the position C, and after the movement is completed, the main trajectory calculation unit 35 requests the next movement related command. (Steps 201 to 205). Since the instruction of the next teaching program D is “movement instruction robot position D”, the welding robot 10 moves to position D in the same manner as the movement to position C.
  • the instruction interpreter 32 executes in order and performs wire cutting (steps 102 to 104).
  • wire cutting is started by the welding robot 10 and the wire cutter 40, and by executing “waiting time instruction 1 second” on the fifth line, the wire cut is performed for 1 second.
  • the instruction interpretation unit 32 waits for reception of a wire cut completion signal from the wire cutter 40.
  • the command interpretation unit 32 acquires the next command (steps 105 and 101).
  • the command interpretation unit 32 acquires the next command “movement command robot position E” of the teaching program D. Then, the welding robot 10 moves to the position E, and after the movement is completed, the main trajectory calculation unit 35 requests the next movement related command.
  • the instruction of the teaching program A acquired by the instruction interpretation unit 32 is “asynchronous section positioner waiting”, which is not a movement-related instruction, but an instruction to end the asynchronous section (steps 102 and 103). Therefore, the command interpretation unit 32 waits for a request for a movement-related command from the main trajectory calculation unit 35 and a movement completion notification from the movement-related command buffer unit 34 (step 106).
  • the movement of the positioner 20 is also advanced.
  • the sub locus calculator 36 moves the movement related instruction buffer.
  • the next command is requested to the unit 34 (step 405).
  • the next command is “movement command positioner position b”, and the movement-related command buffer unit 34 sends the movement command and the speed setting command “movement speed setting positioner 10%” together to the sub-trajectory calculation unit 36.
  • the sub-trajectory calculation unit 36 executes the acquired command, and the positioner 20 moves to the position b at the changed moving speed (Steps 401 to 404).
  • the sub-trajectory calculation unit 36 requests the next command from the movement related command buffer unit 34 (step 405), and the movement related command buffer unit 34 moves the movement command “movement command positioner position c”. And the speed setting command “movement speed setting positioner 100%” are transmitted to the sub-trajectory calculation unit 36 together. Similar to the movement to the position b, the positioner 20 moves to the position c at the changed moving speed (steps 401 to 404). As described above, since the movement-related instructions of the asynchronous target device are executed in the order acquired by the movement-related instruction buffer unit 34, it is guaranteed that the instructions are executed in the order described in the teaching program.
  • the welding robot 10 since the movement of the positioner 20 is slow, the welding robot 10 reaches the position E and waits for the positioner 20 to reach the position c by the movement command on the seventh line of the teaching program D. Become. After the welding robot 10 reaches the position E, the command interpretation unit 32 receives a command request from the main trajectory calculation unit 35. After the positioner 20 reaches the position c, the sub-trajectory calculation unit 36 requests the next command from the movement-related command buffer unit 34 (step 405), but no command is stored in the movement-related command buffer unit 34. (Step 406). Therefore, the movement related command buffer unit 34 transmits a movement completion notification to the command interpretation unit 32 (step 407).
  • the command interpretation unit 32 When the command interpretation unit 32 receives the movement completion notification from the movement-related command buffer unit 34, the waiting of the welding robot 10 and the positioner 20 is completed, and the asynchronous section of the positioner 20 ends. Since all the instructions of the teaching program A are executed, the processing of the teaching program A shown in FIG. 4 and the teaching programs B to D shown in FIGS. 6A to 6C is completed (step 105).
  • the operation of the welding robot 10 and the synchronization target device and the operation of the asynchronous target device are performed independently by providing the asynchronous interval and separating the movement command of the asynchronous interval for each device.
  • the operator can reduce the cycle time by reducing the correction work of the teaching program without newly creating a teaching program in which the operation of each device is mixed in consideration of the relationship of the operation of each device. Shortening can be realized.
  • instructions of the teaching program including movement-related instructions other than movement instructions such as a speed setting instruction are executed in the order described in the teaching program. It is guaranteed.
  • FIG. 8 is a diagram illustrating an example of a main teaching program when asynchronous sections overlap.
  • a slider is controlled as a peripheral device.
  • the teaching program E is called and executed by executing the instruction “teaching program call E” on the first line.
  • the asynchronous section of the slider is started by executing the command “Asynchronous section Slider start” on the second line.
  • the teach program F is called and executed.
  • the welding robot 10 and the positioner 20 that is the synchronization target device are synchronously controlled, but the slider that is the asynchronous target device operates without synchronous control.
  • the asynchronous section of the positioner 20 is started by executing the instruction “Asynchronous section Positioner start” on the fourth line.
  • the operation of the slider is controlled without being synchronized with the operation of the welding robot 10 and the positioner 20.
  • the operation is controlled without being synchronized with the operation of the welding robot 10 and the slider.
  • the welding robot 10, slider, and positioner 20 will wait by executing the command “synchronous section slider waiting” on the seventh line and the command “waiting asynchronous section positioner” on the eighth line.
  • the movements of the three devices of the welding robot 10, the slider, and the positioner 20 are all completed, the asynchronous section of the slider and the positioner 20 ends.
  • each asynchronous target device operates without being controlled synchronously, and at the end of the asynchronous section, the welding robot 10 and the asynchronous target device wait.
  • the movement-related instruction buffer unit 34 accumulates movement-related instructions acquired from the movement-related instruction separation unit 33 for each asynchronous target device.
  • an error may be generated when a movement command is directly described and executed in an asynchronous section of the main teaching program.
  • the range that the operator can designate as the asynchronous section is limited. Therefore, for example, the designation error of the asynchronous section by the operator is reduced such that the movement command described for the synchronous control is handled as a movement instruction in the asynchronous section due to omission of the description of the end of the asynchronous section.
  • the peripheral device can be prevented from performing an operation not intended by the operator.
  • it may be configured such that an error occurs when a command related to the welding operation of the welding robot 10 is described and executed in the asynchronous section.
  • the operations of the welding robot 10 and the peripheral devices are synchronously controlled, so that the asynchronous target device does not operate independently. For this reason, when the instruction related to the welding work is executed in the asynchronous section, an error is generated, so that the peripheral device can be prevented from performing an operation not intended by the operator during the welding work.
  • an error may be generated when the start instruction and end instruction of the asynchronous section are executed by different teaching programs.
  • the asynchronous section does not end at the timing intended by the operator, and the movement command for synchronous control is executed as an asynchronous section instruction. It can be considered. Therefore, by describing the start instruction and the end instruction of the asynchronous section in the same teaching program, it is possible to prevent each device from performing an operation not intended by the operator.

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Plasma & Fusion (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

 作業にかかる合計時間の短縮を、プログラムの修正作業を軽減して実現する。制御装置(30)は、教示プログラムを格納する教示プログラム記憶部(31)と、移動関連の命令を移動関連命令分離部(33)に送り、移動関連ではない命令を実行する命令解釈部(32)と、同期区間の命令か非同期区間の命令かを判定し、判定した結果に応じて移動関連命令を装置ごとに分離する移動関連命令分離部(33)と、装置の移動状態に基づいて移動関連命令をサブ軌跡計算部(36)に送るか内部に蓄積するかを選択する移動関連命令バッファ部(34)と、移動関連命令に基づいて同期制御する装置について移動に関する情報を計算するメイン軌跡計算部(35)と、移動関連命令に基づいて同期制御対象ではない装置について移動に関する情報を計算するサブ軌跡計算部(36)と、各装置の動作を実行するモータ駆動部(37)とを備える。

Description

産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法
 本発明は、産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法に関する。
 溶接を行う溶接ロボット等の産業用ロボットやその周辺装置は、教示データを与えることにより、その教示データで設定される作業を実行するように動作する。教示データは、例えば、ロボットや周辺装置に実行させる動作を記述したプログラムの集合で構成される。
 例えば、特許文献1には、2軸以上で構成される複数の制御対象を制御する作業機械の制御装置において、各制御対象の各軸を駆動するモータなどのアクチュエータを制御する際にアクチュエータと制御対象とを関係付けることで、制御対象への動作指令を所定のアクチュエータに分配して出力することが記載されている。作業プログラムには選択された制御対象のみの教示位置が登録されており、相互に独立して作業プログラムが実行される。
 また、特許文献2には、複数の制御対象を移動させるロボット制御装置において、1つの作業プログラムで制御対象であるマニピュレータ及びポジショナが非同期制御される区間である非同期制御区間を設定し、各制御対象が同時に同期して制御されるのではなく、移動目標に各々到達するように制御されることが記載されている。
特開2005-346740号公報 特開2009-26171号公報
 産業用ロボットやその周辺装置に実行させる動作を記述したプログラムでは、各装置の動作が同期するように制御される場合がある。このような場合に作業にかかる合計時間を短縮するためには、産業用ロボットや周辺装置の動作の関係を考慮してプログラムを作成することになるが、このようなプログラムの作成にかかる時間をも短縮することが望まれる。また、各装置が同期制御されない区間を設定するとプログラムの命令が記述された順番に実行されない場合がある。
 本発明の目的は、作業にかかる合計時間の短縮を、プログラムの修正作業を軽減して実現することにある。
 かかる目的のもと、本発明は、ロボットおよび周辺装置に実行させる動作が記述された教示プログラムを記憶する記憶部と、前記記憶部により記憶された前記教示プログラムにおいて、前記周辺装置の動作が前記ロボットの動作と同期しない非同期区間と当該非同期区間ではない同期区間とを識別し、当該教示プログラムの命令のうち、当該ロボットおよび当該周辺装置の少なくともいずれか一方の移動に関する命令である移動関連命令について、当該非同期区間の命令か当該同期区間の命令かを判定する判定部と、前記判定部により前記非同期区間の命令と判定された非同期命令について、前記ロボットおよび前記周辺装置の装置ごとの命令に分離する分離部と、前記判定部により前記同期区間の命令と判定された同期命令に基づいて、前記ロボットおよび前記周辺装置の動作を同期させて制御し、また、前記分離部により分離された非同期命令のうちの当該ロボットに関する命令に基づいて、当該ロボットの動作を制御する第1制御部と、前記分離部により分離された非同期命令のうちの前記周辺装置に関する命令に基づいて、前記ロボットの動作と同期させずに当該周辺装置の動作を制御する第2制御部とを備えた制御システムである。
 また、この制御システムは、分離部により分離された非同期命令のうちの周辺装置に関する命令について、第2制御部により周辺装置の動作が制御されている間に取得した命令を取得した順番に格納する格納部をさらに備え、第2制御部は、格納手段が格納した命令を順番で実行することを特徴とする。
 さらに、この制御システムは、前記周辺装置に加えて1または複数の他の装置からなる周辺装置群が存在し、当該周辺装置群の動作が前記ロボットの動作と同期して制御され、当該周辺装置の動作が当該ロボットの動作と同期せずに制御される前記非同期区間が設けられている場合に、当該非同期区間において、前記第1制御部は、前記分離部により分離された非同期命令のうちの前記ロボットに関する命令および前記周辺装置群に関する命令に基づいて、当該ロボットおよび当該周辺装置群の動作を同期させて制御し、前記第2制御部は、前記分離部により分離された非同期命令のうちの前記周辺装置に関する命令に基づいて、前記ロボットおよび前記周辺装置群の動作と同期させずに当該周辺装置の動作を制御することを特徴とする。
 また、この制御システムは、前記周辺装置に加えて、前記ロボットの動作と同期せずに制御される非同期区間が設けられている1または複数の周辺装置が存在し、各周辺装置の当該非同期区間の少なくとも一部が重複する場合に、当該非同期区間が重複する区間において、前記第2制御部は、当該重複する区間で当該非同期区間が設けられた各周辺装置の動作を当該ロボットおよび他の周辺装置の動作と同期させずに制御することを特徴とする。
 さらに、この制御システムは、移動関連命令が、教示プログラムのうちのメイン教示プログラムに呼び出されるサブ教示プログラムに記述されることを特徴とする。
 また、他の観点から捉えると、本発明は、予め定められた記憶部に記憶され、ロボットおよび周辺装置に実行させる動作に関する命令群に対し、前記周辺装置の動作が前記ロボットの動作と同期しない非同期区間と当該非同期区間ではない同期区間とを識別し、前記命令群のうち、当該ロボットおよび当該周辺装置の少なくともいずれか一方の移動に関する命令である移動関連命令について、当該非同期区間の命令か当該同期区間の命令かを判定するステップと、前記非同期区間の命令と判定された非同期命令について、前記ロボットおよび前記周辺装置の装置ごとの命令に分離するステップと、前記同期区間の命令と判定された同期命令に基づいて、前記ロボットおよび前記周辺装置の動作を同期させて制御し、また、分離された非同期命令のうちの当該ロボットに関する命令に基づいて、当該ロボットの動作を制御するステップと、分離された非同期命令のうちの前記周辺装置に関する命令に基づいて、前記ロボットの動作と同期させずに当該周辺装置の動作を制御するステップとを含む、ロボットおよび周辺装置の制御方法である。
 本発明によれば、作業にかかる合計時間の短縮を、プログラムの修正作業を軽減して実現することができる。
本実施の形態に係る溶接ロボットシステムの概略構成を示す図である。 本実施の形態に係る制御装置のハードウェア構成例を示す図である。 本実施の形態に係る制御装置の機能構成例を示すブロック図である。 本実施の形態に係るメイン教示プログラムの一例を示す図である。 本実施の形態に係る教示プログラム実行処理の流れの一例を示すフローチャートである。 本実施の形態に係る教示プログラム実行処理の流れの一例を示すフローチャートである。 本実施の形態に係る教示プログラム実行処理の流れの一例を示すフローチャートである。 本実施の形態に係る教示プログラム実行処理の流れの一例を示すフローチャートである。 本実施の形態に係るサブ教示プログラムの一例を示す図である。 本実施の形態に係るサブ教示プログラムの一例を示す図である。 本実施の形態に係るサブ教示プログラムの一例を示す図である。 本実施の形態に係る移動関連命令バッファ部が移動関連命令を蓄積する状態の一例を示す図である。 本実施の形態に係る非同期区間が重複する場合のメイン教示プログラムの一例を示す図である。
 以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。まず、本実施の形態の概要について説明する。
 近年、溶接ロボットシステムでは、溶接ロボットとともに制御装置(ロボットコントローラ)で制御される周辺装置が大型化している。周辺装置としては、例えば、溶接対象となるワークの位置を決める装置であるポジショナや、溶接ロボットを移動させる装置であるスライダなどが該当する。このような周辺装置の大型化に伴い、ワーク着脱時などのポジショナによるワークの位置決めや、ポジショナの動作を干渉しない位置へ溶接ロボットを退避させるためのスライダによる動作など、溶接開始前に周辺装置を動作させる時間が長くなっている。そのため、1つのワークを溶接するのに必要な合計時間であるサイクルタイムの増加を招いている。また、溶接ロボットによるワイヤカットやノズル交換など溶接周辺作業もサイクルタイムが増加する要因である。
 ここで、溶接ロボットおよび周辺装置に実行させる動作は教示プログラムに定義されており、教示プログラムは、各装置の移動を指示する移動命令や、移動命令に付随して移動速度等の移動条件を指定する命令、溶接ロボットにワイヤカットを実行させる命令等を含んでいる。また、移動命令には、溶接ロボットや周辺装置の目標位置が含まれており、移動命令の実行により各装置の動作が同期するように制御される場合がある。例えば、1つの移動命令により、各装置が装置ごとに定められた目標位置に向けて同時に動き出し同時に到達するように制御される場合がある。このような場合には、目標位置までの移動時間が最長となる装置に合わせて、他の装置の移動速度が調節される。
 このような状況下でサイクルタイムを短縮するためには、例えば、溶接ロボットの移動と周辺装置の移動とをそれぞれ独立して行うことや、周辺装置の移動中に並行して溶接ロボットにワイヤカットなどの他の動作を実行させること等が考えられる。しかし、各装置にこのような動作をさせるためには、操作者は、各装置の動作の関係を考慮して各装置の動作を混合した教示プログラムを作業ごとに個別に作成する必要がある。例えば、ポジショナのワーク位置決め中に並行して溶接ロボットにワイヤカットを実行させる場合には、ポジショナに対する移動命令のそれぞれに合わせて溶接ロボットの動作も規定してワイヤカットを実行させるプログラムを作業ごとに個別に作成する必要がある。また、溶接ロボットによるワイヤカットをポジショナの位置決めと並行して行う場合と並行して行わない場合とでは、それぞれのプログラムを個別に作成する必要がある。
 そのため、教示プログラムの作成時間が増加することが考えられる。また、作成した教示プログラムの内容の確認がより困難になることや、教示プログラム作成者のスキルによってはサイクルタイムの短縮につながらないことも考えられる。さらに、教示プログラムの命令は記述された順番に実行されることが求められるが、教示プログラムにおいて各装置が非同期制御される区間を設定しただけでは、命令が記述された順番に実行されない場合がある。
 そのため以下にて、サイクルタイムの短縮を、プログラムの修正作業を軽減して実現する手順について説明する。
〔システム構成〕
 図1は、本実施の形態に係る溶接ロボットシステムの概略構成を示す図である。
 図1に示すように、溶接ロボットシステムは、溶接に関する各種の作業を行う溶接ロボット10と、ワークWの位置を決める周辺装置の一例としてのポジショナ20と、溶接ロボットシステムの各装置を制御する制御装置30と、ワイヤをカットするワイヤカッタ40と、溶接作業のための設定や教示プログラムの作成に使用される教示ペンダント50とを備える。また、図1に示す例では記載していないが、本実施の形態に係る溶接ロボットシステムは、例えば、溶接ロボット10を移動させるために溶接ロボット10の下に配置されるスライダ(不図示)等の他の周辺装置を備えることとしても良い。
 溶接ロボット10は、複数の関節を有する腕(アーム)を備え、教示プログラムに基づく溶接に関する各種作業を行う。また、溶接ロボット10の腕の先端には、ワークWに対する溶接作業を行うための溶接トーチ11が設けられる。
 ポジショナ20は、教示プログラムに基づいて、ワークWの位置を調節する。
 制御装置30は、詳細については後述するが、予め教示された教示プログラムを記憶する記憶装置(メモリ)と、教示プログラムを読み込んで溶接ロボット10、ポジショナ20、ワイヤカッタ40の動作を制御する処理装置(CPU)とを備える。教示プログラムは、教示ペンダント50から送信される場合や、教示プログラム作成装置(不図示)により作成され、データ通信により送信される場合がある。また、教示プログラムは、例えばメモリカード等のリムーバブルな記憶媒体を介して制御装置30に渡される場合もある。
 ワイヤカッタ40は、溶接ロボット10に取り付けられたワイヤをカットする。
 教示ペンダント50は、溶接ロボット10による溶接作業を行うために、操作者が溶接経路や溶接作業条件等を設定したり、教示プログラムを作成したりするために使用される。教示ペンダント50は、液晶ディスプレイなどにより構成された表示画面51と、入力ボタン52とを備えている。
〔制御装置のハードウェア構成〕
 図2は、本実施の形態に係る制御装置のハードウェア構成例を示す図である。
 図2に示すように、制御装置30は、演算手段であるCPU(Central Processing Unit)61と主記憶手段であるメモリ62とを備える。また、制御装置30は、外部デバイスとして、磁気ディスク装置(HDD:Hard Disk Drive)63とキーボードやマウス等の入力デバイス64とを備える。さらに、制御装置30は、外部装置とデータの送受信を行うインタフェース65と記憶媒体に対してデータの読み書きを行うためのドライバ66とを備える。なお、図2は、制御装置30をコンピュータシステムにて実現した場合のハードウェア構成を例示するに過ぎず、制御装置30は図示の構成に限定されない。
〔制御装置の機能構成〕
 図3は、本実施の形態に係る制御装置30の機能構成例を示すブロック図である。
 図3に示すように、制御装置30は、教示プログラムを格納する教示プログラム記憶部31と、移動関連の命令を後述する移動関連命令分離部33に送り、移動関連ではない命令を実行する命令解釈部32と、同期区間の命令か非同期区間の命令かを判定し、判定した結果に応じて移動関連命令を装置ごとの命令に分離する移動関連命令分離部33とを備える。また、制御装置30は、装置の移動状態に基づいて移動関連命令を後述するサブ軌跡計算部36に送るか内部に蓄積するかを選択する移動関連命令バッファ部34と、移動関連命令に基づいて同期制御する装置について移動に関する情報を計算するメイン軌跡計算部35と、移動関連命令に基づいて同期制御対象ではない装置について移動に関する情報を計算するサブ軌跡計算部36と、各装置の動作を実行するモータ駆動部37とを備える。
 命令解釈部32、移動関連命令分離部33、移動関連命令バッファ部34、メイン軌跡計算部35、サブ軌跡計算部36、モータ駆動部37は、例えば、図2に示したハードウェア構成におけるCPU61により実現される。より具体的には、コンピュータにて本実施の形態による制御装置30の機能を実現するプログラムがドライバ66やインタフェース65を介して磁気ディスク装置63に格納され、このプログラムをメモリ62に展開し、CPU61が実行することにより、上記の命令解釈部32、移動関連命令分離部33、移動関連命令バッファ部34、メイン軌跡計算部35、サブ軌跡計算部36、モータ駆動部37の各機能が実現される。移動関連命令バッファ部34は、さらに、例えば、図2に示したハードウェア構成におけるメモリ62や磁気ディスク装置63等の記憶部により実現される。また、教示プログラム記憶部31も、メモリ62や磁気ディスク装置63等の記憶部により実現される。
 記憶手段の一例としての教示プログラム記憶部31は、予め教示された教示プログラムを記憶する。そして、命令解釈部32からの要求に応じて、教示プログラムを命令解釈部32に送信する。
 命令解釈部32は、外部からの入力を受け付け、受け付けた入力内容に応じた教示プログラムを教示プログラム記憶部31から取得する。外部からの入力は、例えば、教示ペンダント50(図1参照)から図2に示したインタフェース65を介して行われる場合や、操作者が図2に示した入力デバイス64を操作して行われる場合等がある。そして、命令解釈部32は、取得した教示プログラムの命令について、移動関連命令か移動関連ではない命令かを判定する。
 取得した命令が移動関連命令の場合、命令解釈部32はその移動関連命令を移動関連命令分離部33に送信する。また、取得した命令が移動関連ではない命令の場合、命令解釈部32はその移動関連ではない命令を実行する。ここで、移動関連命令には、上述したように、各装置の移動を指示する移動命令や移動命令に付随して装置の移動速度等の移動条件を指定する命令等が含まれる。また、移動関連ではない命令には、溶接ロボット10にワイヤカットやノズル交換を実行させるためのIO入出力命令等が含まれる。
 また、命令解釈部32は、後述する非同期対象装置の非同期区間を終了する命令を実行する場合、移動関連命令の要求をメイン軌跡計算部35から待ち受けるとともに、非同期対象装置の移動が完了した旨の通知を移動関連命令バッファ部34から待ち受ける。そして、命令解釈部32が命令要求および移動完了通知の両方を受信すると、非同期対象装置の非同期区間が終了し、命令解釈部32は次の命令の処理を行う。
 判定手段および分離手段の一例としての移動関連命令分離部33は、教示プログラムにおいて非同期区間と同期区間とを識別し、命令解釈部32から取得した移動関連命令が非同期区間の命令か同期区間の命令かを判定する。ここで、同期区間とは、溶接ロボット10の動作と、溶接ロボット10の周辺装置であるポジショナ20等の装置のうち同期制御対象とされた装置(以下、同期制御対象とされた装置を同期対象装置と称する)の動作とが同期制御される区間である。同期制御とは、複数の装置について、目標位置までの移動時間が最長となる装置に合わせてその他の装置の移動速度を決定することにより、複数の装置が現在位置を同時に出発して各装置の目標位置に同時に到達するように制御されることをいう。
 また、非同期区間とは、周辺装置であるポジショナ20等の装置のうち同期制御対象ではない装置として設定された装置(以下、同期制御対象ではない装置として設定された装置を非同期対象装置と称する)について、溶接ロボット10および同期対象装置の動作と非同期対象装置の動作とが同期制御されない区間である。非同期区間において、非同期対象装置は他装置の動作とは独立して制御され、教示プログラムで指定された移動速度により目標位置に到達するように制御される。
 また、移動関連命令について、移動関連命令分離部33が同期区間の移動関連命令と判定した場合、移動関連命令分離部33は移動関連命令をメイン軌跡計算部35に送る。一方、移動関連命令分離部33が非同期区間の移動関連命令と判定した場合、移動関連命令分離部33は移動関連命令を装置ごとの命令に分離し、溶接ロボット10および同期対象装置に関する移動関連命令をメイン軌跡計算部35に送り、非同期対象装置に関する移動関連命令を移動関連命令バッファ部34に送る。
 格納手段の一例としての移動関連命令バッファ部34は、非同期対象装置の移動状態に基づいて、移動関連命令分離部33から取得した移動関連命令をサブ軌跡計算部36に送るか、または、取得した移動関連命令を蓄積するかを選択する。ここで、移動関連命令バッファ部34は、取得した移動関連命令に対応する非同期対象装置について、サブ軌跡計算部36から移動状態を取得する。取得した非同期対象装置の移動状態が「移動中」である場合、移動関連命令バッファ部34は、その非同期対象装置の移動関連命令を内部に蓄積する。移動関連命令バッファ部34は移動関連命令を蓄積する場合、移動関連命令分離部33から移動関連命令を取得した順番に蓄積していく。一方、取得した非同期対象装置の移動状態が「移動中」ではない場合、移動関連命令バッファ部34は、移動関連命令をサブ軌跡計算部36に送信する。
 また、移動関連命令バッファ部34は、サブ軌跡計算部36から移動関連命令の要求を受信した場合に、蓄積している非同期対象装置の移動関連命令を、蓄積した順番でサブ軌跡計算部36に送信する。ここで、非同期対象装置の移動関連命令が蓄積されていなければ、移動関連命令バッファ部34は、その非同期対象装置の移動が完了した旨の移動完了通知を命令解釈部32に送信する。
 第1制御手段の一例としてのメイン軌跡計算部35は、移動関連命令分離部33に同期区間の命令と判定された移動関連命令、または、移動関連命令分離部33により分離された非同期区間の移動関連命令のうち溶接ロボット10および同期対象装置に関する移動関連命令に基づいて、溶接ロボット10および同期対象装置の移動に関する情報(以下、移動に関する情報を移動情報と称する)を計算する。移動情報は、各装置の指定された目標位置までの移動時間や移動速度等の情報であり、メイン軌跡計算部35は、計算した各装置の移動情報をモータ駆動部37に送る。また、溶接ロボット10および同期対象装置が目標位置に到達した場合、メイン軌跡計算部35は、命令解釈部32に次の移動関連命令を要求する。
 第2制御手段の一例としてのサブ軌跡計算部36は、移動関連命令分離部33により分離された非同期区間の移動関連命令のうち、非同期対象装置に関する移動関連命令に基づいて、非同期対象装置の移動情報を計算する。そして、サブ軌跡計算部36は、計算した各装置の移動情報をモータ駆動部37に送る。また、サブ軌跡計算部36は、モータ駆動部37に移動情報を送信した非同期装置について、その装置の移動状態を「移動中」とする。非同期装置が目標位置に到達すると、サブ軌跡計算部36は、その装置の移動状態を「移動中」から解除し、移動関連命令バッファ部34に次の移動関連命令を要求する。
 第1制御手段および第2制御手段の一例としてのモータ駆動部37は、メイン軌跡計算部35およびサブ軌跡計算部36から取得した各装置の移動情報に基づいて、例えば、図2に示したインタフェース65を介して溶接ロボット10および周辺装置の動作を制御し、各装置を各装置それぞれの目標位置まで移動させる。
〔教示プログラムでの非同期区間の説明〕
 図4は、本実施の形態に係るメイン教示プログラムの一例を示す図である。
 図4に示す教示プログラム(以下、教示プログラムAと称する)は、サブ教示プログラムを呼び出すメイン教示プログラムの一例である。図4に示す例では、同期対象装置または非同期対象装置として、ポジショナ20の動作が制御されるものとする。教示プログラムAでは、1行目の命令でサブ教示プログラムである教示プログラムBが呼び出されて溶接ロボット10の退避が行われる。教示プログラムBの呼び出しについては非同期区間外であり、溶接ロボット10の退避が完了すると、次の命令が実行される。
 次に、2行目の命令でポジショナ20の非同期区間が開始され、ポジショナ20が非同期対象装置となる。そのため、3行目の命令で呼び出される教示プログラムC、4行目の命令で呼び出される教示プログラムDでは、移動関連命令が溶接ロボット10の移動関連命令とポジショナ20の移動関連命令とに分離されて実行される。そして、溶接ロボット10の動作とポジショナ20の動作とが同期制御されず、溶接ロボット10およびポジショナ20はそれぞれの移動速度で目標位置に移動する。
 そして、教示プログラムAの5行目の命令で、溶接ロボット10とポジショナ20との待ち合わせが行われる。例えば、溶接ロボット10とポジショナ20とで先に溶接ロボット10が目標位置に到達した場合、溶接ロボット10は、ポジショナ20がポジショナ20の目標位置に到達するのを待つこととなる。ポジショナ20が目標位置に到達すると、ポジショナ20の非同期区間が終了し、次の命令からは、溶接ロボット10とポジショナ20との同期制御が行われる。
ここで、図4に示す例では、溶接ロボット10およびポジショナ20の動作が制御される場合を説明したが、さらに1または複数の他の装置からなる周辺装置群を制御することとしても良い。ここで、非同期区間としてポジショナ20の非同期区間が設定されている場合、非同期区間の移動関連命令は溶接ロボット10、ポジショナ20、周辺装置群の装置ごとの命令に分離される。そして、分離された溶接ロボット10および周辺装置群の移動関連命令に基づいて、溶接ロボット10および周辺装置群の各装置の動作が同期して制御される。また、分離されたポジショナ20の移動関連命令に基づいて、ポジショナ20の動作が溶接ロボット10および周辺装置群の動作と同期せずに制御される。
 また、図4に示す教示プログラムにおいて、非同期区間内の命令を「教示プログラムC呼び出し」や「教示プログラムD呼び出し」と記載したが、例えば、「非同期教示プログラムC呼び出し」や「非同期教示プログラムD呼び出し」のように、非同期区間内の命令であることを明示する記載にすることとしても良い。そして、例えば、非同期区間内の命令で先頭に「非同期」と記載していない場合はその命令の実行時にエラーが発生するようにしても良い。このような構成にすることで、操作者が誤って非同期区間内に同期制御の命令を記載しようとして教示プログラムを作成することを抑制することができる。
〔教示プログラム実行処理手順〕
 図5Aから図5Dは、本実施の形態に係る教示プログラム実行処理の流れの一例を示すフローチャートである。
 図5Aは、命令解釈部32および移動関連命令分離部33の処理の流れの一例を示すフローチャートである。
 まず、命令解釈部32は外部からの入力を受け付け、受け付けた入力内容に応じた教示プログラムの命令を教示プログラム記憶部31から取得する(ステップ101)。ここで、命令解釈部32は、移動命令を取得する場合には、合わせてその移動命令に続く速度設定命令等の他の移動関連命令も取得する。また、命令解釈部32は、ワイヤカッタ40等を駆動させる移動関連ではない命令を取得する場合には、合わせてその命令に続く移動関連ではない命令も取得する。
 次に、命令解釈部32は、取得した教示プログラムの命令について、移動関連命令か否かを判断する(ステップ102)。移動関連命令ではない場合(ステップ102でNo)、命令解釈部32は取得した命令を教示プログラムに記述された順に順次実行する。ここで、取得した命令に非同期区間終了の命令が含まれなければ(ステップ103でNo)、命令解釈部32は取得した命令を全て実行する(ステップ104)。そして、命令解釈部32は処理対象の教示プログラムの命令を全て実行したか否かを判断する(ステップ105)。教示プログラムの命令が全て実行されていれば(ステップ105でYes)、教示プログラム実行処理は終了する。一方、教示プログラムで実行されていない命令が存在すれば(ステップ105でNo)、ステップ101に移行する。
 一方、取得した命令に非同期区間終了の命令が含まれる場合(ステップ103でYes)、命令解釈部32は、取得した命令を教示プログラムに記述された順に順次実行し、非同期区間終了の命令を実行した後、メイン軌跡計算部35から送信される移動関連命令の要求と、移動関連命令バッファ部34から送信される非同期対象装置の移動完了通知とを待ち受ける(ステップ106)。命令解釈部32が移動関連命令の要求と移動完了通知との両方を受信すると、非同期対象装置の非同期区間は終了する。ここで、命令解釈部32は、移動関連命令分離部33に対して、非同期区間が終了したため以降の移動関連命令については装置ごとに分離しなくても良いことを通知しても良い。また、非同期区間終了後、ステップ101で取得した命令で実行されていない命令があれば、命令解釈部32はまだ実行されていない命令を実行した後、ステップ105に移行する。
 また、ステップ102で肯定の判断(Yes)がされた場合、即ち、教示プログラムの命令が移動関連命令である場合、命令解釈部32は移動関連命令を移動関連命令分離部33に送信する。ここで、命令解釈部32は、移動命令と合わせて取得した速度設定命令等の他の移動関連命令も移動関連命令分離部33に送信する。そして、移動関連命令分離部33は、取得した移動関連命令について同期区間の命令であるか否かを判断する(ステップ107)。
 移動関連命令分離部33が取得した移動関連命令が同期区間の命令ではない場合(ステップ107でNo)、即ち、非同期区間の命令であれば、移動関連命令分離部33は移動関連命令を装置ごとの命令に分離する(ステップ108)。そして、移動関連命令分離部33は分離した命令のうち、溶接ロボット10および同期対象装置に関する命令をメイン軌跡計算部35に送信し、非同期対象装置に関する命令を移動関連命令バッファ部34に送信する(ステップ109)。また、ステップ107で肯定の判断(Yes)がされた場合、即ち、移動関連命令分離部33が取得した移動関連命令が同期区間の命令である場合、ステップ109に移行し、移動関連命令分離部33は移動関連命令をメイン軌跡計算部35に送信する。
 次に、命令解釈部32は、メイン軌跡計算部35から命令要求を待ち受ける(ステップ110)。溶接ロボット10および同期対象装置の移動が完了すると、命令解釈部32はメイン軌跡計算部35から命令要求を受信し、ステップ105に移行する。
 以上のように、教示プログラムの命令に対して、命令解釈部32および移動関連命令分離部33の処理が行われる。
 図5Bは、メイン軌跡計算部35およびモータ駆動部37が溶接ロボット10および同期対象装置を移動させる処理の流れの一例を示すフローチャートである。
 メイン軌跡計算部35は、図5Aのステップ109で移動関連命令分離部33から移動関連命令を取得する(ステップ201)。次に、メイン軌跡計算部35は、取得した移動関連命令に基づいて、溶接ロボット10および同期対象装置について移動情報を計算する(ステップ202)。そして、メイン軌跡計算部35は、計算した移動情報をモータ駆動部37に送信する。
 次に、モータ駆動部37は、メイン軌跡計算部35から取得した移動情報に基づいて、溶接ロボット10および同期対象装置を、各装置それぞれの目標位置まで移動させる(ステップ203)。ここで用いられる移動情報は、同期制御の命令をもとに計算された移動情報であるため、各装置はそれぞれの目標位置に同時に到達するように制御される。各装置の移動が完了すると(ステップ204)、メイン軌跡計算部35は、命令解釈部32に次に実行する移動関連命令を要求する(ステップ205)。この移動関連命令の要求は、ステップ106または110で命令解釈部32が待ち受ける要求である。
 以上のように、同期制御における移動関連命令に対して、メイン軌跡計算部35およびモータ駆動部37の処理が行われる。
 図5Cは、移動関連命令バッファ部34が移動関連命令を蓄積する処理の流れの一例を示すフローチャートである。
 移動関連命令バッファ部34は、図5Aのステップ109で移動関連命令分離部33から移動関連命令を取得する(ステップ301)。次に、移動関連命令バッファ部34は、取得した移動関連命令に対応する非同期対象装置について、サブ軌跡計算部36から移動状態を取得し、非同期対象装置が「移動中」であるか否かを判断する(ステップ302)。非同期対象装置の移動状態が「移動中」である場合(ステップ302でYes)、移動関連命令バッファ部34は移動関連命令を取得した順番に内部に蓄積する(ステップ303)。一方、非同期対象装置の移動状態が「移動中」ではない場合(ステップ302でNo)、移動関連命令バッファ部34は移動関連命令をサブ軌跡計算部36に送信する(ステップ304)。
 以上のように、移動関連命令バッファ部34により移動関連命令を蓄積する処理が行われる。
 図5Dは、移動関連命令バッファ部34、サブ軌跡計算部36、モータ駆動部37が非同期対象装置を移動させる処理の流れの一例を示すフローチャートである。
 サブ軌跡計算部36は、図5Cのステップ304で移動関連命令バッファ部34から移動関連命令を取得する(ステップ401)。次に、サブ軌跡計算部36は、取得した移動関連命令に基づいて、非同期対象装置について移動情報を計算する(ステップ402)。そして、サブ軌跡計算部36は、計算した移動情報をモータ駆動部37に送信し、非同期対象装置の移動状態を「移動中」とする。
次に、モータ駆動部37はサブ軌跡計算部36から取得した移動情報に基づいて、非同期対象装置を目標位置まで移動させる(ステップ403)。非同期対象装置の移動が完了すると(ステップ404)、サブ軌跡計算部36は、非同期対象装置の移動状態を「移動中」から解除し、移動関連命令バッファ部34に次に実行する移動関連命令を要求する(ステップ405)。
 次に、移動関連命令バッファ部34は、非同期対象装置の移動関連命令を蓄積しているか否かを判断する(ステップ406)。移動関連命令が蓄積されている場合(ステップ406でYes)、ステップ401に移行し、移動関連命令バッファ部34は、蓄積している移動関連命令を蓄積した順番で、即ち最初に蓄積された移動関連命令から順番にサブ軌跡計算部36に送信する。ここで、移動関連命令バッファ部34は、移動命令に付随する速度設定命令等の他の移動関連命令があれば、移動命令と合わせて付随する移動関連命令もサブ軌跡計算部36に送信する。このように、移動命令および速度設定命令等、移動関連命令は装置ごとに分離され、分離された非同期対象装置の移動関連命令は蓄積されて順番に実行されるため、各装置では教示プログラムに記述された順番に命令が実行されることが保証される。一方、移動関連命令が蓄積されていない場合(ステップ406でNo)、移動関連命令バッファ部34は非同期対象装置の移動完了通知を命令解釈部32に送信する(ステップ407)。
 以上のように、非同期対象装置の移動関連命令に対して、移動関連命令バッファ部34、サブ軌跡計算部36、モータ駆動部37の処理が行われる。
〔教示プログラムの実行処理の一例〕
 図6Aから図6Cは、本実施の形態に係るサブ教示プログラムの一例を示す図である。
 図6Aから図6Cに示す各教示プログラムは、図4に示す教示プログラムAから呼び出されるサブ教示プログラムの一例である。図6Aから図6Cの各教示プログラムをそれぞれ、教示プログラムB、教示プログラムC、教示プログラムDとする。教示プログラムBは、ポジショナ20が回転してもポジショナ20の動作を干渉しない位置へ溶接ロボット10を退避させるプログラムである。教示プログラムCは、ポジショナ20がワーク位置を決めるプログラムである。また、教示プログラムDは、溶接ロボット10がワイヤカッタ40によりワイヤカットを行うプログラムである。
 以下、図4に示す教示プログラムAおよび図6Aから図6Cに示す教示プログラムB~Dを実行した場合の処理について説明する。図4に示す例と同様に、図6Aすら図6Cに示す例では、同期対象装置または非同期対象装置として、ポジショナ20の動作が制御されるものとする。また、以下に示すステップは、図5Aから図5Dの各ステップに対応するものとする。
 まず、命令解釈部32は外部からの入力を受け付け、受け付けた入力内容に応じた教示プログラムAの命令を教示プログラム記憶部31から取得する(ステップ101)。ここで取得される命令は「教示プログラムB呼び出し」であるため、命令解釈部32はさらに教示プログラムBの命令「移動命令 ロボット位置A」を取得する。そして、「移動命令 ロボット位置A」は移動命令であるため、命令解釈部32は「移動命令 ロボット位置A」を移動関連命令分離部33に送信する(ステップ102)。
 次に、「移動命令 ロボット位置A」は同期区間の命令であるため(ステップ107)、移動関連命令分離部33はこの移動命令をメイン軌跡計算部35に送信する(ステップ109)。そして、メイン軌跡計算部35により移動情報の計算が行われる(ステップ201、202)。「移動命令 ロボット位置A」は溶接ロボット10を位置Aに移動させる移動命令であるが、周辺装置であるポジショナ20の移動内容も含まれている。そのため、メイン軌跡計算部35は溶接ロボット10およびポジショナ20の移動情報を計算し、計算した移動情報をモータ駆動部37に送信する。そして、モータ駆動部37は溶接ロボット10およびポジショナ20を同期制御し、溶接ロボット10を位置Aに移動させるとともに、ポジショナ20もポジショナ20の目標位置へ移動させる(ステップ203)。
 溶接ロボット10およびポジショナ20の移動が完了すると(ステップ204)、メイン軌跡計算部35は次の移動関連命令を要求する(ステップ205)。命令解釈部32はメイン軌跡計算部35からの命令要求を受信すると(ステップ110)、次の命令「移動命令 ロボット位置B」を取得する(ステップ105、101)。そして、位置Aへの移動と同様に、溶接ロボット10およびポジショナ20は同期制御され、溶接ロボット10は位置Bに移動する。溶接ロボット10およびポジショナ20の移動が完了すると、教示プログラムBの実行が終了する。
 次に、命令解釈部32は、教示プログラムAの2行目の命令「非同期区間 ポジショナ開始」を取得する(ステップ101)。「非同期区間 ポジショナ開始」はポジショナの非同期区間が開始される命令であり、移動関連命令ではなく、非同期区間終了の命令でもないため、命令解釈部32が「非同期区間 ポジショナ開始」を実行してポジショナの非同期区間が開始される(ステップ102~104)。そのため、教示プログラムAの3行目の命令「教示プログラムC呼び出し」からは、移動関連命令分離部33は移動関連命令を溶接ロボット10の移動関連命令とポジショナ20の移動関連命令とに分離して、溶接ロボット10の移動関連命令をメイン軌跡計算部35に送信し、ポジショナ20の移動関連命令を移動関連命令バッファ部34に送信することとなる。
 命令解釈部32が次に取得する命令は、教示プログラムAの「教示プログラムC呼び出し」であるため、命令解釈部32はさらに教示プログラムCの「移動命令 ポジショナ位置a」を取得する(ステップ101)。「移動命令 ポジショナ位置a」は移動命令であり、非同期区間の命令であるため、移動関連命令分離部33は溶接ロボット10の移動命令とポジショナ20の移動命令とに分離する(ステップ108)。そして、移動関連命令分離部33は分離した命令のうち、溶接ロボット10に関する命令をメイン軌跡計算部35に送信し、ポジショナ20に関する命令を移動関連命令バッファ部34に送信する(ステップ109)。
 移動関連命令バッファ部34はポジショナ20の移動命令を取得し、ポジショナ20の移動状態が「移動中」ではないため、移動命令をサブ軌跡計算部36に送信する(ステップ301、302、304)。そして、サブ軌跡計算部36は移動命令を取得し、ポジショナ20の位置aへの移動を開始する(ステップ401~403)。ここで、図4の例において、教示プログラムCの3つの移動命令(1行目、2行目、4行目)における溶接ロボット10の目標位置を固定することとする。そのため、分離された溶接ロボット10の移動命令に基づく移動は即座に完了し、メイン軌跡計算部35は次の移動関連命令を要求する(ステップ201~205)。
 次に、命令解釈部32は次の命令「移動命令 ポジショナ位置b」と、ポジショナ20の移動速度を設定する命令である「移動速度設定 ポジショナ10%」とを取得する。これらの命令も非同期区間の移動関連命令であるため、移動関連命令分離部33は溶接ロボット10の移動関連命令とポジショナ20の移動関連命令とに分離する(ステップ108)。ただし、溶接ロボット10の目標位置は固定されているため即座に移動が完了し、メイン軌跡計算部35は次の移動関連命令を要求する(ステップ201~205)。
 一方、ポジショナ20が位置aへ移動中であれば、ポジショナ20の移動状態は「移動中」であるため、「移動命令 ポジショナ位置b」におけるポジショナ20分の移動命令、およびポジショナ20の速度設定命令である「移動速度設定 ポジショナ10%」が、移動関連命令バッファ部34に蓄積される(ステップ301~303)。このようにして、移動関連命令バッファ部34は、ポジショナ20が位置aに移動する間に取得するポジショナ20の移動関連命令を蓄積することとなる。
 命令解釈部32は、メイン軌跡計算部35からの命令要求を受信すると、ポジショナ20の移動と並行して、次の命令を取得する(ステップ110、105、101)。命令解釈部32が次に取得する命令は教示プログラムCの「移動命令 ポジショナ位置c」「移動速度設定 ポジショナ100%」であり、移動関連命令分離部33は移動関連命令を装置ごとの命令に分離する。そして、ポジショナ20が位置aへ移動中であれば、ポジショナ20の移動関連命令が移動関連命令バッファ部34に蓄積される。一方、溶接ロボット10の目標位置は固定されているため即座に移動が完了し、メイン軌跡計算部35は次の移動命令を要求する(ステップ201~205)。
 図7は、移動関連命令バッファ部34が移動関連命令を蓄積する状態の一例を示す図である。ポジショナ20が位置aに移動する間に、教示プログラムCのポジショナ20の移動関連命令(2~5行目の命令)が移動関連命令バッファ部34に送信され、蓄積された状態を表している。まず、教示プログラムCの2行目の移動命令が蓄積され、その後、順に3行目の速度設定命令、4行目の移動命令、5行目の速度設定命令が蓄積される。また、移動命令については、溶接ロボット10の移動命令とポジショナ20の移動命令とに分離されるため、移動関連命令バッファ部34に蓄積されるのはポジショナ20分の移動命令のみである。
 次に、命令解釈部32は、メイン軌跡計算部35からの命令要求を受信すると、教示プログラムAの次の命令を取得する(ステップ110、105、101)。命令解釈部32が次に取得する命令は「教示プログラムD呼び出し」であり、さらに教示プログラムDの「位置決め不要 ポジショナ」を取得する。「位置決め不要 ポジショナ」は、教示プログラムDでポジショナ20を移動させず、移動命令にポジショナ分を含めないように設定する命令である。「位置決め不要 ポジショナ」は移動関連命令ではなく、非同期区間終了の命令でもないため、命令解釈部が実行し(ステップ102~104)、次に命令解釈部32は「移動命令 ロボット位置C」を取得する。
 次の「移動命令 ロボット位置C」は移動命令であり、非同期区間の命令であるため、移動関連命令分離部33に送信される(ステップ107)。ただし、教示プログラムDにおいてポジショナ20は移動しないため、ポジショナ20の移動命令は移動関連命令バッファ部34に送信されない。そして、溶接ロボット10の移動命令がメイン軌跡計算部35に送信され(ステップ109)、溶接ロボット10が位置Cに移動し、移動完了後、メイン軌跡計算部35は次の移動関連命令を要求する(ステップ201~205)。次の教示プログラムDの命令は「移動命令 ロボット位置D」であるため、位置Cへの移動と同様に、溶接ロボット10は位置Dに移動する。
 次に、教示プログラムDの4~6行目は移動関連の命令ではなく、非同期区間終了の命令でもないため、命令解釈部32が順に実行し、ワイヤカットが行われる(ステップ102~104)。4行目の「出力命令 ワイヤカット信号ON」の実行により、溶接ロボット10とワイヤカッタ40とによりワイヤカットが開始され、5行目の「時間待ち命令1秒」の実行により、1秒間ワイヤカットが実行される。また、6行目の「入力待ち命令ワイヤカット完了ON」の実行により、命令解釈部32はワイヤカッタ40からワイヤカット完了の信号を受信するのを待つ。そして、ワイヤカットが完了すると、命令解釈部32は次の命令を取得する(ステップ105、101)。
 次に、命令解釈部32は、教示プログラムDの次の命令「移動命令 ロボット位置E」を取得する。そして、溶接ロボット10が位置Eへ移動し、移動完了後、メイン軌跡計算部35は次の移動関連命令を要求する。次に命令解釈部32が取得する教示プログラムAの命令は「非同期区間 ポジショナ待ち合わせ」であり、移動関連命令ではないが、非同期区間終了の命令である(ステップ102、103)。そのため、命令解釈部32は、メイン軌跡計算部35からの移動関連命令の要求と移動関連命令バッファ部34からの移動完了通知とを待ち受ける(ステップ106)。
 命令解釈部32やメイン軌跡計算部35により教示プログラムDの処理が進められる間、ポジショナ20の移動も進められており、ポジショナ20が位置aに到達すると、サブ軌跡計算部36は移動関連命令バッファ部34に次の命令を要求する(ステップ405)。次の命令は「移動命令 ポジショナ位置b」であり、移動関連命令バッファ部34は、移動命令と速度設定命令「移動速度設定 ポジショナ10%」とを合わせてサブ軌跡計算部36に送信する。サブ軌跡計算部36は取得した命令を実行して、ポジショナ20は変更された移動速度で位置bへ移動する(ステップ401~404)。ポジショナ20が位置bへ到達すると、サブ軌跡計算部36は移動関連命令バッファ部34に次の命令を要求し(ステップ405)、移動関連命令バッファ部34は、移動命令「移動命令 ポジショナ位置c」と速度設定命令「移動速度設定 ポジショナ100%」とを合わせてサブ軌跡計算部36に送信する。そして、位置bへの移動と同様に、ポジショナ20は変更された移動速度で位置cへ移動する(ステップ401~404)。このように、移動関連命令バッファ部34が取得した順番で非同期対象装置の移動関連命令が実行されるため、教示プログラムに記述された順番に命令が実行されることが保証される。
 図4に示す例では、ポジショナ20の移動が遅いため、教示プログラムDの7行目の移動命令で溶接ロボット10は位置Eへ到達した後、ポジショナ20が位置cに到達するのを待つこととなる。溶接ロボット10が位置Eへ到達後、命令解釈部32はメイン軌跡計算部35から命令要求を受信する。また、ポジショナ20が位置cへ到達後、サブ軌跡計算部36は移動関連命令バッファ部34に次の命令を要求するが(ステップ405)、移動関連命令バッファ部34には命令が蓄積されていない(ステップ406)。そのため、移動関連命令バッファ部34は命令解釈部32に移動完了通知を送信する(ステップ407)。命令解釈部32が移動関連命令バッファ部34から移動完了通知を受信すると、溶接ロボット10とポジショナ20の待ち合わせが完了し、ポジショナ20の非同期区間が終了する。そして、教示プログラムAの命令が全て実行されたため、図4に示す教示プログラムAおよび図6Aから図6Cに示す教示プログラムB~Dの処理が終了する(ステップ105)。
 以上のように、非同期区間を設け、非同期区間の移動命令を装置ごとに分離することで、溶接ロボット10および同期対象装置の動作と非同期対象装置の動作とが独立に実行される。このような構成により、操作者は、各装置の動作の関係を考慮して各装置の動作を混合した教示プログラムの作成を新たに行うことなく、教示プログラムの修正作業を軽減してサイクルタイムの短縮を実現することができる。また、移動関連命令が装置ごとの命令に分離され順次実行されるため、速度設定命令などの移動命令以外の移動関連命令を含む教示プログラムの命令が、教示プログラムに記述された順番に実行されることが保証される。
〔非同期区間の重複〕
 図4から図6Cに示す例では、非同期区間を設定する周辺装置が1台である場合について説明したが、複数の周辺装置について非同期区間を設定することとしても良い。そして、複数の周辺装置の非同期区間が重複することとしても良い。図8は、非同期区間が重複する場合のメイン教示プログラムの一例を示す図である。図8に示す教示プログラムでは、周辺装置としてポジショナ20のほかにスライダが制御される。
 まず、1行目の命令「教示プログラム呼び出しE」の実行により、教示プログラムEが呼び出されて実行される。次に、2行目の命令「非同期区間 スライダ開始」の実行により、スライダの非同期区間が開始される。そして、3行目の命令「教示プログラム呼び出しF」の実行により、教示プログラムFが呼び出されて実行される。教示プログラムFでは、溶接ロボット10と同期対象装置であるポジショナ20は同期制御されるが、非同期対象装置であるスライダは同期制御されずに動作することとなる。次に、4行目の命令「非同期区間 ポジショナ開始」の実行により、ポジショナ20の非同期区間が開始される。そして、5行目の命令「教示プログラム呼び出しG」、6行目の命令「教示プログラム呼び出しH」では、スライダの動作は溶接ロボット10およびポジショナ20の動作と同期せずに制御され、ポジショナ20の動作は溶接ロボット10およびスライダの動作と同期せずに制御されることとなる。
 そして、7行目の命令「非同期区間 スライダ待ち合わせ」および8行目の命令「非同期区間 ポジショナ待ち合わせ」の実行により、溶接ロボット10、スライダ、ポジショナ20が待ち合わせを行うこととなる。溶接ロボット10、スライダ、ポジショナ20の3つの装置の移動が全て完了すると、スライダおよびポジショナ20の非同期区間が終了する。
 以上のように、非同期区間が重複する場合において、各非同期対象装置は同期制御されずに動作し、非同期区間の終了時には溶接ロボット10と非同期対象装置との待ち合わせが行われる。また、非同期区間が重複する場合、移動関連命令バッファ部34は、移動関連命令分離部33から取得する移動関連命令について、非同期対象装置ごとに分けて蓄積していく。
 また、本実施の形態において、メイン教示プログラムの非同期区間内に移動命令を直接記述して実行するとエラーが発生するような構成にしても良い。このように、移動命令をメイン教示プログラムの非同期区間内に直接記述できず、サブ教示プログラムに記述するような構成にすれば、操作者が非同期区間として指定できる範囲が限定される。そのため、例えば、同期制御のために記述された移動命令が、非同期区間の終了の記述漏れにより非同期区間内の移動命令として扱われる等の操作者による非同期区間の指定誤りが削減され、溶接ロボット10や周辺装置が操作者の意図しない動作を行うことを抑制することができる。
 さらに、本実施の形態において、非同期区間に溶接ロボット10の溶接作業に関する命令を記述して実行するとエラーが発生するような構成にしても良い。溶接作業中には、溶接ロボット10および周辺装置の動作は同期制御されるため、非同期対象装置が独立して動作することはない。そのため、非同期区間に溶接作業に関する命令を実行するとエラーが発生するように構成することで、溶接作業実施中に周辺装置が操作者の意図しない動作を行うことを抑制することができる。
 また、本実施の形態において、非同期区間の開始命令および終了命令を異なる教示プログラムで実行するとエラーが発生するような構成にしても良い。例えば、非同期区間が複数の教示プログラムにまたがって記述されるような場合、操作者が意図していたタイミングで非同期区間が終了せず、同期制御のための移動命令が非同期区間の命令として実行されることが考えられる。そのため、非同期区間の開始命令および終了命令を同一の教示プログラム内に記述することで、各装置が操作者の意図しない動作を行うことを抑制することができる。
 10…溶接ロボット、20…ポジショナ、30…制御装置、31…教示プログラム記憶部、32…命令解釈部、33…移動関連命令分離部、34…移動関連命令バッファ部、35…メイン軌跡計算部、36…サブ軌跡計算部、37…モータ駆動部、40…ワイヤカッタ、50…教示ペンダント

Claims (6)

  1.  ロボットおよび周辺装置に実行させる動作が記述された教示プログラムを記憶する記憶部と、
     前記記憶部により記憶された前記教示プログラムにおいて、前記周辺装置の動作が前記ロボットの動作と同期しない非同期区間と当該非同期区間ではない同期区間とを識別し、当該教示プログラムの命令のうち、当該ロボットおよび当該周辺装置の少なくともいずれか一方の移動に関する命令である移動関連命令について、当該非同期区間の命令か当該同期区間の命令かを判定する判定部と、
     前記判定部により前記非同期区間の命令と判定された非同期命令について、前記ロボットおよび前記周辺装置の装置ごとの命令に分離する分離部と、
     前記判定部により前記同期区間の命令と判定された同期命令に基づいて、前記ロボットおよび前記周辺装置の動作を同期させて制御し、また、前記分離部により分離された非同期命令のうちの当該ロボットに関する命令に基づいて、当該ロボットの動作を制御する第1制御部と、
     前記分離部により分離された非同期命令のうちの前記周辺装置に関する命令に基づいて、前記ロボットの動作と同期させずに当該周辺装置の動作を制御する第2制御部と
     を備えた制御システム。
  2.  前記分離部により分離された非同期命令のうちの前記周辺装置に関する命令について、前記第2制御部により当該周辺装置の動作が制御されている間に取得した当該命令を取得した順番に格納する格納部をさらに備え、
     前記第2制御部は、前記格納部が格納した命令を前記順番で実行することを特徴とする請求項1に記載の制御システム。
  3.  前記周辺装置に加えて1または複数の他の装置からなる周辺装置群が存在し、当該周辺装置群の動作が前記ロボットの動作と同期して制御され、当該周辺装置の動作が当該ロボットの動作と同期せずに制御される前記非同期区間が設けられている場合に、当該非同期区間において、
     前記第1制御部は、前記分離部により分離された非同期命令のうちの前記ロボットに関する命令および前記周辺装置群に関する命令に基づいて、当該ロボットおよび当該周辺装置群の動作を同期させて制御し、
     前記第2制御部は、前記分離部により分離された非同期命令のうちの前記周辺装置に関する命令に基づいて、前記ロボットおよび前記周辺装置群の動作と同期させずに当該周辺装置の動作を制御する
    ことを特徴とする請求項1または2に記載の制御システム。
  4.  前記周辺装置に加えて、前記ロボットの動作と同期せずに制御される非同期区間が設けられている1または複数の周辺装置が存在し、各周辺装置の当該非同期区間の少なくとも一部が重複する場合に、当該非同期区間が重複する区間において、前記第2制御部は、当該重複する区間で当該非同期区間が設けられた各周辺装置の動作を当該ロボットおよび他の周辺装置の動作と同期させずに制御することを特徴とする請求項1に記載の制御システム。
  5.  前記移動関連命令は、前記教示プログラムのうちのメイン教示プログラムに呼び出されるサブ教示プログラムに記述されることを特徴とする請求項1に記載の制御システム。
  6.  予め定められた記憶部に記憶され、ロボットおよび周辺装置に実行させる動作に関する命令群に対し、前記周辺装置の動作が前記ロボットの動作と同期しない非同期区間と当該非同期区間ではない同期区間とを識別し、前記命令群のうち、当該ロボットおよび当該周辺装置の少なくともいずれか一方の移動に関する命令である移動関連命令について、当該非同期区間の命令か当該同期区間の命令かを判定するステップと、
     前記非同期区間の命令と判定された非同期命令について、前記ロボットおよび前記周辺装置の装置ごとの命令に分離するステップと、
     前記同期区間の命令と判定された同期命令に基づいて、前記ロボットおよび前記周辺装置の動作を同期させて制御し、また、分離された非同期命令のうちの当該ロボットに関する命令に基づいて、当該ロボットの動作を制御するステップと、
     分離された非同期命令のうちの前記周辺装置に関する命令に基づいて、前記ロボットの動作と同期させずに当該周辺装置の動作を制御するステップと
    を含む、方法。
PCT/JP2014/060964 2013-05-16 2014-04-17 産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法 WO2014185215A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020157032466A KR101805283B1 (ko) 2013-05-16 2014-04-17 산업용 로봇 및 주변 장치의 동작을 제어하는 제어 시스템 및 제어 방법
US14/891,209 US9802313B2 (en) 2013-05-16 2014-04-17 Industrial-use robot and control system and control method for controlling operation of peripheral device
EP14797513.0A EP2998082B1 (en) 2013-05-16 2014-04-17 Industrial-use robot and control system and control method for controlling operation of peripheral device
CN201480028084.8A CN105209225B (zh) 2013-05-16 2014-04-17 控制工业用机器人及外围设备的动作的控制系统及控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013103752A JP5970415B2 (ja) 2013-05-16 2013-05-16 産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法
JP2013-103752 2013-05-16

Publications (1)

Publication Number Publication Date
WO2014185215A1 true WO2014185215A1 (ja) 2014-11-20

Family

ID=51898196

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/060964 WO2014185215A1 (ja) 2013-05-16 2014-04-17 産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法

Country Status (6)

Country Link
US (1) US9802313B2 (ja)
EP (1) EP2998082B1 (ja)
JP (1) JP5970415B2 (ja)
KR (1) KR101805283B1 (ja)
CN (1) CN105209225B (ja)
WO (1) WO2014185215A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI579668B (zh) * 2015-04-22 2017-04-21 汪宏璋 多工同步無等待機器人控制程式系統及其控制方法
TWI585559B (zh) * 2015-04-22 2017-06-01 汪宏璋 多工同步無等待機器人控制程式控制方法
CN109732618A (zh) * 2019-01-23 2019-05-10 国家电网有限公司 一种用于抽水蓄能机组的检查机器人及其控制方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9517556B2 (en) * 2012-06-29 2016-12-13 Mitsubishi Electric Corporation Robot control apparatus and robot control method
US20150129581A1 (en) * 2013-11-12 2015-05-14 Lincoln Global, Inc. System and method for pendant component for a welding system
CN106078753A (zh) * 2016-06-30 2016-11-09 珠海格力智能装备有限公司 一种机器人示教器、及机器人示教器的信息处理方法
JP7124389B2 (ja) * 2018-03-30 2022-08-24 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
JP7339113B2 (ja) * 2019-10-09 2023-09-05 ファナック株式会社 ロボット制御装置及びロボット制御方法
JP7436796B2 (ja) * 2019-12-16 2024-02-22 株式会社デンソーウェーブ ロボットのプログラム作成支援装置
JP2021135881A (ja) * 2020-02-28 2021-09-13 セイコーエプソン株式会社 ロボットの制御方法
CN113910234B (zh) * 2021-10-27 2022-10-14 因格(苏州)智能技术有限公司 双机械手控制方法与存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01281504A (ja) * 1988-05-09 1989-11-13 Hitachi Ltd 多軸位置サーボ装置
JPH0264713A (ja) * 1988-08-31 1990-03-05 Hitachi Ltd 自動作業装置
JP2001138275A (ja) * 1999-11-09 2001-05-22 Denso Corp ロボットの制御装置
JP2002073127A (ja) * 2000-09-04 2002-03-12 Fanuc Ltd ロボット制御装置
JP2005346740A (ja) 2005-09-01 2005-12-15 Yaskawa Electric Corp 作業機械の制御装置、作業機械の同期制御方法および作業機械制御システム
JP2009026171A (ja) 2007-07-23 2009-02-05 Daihen Corp ロボット制御装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4486843A (en) * 1982-03-03 1984-12-04 Nordson Corporation Transitional command position modification for a controller
US4685067A (en) * 1986-02-20 1987-08-04 Cincinnati Milacron Inc. Control system for program controlled manipulator having multiple triggered functions between programmed points
DE69216167T2 (de) * 1991-07-06 1997-07-10 Daihen Corp Gerät zur Steuerung eines Industrieroboters zur Durchführung koordinierter Arbeitsvorgänge unter Verwendung eines Playbackteachingverfahrens und dies-bezügliches Verfahren
JPWO2004048049A1 (ja) * 2002-11-27 2006-03-23 株式会社安川電機 自動機械の制御装置及び制御方法
US7860609B2 (en) * 2005-05-06 2010-12-28 Fanuc Robotics America, Inc. Robot multi-arm control system
JP4465012B2 (ja) * 2008-01-31 2010-05-19 ファナック株式会社 搬入/搬出ロボットと協調動作する加工ラインシステム
JP5127934B2 (ja) * 2008-12-09 2013-01-23 三菱電機株式会社 機械運動軌跡測定装置、数値制御工作機械および機械運動軌跡測定方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01281504A (ja) * 1988-05-09 1989-11-13 Hitachi Ltd 多軸位置サーボ装置
JPH0264713A (ja) * 1988-08-31 1990-03-05 Hitachi Ltd 自動作業装置
JP2001138275A (ja) * 1999-11-09 2001-05-22 Denso Corp ロボットの制御装置
JP2002073127A (ja) * 2000-09-04 2002-03-12 Fanuc Ltd ロボット制御装置
JP2005346740A (ja) 2005-09-01 2005-12-15 Yaskawa Electric Corp 作業機械の制御装置、作業機械の同期制御方法および作業機械制御システム
JP2009026171A (ja) 2007-07-23 2009-02-05 Daihen Corp ロボット制御装置

Non-Patent Citations (1)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI579668B (zh) * 2015-04-22 2017-04-21 汪宏璋 多工同步無等待機器人控制程式系統及其控制方法
TWI585559B (zh) * 2015-04-22 2017-06-01 汪宏璋 多工同步無等待機器人控制程式控制方法
CN109732618A (zh) * 2019-01-23 2019-05-10 国家电网有限公司 一种用于抽水蓄能机组的检查机器人及其控制方法

Also Published As

Publication number Publication date
CN105209225A (zh) 2015-12-30
KR20150142047A (ko) 2015-12-21
EP2998082B1 (en) 2019-08-28
JP5970415B2 (ja) 2016-08-17
KR101805283B1 (ko) 2017-12-05
CN105209225B (zh) 2017-06-09
EP2998082A1 (en) 2016-03-23
US20160089784A1 (en) 2016-03-31
EP2998082A4 (en) 2017-06-28
US9802313B2 (en) 2017-10-31
JP2014223693A (ja) 2014-12-04

Similar Documents

Publication Publication Date Title
JP5970415B2 (ja) 産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法
KR101745064B1 (ko) 산업용 로봇을 제어하는 제어 시스템, 제어 장치, 용접물 제조 방법 및 기록 매체에 기록된 프로그램
WO2019116891A1 (ja) ロボットシステム及びロボット制御方法
JP6209392B2 (ja) 干渉確認装置
US9494928B2 (en) Numerical control apparatus
JP4097670B2 (ja) 工作機械におけるモニタ装置
JP4505295B2 (ja) Nc加工シミュレーション方法及びnc加工シミュレーション装置
JP4668251B2 (ja) ロボットシステムの制御装置、制御方法およびそのプログラム
TWI554856B (zh) 加工程式轉換裝置及方法
JP5210070B2 (ja) 数値制御工作機械
JP3821404B2 (ja) 溶接作業用ロボットの制御方法
US20180178383A1 (en) Moving Along A Predetermined Path With A Robot
JP7538349B2 (ja) システム及び制御装置
JPS6244352A (ja) 数値制御工作機械における送り制御方法
JP2014079827A (ja) 産業用ロボット制御装置
JP4112433B2 (ja) 工作機械の数値制御装置と工作機械の数値制御方法
JP2010214503A (ja) ロボット及びユニットコントローラ及び制御ユニット間協調制御方法
JP5946680B2 (ja) アーク溶接用プログラムのプログラム変換方法、及びアーク溶接用プログラムのプログラム変換装置
JP7339113B2 (ja) ロボット制御装置及びロボット制御方法
JP2014188544A (ja) アーク溶接ロボット制御装置及びアーク溶接ロボット制御方法
JP2013215867A (ja) ロボット制御装置、ロボット制御方法、ロボット制御プログラム、ロボット
JPH09305210A (ja) 複数台ロボットの干渉防止方法
JPH056213A (ja) 産業用ロボツト制御方法およびその装置
JP7107091B2 (ja) ロボットシステム及び制御装置
JP4428073B2 (ja) 溶接装置

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: 14797513

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20157032466

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14891209

Country of ref document: US

Ref document number: 2014797513

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: IDP00201508356

Country of ref document: ID