KR20220076698A - Method, apparatus and system for controlling motion between multiple pcs - Google Patents

Method, apparatus and system for controlling motion between multiple pcs Download PDF

Info

Publication number
KR20220076698A
KR20220076698A KR1020200165453A KR20200165453A KR20220076698A KR 20220076698 A KR20220076698 A KR 20220076698A KR 1020200165453 A KR1020200165453 A KR 1020200165453A KR 20200165453 A KR20200165453 A KR 20200165453A KR 20220076698 A KR20220076698 A KR 20220076698A
Authority
KR
South Korea
Prior art keywords
motion
path
coordinate system
driving
setting
Prior art date
Application number
KR1020200165453A
Other languages
Korean (ko)
Other versions
KR102423658B1 (en
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 KR1020200165453A priority Critical patent/KR102423658B1/en
Priority to PCT/KR2021/017362 priority patent/WO2022119222A1/en
Publication of KR20220076698A publication Critical patent/KR20220076698A/en
Application granted granted Critical
Publication of KR102423658B1 publication Critical patent/KR102423658B1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • 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
    • B23K11/00Resistance welding; Severing by resistance heating
    • B23K11/10Spot welding; Stitch welding
    • B23K11/11Spot welding
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23QDETAILS, COMPONENTS, OR ACCESSORIES FOR MACHINE TOOLS, e.g. ARRANGEMENTS FOR COPYING OR CONTROLLING; MACHINE TOOLS IN GENERAL CHARACTERISED BY THE CONSTRUCTION OF PARTICULAR DETAILS OR COMPONENTS; COMBINATIONS OR ASSOCIATIONS OF METAL-WORKING MACHINES, NOT DIRECTED TO A PARTICULAR RESULT
    • B23Q15/00Automatic control or regulation of feed movement, cutting velocity or position of tool or work
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme 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/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/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • 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/39219Trajectory tracking

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Numerical Control (AREA)
  • Selective Calling Equipment (AREA)

Abstract

본 발명은 다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템에 관한 것이다. 본 발명의 일 실시예에 따른 모션 제어 방법은 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어기를 포함한 시스템에서 수행되는 방법으로서, 다수의 지점을 포함하는 운전 경로를 설정하는 제1 설정 단계; 운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 제2 설정 단계; 및 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 단계;를 포함한다.The present invention relates to a method, apparatus and system for controlling motion between multiple workpiece coordinate systems. A motion control method according to an embodiment of the present invention is a method performed in a system including a motion controller for motion control between a plurality of product coordinate systems (PCS), and includes setting a driving route including a plurality of points. a first setting step; a second setting step of setting, for the workpiece coordinate system of each point of the driving path, a work coordinate system based on a machine coordinate system (MCS) of a machine located at the last point of the driving path as a reference; and a driving step of performing a motion operation according to a set work coordinate system and a driving path.

Description

다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템{METHOD, APPARATUS AND SYSTEM FOR CONTROLLING MOTION BETWEEN MULTIPLE PCS}Method, device and system for motion control between multiple workpiece coordinate systems

본 발명은 모션 제어를 위한 방법, 장치 및 시스템에 관한 것으로서, 더욱 상세하게는 픽 앤 플레이스(pick-and-place) 등과 같이 다수개의 공작물 좌표계(product coordinate system; PCS) 간의 모션을 제어하기 위한 방법, 장치 및 시스템에 관한 것이다.The present invention relates to a method, apparatus and system for motion control, and more particularly, to a method for controlling motion between a plurality of product coordinate systems (PCS) such as pick-and-place. , devices and systems.

일반적으로 모션 제어기(motion controller) 등의 산업용 제어기는 특정 메이커 또는 제품으로 한정되지 않고 상호 호환성을 위해 PLCopen 규격을 따르도록 설계된다. 즉, PLCopen 규격은 다양한 명령어의 펑션 블록(function block)에 대해 정의하고 있으며, 특히 기존 PLC의 I/O 시퀀스 제어 외에도 모션 제어 및 Safety 관련 기술에 대한 규격을 가진다. 이때, 모션 제어 관련 기능은 단축 및 다축 제어 기술을 포함하는데, CAM 및 그룹 운전을 위한 동기(synchronize) 제어 기술 등이 다축 제어 기술에서 함께 구현된다.In general, industrial controllers such as motion controllers are not limited to a specific maker or product and are designed to follow the PLCopen standard for mutual compatibility. That is, the PLCopen standard defines function blocks of various commands, and in particular, has standards for motion control and safety related technologies in addition to the I/O sequence control of the existing PLC. In this case, the motion control-related functions include single-axis and multi-axis control technology, and CAM and synchronize control technology for group operation are implemented together in the multi-axis control technology.

이러한 PLCopen 규격에서, 다축 제어의 동기 제어 기술은 '단축 대(vs) 단축'에 대한 기술, '단축 대 다축'에 대한 기술, '다축 대 다축'에 대한 기술로 구분된다. 이때, 기계 좌표계(machine coordinate system; MCS) 외에 공작물 좌표계(product coordinate system; PCS)(또는 “사용자 좌표계”라고도 지칭)를 설정하여, 선형/비선형의 프로파일(궤적)을 좌표계가 트래킹(tracking)하면서, 동기(synchronize) 제어가 가능하도록 구현된다.In this PLCopen standard, the synchronous control technology of multi-axis control is divided into a technology for 'shortened vs. shortened', a technology for 'single-to-multi-axis', and a technology for 'multi-axis versus multiple axes'. At this time, in addition to the machine coordinate system (MCS), the product coordinate system (PCS) (also referred to as “user coordinate system”) is set, and the linear/non-linear profile (trajectory) is tracked while the coordinate system is tracking. , is implemented to enable synchronization control.

도 1은 오브젝트(object)의 상태에 따른 모션 제어의 일 예를 나타낸다. 즉, 도 1(a)는 오브젝트가 정지 상태인 경우에 대한 모션 제어의 일 예를 나타내고, 도 1(b)는 오브젝트가 움직이는 상태인 경우에 대한 모션 제어의 일 예를 나타낸다.1 shows an example of motion control according to the state of an object. That is, FIG. 1A shows an example of motion control when the object is in a stationary state, and FIG. 1B shows an example of motion control when the object is in a moving state.

즉, 도 1(a)의 경우, 오브젝트인 가공물은 정지 상태이며, 로봇 B가 그 가공물을 잡고 있으면 그 가공물의 위치와 자세에 맞춰서 로봇 A가 점 용접의 작업을 수행한다. 또한, 도 1(b)의 경우, 오브젝트인 쿠키는 움직이는 상태이며, 직교 로봇 A가 컨베이어 벨트 B 위에서 움직이고 있는 쿠키 위에 초콜렛을 묻혀주는 작업을 수행한다.That is, in the case of Figure 1 (a), the object, the workpiece is in a stationary state, and when the robot B holds the workpiece, the robot A performs the spot welding operation according to the position and posture of the workpiece. In addition, in the case of Figure 1 (b), the object cookie is in a moving state, and the orthogonal robot A performs the task of putting chocolate on the cookie moving on the conveyor belt B.

도 1(a) 및 (b)의 경우 모두, B가 마스터 모션이 되고 A가 그 모션을 따라가는 형태이며, MCS와 PCS 간의 축-그룹 동기(synchronize)가 1:1로 매칭될 수 있는 경우에 해당한다.1(a) and (b), in the case where B becomes the master motion and A follows the motion, and the axis-group synchronization between MCS and PCS can be matched 1:1 corresponds to

이때, “축-그룹”은 다수 축을 포함하는 그룹으로서, 그 중에 어느 한 축(마스터 축)에 대한 좌표계 표현을 통해 나머지 다른 모든 축(슬레이브 축)에 대한 좌표계 표현이 가능한 그룹을 의미한다. 즉, 축-그룹 은 마스터 축에 대해 각 슬레이브 축이 특정 관계(즉, 마스터 축의 위치에 따라 선형 또는 비선형적으로 슬레이브 축의 위치가 결정되는 관계)를 가지며, 이러한 특정 관계에 대한 프로파일이 이미 알려진 상태인 그룹이다.In this case, “axis-group” refers to a group including multiple axes, in which the coordinate system for all other axes (slave axes) can be expressed through the expression of the coordinate system for one axis (master axis). In other words, axis-group means that each slave axis has a specific relationship with respect to the master axis (that is, a relationship in which the position of the slave axis is determined linearly or non-linearly depending on the position of the master axis), and the profile for this specific relationship is already known. is a group

일반적으로, 로봇(직교 로봇, 스카라 로봇, 수직 다관절 로봇 등)을 활용하는 애플리케이션에서, 로봇은 축-그룹으로 구성되어 단축 또는 다축에 대해 동기 제어가 가능하다. 하지만, 도 1의 단순한 경우(즉, 1:1 동기 제어가 가능한 경우)와 달리, 픽 앤 플레이스(pick-and-place, 이하 “PnP”라고 지칭함) 등과 같이 서로 다른 기계 장치에 대해 다수개의 PCS에 대한 트래킹을 수행해야 하는 복잡한 상황의 경우, 종래 PLCopen 규격의 펑션 블록만으로는 그 모션 제어의 운용이 어려운 문제점이 있었다. 이는 PLCopen 규격의 경우, 1:1 동기 제어가 가능한 단순한 경우에 대한 펑션 블록만을 정의하고 있기 때문이다. In general, in applications utilizing robots (orthogonal robots, scara robots, vertical articulated robots, etc.), the robots are configured in axis-groups to enable synchronous control for one axis or multiple axes. However, unlike the simple case of FIG. 1 (that is, when 1:1 synchronous control is possible), multiple PCSs for different mechanical devices such as pick-and-place (hereinafter referred to as “PnP”) In the case of a complex situation in which tracking of the , it is difficult to operate the motion control only with the function block of the conventional PLCopen standard. This is because, in the case of PLCopen standard, only function blocks for simple cases where 1:1 synchronous control is possible are defined.

상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 본 발명은 다수개 PCS 좌표계 간의 Pick-and-Place(PnP) 등과 같이, 기존 PLCopen 규격에 따른 명령어로는 대응이 되지 않는 복잡한 유형의 운전 상황에 대해 모션 제어가 가능한 기술을 제공하는데 그 목적이 있다.In order to solve the problems of the prior art as described above, the present invention is a complex type of operation situation that cannot be responded to with commands according to the existing PLCopen standard, such as Pick-and-Place (PnP) between multiple PCS coordinate systems. The purpose of this is to provide a technology capable of motion control.

즉, 본 발명은 특정 축 혹은 축-그룹에 트래킹이 진행 중인 서로 다른 다수 개의 PCS 좌표계 간에 로봇의 PnP 운전이 가능하게 하는 기술을 제공하는데 그 목적이 있다.That is, an object of the present invention is to provide a technology that enables PnP operation of a robot between a plurality of different PCS coordinate systems in which tracking is in progress on a specific axis or axis-group.

또한, 본 발명은 PnP 운전 중에 외부 환경의 이벤트 입력에 동기 가능하고 이벤트의 시그널링이 가능하는 기술을 제공하는데 그 다른 목적이 있다.Another object of the present invention is to provide a technology capable of synchronizing an event input in an external environment and signaling an event during PnP operation.

또한, 본 발명은 PLCOpen 규격에 정의된 명령어를 기본 빌딩 블록으로 활용하여 라이브러리 형태의 명령어(User defined function block)을 구성하는 기술을 제공하는데 그 또 다른 목적이 있다.Another object of the present invention is to provide a technique for configuring a library-type command (User defined function block) by utilizing the command defined in the PLCOpen standard as a basic building block.

다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned can be clearly understood by those of ordinary skill in the art to which the present invention belongs from the description below. There will be.

상기와 같은 과제를 해결하기 위한 본 발명의 일 실시예에 따른 모션 제어 방법은 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어기를 포함한 시스템에서 수행되는 방법으로서, 다수의 지점을 포함하는 운전 경로를 설정하는 제1 설정 단계; 운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 제2 설정 단계; 및 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 단계;를 포함한다.A motion control method according to an embodiment of the present invention for solving the above problems is a method performed in a system including a motion controller for motion control between a plurality of product coordinate systems (PCS), and a plurality of points A first setting step of setting a driving route including; a second setting step of setting, for the workpiece coordinate system of each point of the driving path, a work coordinate system based on a machine coordinate system (MCS) of a machine located at the last point of the driving path as a reference; and a driving step of performing a motion operation according to a set work coordinate system and a driving path.

상기 운전 경로에서, 그 시작 지점과 그 마지막 지점은 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점일 수 있다.In the driving path, the starting point and the ending point may be points in different workpiece coordinate systems according to different mechanical devices.

상기 제2 설정 단계는 상기 각 지점들의 공작물 좌표계에 대해 기계 장치의 움직임에 따른 트래킹(tracking)을 반영하는 단계를 포함할 수 있다.The second setting step may include reflecting tracking according to the movement of the mechanical device with respect to the workpiece coordinate system of the respective points.

상기 운전 경로는 픽 앤 플레이스(Pick and Place; PnP)의 운전을 위한 아치 형태의 경로일 수 있다.The driving path may be an arch-shaped path for driving a pick and place (PnP).

상기 아치 형태의 경로는 hup 높이의 상향 방향 이동의 제1 모션 경로와, hdown 높이의 하향 방향 이동의 제3 모션 경로와, 제1 및 제3 모션 사이에서 l 너비의 일측 방향 이동의 제2 모션 경로와, 제1 및 제2 모션 경로 사이의 제1 만곡 모션 경로와, 제2 및 제3 모션 경로 사이의 제2 만곡 모션 경로를 포함할 수 있다.The arcuate path includes a first motion path of upward movement of height h up , a third motion path of downward movement of height h down , and a second motion path of l width unidirectional movement between the first and third motions. two motion paths, a first curved motion path between the first and second motion paths, and a second curved motion path between the second and third motion paths.

상기 제1 만곡 모션 경로는 hup 및 l에서 각각 d1 만큼의 거리에 대해 특정 곡률의 경로를 가지고, 상기 제2 만곡 모션 경로는 hdown 및 l에서 각각 d2 만큼의 거리에 대해 특정 곡률의 경로를 가지며, d1 및 d1는 하기 식을 이용하여 구할 수 있다.the first curved motion path has a path of specific curvature for a distance d 1 from h up and l, respectively, and the second curved motion path has a specific curvature of a specific curvature for a distance d 2 from h down and l, respectively. has a path, and d1 and d1 can be obtained using the following formula.

Figure pat00001
Figure pat00001

Figure pat00002
Figure pat00002

(단, min(a, b)는 a 및 b 중에 더 작은(최소) 길이 값을 나타내며, ArchBlendRatio는 그 최소 길이 값에 대한 비율 값을 나타냄)(However, min(a, b) represents the smaller (minimum) length value among a and b, and ArchBlendRatio represents the ratio value to the minimum length value)

상기 제1 설정 단계는 다수의 운전 경로와, 각 운전 경로에 대한 입출력 이벤트의 인덱스를 설정하는 단계를 포함할 수 있다.The first setting step may include setting a plurality of driving paths and indexes of input/output events for each driving path.

상기 제2 설정 단계는 입출력 이벤트의 인덱스에 매칭하는 운전 경로의 각 지점들에 대한 공작물 좌표계를 설정하는 단계를 포함할 수 있다.The second setting step may include setting a work coordinate system for each point of the driving path matching the index of the input/output event.

상기 운전 단계는 입출력 이벤트의 인덱스에 매칭하는 운전 경로에 대한 운전을 수행하는 단계를 포함할 수 있다.The driving may include driving a driving route matching an index of an input/output event.

상기 설정된 각 운전 경로에 대해 상기 제2 설정 단계 및 상기 운전 단계가 차례로 반복 수행될 수 있다.The second setting step and the driving step may be sequentially and repeatedly performed for each of the set driving routes.

본 발명의 일 실시예에 따른 모션 제어 방법은 다수의 PCS 좌표계에 대한 트래킹을 위한 PLCopen 규격의 명령어가 부재한 경우에 적용 가능하되, 상기 제2 설정 단계와 상기 운전 단계는 PLCopen 규격에 따른 명령어를 이용하여 수행될 수 있다.The motion control method according to an embodiment of the present invention is applicable when there is no command of the PLCopen standard for tracking a plurality of PCS coordinate systems, but the second setting step and the operation step include a command according to the PLCopen standard. It can be performed using

상기 제1 설정 단계의 수행을 위한 명령어는 각 운전 경로 별로 요구되는 로봇의 그리퍼(end-effector) 구동기의 출력 설정 값과 센서의 보정 값을 입력 받을 수 있다.The command for performing the first setting step may receive an output setting value of an end-effector driver of the robot and a correction value of a sensor required for each driving path.

상기 운전 단계의 수행을 위한 명령어는 트래킹 중인 오브젝트의 이동/회전량을 보상하기 위한 업데이트하기 위한 입력과, 현재 운전 경로에 대해 설정된 속도를 오버라이드(override)하기 위한 입력을 각각 포함할 수 있다.The command for performing the driving step may include an input for updating to compensate for the movement/rotation amount of the tracking object and an input for overriding a speed set for the current driving path, respectively.

본 발명의 일 실시예에 따른 모션 제어기는 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 제어기로서, 다수의 지점을 포함하되 시작 지점과 마지막 지점이 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 운전 경로를 설정하는 경로 설정부; 운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 좌표계 설정부; 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 제어부;를 포함한다.A motion controller according to an embodiment of the present invention is a controller for motion control between a plurality of product coordinate systems (PCS). a path setting unit for setting a driving path that is a point of the work coordinate system; a coordinate system setting unit that sets the workpiece coordinate system of each point of the driving path to a work coordinate system based on a machine coordinate system (MCS) of a machine located at the last point of the driving path; and a driving control unit configured to operate a motion according to a set work coordinate system and a driving path.

상기 좌표계 설정부는 상기 각 지점들의 공작물 좌표계에 대한 설정 시 기계 장치의 움직임에 따른 트래킹(tracking)을 반영할 수 있다.The coordinate system setting unit may reflect tracking according to the movement of the mechanical device when setting the work coordinate system of the respective points.

본 발명의 일 실시예에 따른 모션 제어 시스템은 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 시스템으로서, 드라이브의 운전을 제어하는 모션 제어기와, 모션 제어기로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 드라이버를 포함하며, 상기 모션 제어기는, 다수의 지점을 포함하되 시작 지점과 마지막 지점이 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 운전 경로를 설정하고, 운전 경로의 각 지점들의 공작물 좌표계에 대해 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하며, 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 제어한다.A motion control system according to an embodiment of the present invention is a system for motion control between a plurality of product coordinate systems (PCS). A driver for driving a motion device, wherein the motion controller sets a driving path that includes a plurality of points, but a starting point and an ending point are points in different workpiece coordinate systems according to different mechanical devices, each of the driving paths Set the work coordinate system based on the machine coordinate system (MCS) of the machine located at the last point of the driving path with respect to the work coordinate system of the points, and control the operation of motion according to the set work coordinate system and driving path do.

상기와 같이 구성되는 본 발명은 다수의 PCS 좌표계 간의 Pick-and-Place(PnP) 등과 같이, 기존 PLCopen 규격에 따른 명령어로는 대응이 되지 않는 복잡한 유형의 운전 상황에 대해 모션 제어가 가능한 이점이 있다.The present invention configured as described above has the advantage of enabling motion control for complex types of driving situations that cannot be responded to with commands according to the existing PLCopen standard, such as Pick-and-Place (PnP) between multiple PCS coordinate systems. .

즉, 본 발명은 특정 축 혹은 축-그룹에 트래킹이 진행 중인 서로 다른 다수 개의 PCS 좌표계 간에 로봇의 PnP 운전이 가능하게 하는 이점이 있다.That is, the present invention has the advantage of enabling PnP operation of the robot between a plurality of different PCS coordinate systems in which tracking is in progress on a specific axis or axis-group.

또한, 본 발명은 PnP 운전 중에 외부 환경의 이벤트 입력에 동기 가능하고 이벤트의 시그널링이 가능한 이점이 있다.In addition, the present invention has an advantage in that it is possible to synchronize an event input of an external environment during PnP operation and to signal an event.

또한, 본 발명은 PLCOpen 규격에 정의된 명령어를 기본 빌딩 블록으로 활용하여 라이브러리 형태의 명령어(User defined function block)의 구현이 가능한 이점이 있다.In addition, the present invention has the advantage that it is possible to implement a library-type command (User defined function block) by utilizing the command defined in the PLCOpen standard as a basic building block.

또한, 본 발명은 다른 기계 장치에 따른 서로 다른 PCS 좌표계 지점 간의 모션 수행 시, 마지막 지점이 속하는 기계 장치의 PCS 좌표계를 기준으로 그 운전 경로를 업데이트 하면 되기 때문에 메모리가 적게 들고 비용이 적게 들 수 있는 이점이 있다.In addition, in the present invention, when performing motion between different PCS coordinate system points according to different mechanical devices, the driving route can be updated based on the PCS coordinate system of the mechanical device to which the last point belongs, so memory is small and cost is low. There is an advantage.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description. will be.

도 1은 오브젝트(object)의 상태에 따른 모션 제어의 일 예를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 모션 제어 시스템(10)의 블록 구성도를 나타낸다.
도 3는 PLCopen 규격에서 정의한 좌표계 종류를 나타낸다.
도 4는 PLCopen 규격에 따른 마스터(master)와 슬레이브(slave)의 축 대 축 간의 동기화(synchronize)의 프로파일(profile) 및 명령어의 일 예를 나타낸다.
도 5는 PLCopen 규격에 따른 공작물 좌표계(PCS) 설정의 명령어 및 파라미터의 일 예를 나타낸다.
도 6는 축-그룹 대 축-그룹 간의 트래킹(tracking) 및 그 명령어의 일 예를 나타낸다.
도 7은 특정 축에 대해 트래킹 중인 2개의 PCS 간에 Pick-and-Place(PnP)가 요구되는 상황에 대한 일 예를 나타낸다.
도 8은 Pick and Place를 위한 아치 형태의 모션에 대한 정의를 나타낸다.
도 9은 스테이트 머신(state machine)의 구성을 나타낸다.
도 10는 운전 경로 티칭(teaching) 명령어의 인터페이스 구성을 나타낸다.
도 11은 경로 운전 명령어의 인터페이스 구성을 나타낸다.
도 12는 축-그룹 대 축-그룹 간의 일반적 형태의 트래킹(tracking)에 대한 확장된 다른 일 예를 나타낸다.
도 13은 MCS에서 PCS로의 변환 명령어에 대한 다른 일 예를 나타낸다.
1 shows an example of motion control according to the state of an object.
2 is a block diagram showing a motion control system 10 according to an embodiment of the present invention.
3 shows the types of coordinate systems defined in the PLCopen standard.
4 shows an example of a profile and a command of the axis-to-axis synchronization of a master and a slave according to the PLCopen standard.
5 shows an example of commands and parameters for setting a work coordinate system (PCS) according to the PLCopen standard.
6 shows an example of an axis-group to axis-group tracking and a command thereof.
7 shows an example of a situation in which Pick-and-Place (PnP) is required between two PCSs being tracked for a specific axis.
8 shows the definition of an arc-shaped motion for Pick and Place.
9 shows the configuration of a state machine.
10 shows an interface configuration of a driving route teaching command.
11 shows an interface configuration of a route driving command.
12 shows another expanded example of a general form of tracking between an axis-group versus an axis-group.
13 shows another example of a conversion command from MCS to PCS.

본 발명의 상기 목적과 수단 및 그에 따른 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.The above object and means of the present invention and its effects will become more apparent through the following detailed description in relation to the accompanying drawings, and accordingly, those of ordinary skill in the art to which the present invention pertains can easily understand the technical idea of the present invention. will be able to carry out In addition, in describing the present invention, if it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 경우에 따라 복수형도 포함한다. 본 명세서에서, "포함하다", “구비하다”, “마련하다” 또는 “가지다” 등의 용어는 언급된 구성요소 외의 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing the embodiments, and is not intended to limit the present invention. In the present specification, the singular form also includes the plural form as the case may be, unless otherwise specified in the phrase. In this specification, terms such as “include”, “provide”, “provide” or “have” do not exclude the presence or addition of one or more other components other than the mentioned components.

본 명세서에서, “또는”, “적어도 하나” 등의 용어는 함께 나열된 단어들 중 하나를 나타내거나, 또는 둘 이상의 조합을 나타낼 수 있다. 예를 들어, “또는 B”“및 B 중 적어도 하나”는 A 또는 B 중 하나만을 포함할 수 있고, A와 B를 모두 포함할 수도 있다.In this specification, terms such as “or” and “at least one” may indicate one of the words listed together, or a combination of two or more. For example, “or B” and “at least one of B” may include only one of A or B, or both A and B.

본 명세서에서, “예를 들어” 등에 따르는 설명은 인용된 특성, 변수, 또는 값과 같이 제시한 정보들이 정확하게 일치하지 않을 수 있고, 허용 오차, 측정 오차, 측정 정확도의 한계와 통상적으로 알려진 기타 요인을 비롯한 변형과 같은 효과로 본 발명의 다양한 실시 예에 따른 발명의 실시 형태를 한정하지 않아야 할 것이다.In the present specification, descriptions according to “for example” and the like may not exactly match the information presented, such as recited properties, variables, or values, tolerances, measurement errors, limits of measurement accuracy, and other commonly known factors The embodiments of the present invention according to various embodiments of the present invention should not be limited by effects such as modifications including .

본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어’ 있다거나 '접속되어' 있다고 기재된 경우, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성 요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.In this specification, when it is described that a certain element is 'connected' or 'connected' to another element, it may be directly connected or connected to the other element, but other elements may exist in between. It should be understood that there may be On the other hand, when it is mentioned that a certain element is 'directly connected' or 'directly connected' to another element, it should be understood that the other element does not exist in the middle.

본 명세서에서, 어떤 구성요소가 다른 구성요소의 '상에' 있다거나 '접하여' 있다고 기재된 경우, 다른 구성요소에 상에 직접 맞닿아 있거나 또는 연결되어 있을 수 있지만, 중간에 또 다른 구성요소가 존재할 수 있다고 이해되어야 할 것이다. 반면, 어떤 구성요소가 다른 구성요소의 '바로 위에' 있다거나 '직접 접하여' 있다고 기재된 경우에는, 중간에 또 다른 구성요소가 존재하지 않은 것으로 이해될 수 있다. 구성요소 간의 관계를 설명하는 다른 표현들, 예를 들면, '~사이에'와 '직접 ~사이에' 등도 마찬가지로 해석될 수 있다.In this specification, when it is described that a certain element is 'on' or 'in contact with' another element, it may be directly in contact with or connected to the other element, but another element may exist in the middle. It should be understood that On the other hand, when it is described that a certain element is 'directly on' or 'directly' of another element, it may be understood that another element does not exist in the middle. Other expressions describing the relationship between the elements, for example, 'between' and 'directly between', etc. may be interpreted similarly.

본 명세서에서, '제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 해당 구성요소는 위 용어에 의해 한정되어서는 안 된다. 또한, 위 용어는 각 구성요소의 순서를 한정하기 위한 것으로 해석되어서는 안되며, 하나의 구성요소와 다른 구성요소를 구별하는 목적으로 사용될 수 있다. 예를 들어, '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다.In this specification, terms such as 'first' and 'second' may be used to describe various components, but the components should not be limited by the above terms. In addition, the above terms should not be construed as limiting the order of each component, and may be used for the purpose of distinguishing one component from another. For example, a 'first component' may be referred to as a 'second component', and similarly, a 'second component' may also be referred to as a 'first component'.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. Unless otherwise defined, all terms used herein may be used with meanings commonly understood by those of ordinary skill in the art to which the present invention pertains. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하도록 한다.Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 모션 제어 시스템(10)의 블록 구성도를 나타낸다.2 is a block diagram showing a motion control system 10 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 모션 제어 시스템(10)은 서보 모터, 스텝 모터 등과 같은 다수의 모션 장치(또는 액추에이터)를 제어하기 위한 시스템으로서, 도 2에 도시된 바와 같이, 외부 장치(100), 모션 제어기(200), 드라이버(300), 모션 장치(미도시) 등을 포함한다.The motion control system 10 according to an embodiment of the present invention is a system for controlling a plurality of motion devices (or actuators) such as a servo motor, a step motor, and the like, and as shown in FIG. 2 , an external device 100 , a motion controller 200 , a driver 300 , and a motion device (not shown).

외부 장치(100)는 모션 제어 시스템(10)의 모든 제어 동작을 관리하는 장치이다. 즉, 사용자 또는 관리자 등은 외부 장치(100)를 통해 모션 제어기(200)에 접속하여 각 드라이브(300)의 동작에 대한 제어를 설정 관리할 수 있다. 가령, 외부 장치(100)는 운전 명령, 튜닝 명령 등의 제어 명령을 모션 제어기(200)에 전달할 수 있다.The external device 100 is a device that manages all control operations of the motion control system 10 . That is, a user or an administrator may access the motion controller 200 through the external device 100 to set and manage control of the operation of each drive 300 . For example, the external device 100 may transmit a control command such as a driving command or a tuning command to the motion controller 200 .

외부 장치(100)은 컴퓨팅(computing)이 가능한 단말 또는 PLC(Programmable Logic Controller) 등과 같은 전자 장치일 수 있다. 예를 들어, 단말은 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 태블릿 PC(tablet personal computer), 넷북 컴퓨터(netbook computer), 스마트폰(smart phone), 스마트패드(smart pad), 또는 PDA(personal digital assistant) 등일 수 있으나, 이에 한정되는 것은 아니다.The external device 100 may be an electronic device such as a computing capable terminal or a programmable logic controller (PLC). For example, the terminal includes a desktop personal computer (PC), a laptop personal computer (PC), a tablet personal computer (PC), a netbook computer, a smart phone, and a smart pad. , or a personal digital assistant (PDA), etc., but is not limited thereto.

다만, 이러한 외부 장치(100) 외에, 조작 패널 등의 사용자 인터페이스(미도시)를 통해 모션 제어기(200)로 제어 명령을 전달할 수도 있다. However, in addition to the external device 100 , a control command may be transmitted to the motion controller 200 through a user interface (not shown) such as a manipulation panel.

모션 제어기(200)는 각 드라이브(300)와 연결되며, 외부 장치(100) 또는 사용자 인터페이스로부터 수신된 제어 명령에 따라 각 드라이브(300)의 운전을 제어한다. 이때, 모션 제어기(200)는 PLCopen 규격에 따라 각 드라이브(300)의 운전을 제어할 수 있다. 가령, 모션 제어기(200)는 기 저장된 운전용 프로파일 정보, 튜닝 파라미터 정보 등의 데이터에 기초하여, 각 드라이브(300)를 운전할 수 있다.The motion controller 200 is connected to each drive 300 and controls the operation of each drive 300 according to a control command received from the external device 100 or a user interface. In this case, the motion controller 200 may control the operation of each drive 300 according to the PLCopen standard. For example, the motion controller 200 may drive each drive 300 based on data such as pre-stored driving profile information and tuning parameter information.

드라이브(300)는 모션 제어기(200)로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 장치이다. 이러한 드라이브(300)는 복수개(300-1, …300-n)(단, n은 2이상의 자연수)가 구비되며, 각 드라이브(300)가 개별적으로 각 모션 장치를 구동한다. 예를 들어, 드라이브(300)는 스텝 모터 드라이버, 또는 서보 모터 드라이버 등일 수 있으나, 이에 한정되는 것은 아니다.The drive 300 is a device for driving a motion device according to a control signal received from the motion controller 200 . The drive 300 is provided with a plurality of (300-1, ...300-n) (where n is a natural number greater than or equal to 2), and each drive 300 drives each motion device individually. For example, the drive 300 may be a step motor driver or a servo motor driver, but is not limited thereto.

이러한 복수의 드라이브(300)는 모션 제어기(200)와 다양한 방식의 토폴로지(topology)로 연결될 수 있다. 예를 들어, 이러한 토폴로지는 버스 토폴로지(bus topology), 스타 토폴로지(star topology), 링 토폴로지(ring topology), 트리 토폴로지(tree topology), 또는 메시 토폴로지(mesh topology) 등일 수 있으나, 이에 한정되는 것은 아니다. 또한, 이들 드라이브(300) 중에는 마스터(master)인 드라이브와 슬레이브(slave)인 드라이브를 포함할 수 있다.The plurality of drives 300 may be connected to the motion controller 200 in various topologies. For example, the topology may be a bus topology, a star topology, a ring topology, a tree topology, or a mesh topology, but is not limited thereto. not. Also, among these drives 300 , a drive that is a master and a drive that is a slave may be included.

한편, 본 발명의 일 실시예에 따른 모션 제어 시스템(10)은 로봇, 컨베이어(conveyor), 로터리 테이블(rotary table) 등과 같은 복수의 기계 장치를 포함할 수 있다. 이때, 하나의 기계 장치에는 적어도 하나의 모션 장치가 구비될 수 있다. 또한, 모션 장치의 구동에 따라 오브젝트(object)의 위치가 달라질 수 있다.Meanwhile, the motion control system 10 according to an embodiment of the present invention may include a plurality of mechanical devices such as a robot, a conveyor, and a rotary table. In this case, at least one motion device may be provided in one mechanical device. Also, the position of the object may vary according to the driving of the motion device.

한편, 모션 제어기(200)는, 도 2에 도시된 바와 같이, 경로 설정부(210), 좌표계 설정부(220) 및 운전 제어부(230)를 포함할 수 있으며, 이들 구성은 하드웨어인 프로세서(processor)에 포함되거나, 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process)에 포함될 수 있으나, 이에 한정되는 것은 아니다. 또한, 경로 설정부(210), 좌표계 설정부(220) 및 운전 제어부(230)는 외부 장치(100)의 구성으로 포함될 수도 있다.Meanwhile, as shown in FIG. 2 , the motion controller 200 may include a path setting unit 210 , a coordinate system setting unit 220 , and a driving control unit 230 , and these components are hardware processors. ) or may be included in a process that is software executed by the processor, but is not limited thereto. Also, the route setting unit 210 , the coordinate system setting unit 220 , and the driving control unit 230 may be included in the configuration of the external device 100 .

