KR20150142047A - 산업용 로봇 및 주변 장치의 동작을 제어하는 제어 시스템 및 제어 방법 - Google Patents

산업용 로봇 및 주변 장치의 동작을 제어하는 제어 시스템 및 제어 방법 Download PDF

Info

Publication number
KR20150142047A
KR20150142047A KR1020157032466A KR20157032466A KR20150142047A KR 20150142047 A KR20150142047 A KR 20150142047A KR 1020157032466 A KR1020157032466 A KR 1020157032466A KR 20157032466 A KR20157032466 A KR 20157032466A KR 20150142047 A KR20150142047 A KR 20150142047A
Authority
KR
South Korea
Prior art keywords
command
movement
asynchronous
peripheral device
robot
Prior art date
Application number
KR1020157032466A
Other languages
English (en)
Other versions
KR101805283B1 (ko
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 가부시키가이샤 고베 세이코쇼
Publication of KR20150142047A publication Critical patent/KR20150142047A/ko
Application granted granted Critical
Publication of KR101805283B1 publication Critical patent/KR101805283B1/ko

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
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/005Manipulators for mechanical processing tasks
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/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], 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], 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

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)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

작업에 걸리는 합계 시간의 단축을, 프로그램의 수정 작업을 경감해서 실현된다. 제어 장치(30)는, 교시 프로그램을 저장하는 교시 프로그램 기억부(31)와, 이동 관련의 명령을 이동 관련 명령 분리부(33)로 송신하고, 이동 관련이 아닌 명령을 실행하는 명령 해석부(32)와, 동기 구간의 명령인지 비동기 구간의 명령인지를 판정하고, 판정한 결과에 따라 이동 관련 명령을 장치마다 분리하는 이동 관련 명령 분리부(33)와, 장치의 이동 상태에 근거하여 이동 관련 명령을 서브 궤적 계산부(36)로 송신할지 내부에 축적할지를 선택하는 이동 관련 명령 버퍼부(34)와, 이동 관련 명령에 근거하여 동기 제어하는 장치에 대해 이동에 관한 정보를 계산하는 메인 궤적 계산부(35)와, 이동 관련 명령에 근거하여 동기 제어 대상이 아닌 장치에 대해 이동에 관한 정보를 계산하는 서브 궤적 계산부(36)와, 각 장치의 동작을 실행하는 모터 구동부(37)를 구비한다.

Description