도 3는 PLCopen 규격에서 정의한 좌표계 종류를 나타낸다.3 shows the types of coordinate systems defined in the PLCopen standard.

도 3을 참조하면, PLCopen 규격에서 정의한 좌표계의 종류로는 축 좌표계(axis coordinate system; ACS), 기계 좌표계(machine coordinate system; MCS), 공작물 좌표계(product coordinate system; PCS) 등이 있다. 이때, ACS로부터 MCS를 얻고 PCS로 동차 변환할 수 있다.Referring to FIG. 3 , the types of coordinate systems defined in the PLCopen standard include an axis coordinate system (ACS), a machine coordinate system (MCS), and a product coordinate system (PCS). At this time, it is possible to obtain MCS from ACS and homogeneously convert to PCS.

도 4는 PLCopen 규격에 따른 마스터(master)와 슬레이브(slave)의 축 대 축 간의 동기화(synchronize)의 프로파일(profile) 및 명령어의 일 예를 나타낸다. 즉, 도 4(a)는 마스터 축 대 슬레이브 축의 프로파일의 일 예를 나타내고, 도 4(b)는 마스터 축 대 슬레이브 축에 대한 동기화 명령어의 펑션 블록(function block)의 일 예를 나타낸다.4 shows an example of a profile and a command of the axis-to-axis synchronization of a master and a slave according to the PLCopen standard. That is, FIG. 4(a) shows an example of a profile of a master axis versus a slave axis, and FIG. 4(b) shows an example of a function block of a synchronization command for a master axis versus a slave axis.

도 4를 참조하면, 축 대 축 간 동기화를 위해, 축 간의 동기화 명령어로 정의된 MC_CamIn을 사용할 수 있다.Referring to FIG. 4 , for axis-to-axis synchronization, MC_CamIn defined as a synchronization command between axes may be used.

도 5는 PLCopen 규격에 따른 공작물 좌표계(PCS) 설정의 명령어 및 파라미터의 일 예를 나타낸다. 즉, 도 5(a)는 PCS 설정 명령어의 펑션 블록의 일 예를 나타내고, 도 5(b)는 변환 파라미터(translation parameters)의 일 예, 즉 translation 및 rotation되어 MCS에서 PCS로 좌표계 변환되는 일 예를 나타내며, 도 5(c)는 회전 파라미터(rotation parameters)의 일 예를 나타낸다.5 shows an example of commands and parameters for setting a work coordinate system (PCS) according to the PLCopen standard. That is, FIG. 5(a) shows an example of a function block of a PCS setting command, and FIG. 5(b) is an example of translation parameters, that is, an example of coordinate system transformation from MCS to PCS by translation and rotation. , and FIG. 5( c ) shows an example of rotation parameters.

한편, 도 5를 참조하면, PCS 설정을 위해 다음과 같은 과정을 수행할 수 있다. 즉, A 및 B를 축-그룹으로 구성하면, A 축-그룹의 MCS 좌표계는 MCSA, 그 PCS 좌표계는 PCSA로 표현하고, B 축-그룹의 MCS 좌표계는 MCSB, 그 PCS 좌표계는 PCSB로 표현할 수 있다. 이들 좌표계는 하기 식(1) 내지 식(3)을 이용한 변환이 가능하다.Meanwhile, referring to FIG. 5 , the following process may be performed for PCS setting. That is, if A and B are configured as axis-groups, the MCS coordinate system of the A axis-group is expressed as MCS A , the PCS coordinate system is expressed as PCS A , the MCS coordinate system of the B axis-group is MCS B , and the PCS coordinate system is PCS It can be expressed as B. These coordinate systems can be transformed using Equations (1) to (3) below.

Figure pat00003
(1)
Figure pat00003
(One)

Figure pat00004
(2)
Figure pat00004
(2)

Figure pat00005
(3)
Figure pat00005
(3)

이때, 식(1)은 MCS 좌표계의 P점에 대해 PCS 좌표계 원점(PPCSORG) 및 회전 행렬(R)로 구성된 동차 변환 행렬(Homogeneous transformation matrix)을 나타내고, 식(2)는 MCS 좌표계와 PCS 좌표계 간의 역행렬을 나타낸다. 또한, 식(3)은 A 축-그룹의 PCS 좌표계와 B 축-그룹의 PCS 좌표계를, A 축-그룹과 B 축-그룹 간의 좌표계 변환으로 매핑하는 것을 나타낸다.At this time, Equation (1) represents a homogeneous transformation matrix composed of the PCS coordinate system origin (P PCSORG ) and the rotation matrix (R) for the P point of the MCS coordinate system, and Equation (2) is the MCS coordinate system and the PCS coordinate system. Represents the inverse matrix between In addition, Equation (3) represents the mapping of the A-axis-group PCS coordinate system and the B-axis-group PCS coordinate system to the coordinate system transformation between the A-axis-group and B-axis-group.

가령, 축-그룹 A 및 B 간(즉, 축-그룹들 간)에 좌표계 변환(

Figure pat00006
)은 펑션 블록으로 정의된 MC_SetDynCoordTransform의 명령어를 이용할 수 있다. 또한, 축-그룹 B 내에서 좌표계 변환(
Figure pat00007
)은 펑션 블록으로 정의된 MC_SetCoordinateTransform의 명령어를 이용할 수 있다.For example, a coordinate system transformation between axes-groups A and B (ie between axes-groups) (
Figure pat00006
) can use the command of MC_SetDynCoordTransform defined as a function block. Also, the coordinate system transformation within axis-group B (
Figure pat00007
) can use the command of MC_SetCoordinateTransform defined as a function block.

도 6는 축-그룹 대 축-그룹 간의 트래킹(tracking) 및 그 명령어의 일 예를 나타낸다. 즉, 도 6(a)는 컨베이어 벨트(conveyor belt)에 대한 트래킹을 나타내고, 도 6(b)는 컨베이어 벨트의 트래킹을 위한 명령어의 펑션 블록을 나타낸다. 또한, 즉, 도 6(c)는 로터리 테이블(rotary table)에 대한 트래킹을 나타내고, 도 6(d)는 로터리 테이블의 트래킹을 위한 명령어의 펑션 블록을 나타낸다.6 shows an example of an axis-group to axis-group tracking and a command thereof. That is, FIG. 6(a) shows tracking for a conveyor belt, and FIG. 6(b) shows a function block of commands for tracking the conveyor belt. In addition, that is, FIG. 6(c) shows tracking for a rotary table, and FIG. 6(d) shows a function block of commands for tracking the rotary table.

축-그룹 대 축-그룹 간 트래킹 명령어는 축-그룹 간의 동기화를 위해 정의될 수 있다. 이때, 동기화된 모션 궤적은 두 독립 모션의 중첩(superposition)으로 볼 수 있다. 이러한 축-그룹 대 축-그룹 간 트래킹 명령어의 구현을 위해, 다차원 기어 운전(좌표 별 선형 중첩) 적용하는 방법(제1 구현 방법)과, 좌표계 변환 행렬을 적용(즉, PLCOpen 규격에 따른 펑션 블록을 채택)하는 방법(제2 구현 방법)이 있을 수 있다.Axes-group versus axis-to-group tracking commands can be defined for synchronization between axis-groups. In this case, the synchronized motion trajectory can be viewed as a superposition of two independent motions. For the implementation of this axis-group versus axis-group tracking command, a method of applying multidimensional gear operation (linear superposition by coordinates) (the first implementation method) and applying a coordinate system transformation matrix (that is, a function block according to PLCOpen standard) There may be a method (second implementation method) of adopting .

도 6(a)는 로봇이 컨베이어 벨트 위에 놓인 물체를 트래킹하는 경우를 나타낸다. 이 경우, 컨베이어 벨트 전용으로 파라미터화한 펑션 블록을, 도 6(b)와 같이, MC_TrackConveyorBelt의 명령어를 정의할 수 있는데, 축-그룹들 간에 좌표계 변환의 명령어(MC_SetDynCoordTransform)를 통해 구현하여 그 인터페이스를 구성할 수 있다. 구체적으로, 로봇의 MCS 좌표계를 기준으로, 컨베이어 벨트의 이동량(TransMCS_CB)와 컨베이어 벨트의 회전량(RotMCS_CB)을 구할 수 있다. 또한, 컨베이어 벨트의 MCS 좌표계를 기준으로, PCS 좌표계의 이동량(TransCB_PCS)과 PCS 좌표계의 회전량(RotCB_PCS)을 구할 수 있다. 또한, 컨베이어 벨트의 PCS 좌표계 기준으로, 오브젝트의 위치(PPCS)를 구할 수 있다.6( a ) shows a case in which the robot tracks an object placed on a conveyor belt. In this case, a function block parameterized exclusively for the conveyor belt can be defined as a command of MC_TrackConveyorBelt, as shown in FIG. configurable. Specifically, based on the MCS coordinate system of the robot, the amount of movement of the conveyor belt (TransMCS_ CB ) and the amount of rotation of the conveyor belt (RotMCS_ CB ) can be obtained. In addition, based on the MCS coordinate system of the conveyor belt, the movement amount (TransCB_ PCS ) of the PCS coordinate system and the rotation amount (RotCB_ PCS ) of the PCS coordinate system can be obtained. In addition, based on the PCS coordinate system of the conveyor belt, the position of the object (P PCS ) can be obtained.

한편, 도 6(b)는 로봇이 로터리 테이블에 놓여 회전하는 물체를 트래킹하는 경우를 나타낸다. 이 경우, 로터리 테이블 전용으로 파라미터화한 펑션 블록을, 도 6(d)와 같이, MC_TrackRotaryTable의 명령어로 정의할 수 있는데, 축-그룹들 간)에 좌표계 변환의 명령어(MC_SetDynCoordTransform)를 통해 구현하여 그 인터페이스 구성할 수 있다. 구체적으로, 로봇의 MCS 좌표계 기준으로, 로터리 테이블의 이동량과 로터리 테이블의 회전량을 구할 수 있다. 또한, 로터리 테이블의 MCS 좌표계 기준으로, 그 PCS 좌표계의 이동량 및 회전량을 구할 수 있다. 또한, 로터리 테이블의 PCS 좌표계를 기준으로, 오브젝트의 위치를 구할 수 있다.On the other hand, Figure 6 (b) shows a case in which the robot is placed on a rotary table to track a rotating object. In this case, the function block parameterized exclusively for the rotary table can be defined as the command of MC_TrackRotaryTable, as shown in FIG. The interface is configurable. Specifically, the movement amount of the rotary table and the rotation amount of the rotary table can be obtained based on the MCS coordinate system of the robot. In addition, based on the MCS coordinate system of the rotary table, the movement amount and rotation amount of the PCS coordinate system can be obtained. In addition, the position of the object can be obtained based on the PCS coordinate system of the rotary table.