산업용 로봇 및 주변 장치의 동작을 제어하는 제어 시스템 및 제어 방법{INDUSTRIAL-USE ROBOT AND CONTROL SYSTEM AND CONTROL METHOD FOR CONTROLLING OPERATION OF PERIPHERAL DEVICE}
본 발명은 산업용 로봇 및 주변 장치의 동작을 제어하는 제어 시스템 및 제어 방법에 관한 것이다.
용접을 실시하는 용접 로봇 등의 산업용 로봇이나 그 주변 장치는, 교시 데이터를 제공함으로써, 그 교시 데이터로 설정되는 작업을 실행하도록 동작한다. 교시 데이터는, 예를 들면, 로봇이나 주변 장치로 하여금 실행하게 하는 동작을 기술한 프로그램의 집합으로 구성된다.
예를 들면, 특허문헌 1에는, 2축 이상으로 구성되는 복수의 제어 대상을 제어하는 작업 기계의 제어 장치에 있어서, 각 제어 대상의 각 축을 구동하는 모터 등의 액츄에이터를 제어할 때에 액츄에이터와 제어 대상을 관계 대응시킴으로써, 제어 대상으로의 동작 지령을 소정의 액츄에이터에 분배하여 출력하는 것이 기재되어 있다. 작업 프로그램에는 선택된 제어 대상만의 교시 위치가 등록되어 있고, 상호 독립해서 작업 프로그램이 실행된다.
또, 특허문헌 2에는, 복수의 제어 대상을 이동시키는 로봇 제어 장치에 있어서, 1개의 작업 프로그램으로 제어 대상인 매니퓰레이터(manipulator) 및 포지셔너(positioner)가 비동기 제어되는 구간인 비동기 제어 구간을 설정하고, 각 제어 대상이 동시에 동기하여 제어되는 것이 아니라, 이동 목표에 각각 도달하도록 제어되는 것이 기재되어 있다.
일본 공개 특허 공보 제 2005-346740 호 일본 공개 특허 공보 제 2009-026171 호
산업용 로봇이나 그 주변 장치로 하여금 실행하게 하는 동작을 기술한 프로그램에서는, 각 장치의 동작이 동기하도록 제어되는 경우가 있다. 이러한 경우에 작업에 걸리는 합계 시간을 단축하기 위해서는, 산업용 로봇이나 주변 장치의 동작의 관계를 고려하여 프로그램을 작성하게 되지만, 이러한 프로그램의 작성에 걸리는 시간도 단축하는 것이 바람직하다. 또, 각 장치가 동기 제어되지 않는 구간을 설정하면 프로그램의 명령이 기술된 순번으로 실행되지 않는 경우가 있다.
본 발명의 목적은, 작업에 걸리는 합계 시간의 단축을, 프로그램의 수정 작업을 경감해서 실현하는 것에 있다.
이러한 목적하에, 본 발명은, 로봇 및 주변 장치로 하여금 실행하게 하는 동작이 기술된 교시 프로그램을 기억하는 기억부와, 상기 기억부에 의해 기억된 상기 교시 프로그램에 있어서, 상기 주변 장치의 동작이 상기 로봇의 동작과 동기하지 않는 비동기 구간과 해당 비동기 구간이 아닌 동기 구간을 식별하고, 해당 교시 프로그램의 명령 중, 해당 로봇 및 해당 주변 장치의 적어도 어느 한쪽의 이동에 관한 명령인 이동 관련 명령에 대해서, 해당 비동기 구간의 명령인지 해당 동기 구간의 명령인지를 판정하는 판정부와, 상기 판정부에 의해 상기 비동기 구간의 명령으로 판정된 비동기 명령에 대해서, 상기 로봇 및 상기 주변 장치의 장치마다의 명령으로 분리하는 분리부와, 상기 판정부에 의해 상기 동기 구간의 명령으로 판정된 동기 명령에 근거하여, 상기 로봇 및 상기 주변 장치의 동작을 동기시켜 제어하고, 또, 상기 분리부에 의해 분리된 비동기 명령 중 해당 로봇에 관한 명령에 근거하여, 해당 로봇의 동작을 제어하는 제 1 제어부와, 상기 분리부에 의해 분리된 비동기 명령 중 상기 주변 장치에 관한 명령에 근거하여, 상기 로봇의 동작과 동기시키지 않고 해당 주변 장치의 동작을 제어하는 제 2 제어부를 구비한 제어 시스템이다.
또, 이 제어 시스템은, 분리부에 의해 분리된 비동기 명령 중 주변 장치에 관한 명령에 대해서, 제 2 제어부에 의해 주변 장치의 동작이 제어되고 있는 동안에 취득한 명령을 취득한 순번대로 저장하는 저장부를 더 구비하되, 제 2 제어부는, 저장부가 저장한 명령을 순번대로 실행하는 것을 특징으로 한다.
또한, 이 제어 시스템은, 상기 주변 장치에 더하여 1 또는 복수의 다른 장치로 이루어지는 주변 장치군이 존재하고, 해당 주변 장치군의 동작이 상기 로봇의 동작과 동기해서 제어되고, 해당 주변 장치의 동작이 해당 로봇의 동작과 동기하지 않고 제어되는 상기 비동기 구간이 마련되어 있는 경우에, 해당 비동기 구간에 있어서, 상기 제 1 제어부는, 상기 분리부에 의해 분리된 비동기 명령 중 상기 로봇에 관한 명령 및 상기 주변 장치군에 관한 명령에 근거하여, 해당 로봇 및 해당 주변 장치군의 동작을 동기시켜 제어하고, 상기 제 2 제어부는, 상기 분리부에 의해 분리된 비동기 명령 중 상기 주변 장치에 관한 명령에 근거하여, 상기 로봇 및 상기 주변 장치군의 동작과 동기시키지 않고 해당 주변 장치의 동작을 제어하는 것을 특징으로 한다.
또, 이 제어 시스템은, 상기 주변 장치에 더하여, 상기 로봇의 동작과 동기하지 않고 제어되는 비동기 구간이 마련되어 있는 1 또는 복수의 주변 장치가 존재하고, 각 주변 장치의 해당 비동기 구간의 적어도 일부가 중복하는 경우에, 해당 비동기 구간이 중복하는 구간에 있어서, 상기 제 2 제어부는, 해당 중복하는 구간에서 해당 비동기 구간이 마련된 각 주변 장치의 동작을 해당 로봇 및 다른 주변 장치의 동작과 동기시키지 않고 제어하는 것을 특징으로 한다.
또한, 이 제어 시스템은, 이동 관련 명령이, 교시 프로그램 중 메인 교시 프로그램에 호출되는 서브 교시 프로그램에 기술되는 것을 특징으로 한다.
또, 다른 관점에서 파악하면, 본 발명은, 미리 정해진 기억부에 기억되고, 로봇 및 주변 장치로 하여금 실행하게 하는 동작에 관한 명령군에 대해, 상기 주변 장치의 동작이 상기 로봇의 동작과 동기하지 않는 비동기 구간과 해당 비동기 구간이 아닌 동기 구간을 식별하고, 상기 명령군 중, 해당 로봇 및 해당 주변 장치의 적어도 어느 한쪽의 이동에 관한 명령인 이동 관련 명령에 대해서, 해당 비동기 구간의 명령인지 해당 동기 구간의 명령인지를 판정하는 스텝과, 상기 비동기 구간의 명령으로 판정된 비동기 명령에 대해서, 상기 로봇 및 상기 주변 장치의 장치마다의 명령으로 분리하는 스텝과, 상기 동기 구간의 명령으로 판정된 동기 명령에 근거하여, 상기 로봇 및 상기 주변 장치의 동작을 동기시켜 제어하고, 또, 분리된 비동기 명령 중 해당 로봇에 관한 명령에 근거하여, 해당 로봇의 동작을 제어하는 스텝과, 분리된 비동기 명령 중 상기 주변 장치에 관한 명령에 근거하여, 상기 로봇의 동작과 동기시키지 않고 해당 주변 장치의 동작을 제어하는 스텝을 포함하는 로봇 및 주변 장치의 제어 방법이다.
본 발명에 따르면, 작업에 걸리는 합계 시간의 단축을, 프로그램의 수정 작업을 경감해서 실현할 수 있다.
도 1은 본 실시의 형태에 따른 용접 로봇 시스템의 개략 구성을 나타내는 도면이다.
도 2은 본 실시의 형태에 따른 제어 장치의 하드웨어 구성예를 나타내는 도면이다.
도 3은 본 실시의 형태에 따른 제어 장치의 기능 구성예를 나타내는 블럭도이다.
도 4는 본 실시의 형태에 따른 메인 교시 프로그램의 일례를 나타내는 도면이다.
도 5a는 본 실시의 형태에 따른 교시 프로그램 실행 처리의 흐름의 일례를 나타내는 흐름도이다.
도 5b는 본 실시의 형태에 따른 교시 프로그램 실행 처리의 흐름의 일례를 나타내는 흐름도이다.
도 5c는 본 실시의 형태에 따른 교시 프로그램 실행 처리의 흐름의 일례를 나타내는 흐름도이다.
도 5d는 본 실시의 형태에 따른 교시 프로그램 실행 처리의 흐름의 일례를 나타내는 흐름도이다.
도 6a는 본 실시의 형태에 따른 서브 교시 프로그램의 일례를 나타내는 도면이다.
도 6b는 본 실시의 형태에 따른 서브 교시 프로그램의 일례를 나타내는 도면이다.
도 6c는 본 실시의 형태에 따른 서브 교시 프로그램의 일례를 나타내는 도면이다.
도 7은 본 실시의 형태에 따른 이동 관련 명령 버퍼부가 이동 관련 명령을 축적하는 상태의 일례를 나타내는 도면이다.
도 8은 본 실시의 형태에 따른 비동기 구간이 중복하는 경우의 메인 교시 프로그램의 일례를 나타내는 도면이다.
이하, 첨부 도면을 참조하여, 본 발명의 실시의 형태에 대해 상세하게 설명한다. 우선, 본 실시의 형태의 개요에 대해 설명한다.
최근, 용접 로봇 시스템에서는, 용접 로봇과 함께 제어 장치(로봇 콘트롤러)로 제어되는 주변 장치가 대형화되고 있다. 주변 장치로서는, 예를 들면, 용접 대상으로 되는 워크의 위치를 결정하는 장치인 포지셔너나, 용접 로봇을 이동시키는 장치인 슬라이더 등이 해당한다. 이러한 주변 장치의 대형화에 수반하여, 워크 착탈시 등의 포지셔너에 의한 워크의 위치 결정이나, 포지셔너의 동작을 간섭하지 않는 위치로 용접 로봇을 퇴피시키기 위한 슬라이더에 의한 동작 등, 용접 개시전에 주변 장치를 동작시키는 시간이 길어지고 있다. 그 때문에, 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에 나타낸 하드웨어 구성에 있어서의 CPU(61)에 의해 실현된다. 보다 구체적으로는, 컴퓨터로 본 실시의 형태에 따른 제어 장치(30)의 기능을 실현하는 프로그램이 드라이버(66)나 인터페이스(65)를 통해서 자기 디스크 장치(63)에 저장되고, 이 프로그램을 메모리(62)로 전개하여, CPU(61)가 실행함으로써, 상기의 명령 해석부(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. 제 1 항에 있어서,
    상기 분리부에 의해 분리된 비동기 명령 중 상기 주변 장치에 관한 명령에 대해서, 상기 제 2 제어부에 의해 해당 주변 장치의 동작이 제어되고 있는 동안에 취득한 해당 명령을 취득한 순번으로 저장하는 저장부를 더 구비하고,
    상기 제 2 제어부는, 상기 저장부가 저장한 명령을 상기 순번으로 실행하는
    것을 특징으로 하는 제어 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 주변 장치에 더해서 1 또는 복수의 다른 장치로 이루어지는 주변 장치군이 존재하고, 해당 주변 장치군의 동작이 상기 로봇의 동작과 동기해서 제어되고, 해당 주변 장치의 동작이 해당 로봇의 동작과 동기하지 않고 제어되는 상기 비동기 구간이 마련되어 있는 경우에, 해당 비동기 구간에 있어서,
    상기 제 1 제어부는, 상기 분리부에 의해 분리된 비동기 명령 중 상기 로봇에 관한 명령 및 상기 주변 장치군에 관한 명령에 근거하여, 해당 로봇 및 해당 주변 장치군의 동작을 동기시켜 제어하고,
    상기 제 2 제어부는, 상기 분리부에 의해 분리된 비동기 명령 중 상기 주변 장치에 관한 명령에 근거하여, 상기 로봇 및 상기 주변 장치군의 동작과 동기시키지 않고 해당 주변 장치의 동작을 제어하는
    것을 특징으로 하는 제어 시스템.
  4. 제 1 항에 있어서,
    상기 주변 장치에 더하여, 상기 로봇의 동작과 동기하지 않고 제어되는 비동기 구간이 마련되어 있는 1 또는 복수의 주변 장치가 존재하고, 각 주변 장치의 해당 비동기 구간의 적어도 일부가 중복하는 경우에, 해당 비동기 구간이 중복하는 구간에 있어서, 상기 제 2 제어부는, 해당 중복하는 구간에서 해당 비동기 구간이 마련된 각 주변 장치의 동작을 해당 로봇 및 다른 주변 장치의 동작과 동기시키지 않고 제어하는 것을 특징으로 하는 제어 시스템.
  5. 제 1 항에 있어서,
    상기 이동 관련 명령은, 상기 교시 프로그램 중 메인 교시 프로그램에 호출되는 서브 교시 프로그램에 기술되는 것을 특징으로 하는 제어 시스템.
  6. 미리 정해진 기억부에 기억되고, 로봇 및 주변 장치로 하여금 실행하게 하는 동작에 관한 명령군에 대해, 상기 주변 장치의 동작이 상기 로봇의 동작과 동기하지 않는 비동기 구간과 해당 비동기 구간이 아닌 동기 구간을 식별하고, 상기 명령군 중, 해당 로봇 및 해당 주변 장치의 적어도 어느 한쪽의 이동에 관한 명령인 이동 관련 명령에 대해서, 해당 비동기 구간의 명령인지 해당 동기 구간의 명령인지를 판정하는 스텝과,
    상기 비동기 구간의 명령으로 판정된 비동기 명령에 대해서, 상기 로봇 및 상기 주변 장치의 장치마다의 명령으로 분리하는 스텝과,
    상기 동기 구간의 명령으로 판정된 동기 명령에 근거하여, 상기 로봇 및 상기 주변 장치의 동작을 동기시켜 제어하고, 또, 분리된 비동기 명령 중 해당 로봇에 관한 명령에 근거하여, 해당 로봇의 동작을 제어하는 스텝과,
    분리된 비동기 명령 중 상기 주변 장치에 관한 명령에 근거하여, 상기 로봇의 동작과 동기시키지 않고 해당 주변 장치의 동작을 제어하는 스텝
    을 포함하는 방법.
KR1020157032466A 2013-05-16 2014-04-17 산업용 로봇 및 주변 장치의 동작을 제어하는 제어 시스템 및 제어 방법 KR101805283B1 (ko)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20150142047A true KR20150142047A (ko) 2015-12-21
KR101805283B1 KR101805283B1 (ko) 2017-12-05

Family

ID=51898196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157032466A KR101805283B1 (ko) 2013-05-16 2014-04-17 산업용 로봇 및 주변 장치의 동작을 제어하는 제어 시스템 및 제어 방법

Country Status (6)

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

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112013003209B4 (de) * 2012-06-29 2019-02-07 Mitsubishi Electric Corporation Robotersteuerungsvorrichtung und Robotersteuerungsverfahren
US20150129581A1 (en) * 2013-11-12 2015-05-14 Lincoln Global, Inc. System and method for pendant component for a welding system
TWI579668B (zh) * 2015-04-22 2017-04-21 汪宏璋 多工同步無等待機器人控制程式系統及其控制方法
TWI585559B (zh) * 2015-04-22 2017-06-01 汪宏璋 多工同步無等待機器人控制程式控制方法
CN106078753A (zh) * 2016-06-30 2016-11-09 珠海格力智能装备有限公司 一种机器人示教器、及机器人示教器的信息处理方法
JP7124389B2 (ja) * 2018-03-30 2022-08-24 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
CN109732618A (zh) * 2019-01-23 2019-05-10 国家电网有限公司 一种用于抽水蓄能机组的检查机器人及其控制方法
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346740A (ja) 2005-09-01 2005-12-15 Yaskawa Electric Corp 作業機械の制御装置、作業機械の同期制御方法および作業機械制御システム
JP2009026171A (ja) 2007-07-23 2009-02-05 Daihen Corp ロボット制御装置

Family Cites Families (11)

* 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
JP2787207B2 (ja) * 1988-05-09 1998-08-13 株式会社日立製作所 多軸位置サーボ装置
JPH0264713A (ja) * 1988-08-31 1990-03-05 Hitachi Ltd 自動作業装置
EP0523889B1 (en) * 1991-07-06 1996-12-27 Daihen Corporation Apparatus for controlling industrial robot to perform coordinated operation using teaching playback method and method thereof
JP2001138275A (ja) * 1999-11-09 2001-05-22 Denso Corp ロボットの制御装置
JP3504222B2 (ja) * 2000-09-04 2004-03-08 ファナック株式会社 ロボット制御装置
WO2004048049A1 (ja) 2002-11-27 2004-06-10 Kabushiki Kaisha Yaskawa Denki 自動機械の制御装置及び制御方法
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346740A (ja) 2005-09-01 2005-12-15 Yaskawa Electric Corp 作業機械の制御装置、作業機械の同期制御方法および作業機械制御システム
JP2009026171A (ja) 2007-07-23 2009-02-05 Daihen Corp ロボット制御装置

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101805283B1 (ko) 산업용 로봇 및 주변 장치의 동작을 제어하는 제어 시스템 및 제어 방법
KR101745064B1 (ko) 산업용 로봇을 제어하는 제어 시스템, 제어 장치, 용접물 제조 방법 및 기록 매체에 기록된 프로그램
JP4382003B2 (ja) ロボット制御装置およびロボット制御方法
JP2880590B2 (ja) 産業用ロボットの同期制御方法
JP5578220B2 (ja) ロボットシステム
US20160231733A1 (en) Program creation device, program creation method, and program
US20150134105A1 (en) Numerical control apparatus
CN108687767B (zh) 离线编程装置以及离线编程方法
JP2019107704A (ja) ロボットシステム及びロボット制御方法
KR101965994B1 (ko) 통신 제어 시스템 및 통신 제어 방법
US11806876B2 (en) Control system, control apparatus, and robot
JP3821404B2 (ja) 溶接作業用ロボットの制御方法
TWI554856B (zh) 加工程式轉換裝置及方法
JP6538754B2 (ja) 数値制御装置
JP5046053B2 (ja) ロボット制御システム及びロボット制御方法
CN112975120A (zh) 扫描仪控制器和扫描仪控制系统
JP2005014149A (ja) ロボットシステム
JP6792184B1 (ja) シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム
JP2010214503A (ja) ロボット及びユニットコントローラ及び制御ユニット間協調制御方法
JP2013215867A (ja) ロボット制御装置、ロボット制御方法、ロボット制御プログラム、ロボット
CN114761184A (zh) 仿真系统、仿真方法、仿真程序、机器人的制造方法以及机器人系统
CN101995849A (zh) 数值控制系统的路径轨迹点计算装置及其计算方法
JP2015116631A (ja) 制御装置、ロボット、制御方法及びロボットシステム
US20240036568A1 (en) Program for manipulating manipulation target device
WO2022244231A1 (ja) システム及び制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right