도 7은 특정 축에 대해 트래킹 중인 2개의 PCS 간에 Pick-and-Place(PnP)가 요구되는 상황에 대한 일 예를 나타낸다. 즉, 도 7은 로터리 테이블 및 컨베이어 벨트에서 각각 회전/이동 중인 서로 다른 팔레트(pallet) 간에, 로봇을 이용해 PnP 운전을 수행해야하는 장비를 나타낸다. 이러한 도 7의 경우는 다수개의 PCS를 가지는 복잡한 경우에 해당하며, 종래에 PLCOpen 규격에서 정의된 모션 제어 명령어만으로는 그 구현이 어려운 경우에 해당한다.7 shows an example of a situation in which Pick-and-Place (PnP) is required between two PCSs being tracked for a specific axis. That is, FIG. 7 shows equipment for performing PnP operation using a robot between different pallets that are rotating/moving on a rotary table and a conveyor belt, respectively. The case of FIG. 7 corresponds to a complex case having a plurality of PCS, and corresponds to a case in which implementation is difficult only with motion control commands defined in the conventional PLCOpen standard.

구체적으로, 도 7의 경우에 대한 운용 시나리오는 다음과 같다.Specifically, the operation scenario for the case of FIG. 7 is as follows.

<운용 시나리오>< Operation Scenario >

- 컨베이어 벨트 위에는 팔레트가 무작위의 위치와 각도로 놓인 채 컨베이어 벨트를 따라 이동함- Pallets are placed on the conveyor belt at random positions and angles and move along the conveyor belt.

- 로터리 테이블 위에는 팔레트가 부착되어 로터리 테이블과 함께 회전함- A pallet is attached to the rotary table and rotates together with the rotary table.

- 컨베이어에는 기준 위치로부터 컨베이어 벨트의 이송량을 알 수 있는 센서(로터리 엔코더)가 부착됨- A sensor (rotary encoder) is attached to the conveyor to know the conveying amount of the conveyor belt from the reference position.

- 로터리 테이블에는 기준 위치로부터 로터리 테이블의 회전량을 알 수 있는 센서(엔코더)가 부착됨- A sensor (encoder) is attached to the rotary table to know the rotation amount of the rotary table from the reference position.

- 컨베이어에는 팔레트의 유무를 감지할 수 있는 센서가 있으며, 그 센서가 감지하는 시점에 머신 비전(machine vision)을 통해, 감지 시점 기준의 팔레트 원점 좌표와 틀어진 원점의 틀어진 각도에 대한 측정이 가능함- The conveyor has a sensor that can detect the presence of pallets, and when the sensor detects, it is possible to measure the coordinates of the origin of the pallet at the time of detection and the misaligned angle of the origin through machine vision.

- 컨베이어 벨트 및 로터리 테이블의 팔레트는 정해진 간격으로 홈이 파여 있고 그 홈에는 오브젝트(가령, 쇠구슬 등)(이하, 오브젝트가 쇠구슬인 것으로 가정)가 들어 있음- Pallets of conveyor belts and rotary tables are grooved at regular intervals, and the grooves contain objects (eg, iron marbles) (hereinafter, it is assumed that the objects are iron marbles).

- 델타 로봇은 전자석을 그리퍼(gripper)에 장착하고 있고 그 전자석으로 컨베이어 벨트에서 이동 중인 팔레트의 쇠구슬을 차례로 집어서 로터리 테이블에서 회전 중인 팔레트에 쇠구슬을 옮겨 놓아야 함- Delta robot is equipped with an electromagnet on a gripper, and the electromagnet is used to pick up iron beads from a moving pallet on a conveyor belt in turn, and transfer the iron beads to a rotating pallet on a rotary table.

- 로터리 테이블은 컨베이어 벨트의 이동과 동기화되어 회전함- The rotary table rotates in synchronization with the movement of the conveyor belt.

- 로터리 테이블의 쇠구슬을 모두 옮기고 난 후, 반대로 로터리 테이블로부터 컨베이어 벨트의 빈 팔레트로 쇠구슬을 다시 차례로 옮겨야 함- After moving all the iron beads from the rotary table, on the contrary, the iron beads must be moved from the rotary table to the empty pallet on the conveyor belt again in turn.

또한, 도 7의 경우에 따른 운용 시나리오에서, 기구적 제한 조건은 다음과 같다.In addition, in the operation scenario according to the case of FIG. 7 , the mechanical limiting conditions are as follows.

<기구적 제한 조건>< Mechanical Restriction Conditions >

- 델타 로봇의 기계 원점에 대해, 컨베이어 벨트와 로터리 테이블 모두 그 기계 원점이 XY 평면 상에서 서로 다른 위치에 존재함. 가령, Z축 기준으로 델타 로봇 기계 원점에 대해 컨베이어 벨트는 20도, 로터리 테이블은 45도 틀어짐(다른 위치나 각도에서는 기구 간섭이 있음)- For the machine origin of the delta robot, both the conveyor belt and the rotary table have their machine origins at different positions on the XY plane. For example, a conveyor belt is skewed by 20 degrees and a rotary table by 45 degrees with respect to the origin of a delta robot machine along the Z axis (with instrument interference at other positions or angles)

- 머신 비전은 컨베이어의 특정 위치를 기준으로 정렬됨(제1안: 카메라가 컨베이어에 부착, 제2안: 컨베이어에 간섭이 심할 경우 로봇의 그리퍼에 부착)- Machine vision is aligned based on a specific position on the conveyor (1st eye: the camera is attached to the conveyor, 2nd eye: attached to the robot's gripper if the conveyor interferes too much)

- 컨베이어 벨트를 지나는 팔레트의 쇠구슬은 로터리 테이블이 특정 각도 범위에서 모두 옮기거나 담아야 함(이외의 각도는 로터리 테이블 쪽 기구에 간섭이 있음)- The rotary table must move or contain all the iron beads on the pallet passing the conveyor belt within a certain angle range (other angles interfere with the mechanism on the rotary table side)

- 컨베이어 벨트의 이송 속도가 빨라지면 로터리 테이블의 동기 구간의 속도도 함께 빨라져야 함(물류 충돌 방지 가정)- When the conveying speed of the conveyor belt increases, the speed of the synchronous section of the rotary table must also increase (assuming logistics collision avoidance)

한편, 상술한 운용 시나리오와 기구적 제한 조건을 모두 만족시키기 위한 방법은 다음과 같다.On the other hand, a method for satisfying both the above-described operation scenario and the mechanical constraint condition is as follows.

<운용 시나리오 및 기구적 제한 조건의 만족을 위한 방법><Method for Satisfying Operational Scenarios and Organizational Limitations>

- 컨베이어 이송 축의 속도 변화에 따른 로터리 테이블의 동기 회전 : - Synchronous rotation of the rotary table according to the speed change of the conveying axis of the conveyor:

축 간의 동기화에 관련된 명령어(MC_CamIn)를 이용함으로써, 컨베이어 축(마스터)에 따라 설정된 CAM 프로파일 대로 로터리 테이블 회전 축(슬레이브)에 대한 동기화 운전 가능Synchronization operation for the rotary table rotation axis (slave) is possible according to the CAM profile set according to the conveyor axis (master) by using the command (MC_CamIn) related to synchronization between axes

- 컨베이어 벨트 위에서 이동하는 팔레트 트래킹(tracking) : - Tracking of moving pallets on a conveyor belt:

축-그룹 내에서의 좌표계 변환에 관련된 명령어(MC_SetCoordinateTransform)를 이용하여 컨베이어에 놓인 팔레트에 대해 PCS 좌표계를 설정한 후, 로봇이 컨베이어 벨트 위에 놓인 물체를 트래킹하는 명령어(MC_TrackConveyorBelt)를 이용함으로써 컨베이어 이동 축에 대한 트래킹 가능After setting the PCS coordinate system for the pallet placed on the conveyor using the command (MC_SetCoordinateTransform) related to the coordinate system transformation within the axis-group, the robot moves the conveyor movement axis by using the command (MC_TrackConveyorBelt) to track the object placed on the conveyor belt. can be tracked for

- 로터리 테이블 위에서 회전하는 팔레트 트래킹(tracking) : - Tracking of rotating pallets on a rotary table:

축-그룹 내에서의 좌표계 변환에 관련된 명령어(MC_SetCoordinateTransform)를 이용하여 로터리 테이블에 놓인 팔레트에 대해 PCS 좌표계를 설정 후, 로봇이 로터리 테이블에 놓여 회전하는 물체를 트래킹하는 명령어(MC_TrackRotaryTable)를 이용함으로써 로터리 테이블의 회전 축에 대한 트래킹 가능 After setting the PCS coordinate system for the pallet placed on the rotary table using the command (MC_SetCoordinateTransform) related to the coordinate system transformation within the axis-group, the robot is placed on the rotary table to track the rotating object by using the command ( MC_TrackRotaryTable). Can be tracked on the axis of rotation of the table

- 컨베이어 벨트의 팔레트와 로터리 테이블의 팔레트 간에 Pick and Place(PnP) : 기존의 PLCOpen 규격 상으로는 이러한 PnP를 위한 명령어가 별도로 존재하지 않음(즉, 종래 기술의 문제점이 발생하는 경우에 해당)- Pick and Place (PnP) between the pallet of the conveyor belt and the pallet of the rotary table: According to the existing PLCOpen standard, there is no separate command for this PnP (that is, when problems of the prior art occur)

즉, 컨베이어 벨트의 팔레트와 로터리 테이블의 팔레트 간에 PnP와 관련하여, 1개의 로봇 MCS에서 2개의 서로 다른 PCS 좌표계를 동시에 운용하는 것은 PLCOpen 규격에서 별도로 정의되지 않았다. 즉, 현재의 PLCOpen 규격 상, 다수의 MCS 좌표계 간에서도 오직 1개의 PCS 좌표계만을 그 타겟으로 트래킹할 수 있을 뿐이다.In other words, in relation to PnP between pallets on conveyor belts and pallets on rotary tables, simultaneous operation of two different PCS coordinate systems in one robot MCS is not separately defined in the PLCOpen standard. That is, according to the current PLCOpen standard, only one PCS coordinate system can be tracked as a target even between multiple MCS coordinate systems.

이에 따라, 이하에서는 특정 축 혹은 축-그룹에 트래킹이 진행 중인 서로 다른 다수 개의 PCS 좌표계 간에 로봇의 PnP 운전이 가능하게 하는 기술에 대해 제시하고자 한다. 또한, PnP 운전 중에 외부 환경의 이벤트 입력에 동기 가능하고 이벤트의 시그널링이 가능하는 기술에 대해 제시하고자 한다. 또한, PLCOpen 규격에 정의된 명령어를 기본 빌딩 블록으로 활용하여 라이브러리 형태의 명령어(User defined function block)을 구성하는 기술에 대해 제시하고자 한다.Accordingly, the following will present a technology that enables PnP operation of a robot between a plurality of different PCS coordinate systems in which tracking is in progress on a specific axis or axis-group. In addition, it is intended to present a technology capable of synchronizing an event input in an external environment and signaling an event during PnP operation. In addition, we would like to present a technique for constructing a library-type command (User defined function block) by using the commands defined in the PLCOpen standard as basic building blocks.

도 8은 Pick and Place를 위한 아치 형태의 모션에 대한 정의를 나타내고, 도 9은 스테이트 머신(state machine)의 구성을 나타낸다. 또한, 도 10는 운전 경로 티칭(teaching) 명령어의 인터페이스 구성을 나타내며, 도 11은 경로 운전 명령어의 인터페이스 구성을 나타낸다.8 shows a definition of an arc-shaped motion for Pick and Place, and FIG. 9 shows a configuration of a state machine. Also, FIG. 10 shows an interface configuration of a driving route teaching command, and FIG. 11 shows an interface configuration of a route driving command.

이러한 도 8 내지 도 11에 따른 제어는 외부 장치(100) 또는 모션 제어기(200)를 통해 수행될 수 있다. 가령, 도 8에 따른 경로 설정 및 도 10의 운전 경로 티칭 명령어에 따른 제어는 경로 설정부(210)에 의해 수행될 수 있고, 도 9의 S101 및 S102에 따른 제어는 좌표계 설정부(220)에 의해 수행될 수 있으며, 도 11의 경로 운전 명령어에 따른 제어와 도 9의 S103 내지 S105에 따른 제어는 운전 제어부(230)에 의해 수행될 수 있다.The control according to FIGS. 8 to 11 may be performed through the external device 100 or the motion controller 200 . For example, the route setting according to FIG. 8 and control according to the driving route teaching command of FIG. 10 may be performed by the route setting unit 210, and the control according to S101 and S102 of FIG. 9 may be performed by the coordinate system setting unit 220. may be performed, and the control according to the route driving command of FIG. 11 and the control according to S103 to S105 of FIG. 9 may be performed by the driving controller 230 .

도 10의 운전 경로 티칭 명령어는 운전 경로를 설정하기 위한 명령어로서, 그 입력/출력(Input/Output)에 대한 상세 내용은 다음의 표 1과 같다.The driving path teaching command of FIG. 10 is a command for setting a driving path, and details of the input/output are shown in Table 1 below.

Input/OutputInput/Output LS_TRobotPathCfgLS_TRobotPathCfg PathCfgPathCfg 모든 구성 데이터(all configuration data)를 펑션 블록에 저장Store all configuration data in the function block InputInput BOOLBOOL EnableEnable 입력 데이터는 높은 수준(high level)에서 지속적으로(continuously) 업데이트됨Input data is continuously updated at a high level LS_TRobotCoordCfgLS_TRobotCoordCfg CoordCfgCoordCfg 좌표계 구성 데이터(Coordinate system configuration data)Coordinate system configuration data UINTUINT PathTypePathType 지점 간 이동(Point-to-Point movement):간헐적인 속도(intermittent speed)로 경로에 인접 (1: LinearTo, 2: ArchTo, 3: CircularEnd)
지점 대 지점(Point-via-Point) 이동:
가속/감속 속도 프로파일이 없는 경로 (4: LinearBy, 5: CircularMid)
Point-to-Point movement: Adjacent to the path at intermittent speed (1: LinearTo, 2: ArchTo, 3: CircularEnd)
Point-via-Point movement:
Path without acceleration/deceleration velocity profile (4: LinearBy, 5: CircularMid)
LREAL[0..2]LREAL[0..2] MovePosXYZMovePosXYZ 경로(path)를 위한 타켓 [X, Y, Z]의 위치Position of target [X, Y, Z] for path LREAL[0..2]LREAL[0..2] MovePosABCMovePosABC 경로를 위한 타켓 [A, B, C]의 위치Position of target [A, B, C] for path LREALLREAL MoveVelocityMove Velocity 경로의 속도 설정Set the speed of the route UINTUINT TrajLinearTypeTrajLinearType 선형 경로의 속도 프로파일 유형(0: (0: Trapezoid, 1: Sine1, 2: Sine2):저부하(low load) 및 고속용(high speed) Sine1;
고부하(high load) 및 중속용(medium speed) Sine2
Types of velocity profiles for linear paths (0: (0: Trapezoid, 1: Sine1, 2: Sine2): Sine1 for low load and high speed;
Sine2 for high load and medium speed
LREAL[0..2]LREAL[0..2] TrajCircParTrajCircPar [가속, 감속, 저크(Jerk)] 순으로, 순환 경로의 속도 프로파일 파라미터In the order of [Acceleration, Deceleration, Jerk], the velocity profile parameters of the circulation path LREALLREAL ArchUpHeightArchUpHeight 아치 형태(ArchTo) 경로의 상부 거리(hup) 설정Set the upper distance (h up ) of the ArchTo path LREALLREAL ArchDownHeightArchDownHeight 아치 형태(ArchTo) 경로의 하부 거리(hdown) 설정Set the lower distance (h down ) of the ArchTo path LREALLREAL ArchBlendRatioArchBlendRatio 아치 형태(ArchTo) 경로의 혼합 비율(blending ratio) 설정(0.0 ~ 1.0)Set the blending ratio of the ArchTo path (0.0 to 1.0) UINTUINT InSignalNumInSignalNum 경로가 시작될 때 신호 보낼 고유 이벤트 번호의 설정(0: 없음, 1~: 이벤트 번호)Setting of a unique event number to be signaled when the route starts (0: none, 1 to: event number) UINTUINT OutSignalNumOutSignalNum 경로가 완료될 때 신호 보낼 고유 이벤트 번호의 설정(0: 없음, 1~: 이벤트 번호)Setting of a unique event number to be signaled when a route is completed (0: none, 1 to: event number) UINTUINT InWaitNumInWaitNum 경로가 시작될 때 기다려야할 고유 이벤트 번호의 설정(0: 없음, 1~: 이벤트 번호)
또한, 펑션 블록은 이벤트 번호가 0인지 확인하며, 이 경우 할당된 이벤트가 없음을 의미할 수 있음
Setting of a unique event number to wait when a route starts (0: none, 1 to: event number)
In addition, the function block checks if the event number is 0, which may mean that there is no assigned event.
UINTUINT OutWaitNumOutWaitNum 경로 완료(path is completed) 때 기다려야할 고유 이벤트 번호의 설정(0: 없음, 1~: 이벤트 번호)
또한, 펑션 블록은 이벤트 번호가 0인지 확인하며, 이 경우 할당된 이벤트가 없음을 의미할 수 있음
Setting a unique event number to wait when path is completed (0: none, 1 to: event number)
In addition, the function block checks if the event number is 0, which may mean that there is no assigned event.
LREALLREAL EffectorForceEffectorForce 경로 시작 부분의 end-effector에서 액추에이터의 필요한 토크 또는 On/Off 상태를 나타내는 힘을 설정하고, 이러한 설정은 경로 끝까지 유지됨(end of path)At the end-effector at the beginning of the path, we set the required torque of the actuator or the force that represents the on/off state, and this setting remains at the end of the path. OutputOutput BOOLBOOL ValidValid 유효한 출력을 사용할 수 있으면 참(true)true if valid output is available BusyBusy BOOLBOOL 펑션 블록이 완료되지 않았음Function block not complete ErrorError BOOLBOOL 펑션 블록 내에서 오류가 발생했음을 알림Notifies that an error has occurred within a function block ErrorIDErrorID WORDWORD 오류 식별자(Error identification)Error identification

또한, 도 11의 경로 운전 명령어는 설정된 경로를 따른 운전을 수행하기 위한 명령어로서, 그 입력/출력(Input/Output)에 대한 내용은 다음의 표 2와 같다.In addition, the route driving command of FIG. 11 is a command for performing driving along a set route, and the contents of the input/output are shown in Table 2 below.

Input/OutputInput/Output UINTUINT AxesGroupAxesGroup 축 그룹(1 ~ 16)을 참조See axis group (1 to 16) UINTUINT NextPathIdxNextPathIdx 펑션 블록이 현재 경로를 실행한 후, PathCfg 배열의 현재 경로 인덱스는 StartPathIdx 및 EndPathIdx에 비해 증가 또는 감소할 것임After the function block executes the current path, the current path index in the PathCfg array will increase or decrease compared to StartPathIdx and EndPathIdx. InputInput BOOLBOOL ExecuteExecute StartPathIdx와 EndPathIdx 사이의 PathCfg 배열에 저장된 학습된 경로를 순차적으로 실행함Sequentially executes the learned paths stored in the PathCfg array between StartPathIdx and EndPathIdx LS_TRobotPathCfgLS_TRobotPathCfg PathCfgPathCfg PathCfg 배열에서 인덱싱된 경로 구성 데이터Path configuration data indexed in PathCfg array BOOLBOOL EnableWaitNumEnableWaitNum 경로의 시작 및 완료 세션에서 발생한 이벤트 대기를 활성화함Enables waiting for events that occur in the path's start and finish sessions BOOLBOOL EnableSetObjEnableSetObj 경로 시작 시의 오브젝트(object) 위치를 업데이트하려면 참(true)으로 설정해야 함Must be set to true to update object position at path start UINTUINT InWaitNumInWaitNum 경로 이동을 시작하기 위해 일치해야 하는 이벤트 번호Event numbers that must match to start traversing the route UINTUINT OutWaitNumOutWaitNum 경로 이동을 완료하기 위한 이벤트 번호Event number to complete route movement LREAL[0..5]LREAL[0..5] ObjectPositionObjectPosition EnableSetObj가 참(true)이면, 현재의 오브젝트 위치를 새로 측정된 위치인 ObjectPosition[X, Y, Z, A, B, C]로 변경할 수 있음If EnableSetObj is true, the current object position can be changed to the newly measured position ObjectPosition[X, Y, Z, A, B, C] BOOLBOOL EnableTestStepEnableTestStep 경로를 단계별로 확인하기 위해, 지점 별(Point-By-Point) 이동을 지점 간(Point-To-Point) 이동으로 변환하려면 참(true)으로 설정해야 함Must be set to true to convert point-by-point movement to point-to-point movement to step through path LREALLREAL VelOverrFactorVelOverFactor 현재 운전 경로에 대해 설정된 속도를 오버라이드(override)함(0.0: 제로 속도, 0.5: 절반 속도, 1.0: 동일한 속도)Overrides the speed set for the current driving route (0.0: zero speed, 0.5: half speed, 1.0: same speed) UINTUINT StartPathIdxStartPathIdx 시작 단계를 PathCfg 배열의 인덱스로 설정NextPathIdx는 초기에 StartPathIdx 값을 가져야 함Set start step to index of PathCfg arrayNextPathIdx must initially have StartPathIdx value UINTUINT EndPathIdxEndPathIdx 종료 단계를 PathCfg 배열의 인덱스로 설정함펑션 블록은 EndPathIdx 값에 비해 NextPathIdx 값을 증가 또는 감소시킴Set the end step to the index of the PathCfg array. Function block increases or decreases the NextPathIdx value compared to the EndPathIdx value. BOOLBOOL StopPathRunStopPathRun 1: 현재 경로를 중지함0: NextPathIdx로 표시된 경로로부터 펑션 블록을 다시 시작할 때까지 실행 트리거를 기다림1: Stop the current path 0: Wait for the execution trigger to restart the function block from the path marked by NextPathIdx OutputOutput BOOLBOOL DoneDone 구성된 전체 경로 단계가 완료됨Configured Full Path Step Completed BOOLBOOL BusyBusy The function block is processing
펑션 블록이 처리 중에 있음
The function block is processing
Function block is being processed
BOOLBOOL ActiveActive 펑션 블록이 축 그룹을 제어하고 있음을 나타냄Indicates that the function block is controlling the axis group BOOLBOOL ErrorError 펑션 블록 내에서 오류가 발생했음을 알림Notifies that an error has occurred within a function block BOOLBOOL CommandAbortedCommandAborted Command is aborted by another command명령이 다른 명령에 의해 중단되었음Command is aborted by another command WORDWORD ErrorIDErrorID 오류 식별자(Error identification)Error identification UINTUINT SignalNumSignalNum Signals event number both in the initiation of the path and in the completion of the path경로 시작(initiation of path) 및 경로 완료(completion of path) 시의 모든 경우에 이벤트 번호를 알림Signals event number both in the initiation of the path and in the completion of the path LREALLREAL EffectorForceEffectorForce 경로의 시작 부분에 출력하고 다른 펑션 블록이 이를 0으로 변경할 때까지 유지함Outputs it at the beginning of the path and holds it until another function block changes it to 0.

먼저, PnP 모션의 구체적인 경로에 대한 정의가 필요하다. 즉, PnP 모션의 경로는 다수의 지점을 포함할 수 있는데, 그 시작 지점과 그 마지막 지점은 서로 다른 기계 장치(즉, 컨베이어 벨트 및 로터리 테이블)에 따른 서로 다른 공작물 좌표계(즉, 컨베이어 벨트에 따른 PCS 및 로터리 테이블에 따른 PCS)의 지점일 수 있다.도 8를 참조하면, PnP 모션의 경로는 아치 형태로 정의될 수 있는데, 상향 방향으로 이동하는 제1 모션(그 길이는 hup)과, 하향 방향으로 이동하는 제3 모션(그 길이는 hdown)과, 제1 모션과 제3 모션 사이에서 일측 방향으로 이동하는 제2 모션(그 길이는 l)을 각각 포함할 수 있다. 또한, PnP 모션의 경로는, 제1 및 제2 모션의 사이와, 제2 및 제3 모션의 사이에서, 급격한 방향 변경에 따른 충격을 최소화하기 위해, 만곡 형태로 이동하는 모션(이하, 각각 “제1 및 제2 만곡 모션”일 지칭함)이 더 포함하는 것이 바람직할 수 있다.First, it is necessary to define a specific path of PnP motion. That is, the path of a PnP motion may include multiple points, the starting point and the ending point of which are in different workpiece coordinate systems (i.e., along the conveyor belt) according to different mechanical devices (i.e., conveyor belts and rotary tables). It may be a point of the PCS and the PCS according to the rotary table). Referring to FIG. 8 , the path of the PnP motion may be defined in the form of an arc, and a first motion (the length of which is h up ) moving in an upward direction; A third motion (the length of which is h down ) moving in a downward direction and a second motion (the length of which is l) moving in one direction between the first motion and the third motion may be included, respectively. In addition, the path of the PnP motion is, between the first and second motions and between the second and third motions, a motion that moves in a curved shape in order to minimize the impact caused by a sudden change of direction (hereinafter referred to as “each”). It may be desirable to further include "first and second curved motions").

즉, 제1 및 제2 모션의 사이에서, 제1 만곡 모션은 hup 및 l에서 각각 d1 만큼의 거리(상부 방향 및 일측 방향의 거리)에 대해 특정 곡률의 만곡 형태로 이동할 수 있다. 또한, 제2 및 제3 모션의 사이에서, 제2 만곡 모션은 hdown 및 l에서 각각 d2 만큼의 거리(일측 방향 및 하부 방향의 거리)에 대해 특정 곡률의 만곡 형태로 이동할 수 있다.That is, between the first and second motions, the first curved motion may move in a curved form of a specific curvature for a distance of d 1 in h up and l, respectively (distance in the upper direction and one direction). Also, between the second and third motions, the second curved motion may move in a curved form of a specific curvature for a distance of d 2 (a distance in a lateral direction and a downward direction) in h down and l, respectively.

즉, 도 8의 PnP의 경로는, 제1 모션의 시작점(hup의 시작점)에 대한 정보인 P0(x0, y0, z0)와, 제1 모션의 마지막점(hup의 마지막점)에 대한 정보인 P1(x0, y0, z0+hup)와, 제1 및 제2 만곡 모션에 대한 정보와, 제3 모션의 시작점(hdown의 시작점)에 대한 정보인 P2(x1, y1, z1+hdown)와, 제3 모션의 마지막점(hdown의 마지막점)에 대한 정보인 P3(x1, y1, z1)를 각각 포함하는 것으로, 파라미터화 할 수 있다. 이때, 제1 모션의 마지막점(hup의 마지막점)에 대한 정보인 P1(x0, y0, z0+hup)는 제2 모션의 시작점(l의 시작점)에 대한 정보에 해당하며, 제3 모션의 시작점(hdown의 시작점)에 대한 정보인 P2(x1, y1, z1+hdown)은 제2 모션의 마지막점(l의 마지막점)에 대한 정보에 해당한다. 즉, 어느 한 PnP 경로에서, P0이 그 경로의 시작 지점에 해당하고, P3이 그 경로의 마지막 지점에 해당한다.That is, the PnP path of FIG. 8 includes P 0 (x 0 , y 0 , z 0 ) that is information on the start point of the first motion (the start point of h up ), and the last point of the first motion (the end of h up ). P 1 (x 0 , y 0 , z 0 +h up ), which is information about the point), information about the first and second curved motions, and information about the start point of the third motion (the starting point of h down ) P 2 (x 1 , y 1 , z 1 +h down ) and P 3 (x 1 , y 1 , z 1 ), which is information about the last point of the third motion (the last point of h down ), respectively As such, it can be parameterized. At this time, P 1 (x 0 , y 0 , z 0 +h up ), which is information about the last point of the first motion (the last point of h up ), corresponds to information about the starting point (start point of l) of the second motion. and P 2 (x 1 , y 1 , z 1 +h down ), which is information on the start point of the third motion (the start point of h down ), corresponds to the information on the last point (the last point of l) of the second motion. do. That is, in one PnP path, P 0 corresponds to the starting point of the path, and P 3 corresponds to the last point of the path.

특히, 제1 및 제2 만곡 모션에 대한 정보를 파악하기 위해, 하기의 식(4) 및 식(5)를 이용할 수 있다.In particular, in order to obtain information on the first and second curved motions, the following Equations (4) and (5) may be used.

Figure pat00008
(4)
Figure pat00008
(4)

Figure pat00009
(5)
Figure pat00009
(5)

이때, min(a, b)는 a 및 b 중에 더 작은(최소) 길이 값을 나타내며, ArchBlendRatio는 그 최소 길이 값에 대한 비율 값(0.0 ~ 1.0)을 나타낸다. 즉, d1 및 d2는 해당 최소 길이 값에서 특정 선택된 비율만큼의 길이를 가진다.At this time, min(a, b) represents a smaller (minimum) length value among a and b, and ArchBlendRatio represents a ratio value (0.0 ~ 1.0) to the minimum length value. That is, d 1 and d 2 have a length corresponding to a specific selected ratio from the corresponding minimum length value.

즉, PnP 운전을 위해, 도 7에 따른 모션 경로, 즉 hup, l 및 hdown에 따른 3개의 모션 경로와, 이들의 연결부에서의 식(4)와 식(5)의 곡률 방법에 따른 2개의 만곡 모션 경로에 대해 파라미터화 하여 이를 하나의 경로로 설정할 수 있다. 이러한 파라미터는 도 10의 운전 경로 티칭 명령어에 입력(티칭)될 수 있으며, 그 입력 결과, 도 11의 경로 운전 명령어에 따른 실제 운전 수행 시에 실시간 연산을 통해 해당 경로가 생성될 수 있다.That is, for PnP operation, three motion paths according to the motion path according to FIG. 7 , i.e. h up , l and h down , and 2 according to the curvature method of equations (4) and (5) at their junctions You can parameterize the curved motion paths and set them as one path. These parameters may be input (teaching) to the driving route teaching command of FIG. 10 , and as a result of the input, a corresponding route may be generated through real-time operation when an actual driving is performed according to the route driving command of FIG. 11 .

도 9의 운전 경로 티칭 명령어에서는, InWait 이벤트와, 도 7의 PnP 모션을 위한 복합적 형태의 경로를 포함하는 운전 경로(해당 경로는 Discrete, Continuous, Synchronized 특징을 가질 수 있음)와, OutWait 이벤트 번호를 각각 입력(티칭) 받을 수 있다.In the driving route teaching command of FIG. 9, the InWait event, the driving route including the complex route for the PnP motion of FIG. 7 (the corresponding route may have Discrete, Continuous, and Synchronized characteristics), and the OutWait event number Each input (teaching) can be received.

도 9에 따른 스테이트 머신은 InSignal을 출력하면서 초기화를 수행하고(S101), MCS/PCS 좌표계 설정과 특정 축/축-그룹에 동기화되는 트래킹 설정을 함께 수행한 뒤(S102), 정해진 경로(path)의 운전을 수행하며(S103), 이후 OutSignal 이벤트를 출력하면서 하나의 경로에 대한 운전을 끝내면서(S104), 경로 인덱스 값을 업데이트한다(S105). 특히, 스테이트 머신은 S102 수행 후 InWait 이벤트가 수신되는 경우에만 S103를 수행하며, S104 이후에 OutWait 이벤트를 출력한다. 이때, InWait 이벤트는 이전 스테이트 머신, 센서 등의 동작에 따라 발생될 수 있다. 이와 같은 스테이트 머신의 동작은 모든 경로(다수의 아치 형태 경로, 즉 다수의 도 7에 따른 경로)에 대해 그 경로 마다 수행될 수 있다. 즉, 하나의 스테이트 머신의 동작이 끝다면 다음의 스테이트 머신의 동작이 수행될 수 있다. 또한, 오브젝트인 쇠구슬의 개수만큼 다수의 스테이트 머신의 동작(즉, 각 아치 형태 경로의 생성 및 경로 운전)이 수행될 수 있다.The state machine according to FIG. 9 performs initialization while outputting InSignal (S101), and after performing MCS/PCS coordinate system setting and tracking setting synchronized to a specific axis/axis-group (S102), a determined path is performed (S103), and then, while outputting an OutSignal event, driving for one route is finished (S104), and updating the route index value (S105). In particular, the state machine performs S103 only when an InWait event is received after performing S102, and outputs an OutWait event after S104. In this case, the InWait event may be generated according to an operation of a previous state machine, a sensor, or the like. Such an operation of the state machine may be performed for all paths (a plurality of arc-shaped paths, that is, a plurality of paths according to FIG. 7 ) for each path. That is, when the operation of one state machine is finished, the operation of the next state machine may be performed. In addition, operations of a plurality of state machines (ie, generation of each arch-shaped path and path operation) may be performed as many as the number of iron beads that are objects.

특히, S102는 좌표계 설정(PCS Setting) 단계와 트래킹 설정(Tracking Setting) 단계를 포함한다.In particular, S102 includes a coordinate system setting (PCS Setting) step and a tracking setting (Tracking Setting) step.

이때, 좌표계 설정 단계는 경로 마지막 지점에 위치하는 기계 장치의 MCS 좌표계를 기준으로, 경로의 처음 지점에서 해당 경로의 각 지점에 대한 PCS 좌표계를 설정하는 단계이다.In this case, the step of setting the coordinate system is a step of setting the PCS coordinate system for each point of the path at the first point of the path based on the MCS coordinate system of the mechanical device located at the last point of the path.

구체적으로, 도 7의 아치 형태 경로에 대한 좌표계 설정 단계에 대해 설명하도록 한다. 즉, 좌표계 설정 단계에서, 아치 형태 경로의 시작 지점인 P0은 로봇이 제1 기계 장치에서 쇠구슬을 피킹(picking)하는 지점이며, 그 지점이 로봇의 현재 위치 값으로 설정된다. 또한, 아치 형태 경로의 종료(완료) 지점인 P3은 로봇이 제2 기계 장치로 쇠구슬을 플레이싱(placing)하는 지점이다. 이에 따라, 좌표계 설정 단계에서는 이러한 P3이 위치하는 부분인 제2 기계 장치의 MCS 좌표계를 기준으로, 해당 아치 형태 경로의 각 지점(즉, P0, P3와 제1 및 제2 만곡 모션의 지점)에 대한 PCS 좌표계를 설정한다.Specifically, the step of setting the coordinate system for the arc-shaped path of FIG. 7 will be described. That is, in the coordinate system setting step, P 0 , which is the starting point of the arcuate path, is a point at which the robot picks the iron bead in the first mechanical device, and the point is set as the current position value of the robot. In addition, P 3 , which is the end (completed) point of the arcuate path, is a point where the robot places the iron ball with the second mechanical device. Accordingly, in the coordinate system setting step, based on the MCS coordinate system of the second mechanical device, which is the part where P 3 is located, each point of the corresponding arcuate path (ie, P 0 , P 3 , and the first and second curved motions) Set the PCS coordinate system for the point).

가령, 컨베이어 벨트에서 로터리 테이블로 PnP를 수행할 경우, 로봇이 컨베이어 벨트의 쇠구슬을 피킹하는 순간의 지점이 P0이며, 로봇이 로터리 테이블에 쇠구슬을 플레이싱하는 순간의 지점이 P3이다. 즉, 이러한 P0 및 P3를 시작 지점 및 마지막 지점으로 포함하는 PnP 경로가 하나의 운전 경로(이하, “제1 운전 경로”라 지칭함)로 설정되고, 그 제1 운전 경로에 대해 로터리 테이블의 MCS 좌표계를 기준으로 한 PCS 좌표계가 설정된다. 물론, 컨베이어 벨트의 팔레트에 다수의 쇠구슬이 있는 경우, 다수의 구슬에 대한 PnP를 위한, 제1 운전 경로 및 그 PCS 좌표계가 각각 서로 다른 스테이트 머신의 수행 시에 설정될 수 있다. 이때, 각 쇠구슬의 위치가 다르므로, 이들 제1 운전 경로에서 그 P0 및 P3의 위치도 다를 수 있다.For example, when performing PnP from a conveyor belt to a rotary table, the point at which the robot picks the iron beads from the conveyor belt is P 0 , and the point at the moment when the robot places the iron beads on the rotary table is P 3 . . That is, the PnP route including these P 0 and P 3 as the starting point and the last point is set as one driving route (hereinafter referred to as the “first driving route”), and for the first driving route, the The PCS coordinate system based on the MCS coordinate system is set. Of course, when there are a plurality of iron beads on the pallet of the conveyor belt, the first driving path and its PCS coordinate system for PnP for the plurality of beads may be set at the time of execution of different state machines, respectively. At this time, since the positions of the iron beads are different, the positions of P 0 and P 3 in these first driving paths may also be different.

반대로, 로터리 테이블에서 컨베이어 벨트로 PnP를 수행할 경우, 로봇이 로터리 테이블의 쇠구슬을 피킹하는 순간의 지점이 P0이며, 로봇이 컨베이어 벨트에 쇠구슬을 플레이싱하는 순간의 지점이 P3이다. 즉, 이러한 P0 및 P3를 시작 지점 및 마지막 지점으로 포함하는 PnP 경로가 하나의 운전 경로(이하, “제2 운전 경로”라 지칭함)로 설정되고, 그 제2 운전 경로에 대해 컨베이어 벨트의 MCS 좌표계를 기준으로 한 PCS 좌표계가 설정된다. 물론, 로터리 테이블의 팔레트에 다수의 쇠구슬이 있는 경우, 다수의 구슬에 대한 PnP를 위한, 제2 운전 경로 및 그 PCS 좌표계가 각각 서로 다른 스테이트 머신의 수행 시에 설정될 수 있다. 이때, 각 쇠구슬의 위치가 다르므로, 이들 제2 운전 경로에서 그 P0 및 P3의 위치도 다를 수 있다.Conversely, when performing PnP from the rotary table to the conveyor belt, the point at the moment when the robot picks the iron beads from the rotary table is P 0 , and the point at the moment when the robot places the iron beads on the conveyor belt is P 3 . . That is, the PnP path including these P 0 and P 3 as the starting point and the last point is set as one driving path (hereinafter, referred to as a “second driving path”), and for the second driving path, the The PCS coordinate system based on the MCS coordinate system is set. Of course, when there are a plurality of iron marbles on the pallet of the rotary table, the second driving path and the PCS coordinate system for PnP for the plurality of marbles may be set when different state machines are executed. In this case, since the positions of the iron beads are different, the positions of P 0 and P 3 in these second driving paths may also be different.

한편, 트래킹 설정 단계는 좌표계 설정 단계에서 설정된 경로의 PCS 좌표계에 대해 기계 장치의 움직임을 반영하도록 설정하는 단계이다.On the other hand, the tracking setting step is a step of setting to reflect the movement of the mechanical device with respect to the PCS coordinate system of the path set in the coordinate system setting step.

즉, 도 7의 아치 형태 경로에 대한 좌표계 설정 단계의 경우, P0와 P3 사이의 아치 형태 경로에 대한 PCS 좌표계의 설정에 불과하며, 그 경로에 대한 설정과 실제 운전 간의 시간 동안에 P3에 위치한 제2 기계 장치는 계속 움직일 수 있으므로, 이러한 움직임에 대한 반영이 필요하며, 이를 트래킹 설정 단계에서 수행한다.That is, in the case of the step of setting the coordinate system for the arch-shaped path of FIG. 7, it is only the setting of the PCS coordinate system for the arch-shaped path between P 0 and P 3 , and during the time between the setting for the path and the actual operation, P 3 Since the located second mechanical device can continue to move, it is necessary to reflect this movement, and this is performed in the tracking setting step.

가령, 컨베이어 벨트에서 로터리 테이블로 PnP를 수행할 경우, 좌표계 설정 단계에서 그 아치 형태 경로(즉, 어느 한 제1 운전 경로)에 대한 PCS 좌표계가 설정되며, 그 설정된 PCS 좌표계에 대해 트래킹 설정 단계에서 마지막 지점의 기계 장치(로터리 테이블)의 움직임에 대한 반영이 설정된다. 이때, 하나의 스테이트 머신에서는 하나의 제1 운전 경로에 대해, PCS 좌표계 설정 및 트래킹 설정을 수행한다.For example, when performing PnP from a conveyor belt to a rotary table, the PCS coordinate system for the arch-shaped path (that is, any first driving path) is set in the coordinate system setting stage, and the tracking setting stage for the set PCS coordinate system The reflection of the movement of the mechanical device (rotary table) of the last point is set. In this case, one state machine performs PCS coordinate system setting and tracking setting for one first driving path.

즉, 각 제1 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정은 서로 다른 스테이트 머신의 동작 시에 하나씩 수행될 수 있다. 즉, 컨베이어 벨트의 어느 한 쇠구슬에 대한 PnP를 위해, 하나의 스테이트 머신이 동작하면서, 어느 한 제1 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정이 차례로 수행된다. 이후, 컨베이어 벨트의 다른 한 쇠구슬에 대한 PnP를 위해, 다른 스테이트 머신이 동작하면서, 다른 한 제1 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정이 차례로 수행된다. 이러한 설정은 컨베이어 벨트의 쇠구슬들이 로터리 테이블로 모두 PnP 이동될 때까지 반복될 수 있다.That is, each of the first driving route setting, the PCS coordinate system setting, and the tracking setting may be performed one by one when different state machines are operated. That is, for PnP for any one metal ball of the conveyor belt, while one state machine is operating, any one first driving route setting, the PCS coordinate system setting, and tracking setting are sequentially performed. After that, for PnP of the other metal bead of the conveyor belt, while the other state machine is operating, the other first driving route setting, the PCS coordinate system setting, and the tracking setting are sequentially performed. This setting can be repeated until all the iron beads of the conveyor belt are PnP moved to the rotary table.

반대로, 로터리 테이블에서 컨베이어 벨트로 PnP를 수행할 경우, 좌표계 설정 단계에서 그 아치 형태 경로(즉, 어느 한 제2 운전 경로)에 대한 PCS 좌표계가 설정되며, 그 설정된 PCS 좌표계에 대해 트래킹 설정 단계에서 마지막 지점의 기계 장치(컨베이터 벨트)의 움직임에 대한 반영이 설정된다. 이때, 하나의 스테이트 머신에서는 하나의 제2 운전 경로에 대해, PCS 좌표계 설정 및 트래킹 설정을 수행한다.Conversely, when performing PnP from a rotary table to a conveyor belt, the PCS coordinate system for the arch-shaped path (that is, any one of the second driving paths) is set in the coordinate system setting stage, and the tracking setting stage for the set PCS coordinate system The reflection of the movement of the mechanical device (conveyor belt) of the last point is set. In this case, one state machine performs PCS coordinate system setting and tracking setting for one second driving path.

즉, 각 제2 운전 경로 설정, PCS 좌표계 설정 및 트래킹 설정은 서로 다른 스테이트 머신의 동작 시에 하나씩 수행될 수 있다. 즉, 로터리 테이블의 어느 한 쇠구슬에 대한 PnP를 위해, 하나의 스테이트 머신이 동작하면서, 어느 한 제2 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정이 차례로 수행된다. 이후, 로터리 테이블의 다른 한 쇠구슬에 대한 PnP를 위해, 다른 스테이트 머신이 동작하면서, 다른 한 제2 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정이 차례로 수행된다. 이러한 설정은 로터리 테이블의 쇠구슬이 컨베이어 벨트로 모두 PnP 이동될 때까지 반복될 수 있다.That is, each of the second driving route setting, the PCS coordinate system setting, and the tracking setting may be performed one by one when different state machines are operated. That is, for PnP for any one metal ball of the rotary table, while one state machine is operating, any one second driving route setting, the PCS coordinate system setting, and the tracking setting are sequentially performed. Thereafter, for PnP of the other metal ball of the rotary table, while the other state machine operates, another second driving route setting, the PCS coordinate system setting, and the tracking setting are sequentially performed. These settings can be repeated until all the iron beads on the rotary table are PnP moved to the conveyor belt.

상술한 바와 같이, 본 발명은 다른 기계 장치(즉, 컨베이어 벨트 및 로터리 테이블)에 따른 서로 다른 공작물 좌표계(즉, 컨베이어 벨트에 따른 PCS 및 로터리 테이블에 따른 PCS)의 지점 간의 PnP 수행 시, 마지막 지점이 속하는 기계 장치의 PCS 좌표계를 기준으로 그 운전 경로를 업데이트 하면 되기 때문에(즉, 모든 PCS 좌표에 대해 매순간 업데이트하지 않아도 되기 때문에) 메모리가 적게 들고 비용이 적게 들 수 있다.As described above, the present invention is the last point when performing PnP between points in different workpiece coordinate systems (ie, PCS along conveyor belt and PCS along rotary table) according to different mechanical devices (ie, conveyor belt and rotary table). Because the driving route needs to be updated based on the PCS coordinate system of the mechanical device to which it belongs (ie, it is not necessary to update every PCS coordinates every time), memory and cost can be low.

도 13은 MCS에서 PCS로의 변환 명령어에 대한 다른 일 예를 나타낸다.13 shows another example of a conversion command from MCS to PCS.

특히, 좌표계 설정 단계와 트래킹 설정 단계는 PLCOpen 규격에 따른 명령어를 이용하여 각 설정을 수행할 수 있다. 가령, 좌표계 설정 단계는 MC_SetCoordinateTransfrom, MC_SetCartesianTransfroms 등의 명령어를 이용하여 해당 설정을 수행할 수 있고, 트래킹 설정 단계는 MC_SetDynCoordTransform, MC_TrackConveyorBelt, MC_TrackRotaryTable 등의 명령어를 이용하여 해당 설정을 수행할 수 있으나, 이에 한정되는 것은 아니다.In particular, the coordinate system setting step and the tracking setting step can be set using a command according to the PLCOpen standard. For example, the coordinate system setting step may be performed using commands such as MC_SetCoordinateTransfrom and MC_SetCartesianTransfroms, and the tracking setting step may be performed using commands such as MC_SetDynCoordTransform, MC_TrackConveyorBelt, MC_TrackRotaryTable, etc. not.

이때, MC_SetCoordinateTransfrom 및 MC_SetCartesianTransfroms는 좌표계 변환을 하는 명령어이며, 도 13에 도시된 바와 같이, 각 명령어의 인수만 다르다. 즉, 이들 명령어를 이용하면, 도 5(b)에 도시된 바와 같이, 모두 World 좌표계에 해당하는 MCS에서 Local 좌표계에 해당하는 PCS로 좌표계 변황이 가능하다. 다만, MC_SetCoordinateTransform은 더 일반적인 형태로 구성되는데, CoordTransform라는 입력에 TransX, TransY, TransZ, RotAng1, RotAng2 및 RotAng3이 분리되어 입력되는 것이 아닌, 이들이 모두 포함된 matrix를 직접 입력 받도록 사양 정의된다.In this case, MC_SetCoordinateTransfrom and MC_SetCartesianTransfroms are commands for converting a coordinate system, and as shown in FIG. 13 , only the arguments of each command are different. That is, by using these commands, as shown in FIG. 5( b ), the coordinate system transformation is possible from the MCS corresponding to the World coordinate system to the PCS corresponding to the Local coordinate system. However, MC_SetCoordinateTransform is configured in a more general form. TransX, TransY, TransZ, RotAng1, RotAng2, and RotAng3 are not separately input to the input called CoordTransform, but a matrix including all of them is directly input.

도 9의 스테이트 머신은 도 11의 경로 운전 명령어 내부에서 매 경로마다 수행되며, MCS/PCS 좌표계 설정, 트래킹 설정 및 Discrete/Continuous/Synchronized 모션은 PLCOpen 명령어를 그대로 사용한다.The state machine of FIG. 9 is performed for every path within the path operation command of FIG. 11, and the PLCOpen command is used as it is for MCS/PCS coordinate system setting, tracking setting, and Discrete/Continuous/Synchronized motion.

도 10의 운전 경로 티칭 명령어에서는 로봇 그리퍼(end-effector) 액추에이터의 설정 값을 매 경로마다 입력(티칭) 받을 수 있고, 도 9의 스테이트 머신에서 매 경로마다 출력이 가능하다.In the driving path teaching command of FIG. 10 , the set value of the robot gripper actuator can be input (teaching) for every path, and output is possible for every path in the state machine of FIG. 9 .

도 10의 운전 경로 티칭 명령어는 InSignal 및 OutSignal 이벤트 번호를 입력(티칭) 받을 수 있고, 도 9의 스테이트 머신을 통해 도 11의 경로 운전 명령어가 해당 InSignal 및 OutSignal 이벤트 번호를 출력할 수 있다.The driving route teaching command of FIG. 10 may receive input (teaching) InSignal and OutSignal event numbers, and the route driving command of FIG. 11 may output corresponding InSignal and OutSignal event numbers through the state machine of FIG. 9 .

도 11의 경로 운전 명령어에서는 현재 경로의 PCS 좌표계의 초기 오브젝트 위치 값(ObjectPosition)을 받을 수 있고, 도 9의 스테이트 머신에서 트래킹 설정 시에 신규 위치 값으로 업데이트될 수 있다.In the path driving command of FIG. 11 , an initial object position value (ObjectPosition) of the PCS coordinate system of the current path may be received, and may be updated with a new position value when tracking is set in the state machine of FIG. 9 .

특히, 도 8에 해당하는 형태로 운전 경로가 설정되기 때문에, 한 지점의 팔레트에서 다른 지점의 팔레트로의 PnP 모션 수행 시에 충돌 및 속도 불연속점이 생기지 않을 수 있다. 동시에, 식(4)와 식(5)을 통한 PnP 모션 경로의 파라미터화에 따라, 도 11의 경로 운전 명령어는 도 9의 스테이트 머신을 통해 PLCOpen 규격의 모션 명령어로 운전이 가능하다.In particular, since the driving route is set in the form corresponding to FIG. 8, collisions and speed discontinuities may not occur when performing PnP motion from a pallet at one point to a pallet at another point. At the same time, according to the parameterization of the PnP motion path through equations (4) and (5), the path operation command of FIG. 11 can be operated as a motion command of the PLCOpen standard through the state machine of FIG. 9 .

이론적으로, 본 발명은 무한 개로 설정(티칭)된 PCS 좌표계 간에 PnP 운전이 가능하다. 이는, 도 9의 스테이트 머신을 도 11의 경로 운전 명령어 블록에서 수행하면서, 도 10의 운전 경로 티칭 명령어에서 입력(티칭) 받은 현재 경로의 PCS 좌표계 번호로 스위칭을 하기 때문에, 그러한 PnP 운전이 가능한 것이다.Theoretically, according to the present invention, PnP operation is possible between PCS coordinate systems set to infinite number (teaching). This PnP operation is possible because the state machine of FIG. 9 is executed in the route driving command block of FIG. 11 while switching to the PCS coordinate system number of the current route received (teaching) from the driving route teaching command of FIG. 10 .

한편, 본 발명은 운전 중에 현재 경로의 PCS 좌표계로 스위칭하더라도, 새롭게 인식된 PCS 좌표계의 오브젝트(object)를 정확히 트래킹할 수 있다. 이는, 도 11의 경로 운전 명령어에서는 현재 경로의 PCS 좌표계의 초기 오브젝트 위치 값(ObjectPosition)을 받아서, 도 9의 스테이트 머신에서 트래킹 설정 시에 신규 위치 값으로 업데이트할 수 있기 때문에, 그러한 정확한 트래킹이 가능한 것이다.Meanwhile, according to the present invention, even when switching to the PCS coordinate system of the current route while driving, an object of the newly recognized PCS coordinate system can be accurately tracked. This is because, in the route driving command of FIG. 11, the initial object position value (ObjectPosition) of the PCS coordinate system of the current route can be received and updated with a new position value when tracking is set in the state machine of FIG. will be.

또한, 본 발명은 운전 중에 현재 경로의 PCS 좌표계로 스위칭을 하는 정확한 타이밍의 판단이 가능하다. 이는, 도 10의 운전 경로 티칭 명령어에서 입력(티칭) 받은 InWait 및 OutWait 이벤트 번호를 도 11의 경로 운전 명령어에서 입력을 받아 모니터링하다가 그 입력에 동기하여 도 9의 스테이트 머신에서 스테이트를 천이시키기 때문에, 그러한 정확한 타이밍 판단이 가능한 것이다.Also, according to the present invention, it is possible to determine the exact timing of switching to the PCS coordinate system of the current route while driving. This is because the InWait and OutWait event numbers input (teaching) from the driving path teaching command of FIG. 10 are monitored by receiving the input from the path driving command of FIG. 11, and the state transitions in the state machine of FIG. 9 in synchronization with the input. Such an accurate timing judgment is possible.

InWait 및 OutWait 이벤트 번호는 도 11의 경로 운전 명령어를 호출하는 사용자에 의해 제공될 수 있다. 이는, 도 9의 스테이트 머신이 도 11의 경로 운전 명령어 출력으로 InSignal 및 OutSignal 이벤트 번호를 사용자에게 시그널링을 해 주기 때문에, 사용자는 InWait 및 OutWait 이벤트 번호의 제공 타이밍을 알 수 있다.The InWait and OutWait event numbers may be provided by the user calling the route driving command of FIG. 11 . This is because the state machine of FIG. 9 signals the InSignal and OutSignal event numbers to the user as the route driving command output of FIG. 11 , so the user can know the timing of providing the InWait and OutWait event numbers.

도 10의 운전 경로 티칭 명령어를 이용한 전체 운전 경로의 입력(티칭)과, 도 11의 경로 운전 명령어의 호출을 통해, 로봇은 입력된 해당 전체 경로에 대한 운전 외에도 복잡한 주변 환경과의 상호 협응이 가능하다. 이는, InWait, OutWait, InSignal 및 OutSignal과 같은 이벤트를 주변 환경 변화에 대해 시퀀스 코딩함으로써 인터랙션(interaction)이 가능해지고, 도 10의 운전 경로 티칭 명령어가 각 경로의 티칭 시 로봇 그리퍼(end-effector)의 액추에이터의 설정 값, 필요 센서 보정 값 및 속도 오버라이드 값을 포함하기 때문에, 그러한 상호 협응이 가능한 것이다. 즉, 도 10의 운전 경로 티칭 명령어는 각 운전 경로 별로 요구되는 로봇의 그리퍼(end-effector) 구동기의 출력 설정 값과 센서의 보정 값의 입력을 포함할 있으며, 도 11의 경로 운전 명령어는 트래킹 중인 오브젝트의 이동/회전량을 보상하기 위한 업데이트하기 위한 입력과, 현재 운전 경로에 대해 설정된 속도를 오버라이드(override)하기 위한 입력을 포함할 수 있다.Through the input (teaching) of the entire driving path using the driving path teaching command of FIG. 10 and the call of the path driving command of FIG. 11, the robot can interact with the complex surrounding environment in addition to driving the inputted entire path do. This makes interaction possible by sequence coding events such as InWait, OutWait, InSignal, and OutSignal with respect to changes in the surrounding environment, and the driving path teaching command of FIG. Since it includes the actuator's setpoint, the required sensor correction value, and the speed override value, such a mutual coordination is possible. That is, the driving path teaching command of FIG. 10 includes input of an output setting value of an end-effector driver of the robot and a correction value of a sensor required for each driving path, and the path driving command of FIG. 11 is being tracked. It may include an input for updating to compensate the movement/rotation amount of the object, and an input for overriding a speed set for the current driving route.

도 12는 축-그룹 대 축-그룹 간의 일반적 형태의 트래킹(tracking)에 대한 확장된 다른 일 예를 나타낸다.12 shows another expanded example of a general form of tracking between an axis-group versus an axis-group.

즉, 도 7을 참조하여, 컨베이어와 로터리 테이블의 이동/회전량을 트래킹하는 PCS 좌표계 간의 PnP에 대해 상술하였지만, 이러한 서로 다른 PCS 좌표계들 간의 트래킹 원리는 도 12와 같은 구성에서도 마찬가지로 적용될 수 있다.That is, although PnP between the PCS coordinate system for tracking the movement/rotation amount of the conveyor and the rotary table has been described above with reference to FIG. 7, the tracking principle between these different PCS coordinate systems can be applied similarly to the configuration shown in FIG. 12.

구체적으로, 도 12는 두 대의 로봇이 철판을 준비하면 다른 한 대의 로봇이 그 두 철판을 트래킹하면서 차례로 점 용접을 하는 경우에 해당한다. 즉, 상술한 컨베이어 벨트와 로터리 테이블의 경우에 그 이동축과 회전축을 해당 PCS 좌표계가 트래킹하는 경우에 해당하며, 도 12의 경우는 로봇이라는 축-그룹을 PCS 좌표계가 트래킹하는 경우에 해당한다. 이러한 도 12의 경우, 도 9의 스테이트 머신에서는 축-그룹들 간의 트래킹을 위해, 축-그룹들 간의 좌표계 변환 명령어(MC_SetDynCoordTransform)를 호출하도록 확장할 수 있다.Specifically, FIG. 12 corresponds to a case where two robots prepare an iron plate, and the other robot performs spot welding sequentially while tracking the two iron plates. That is, in the case of the above-described conveyor belt and rotary table, the movement and rotation axes are tracked by the PCS coordinate system, and in the case of FIG. 12, the axis-group called the robot is tracked by the PCS coordinate system. In the case of FIG. 12, the state machine of FIG. 9 may be extended to call a coordinate system transformation command (MC_SetDynCoordTransform) between axes-groups for tracking between axes-groups.

예를 들어, 로봇의 동작을 위해, 제1 운전 경로, 제2 운전 경로 및 제3 운전 경로에 따른 모션의 운전이 필요할 수 있다. 즉, 1지점->2지점->3지점->1지점의 경로 순서에 따라 로봇 팔의 모션이 수행되어야 한다. 이때, 1지점은 제1 경로의 시작 지점이자 제3 경로의 마지막 지점, 2지점은 제1 경로의 마지막 지점이자 제2 경로의 시작 지점, 3지점은 제2 경로의 마지막 지점이다. 즉, 1지점과 2지점은 서로 다른 PCS 좌표계의 지점이고, 2지점과 3지점도 서로 다른 PCS 좌표계의 지점이며, 3지점과 1지점도 서로 다른 PCS 좌표계의 지점이다.For example, for the operation of the robot, it may be necessary to drive a motion according to the first driving path, the second driving path, and the third driving path. That is, the motion of the robot arm must be performed according to the path sequence of point 1 -> point 2 -> point 3 -> point 1. In this case, the first point is the start point of the first route and the last point of the third route, the second point is the last point of the first route and the starting point of the second route, and the third point is the last point of the second route. That is, Points 1 and 2 are points in different PCS coordinate systems, Points 2 and 3 are also points in different PCS coordinate systems, and Points 3 and 1 are also points in different PCS coordinate systems.

이 경우, 로봇 팔이 1지점에 위치하면, 제1 스테이트 머신이 동작하면서, 제1 설정이 수행된다. 즉, 제1 설정은 제1 운전 경로의 설정, 다음 지점인 2지점의 MCS를 기준으로 한 PCS 좌표계의 설정 및 트래킹 설정을 각각 포함한다. 이러한 제1 설정에 따라 제1 스테이트 머신에서는 해당 운전 경로에 따른 모션 운전이 수행된다.In this case, when the robot arm is positioned at one point, the first state machine is operated and the first setting is performed. That is, the first setting includes setting of the first driving route, setting of the PCS coordinate system based on the MCS of the next two points, and setting of tracking, respectively. According to the first setting, the motion driving according to the corresponding driving path is performed in the first state machine.

이후, 로봇 팔이 2지점에 위치함에 따라, 제2 스테이트 머신이 동작하면서, 제2 설정이 수행된다. 즉, 제2 설정은 제2 운전 경로의 설정, 다음 지점인 3지점의 MCS를 기준으로 한 PCS 좌표계의 설정 및 트래킹 설정을 각각 포함한다. 이러한 제2 설정에 따라 제2 스테이트 머신에서는 해당 운전 경로에 따른 모션 운전이 수행된다.Thereafter, as the robot arm is positioned at the two points, the second state machine operates, and the second setting is performed. That is, the second setting includes setting of the second driving route, setting of the PCS coordinate system based on the MCS of the next three points, and setting of tracking, respectively. According to the second setting, the motion driving according to the corresponding driving path is performed in the second state machine.

이후, 로봇 팔이 3지점에 위치함에 따라, 제3 스테이트 머신이 동작하면서, 제3 설정이 수행된다. 즉, 제3 설정은 제3 운전 경로의 설정, 다음 지점인 1지점의 MCS를 기준으로 한 PCS 좌표계의 설정 및 트래킹 설정을 각각 포함한다. 이러한 제3 설정에 따라 제3 스테이트 머신에서는 해당 운전 경로에 따른 모션 운전이 수행된다.Thereafter, as the robot arm is positioned at the third point, the third state machine operates and the third setting is performed. That is, the third setting includes setting of the third driving route, setting of the PCS coordinate system based on the MCS of the next point, point 1, and setting of tracking, respectively. According to this third setting, the third state machine performs motion driving according to the corresponding driving path.

상술한 바와 같이 구성되는 본 발명은 다수의 PCS 좌표계 간의 Pick-and-Place(PnP) 등과 같이, 기존 PLCopen 규격에 따른 명령어로는 대응이 되지 않는 복잡한 유형의 운전 상황에 대해 모션 제어가 가능한 이점이 있다. 즉, 본 발명은 특정 축 혹은 축-그룹에 트래킹이 진행 중인 서로 다른 다수 개의 PCS 좌표계 간에 로봇의 PnP 운전이 가능하게 하는 이점이 있다. 또한, 본 발명은 PnP 운전 중에 외부 환경의 이벤트 입력에 동기 가능하고 이벤트의 시그널링이 가능한 이점이 있다. 또한, 본 발명은 PLCOpen 규격에 정의된 명령어를 기본 빌딩 블록으로 활용하여 라이브러리 형태의 명령어(User defined function block)의 구현이 가능한 이점이 있다. 또한, 본 발명은 다른 기계 장치에 따른 서로 다른 PCS 좌표계 지점 간의 모션 수행 시, 마지막 지점이 속하는 기계 장치의 PCS 좌표계를 기준으로 그 운전 경로를 업데이트 하면 되기 때문에 메모리가 적게 들고 비용이 적게 들 수 있는 이점이 있다.The present invention configured as described above has the advantage of enabling motion control for complex types of driving situations that cannot be responded to with commands according to the existing PLCopen standard, such as Pick-and-Place (PnP) between multiple PCS coordinate systems. have. That is, the present invention has the advantage of enabling PnP operation of the robot between a plurality of different PCS coordinate systems in which tracking is in progress on a specific axis or axis-group. In addition, the present invention has an advantage in that it is possible to synchronize an event input of an external environment during PnP operation and to signal an event. In addition, the present invention has the advantage that it is possible to implement a library-type command (User defined function block) by utilizing the command defined in the PLCOpen standard as a basic building block. In addition, in the present invention, when performing motion between different PCS coordinate system points according to different mechanical devices, the driving route can be updated based on the PCS coordinate system of the mechanical device to which the last point belongs, so memory is small and cost is low. There is an advantage.

본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되지 않으며, 후술되는 청구범위 및 이 청구범위와 균등한 것들에 의해 정해져야 한다.In the detailed description of the present invention, although specific embodiments have been described, various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention is not limited to the described embodiments, and should be defined by the following claims and their equivalents.

10: 모션 제어 시스템 100: 외부 장치
200: 모션 제어기 210: 경로 설정부
2220: 좌표계 설정부 230: 운전 제어부
300: 드라이버
10: motion control system 100: external device
200: motion controller 210: path setting unit
2220: coordinate system setting unit 230: operation control unit
300: driver

Claims (13)

다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어기를 포함한 시스템에서 수행되는 방법으로서,
다수의 지점을 포함하는 운전 경로를 설정하는 제1 설정 단계;
운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 제2 설정 단계; 및
설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 단계;
를 포함하는 모션 제어 방법.
A method performed in a system comprising a motion controller for motion control between multiple product coordinate systems (PCS), the method comprising:
a first setting step of setting a driving route including a plurality of points;
a second setting step of setting, for the workpiece coordinate system of each point of the driving path, a work coordinate system based on a machine coordinate system (MCS) of a machine located at the last point of the driving path as a reference; and
a driving step of performing a motion operation according to the set workpiece coordinate system and driving path;
A motion control method comprising a.
제1항에 있어서,
상기 운전 경로에서, 그 시작 지점과 그 마지막 지점은 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 모션 제어 방법.
According to claim 1,
In the driving path, the starting point and the ending point are points in different workpiece coordinate systems according to different mechanical devices.
제2항에 있어서,
상기 제2 설정 단계는 상기 각 지점들의 공작물 좌표계에 대해 기계 장치의 움직임에 따른 트래킹(tracking)을 반영하는 단계를 포함하는 모션 제어 방법.
3. The method of claim 2,
The second setting step includes the step of reflecting tracking according to the movement of the mechanical device with respect to the work coordinate system of the respective points.
제3항에 있어서,
상기 운전 경로는 픽 앤 플레이스(Pick and Place; PnP)의 운전을 위한 아치 형태의 경로인 모션 제어 방법.
4. The method of claim 3,
The driving path is a motion control method that is an arch-shaped path for a pick and place (PnP) driving.
제4항에 있어서,
상기 아치 형태의 경로는 hup 높이의 상향 방향 이동의 제1 모션 경로와, hdown 높이의 하향 방향 이동의 제3 모션 경로와, 제1 및 제3 모션 사이에서 l 너비의 일측 방향 이동의 제2 모션 경로와, 제1 및 제2 모션 경로 사이의 제1 만곡 모션 경로와, 제2 및 제3 모션 경로 사이의 제2 만곡 모션 경로를 포함하는 모션 제어 방법.
5. The method of claim 4,
The arcuate path includes a first motion path of upward movement of height h up , a third motion path of downward movement of height h down , and a second motion path of l width unidirectional movement between the first and third motions. A motion control method comprising: two motion paths; a first curved motion path between the first and second motion paths; and a second curved motion path between the second and third motion paths.
제5항에 있어서,
상기 제1 만곡 모션 경로는 hup 및 l에서 각각 d1 만큼의 거리에 대해 특정 곡률의 경로를 가지고, 상기 제2 만곡 모션 경로는 hdown 및 l에서 각각 d2 만큼의 거리에 대해 특정 곡률의 경로를 가지며, d1 및 d1는 하기 식을 이용하여 구하는 모션 제어 방법.
Figure pat00010

Figure pat00011

(단, min(a, b)는 a 및 b 중에 더 작은(최소) 길이 값을 나타내며, ArchBlendRatio는 그 최소 길이 값에 대한 비율 값을 나타냄)
6. The method of claim 5,
the first curved motion path has a path of specific curvature for a distance d 1 from h up and l, respectively, and the second curved motion path has a specific curvature of a specific curvature for a distance d 2 from h down and l, respectively. A motion control method having a path, and d1 and d1 are obtained using the following equation.
Figure pat00010

Figure pat00011

(However, min(a, b) represents the smaller (minimum) length value among a and b, and ArchBlendRatio represents the ratio value to the minimum length value)
제3항에 있어서,
상기 제1 설정 단계는 다수의 운전 경로와, 각 운전 경로에 대한 입출력 이벤트의 인덱스를 설정하는 단계를 포함하고,
상기 제2 설정 단계는 입출력 이벤트의 인덱스에 매칭하는 운전 경로의 각 지점들에 대한 공작물 좌표계를 설정하는 단계를 포함하며,
상기 운전 단계는 입출력 이벤트의 인덱스에 매칭하는 운전 경로에 대한 운전을 수행하는 단계를 포함하는 모션 제어 방법.
4. The method of claim 3,
The first setting step includes setting a plurality of driving paths and an index of input/output events for each driving path,
The second setting step includes setting a work coordinate system for each point of the driving path matching the index of the input/output event,
The driving step includes performing driving on a driving route matching an index of an input/output event.
제7항에 있어서,
상기 설정된 각 운전 경로에 대해 상기 제2 설정 단계 및 상기 운전 단계가 차례로 반복 수행되는 모션 제어 방법.
8. The method of claim 7,
A motion control method in which the second setting step and the driving step are sequentially and repeatedly performed for each of the set driving paths.
제3항에 있어서,
다수의 PCS 좌표계에 대한 트래킹을 위한 PLCopen 규격의 명령어가 부재한 경우에 적용 가능하되, 상기 제2 설정 단계와 상기 운전 단계는 PLCopen 규격에 따른 명령어를 이용하여 수행되는 모션 제어 방법.
4. The method of claim 3,
It is applicable when there is no command of the PLCopen standard for tracking a plurality of PCS coordinate systems, but the second setting step and the operation step are performed using a command according to the PLCopen standard.
제7항에 있어서,
상기 제1 설정 단계의 수행을 위한 명령어는 각 운전 경로 별로 요구되는 로봇의 그리퍼(end-effector) 구동기의 출력 설정 값과 센서의 보정 값을 입력 받을 수 있으며,
상기 운전 단계의 수행을 위한 명령어는 트래킹 중인 오브젝트의 이동/회전량을 보상하기 위한 업데이트하기 위한 입력과, 현재 운전 경로에 대해 설정된 속도를 오버라이드(override)하기 위한 입력을 각각 포함하는 모션 제어 방법.
8. The method of claim 7,
The command for performing the first setting step may receive an output setting value of an end-effector driver of the robot and a correction value of a sensor required for each driving path,
The command for performing the driving step includes an input for updating to compensate for a movement/rotation amount of an object being tracked, and an input for overriding a speed set for a current driving path, respectively.
다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어기로서,
다수의 지점을 포함하되, 시작 지점과 마지막 지점이 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 운전 경로를 설정하는 경로 설정부;
운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 좌표계 설정부;
설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 제어부;
를 포함하는 모션 제어기.
A motion controller for motion control between multiple product coordinate systems (PCS), comprising:
a path setting unit for setting a driving path including a plurality of points, but having a starting point and an ending point of a different work coordinate system according to different mechanical devices;
a coordinate system setting unit that sets the workpiece coordinate system of each point of the driving path to a work coordinate system based on a machine coordinate system (MCS) of a machine located at the last point of the driving path;
an operation control unit for performing motion operation according to the set workpiece coordinate system and operation path;
A motion controller comprising a.
제10항에 있어서,
상기 좌표계 설정부는 상기 각 지점들의 공작물 좌표계에 대한 설정 시 기계 장치의 움직임에 따른 트래킹(tracking)을 반영하는 모션 제어기.
11. The method of claim 10,
The coordinate system setting unit is a motion controller that reflects the tracking (tracking) according to the movement of the mechanical device when setting the work coordinate system of the respective points.
다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어 시스템으로서,
드라이브의 운전을 제어하는 모션 제어기와, 모션 제어기로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 드라이버를 포함하며,
상기 모션 제어기는,
다수의 지점을 포함하되 시작 지점과 마지막 지점이 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 운전 경로를 설정하고, 운전 경로의 각 지점들의 공작물 좌표계에 대해 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하며, 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 제어하는 모션 제어 시스템.
A motion control system for motion control between multiple product coordinate systems (PCS), comprising:
It includes a motion controller for controlling the operation of the drive, and a driver for driving the motion device according to a control signal received from the motion controller,
The motion controller is
Set a driving path that includes multiple points, but the starting and ending points are points in different workpiece coordinate systems according to different machine tools, A motion control system that sets the workpiece coordinate system based on the machine coordinate system (MCS) of the machine and controls the operation of motion according to the set workpiece coordinate system and driving path.
KR1020200165453A 2020-12-01 2020-12-01 Method, apparatus and system for controlling motion between multiple pcs KR102423658B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200165453A KR102423658B1 (en) 2020-12-01 2020-12-01 Method, apparatus and system for controlling motion between multiple pcs
PCT/KR2021/017362 WO2022119222A1 (en) 2020-12-01 2021-11-24 Method, device and system for controlling motion between multiple product coordinate systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200165453A KR102423658B1 (en) 2020-12-01 2020-12-01 Method, apparatus and system for controlling motion between multiple pcs

Publications (2)

Publication Number Publication Date
KR20220076698A true KR20220076698A (en) 2022-06-08
KR102423658B1 KR102423658B1 (en) 2022-07-22

Family

ID=81854171

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200165453A KR102423658B1 (en) 2020-12-01 2020-12-01 Method, apparatus and system for controlling motion between multiple pcs

Country Status (2)

Country Link
KR (1) KR102423658B1 (en)
WO (1) WO2022119222A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016209995A (en) * 2016-06-22 2016-12-15 オムロン株式会社 Image processing apparatus, image processing system, and guidance apparatus directed to the same
JP2017004300A (en) * 2015-06-11 2017-01-05 株式会社Kmc Numerical control device for machine tool, machine tool, control method for machine tool, and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011096077A (en) * 2009-10-30 2011-05-12 Makino Milling Mach Co Ltd Method and device for generating tool path
KR101896291B1 (en) * 2016-05-03 2018-09-11 화천기공 주식회사 Tool path correction method of machining tools
KR102180545B1 (en) * 2018-10-26 2020-11-18 연세대학교 산학협력단 Numerical control devices using virtual machine tool to limit machining error

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017004300A (en) * 2015-06-11 2017-01-05 株式会社Kmc Numerical control device for machine tool, machine tool, control method for machine tool, and program
JP2016209995A (en) * 2016-06-22 2016-12-15 オムロン株式会社 Image processing apparatus, image processing system, and guidance apparatus directed to the same

Also Published As

Publication number Publication date
KR102423658B1 (en) 2022-07-22
WO2022119222A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
US7282882B2 (en) Robot controller
US9254567B2 (en) System for commanding a robot
EP1704025B1 (en) Control system, method and computer program for sychronizing several robots.
EP3379355B1 (en) Control system, controller, and control method
US8843232B2 (en) Control method for a complex consisting of a plurality of multiaxial handling devices arranged in succession and/or side by side, and also data storage medium, control system and complex
US20180250817A1 (en) Control system, controller, control method, and recording medium
EP2665585B1 (en) System for commanding a robot
US20230099602A1 (en) Device control based on execution command and updated environment information
CN111775145A (en) Control system of series-parallel robot
KR102423658B1 (en) Method, apparatus and system for controlling motion between multiple pcs
CN111496798B (en) Robot conveyor belt tracking method, equipment and storage device
CN107735226B (en) By using a robot driving over a predetermined trajectory
Abdelaal A study of robot control programing for an industrial robotic arm
US11014237B2 (en) Methods, systems, and apparatuses, for path planning and execution in a robotic system
US10105849B1 (en) Manufacturing system having robotic apparatus
JP2003044144A (en) Device, method, and program for multiaxial synchronous control
EP4313503A1 (en) A method for controlling displacement of a robot
CN112720502A (en) Control method of single-multi-axis manipulator
KR20020030298A (en) PC based Gantry Robot System and its Control Method
Borangiu et al. Open architecture for robot controllers
CN111699078A (en) Operation of the robot
EP4155035A1 (en) Method for controlling multiple execution mechanisms, electronic device, and storage medium
CN115922704A (en) Linkage cooperative control method and device for robot and external shaft and storage medium
US20220212343A1 (en) Operation command generation device, mechanism control system, non-transitory computer readable storage medium, operation command generation method, and mechanism control method
KR20230126012A (en) Method and apparatus for parameter calibration of affine transformation, and motion control system using the same

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant