KR20190101541A - Motion control apparatus - Google Patents

Motion control apparatus Download PDF

Info

Publication number
KR20190101541A
KR20190101541A KR1020180021624A KR20180021624A KR20190101541A KR 20190101541 A KR20190101541 A KR 20190101541A KR 1020180021624 A KR1020180021624 A KR 1020180021624A KR 20180021624 A KR20180021624 A KR 20180021624A KR 20190101541 A KR20190101541 A KR 20190101541A
Authority
KR
South Korea
Prior art keywords
control data
period
control
drive control
motion
Prior art date
Application number
KR1020180021624A
Other languages
Korean (ko)
Inventor
조명철
Original Assignee
엘에스산전 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘에스산전 주식회사 filed Critical 엘에스산전 주식회사
Priority to KR1020180021624A priority Critical patent/KR20190101541A/en
Publication of KR20190101541A publication Critical patent/KR20190101541A/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/416Numerical 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 control of velocity, acceleration or deceleration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34208Motion controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Abstract

The present invention provides an apparatus for controlling motion of a target device, including at least one servo motor, which comprises: a program execution unit executing a user program corresponding to motion of the target device during an execution period of each control cycle and generating a motion control command based on an execution result of the user program; a driving control unit generating first driving control data corresponding to driving of each servo motor at each communication cycle based on the motion control command during a driving control period of each control cycle, and second driving control data corresponding to driving of each servo motor at a communication cycle next to each communication cycle; and a communication processing unit transferring the first driving control data to a servo driver driving each servo motor during a data transceiving period of each communication cycle. The present invention can prevent wrong operation of a motor and prevent accidents caused by motion errors of the target device.

Description

모션제어장치{MOTION CONTROL APPARATUS}Motion Control Device {MOTION CONTROL APPARATUS}

본 발명은 적어도 하나의 서보모터를 포함하는 대상기기의 모션을 제어하는 장치에 관한 것이다. The present invention relates to an apparatus for controlling the motion of a target device including at least one servomotor.

모션제어장치는 적어도 하나의 모터를 포함하는 대상기기의 모션을 제어하는 장치이다. 즉, 이동 또는 형태 변형 등과 같은 대상기기의 모션이 각 모터의 구동에 의해 도출될 수 있다. 이에 따라, 모션제어장치는 대상기기의 모션에 대응한 사용자프로그램에 기초하여 각 모터의 속도 및 위치값 등에 관한 구동제어데이터를 생성하고, 생성된 구동제어데이터를 각 모터에 주기적으로 전달할 수 있다.The motion control device is a device for controlling the motion of a target device including at least one motor. That is, the motion of the target device such as movement or deformation may be derived by driving each motor. Accordingly, the motion control apparatus may generate drive control data related to the speed and position value of each motor, and the like, and periodically transmit the generated drive control data to each motor based on a user program corresponding to the motion of the target device.

이러한 모션제어장치는 PLC시스템 등에 적용되는 것이 일반적이다. PLC시스템은 사용자에 의해 설정된 공정 순서에 따라 제어대상기기들의 순차 구동을 제어하는 장비이다. 이러한 PLC시스템을 이용하여 자동화 설비를 구현하면, 공정의 순서 변경, 추가 및 삭제가 용이해질 수 있는 장점이 있다. 이에 따라, 자동화 설비를 구현하기 위하여 각 공정을 수행하는 제어대상기기들을 공정의 순서에 따라 순차적으로 연결하는 릴레이 및 카운터 등은 PLC시스템으로 대체되고 있는 추세이다. Such a motion control device is generally applied to a PLC system or the like. The PLC system is equipment that controls the sequential driving of the control target devices according to the process sequence set by the user. Implementing an automated facility using such a PLC system, there is an advantage that it is easy to change the order of the process, add and delete. Accordingly, in order to implement an automated facility, relays and counters that sequentially connect the control target devices that perform each process in the order of processes are being replaced by PLC systems.

한편, 모션제어장치는 소정의 제어주기마다 사용자프로그램을 실행하고 사용자프로그램의 실행 결과에 기초하여 구동제어데이터를 갱신하며, 소정의 통신주기마다 구동제어데이터를 송신할 수 있다. On the other hand, the motion control apparatus can execute the user program every predetermined control period, update the drive control data based on the execution result of the user program, and transmit the drive control data every predetermined communication period.

이때, 각 통신주기의 구동제어데이터에 의해 모터의 구동제어가 정상적으로 실시되기 위해서는, 구동제어데이터가 갱신된 이후에 구동제어데이터의 송신이 실시될 필요가 있다.At this time, in order for the drive control of the motor to be normally executed by the drive control data of each communication cycle, it is necessary to transmit the drive control data after the drive control data is updated.

그런데, 어느 하나의 제어주기에서 사용자프로그램의 실행이 과도하게 지연됨으로써, 각 통신주기가 개시된 시점까지도 구동제어데이터의 갱신이 실시되지 않을 수 있다. 이 경우, 갱신되지 않은 상태의 구동제어데이터, 즉 이전 통신주기의 구동제어데이터에 의해 각 모터가 오작동될 수 있는 문제점이 있다. 또한, 대상기기의 모션이 사용자프로그램과 상이해짐으로써, 대상기기가 사용자의 의도대로 제어될 수 없으므로, 사고 등이 용이하게 유발될 수 있는 문제점이 있다.However, since the execution of the user program is excessively delayed in any one of the control periods, the update of the drive control data may not be performed until the time point at which each communication period is started. In this case, there is a problem that each motor may be malfunctioned by the drive control data of the non-updated state, that is, the drive control data of the previous communication cycle. In addition, since the motion of the target device is different from the user program, the target device cannot be controlled according to the user's intention, so that an accident or the like can be easily caused.

특히, 사용자프로그램을 실행하는 유닛과 통신을 실시하는 유닛이 상호 별개로 구동함에 따라, 각 통신주기의 구동제어데이터가 갱신 완료된 상태인지에 대한 검증이 사실상 불가능하다. 그로 인해, 갱신되지 않은 상태의 구동제어데이터에 의한 모터의 오작동을 방지하기 어려운 문제점이 있다.In particular, as the unit for executing the user program and the unit for communicating with each other are driven separately from each other, it is virtually impossible to verify whether the drive control data of each communication period is in an updated state. Therefore, there is a problem that it is difficult to prevent the motor from malfunctioning due to the drive control data in an unupdated state.

본 발명은 갱신 미완 상태의 구동제어데이터가 전달되는 것을 방지할 수 있는 모션제어장치를 제공한다.The present invention provides a motion control apparatus capable of preventing transmission of drive control data in an incomplete update state.

본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects and advantages of the present invention, which are not mentioned above, can be understood by the following description, and more clearly by the embodiments of the present invention. Also, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

이와 같은 과제를 해결하기 위하여, 본 발명의 일 예시는 적어도 하나의 서보모터를 포함하는 대상기기의 모션을 제어하는 장치에 있어서, 각 제어주기의 실행기간 동안 상기 대상기기의 모션에 대응하는 사용자프로그램을 실행하고, 상기 사용자프로그램의 실행결과에 기초하여 모션제어명령을 생성하는 프로그램실행부, 상기 각 제어주기의 구동제어기간 동안 상기 모션제어명령에 기초하여 각 통신주기에서의 상기 각 서보모터의 구동에 대응한 제 1 구동제어데이터와, 상기 각 통신주기의 다음 통신주기에서의 상기 각 서보모터의 구동에 대응한 제 2 구동제어데이터를 생성하는 구동제어부, 및상기 각 통신주기의 데이터송수신기간 동안, 상기 각 서보모터를 구동하는 서보드라이버에 상기 제 1 구동제어데이터를 전달하는 통신처리부를 포함하는 모션제어장치를 제공한다.In order to solve this problem, an example of the present invention is a device for controlling the motion of a target device including at least one servomotor, the user program corresponding to the motion of the target device during the execution period of each control period A program execution unit for generating a motion control command based on the execution result of the user program, and driving the servomotor in each communication period based on the motion control command during the drive control period of each control period. A drive control unit for generating first drive control data corresponding to the second drive control data and a second drive control data corresponding to the drive of each servo motor in a next communication period of each communication period, and during a data transmission / reception period of each communication period. And a communication processor configured to transfer the first driving control data to a servo driver for driving the servo motors. Provide a motion control device.

상기 구동제어부는 상기 모션제어명령에 기초하여 상기 각 서보모터의 구동에 대응한 속도프로파일을 제공하는 프로파일제공부, 상기 속도프로파일에 기초하여 상기 제 1 및 제 2 구동제어데이터 중 적어도 하나를 생성하는 제어데이터생성부, 상기 제 1 구동제어데이터를 보유하는 제 1 제어버퍼부, 상기 제 2 구동제어데이터를 보유하는 제 2 제어버퍼부, 상기 제 1 및 제 2 제어버퍼부의 갱신 여부에 대응한 갱신완료플래그를 보유하는 완료플래그버퍼부, 및 상기 각 통신주기의 데이터송수신기간이 개시되는 시점에 상기 갱신완료플래그가 완료레벨인지 여부에 대응한 상태플래그를 보유하는 상태플래그버퍼부를 포함한다.The drive control unit is a profile providing unit for providing a speed profile corresponding to the driving of each servo motor based on the motion control command, and generates at least one of the first and second drive control data based on the speed profile. An update corresponding to whether a control data generation unit, a first control buffer unit holding the first drive control data, a second control buffer unit holding the second drive control data, and whether the first and second control buffer units are updated A completion flag buffer portion holding a completion flag, and a state flag buffer portion holding a state flag corresponding to whether or not the update completion flag is a completion level at the start of the data transmission / reception period of each communication period.

상기 프로파일제공부로부터 새로운 속도프로파일이 제공되면, 상기 제어데이터생성부는, 상기 속도프로파일에 기초하여 상기 제 1 구동제어데이터를 생성하며 상기 생성된 제 1 구동제어데이터에 기초하여 상기 제 1 제어버퍼부를 갱신하고, 상기 속도프로파일에 기초하여 상기 제 2 구동제어데이터를 생성하며 상기 생성된 제 2 구동제어데이터에 기초하여 상기 제 2 제어버퍼부를 갱신한다.When a new speed profile is provided from the profile providing unit, the control data generation unit generates the first drive control data based on the speed profile, and the first control buffer unit based on the generated first drive control data. Update and generate the second drive control data based on the speed profile, and update the second control buffer unit based on the generated second drive control data.

상기 프로파일제공부의 상기 속도프로파일이 유지되고, 상기 상태플래그가 정상레벨인 경우, 상기 제어데이터생성부는 상기 각 제어주기가 개시되는 시점에 상기 제 2 제어버퍼부의 제 2 구동제어데이터에 기초하여 상기 제 1 제어버퍼부를 갱신한다.When the speed profile of the profile providing unit is maintained and the status flag is at the normal level, the control data generation unit is based on the second driving control data of the second control buffer unit at the time point at which each control period is started. 1 Update the control buffer section.

상기 프로파일제공부의 상기 속도프로파일이 유지되고, 상기 상태플래그가 정상레벨이면, 상기 제어데이터생성부는, 상기 속도프로파일에 기초하여 상기 다음 통신주기에서의 상기 서보모터의 속도에 대응한 제 2 속도데이터를 검출하고 상기 제 2 속도데이터에 기초하여 상기 제 2 구동제어데이터를 생성하며 상기 생성된 제 2 구동제어데이터에 기초하여 상기 제 2 제어버퍼부를 갱신한다.If the speed profile of the profile providing unit is maintained and the status flag is at a normal level, the control data generation unit generates second speed data corresponding to the speed of the servomotor in the next communication period based on the speed profile. Detect and generate the second drive control data based on the second speed data, and update the second control buffer unit based on the generated second drive control data.

상기상태플래그가 이상레벨이면, 상기 제어데이터생성부는, 상기 속도프로파일에 기초하여 상기 제 1 구동제어데이터를 생성하며 상기 생성된 제 1 구동제어데이터에 기초하여 상기 제 1 제어버퍼부를 갱신하고, 상기 속도프로파일에 기초하여 상기 제 2 구동제어데이터를 생성하며 상기 생성된 제 2 구동제어데이터에 기초하여 상기 제 2 제어버퍼부를 갱신한다.If the state flag is at an abnormal level, the control data generation unit generates the first drive control data based on the speed profile, updates the first control buffer unit based on the generated first drive control data, and The second drive control data is generated based on the speed profile, and the second control buffer unit is updated based on the generated second drive control data.

상기 각 통신주기의 데이터송수신기간이 종료되면, 상기 갱신완료플래그는 상기 미완레벨로 초기화되고,상기 제 1 및 제 2 제어버퍼부가 갱신되면, 상기 갱신완료플래그는 완료레벨로 변경되며, 상기 제 2 제어버퍼부가 갱신되지 않으면, 상기 갱신완료플래그는 상기 미완레벨로 유지된다.When the data transmission / reception period of each communication period ends, the update completion flag is initialized to the incomplete level, and when the first and second control buffer parts are updated, the update completion flag is changed to the completion level, and the second If the control buffer portion is not updated, the update completion flag is maintained at the incomplete level.

상기 각 통신주기의 데이터송수신기간이 개시되는 시점에 상기 갱신완료플래그가 상기 완료레벨이면, 상기 상태플래그는 정상레벨로 유지되고, 상기 각 제어주기의 개시시점에 상기 갱신완료플래그가 상기 미완레벨이면, 상기 상태플래그는 이상레벨로 변경되며, 상기갱신완료플래그가 상기 미완레벨에서 상기 완료레벨로 변경되기까지 상기 상태플래그는 이상레벨로 유지된다.If the update completion flag is at the completion level at the start of the data transmission / reception period of each communication period, the status flag is maintained at the normal level, and if the update completion flag is at the incomplete level at the start of each control period, The state flag is changed to the abnormal level, and the state flag is maintained at the abnormal level until the update completion flag is changed from the incomplete level to the completion level.

상기 제 1 및 제 2 구동제어데이터 각각은 상기 각 서보모터의 목표위치, 목표속도, 목표토크 및 가감속기간 중 적어도 하나에 대한 정보를 포함한다.Each of the first and second drive control data includes information on at least one of a target position, a target speed, a target torque, and an acceleration / deceleration period of each servomotor.

전술한 바와 같은 모션제어장치에 따르면,구동제어부는 각 통신주기에서 각 서보모터의 구동을 제어하기 위한 제 1 구동제어데이터와, 각 통신주기의 다음 통신주기에서 각 서보모터의 구동을 제어하기 위한 제 2 구동제어데이터를 생성한다. 그리고, 통신처리부는 각 통신주기에서 제 1 구동제어데이터를 서보드라이버에 전달한다. 즉, 각 통신주기에 대응한 제 1 구동제어데이터뿐만 아니라, 각 통신주기의 다음 통신주기에 대응한 제 2 구동제어데이터를 함께 생성한다. According to the motion control apparatus as described above, the drive control unit is the first drive control data for controlling the drive of each servomotor in each communication cycle, and for controlling the drive of each servomotor in the next communication period of each communication cycle Generate second drive control data. The communication processor transfers the first driving control data to the servo driver in each communication cycle. That is, not only the first drive control data corresponding to each communication period but also the second drive control data corresponding to the next communication period of each communication period are generated together.

이에 따라, 제 1 구동제어데이터를 보유하는 제 1 제어버퍼부는 제어데이터생성부에 의해 생성된 제 1 구동제어데이터 또는 제 2 구동제어데이터에 기초하여 갱신될 수 있다.Accordingly, the first control buffer portion holding the first drive control data can be updated based on the first drive control data or the second drive control data generated by the control data generation portion.

그리고, 제 1 및 제 2 구동제어데이터를 보유한 제 1 및 제 2 제어버퍼부의 갱신 여부에 대응하는 갱신완료플래그를 이용하여, 과도하게 지연된 사용자프로그램의 실행기간으로 인해 제 1 및 제 2 제어버퍼부 중 적어도 하나가 갱신되지 않은 상태인지 여부를 검출할 수 있다. Then, the first and second control buffer units are used due to an excessively delayed execution period of the user program by using an update completion flag corresponding to whether the first and second control buffer units having the first and second drive control data are updated. It may be detected whether at least one of them is not updated.

그러므로, 과도하게 지연된 사용자프로그램의 실행기간으로 인해, 각 통신주기에 대응한 제 1 구동제어데이터가 갱신되지 않은 상태로 서보드라이버에 전달되는 것이 방지될 수 있다.Therefore, due to the excessively delayed execution period of the user program, the first drive control data corresponding to each communication period can be prevented from being transmitted to the servo driver without being updated.

이로써, 모터의 오작동이 방지될 수 있고, 대상기기의 모션이 사용자프로그램과 동일하게 제어될 수 있으므로, 대상기기의 모션 오류로 인한 사고를 방지할 수 있다.As a result, a malfunction of the motor can be prevented and the motion of the target device can be controlled in the same manner as the user program, thereby preventing an accident due to a motion error of the target device.

도 1은 본 발명의 일 실시예에 따른 모션제어장치와 적어도 하나의 서보모터 간의 연결에 대한 일 예시를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 모션제어장치와 적어도 하나의 서보모터 간의 연결에 대한 일 예시를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 모션제어장치를 나타낸 도면이다.
도 4 및 도 5는 도 3의 모션제어장치가 구동제어데이터를 제공하는 과정을 나타낸 도면이다.
도 6은 도 4 및 도 5의 과정을 설명하기 위한 일 예시이다.
1 is a diagram illustrating an example of a connection between a motion control device and at least one servomotor according to an embodiment of the present invention.
2 is a diagram illustrating an example of a connection between a motion control device and at least one servomotor according to an embodiment of the present invention.
3 is a view showing a motion control apparatus according to an embodiment of the present invention.
4 and 5 are views illustrating a process in which the motion control apparatus of FIG. 3 provides drive control data.
6 is an example for describing the process of FIGS. 4 and 5.

전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.The above objects, features, and advantages will be described in detail with reference to the accompanying drawings, whereby those skilled in the art to which the present invention pertains may easily implement the technical idea of the present invention. In describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used to indicate the same or similar components.

이하, 첨부된 도면을 참조하여 본 발명의 일 실시예에 따른 모션제어장치에 대해 설명한다.Hereinafter, a motion control apparatus according to an embodiment of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 모션제어장치와 적어도 하나의 서보모터 간의 연결에 대한 일 예시를 나타낸 도면이다. 도 2는 본 발명의 일 실시예에 따른 모션제어장치와 적어도 하나의 서보모터 간의 연결에 대한 일 예시를 나타낸 도면이다.1 is a diagram illustrating an example of a connection between a motion control device and at least one servomotor according to an embodiment of the present invention. 2 is a diagram illustrating an example of a connection between a motion control device and at least one servomotor according to an embodiment of the present invention.

도 1 및 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 모션제어장치(100)는 적어도 하나의 서보모터(10)를 포함하는 대상기기(미도시)의 모션을 제어하는 장치이다.As shown in Figure 1 and 2, the motion control apparatus 100 according to an embodiment of the present invention is a device for controlling the motion of a target device (not shown) including at least one servomotor 10. .

각 서보모터(10)는 서보드라이버(11)에 의해 구동된다. Each servomotor 10 is driven by the servo driver 11.

서보드라이버(11)는 통신선로(12)를 통해 모션제어장치(100)에 연결된다.The servo driver 11 is connected to the motion control apparatus 100 through the communication line 12.

예시적으로, 도 1에 도시된 바와 같이, 적어도 하나의 서보모터(10)에 대응한 적어도 하나의 서보드라이버(11)는 네트워크 통신선로(12)를 통해 모션제어장치(100)와 데이지체인방식으로 연결될 수 있다. For example, as illustrated in FIG. 1, at least one servo driver 11 corresponding to at least one servomotor 10 is daisy-chained with the motion control apparatus 100 through a network communication line 12. Can be connected.

이때, 모션제어장치(100)와 적어도 하나의 서보드라이버(11)는 링 형태 또는 라인 형태의 네트워크를 구성할 수 있다. 그리고, 모션제어장치(100)와 적어도 하나의 서보드라이버(11) 간의 데이터 송수신은 소정의 통신 프로토콜에 따른 데이터 프레임 형태로 실시될 수 있다.In this case, the motion control apparatus 100 and the at least one servo driver 11 may form a ring or line network. In addition, data transmission and reception between the motion control apparatus 100 and the at least one servo driver 11 may be performed in the form of a data frame according to a predetermined communication protocol.

또는, 도 2에 도시된 바와 같이, 각 서보드라이버(11)는 개별 통신선로(13)를 통해 모션제어장치(100)에 연결될 수 있다. 이때, 모션제어장치(100)와 각 서보드라이버(11) 간의 데이터 송수신은 펄스신호를 통해 실시될 수 있다.Alternatively, as shown in FIG. 2, each servo driver 11 may be connected to the motion control apparatus 100 through a separate communication line 13. In this case, data transmission and reception between the motion control device 100 and each servo driver 11 may be performed through a pulse signal.

도 3은 본 발명의 일 실시예에 따른 모션제어장치를 나타낸 도면이다.3 is a view showing a motion control apparatus according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 모션제어장치(100)는 프로그램실행부(110), 구동제어부(120) 및 통신처리부(130)를 포함한다.As shown in FIG. 3, the motion control apparatus 100 according to an embodiment of the present invention includes a program execution unit 110, a drive control unit 120, and a communication processing unit 130.

프로그램실행부(110)는 대상기기의 모션에 대응하는 소정의 사용자프로그램을 주기적으로 실행한다. 예시적으로, 프로그램실행부(110)는 각 제어주기의 실행기간 동안 사용자프로그램의 실행을 실시할 수 있다. The program execution unit 110 periodically executes a predetermined user program corresponding to the motion of the target device. For example, the program execution unit 110 may execute the user program during the execution period of each control period.

그리고, 프로그램실행부(110)는 사용자프로그램의 실행결과에 기초하여 시퀀스제어명령 및 모션제어명령을 생성한다. The program execution unit 110 generates a sequence control command and a motion control command based on the execution result of the user program.

모션제어명령은 적어도 하나의 서보모터(도 1, 도 2의 10)를 포함한 대상기기의 모션 제어를 위한 명령데이터이다.The motion control command is command data for motion control of the target device including at least one servomotor (10 of FIGS. 1 and 2).

시퀀스제어명령은 모션 제어를 제외한 나머지를 위한 명령데이터이다. 예시적으로, 시퀀스제어명령은 데이터 수집 및 저장, 전원 감지 등을 포함할 수 있다. The sequence control command is command data for the rest except motion control. In exemplary embodiments, the sequence control command may include data collection and storage, power detection, and the like.

구동제어부(120)는 각 제어주기의 구동제어기간 동안 모션제어명령에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2; Driving Control Data)를 생성한다. The driving controller 120 generates first and second driving control data DCD1 and DCD2 (Driving Control Data) based on the motion control command during the driving control period of each control period.

제 1 구동제어데이터(DCD1)는 각 통신주기에서의 각 서보모터(10)의 구동에 대응한다.The first drive control data DCD1 corresponds to the drive of each servomotor 10 in each communication period.

제 2 구동제어데이터(DCD2)는 각 통신주기의 다음 통신주기에서의 각 서보모터(10)의 구동에 대응한다.The second drive control data DCD2 corresponds to the driving of each servomotor 10 in the next communication period of each communication period.

여기서, 제 1 및 제 2 구동제어데이터(DCD1, DCD2) 각각은 각 서보모터(10)의 목표위치, 목표속도, 목표토크 및 가감속기간 중 적어도 하나에 대한 정보를 포함한다. Here, each of the first and second driving control data DCD1 and DCD2 includes information on at least one of a target position, a target speed, a target torque, and an acceleration / deceleration period of each servomotor 10.

이와 같이, 본 발명의 일 실시예에 따르면, 구동제어부(120)는 각 제어주기의 구동제어기간 동안, 각 제어주기와 다음 제어주기에 대응하는 두 개의 구동제어데이터(DCD1, DCD2)를 마련한다. As described above, according to one embodiment of the present invention, the drive control unit 120 provides two drive control data DCD1 and DCD2 corresponding to each control period and the next control period during the drive control period of each control period. .

구체적으로, 구동제어부(120)는 프로파일제공부(121), 제어데이터생성부(122), 제 1 제어버퍼부(123), 제 2 제어버퍼부(124), 완료플래그버퍼부(125) 및 상태플래그버퍼부(126)를 포함한다.In detail, the driving controller 120 includes a profile providing unit 121, a control data generating unit 122, a first control buffer unit 123, a second control buffer unit 124, a complete flag buffer unit 125, and the like. The state flag buffer unit 126 is included.

프로파일제공부(121)는 프로그램실행부(110)의 모션제어명령에 기초하여 각 서보모터(10)의 구동에 대응한 속도프로파일을 제공한다. The profile providing unit 121 provides a speed profile corresponding to the driving of each servomotor 10 based on the motion control command of the program executing unit 110.

예시적으로, 모션제어명령이 소정 구동기간 동안의 모션 실행 지시를 포함하는 경우, 프로파일제공부(121)는 모션제어명령에 기초하여 소정 구동기간 동안 각 서보모터(10)의 위치 변동에 관한 속도프로파일을 생성할 수 있다. 여기서, 속도프로파일은 대상기기의 모션을 실행하기 위하여, 대상기기의 모션이 실행되는 구동기간의 각 시점에 대응한 각 서보모터(10)의 위치를 나타낸다. 이에, 속도프로파일에 기초하여 각 모터의 위치 변동을 위한 속도 및 변속기간 등이 도출될 수 있다.For example, when the motion control command includes a motion execution instruction for a predetermined driving period, the profile providing unit 121 speeds up the positional variation of each servomotor 10 during the predetermined driving period based on the motion control command. You can create a profile. Here, the speed profile indicates the position of each servomotor 10 corresponding to each time point in the driving period in which the motion of the target device is executed in order to execute the motion of the target device. Thus, the speed and the shift period for the position change of each motor can be derived based on the speed profile.

제어데이터생성부(122)는 프로파일제공부(121)의 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2) 중 적어도 하나를 생성한다. The control data generation unit 122 generates at least one of the first and second driving control data DCD1 and DCD2 based on the speed profile of the profile providing unit 121.

예시적으로, 제어데이터생성부(122)는 속도프로파일에 기초하여 각 통신주기에 대응하는 서보모터(10)의 위치값을 검출할 수 있다. 제어데이터생성부(122)는 각 통신주기의 이전 통신주기의 위치값에서 각 통신주기의 위치값으로 이동되기 위한 목표속도, 목표토크 및 가감속기간 중 적어도 하나를 포함하는 가감속프로파일을 생성할 수 있다. 그리고, 제어데이터생성부(122)는 가감속프로파일에 기초하여 각 통신주기에 대응한 제 1 구동제어데이터(DCD1) 및 각 통신주기의 다음 통신주기에 대응한 제 2 구동제어데이터(DCD2) 중 적어도 하나를 생성할 수 있다.In exemplary embodiments, the control data generator 122 may detect a position value of the servo motor 10 corresponding to each communication cycle based on the speed profile. The control data generation unit 122 may generate an acceleration / deceleration profile including at least one of a target speed, a target torque, and an acceleration / deceleration period for moving from the position value of the previous communication cycle of each communication cycle to the position value of each communication cycle. Can be. Then, the control data generation unit 122 of the first drive control data DCD1 corresponding to each communication cycle and the second drive control data DCD2 corresponding to the next communication cycle of each communication cycle based on the acceleration / deceleration profile. At least one can be generated.

여기서, 제어데이터생성부(122)는 속도프로파일이 유지되는 동안 각 제어주기마다 기 생성된 가감속프로파일을 실행하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2) 중 적어도 하나를 생성할 수 있다. 즉, 제어데이터생성부(122)는 각 제어주기마다 가감속프로파일을 생성하는 것이 아니라, 속도프로파일에 대응하는 가감속프로파일을 생성하면, 새로운 속도프로파일이 제공되기 전까지 각 제어주기마다 기 생성된 가감속프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2) 중 적어도 하나를 생성할 수 있다.Here, the control data generation unit 122 may generate at least one of the first and second drive control data DCD1 and DCD2 by executing a pre-generated acceleration / deceleration profile for each control period while the speed profile is maintained. . That is, if the control data generation unit 122 does not generate the acceleration / deceleration profile for each control cycle, but instead generates the acceleration / deceleration profile corresponding to the speed profile, the control data generation unit 122 generates the acceleration / deceleration previously generated for each control cycle until a new speed profile is provided. At least one of the first and second driving control data DCD1 and DCD2 may be generated based on the quick profile.

더불어, 프로파일제공부(121)로부터 새로운 속도프로파일이 제공되는 경우, 및 이전 제어주기 동안 제 2 구동제어데이터가 갱신되지 않은 경우에, 제어데이터생성부(122)는 프로그램실행부(110)의 모션제어명령 및 프로파일제공부(121)의 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 생성한다.In addition, when a new speed profile is provided from the profile providing unit 121, and when the second driving control data is not updated during the previous control period, the control data generating unit 122 performs the motion of the program executing unit 110. The first and second driving control data DCD1 and DCD2 are generated based on the control command and the speed profile of the profile providing unit 121.

반면, 프로파일제공부(121)의 속도프로파일이 그대로 유지되는 경우 및 이전 제어주기 동안 제 1 및 제 2 구동제어데이터가 모두 갱신된 경우에, 제어데이터생성부(122)는 프로그램실행부(110)의 모션제어명령 및 프로파일제공부(121)의 속도프로파일에 기초하여 제 2 구동제어데이터(DCD2)만을 생성한다.On the other hand, when the speed profile of the profile providing unit 121 is maintained and when both the first and second driving control data are updated during the previous control period, the control data generating unit 122 is the program execution unit 110. Only the second driving control data DCD2 is generated based on the motion control command and the speed profile of the profile providing unit 121.

제 1 제어버퍼부(123)는 제 1 구동제어데이터(DCD1)를 보유한다. 여기서, 제 1 제어버퍼부(123)는 제어데이터생성부(122) 및 제 2 제어버퍼부(124) 중 어느 하나로부터 제공되는 데이터에 의해 갱신된다.The first control buffer unit 123 holds the first drive control data DCD1. Here, the first control buffer unit 123 is updated by data provided from either the control data generation unit 122 or the second control buffer unit 124.

제 2 제어버퍼부(124)는 제 2구동제어데이터(DCD2)를 보유한다. 여기서 제 2 제어버퍼부(124)는 제어데이터생성부(122)로부터 제공되는 제 2 구동제어데이터에 의해 갱신된다.The second control buffer unit 124 holds the second drive control data DCD2. Here, the second control buffer unit 124 is updated by the second drive control data provided from the control data generation unit 122.

완료플래그버퍼부(125)는 각 제어주기 동안 제 1 및 제 2 제어버퍼부(123, 124)의 갱신 여부에 대응한 갱신완료플래그를 보유한다.The completion flag buffer unit 125 holds an update completion flag corresponding to whether the first and second control buffer units 123 and 124 are updated during each control period.

여기서, 갱신완료플래그는 각 통신주기의 데이터송수신기간이 종료되면 미완레벨로 초기화된다. 그리고, 각 제어주기 동안 제 1 및 제 2 제어버퍼부(123, 124)가 갱신되면 갱신완료플래그는 완료레벨로 변경된다. 그러나, 각 제어주기 동안 제 1 및 제 2 제어버퍼부(123, 124)가 갱신되지 않으면 갱신완료플래그는 미완레벨로 유지된다.Here, the update completion flag is initialized to an incomplete level when the data transmission / reception period of each communication period ends. When the first and second control buffer units 123 and 124 are updated during each control period, the update completion flag is changed to the completion level. However, if the first and second control buffer units 123 and 124 are not updated during each control period, the update completion flag is maintained at the incomplete level.

상태플래그버퍼부(126)는 각 통신주기의 데이터송수신기간이 개시되는 시점에 갱신완료플래그가 완료레벨인지 여부에 대응한 상태플래그를 보유한다. The state flag buffer unit 126 holds a state flag corresponding to whether or not the update completion flag is at the completion level at the start of the data transmission / reception period of each communication cycle.

여기서, 각 통신주기의 데이터송수신기간이 개시되는 시점에 갱신완료플래그가 완료레벨이면, 상태플래그는 정상레벨로 유지된다.Here, if the update completion flag is at the completion level at the start of the data transmission / reception period of each communication period, the status flag is maintained at the normal level.

그러나, 각 통신주기의 데이터송수신기간이 개시되는 시점에 갱신완료플래그가 미완레벨이면, 상태플래그는 이상레벨로 변경된다. 그리고, 갱신완료플래그가 미완레벨에서 완료레벨로 변경되기까지 상태플래그는 이상레벨로 유지된다.However, if the update completion flag is at the incomplete level at the beginning of the data transmission / reception period of each communication period, the status flag is changed to the abnormal level. Then, the status flag is maintained at the abnormal level until the update completion flag is changed from the incomplete level to the complete level.

통신처리부(130)는 각 통신주기의 데이터송수신기간 동안 각 서보모터(10)를 구동하는 서보드라이버(11)에 제 1 제어버퍼부(123)의 제 1 구동제어데이터(DCD1)를 전달한다. The communication processor 130 transfers the first driving control data DCD1 of the first control buffer unit 123 to the servo driver 11 driving the servo motor 10 during the data transmission / reception period of each communication cycle.

여기서, 도 1의 도시와 같이, 모션제어장치(100)와 적어도 하나의 서보드라이버(11)가 네트워크 통신선로(12)를 통해 연결된 경우, 통신처리부(130)는 소정의 통신 프로토콜에 따라, 제 1 구동제어데이터(DCD1)가 삽입된 데이터 프레임을 각 서보드라이버(11)에 송신할 수 있다.Here, as shown in FIG. 1, when the motion control apparatus 100 and the at least one servo driver 11 are connected through a network communication line 12, the communication processor 130 may be configured according to a predetermined communication protocol. A data frame into which one driving control data DCD1 is inserted can be transmitted to each servo driver 11.

또는, 도 2의 도시와 같이, 모션제어장치(100)가 개별 통신선로(13)를 통해 각 서보드라이버(11)와 연결된 경우, 통신처리부(130)는 제 1 구동제어데이터(DCD1)에 대응한 펄스신호를 각 서보드라이버(11)에 송신할 수 있다.Alternatively, as shown in FIG. 2, when the motion control apparatus 100 is connected to each of the servo drivers 11 through individual communication lines 13, the communication processor 130 may correspond to the first driving control data DCD1. One pulse signal can be transmitted to each servo driver 11.

한편, 본 발명의 일 실시예에 따른 제어데이터생성부(122)는 프로그램실행부(110)의 모션제어명령, 프로파일생성부(121)의 속도프로파일 및 상태플래그버퍼부(126)의 상태플래그에 기초하여 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다. On the other hand, the control data generation unit 122 according to an embodiment of the present invention to the motion control command of the program execution unit 110, the speed profile of the profile generation unit 121 and the state flag of the status flag buffer unit 126 Based on this, the first and second control buffer units 123 and 124 are updated.

구체적으로, 제어데이터생성부(122)는 프로그램실행부(110)로부터 모션제어명령을 수신하면 제 1 및 제 2 제어버퍼부(123, 124) 중 적어도 하나의 갱신을 위한 구동제어데이터의 생성을 실시한다.In detail, the control data generation unit 122 generates the driving control data for updating at least one of the first and second control buffer units 123 and 124 when receiving the motion control command from the program execution unit 110. Conduct.

이때, 프로파일제공부(121)로부터 새로운 속도프로파일이 제공되는 경우, 제어데이터생성부(122)는 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터를 각각 생성한다. 그리고, 생성된 제 1 구동제어데이터(DCD1)에 기초하여 제 1 제어버퍼부(123)를 갱신하며, 생성된 제 2 구동제어데이터(DCD2)에 기초하여 제 2 제어버퍼부(124)를 갱신한다.In this case, when a new speed profile is provided from the profile providing unit 121, the control data generation unit 122 generates the first and second driving control data, respectively, based on the speed profile. The first control buffer unit 123 is updated based on the generated first drive control data DCD1, and the second control buffer unit 124 is updated based on the generated second drive control data DCD2. do.

또는, 프로파일제공부(121)의 속도프로파일이 그대로 유지되고, 상태플래그버퍼부(126)의 상태플래그가 정상레벨이면, 각 제어주기가 개시되는 시점에 제어데이터생성부(122)는 제 2 제어버퍼부(124)의 제 2 구동제어데이터(DCD2)에 기초하여 제 1 제어버퍼부(123)를 갱신한다.Alternatively, if the speed profile of the profile providing unit 121 is maintained and the state flag of the state flag buffer unit 126 is at the normal level, the control data generation unit 122 controls the second control at the start of each control period. The first control buffer unit 123 is updated based on the second drive control data DCD2 of the buffer unit 124.

그리고, 제어데이터생성부(122)는 각 제어주기의 구동제어기간 동안 속도프로파일에 기초하여 제 2 구동제어데이터(DCD2)를 생성하고, 생성된 제 2 구동제어데이터(DCD2)에 기초하여 제 2 제어버퍼부(124)를 갱신한다.The control data generation unit 122 generates the second drive control data DCD2 based on the speed profile during the drive control period of each control period, and generates the second drive control data DCD2 based on the generated second drive control data DCD2. The control buffer unit 124 is updated.

또는, 상태플래그버퍼부(126)의 상태플래그가 이상레벨이면, 제어데이터생성부(122)는 각 제어주기의 구동제어기간 동안 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터를 각각 생성한다. 그리고, 생성된 제 1 구동제어데이터(DCD1)에 기초하여 제 1 제어버퍼부(123)를 갱신하며, 생성된 제 2 구동제어데이터(DCD2)에 기초하여 제 2 제어버퍼부(124)를 갱신한다.Alternatively, if the state flag of the state flag buffer unit 126 is at an abnormal level, the control data generation unit 122 generates the first and second drive control data based on the speed profile during the drive control period of each control period, respectively. . The first control buffer unit 123 is updated based on the generated first drive control data DCD1, and the second control buffer unit 124 is updated based on the generated second drive control data DCD2. do.

다음, 도 4 내지 도 6을 참조하여 모션제어장치가 구동제어데이터를 제공하는 방법에 대해 설명한다.Next, a method of providing driving control data by the motion control apparatus will be described with reference to FIGS. 4 to 6.

도 4 및 도 5는 도 3의 모션제어장치가 구동제어데이터를 제공하는 과정을 나타낸 도면이다. 그리고, 도 6은 도 4 및 도 5의 과정을 설명하기 위한 일 예시이다. 4 and 5 are views illustrating a process in which the motion control apparatus of FIG. 3 provides drive control data. 6 is an example for explaining the process of FIGS. 4 and 5.

도 4에 도시된 바와 같이, 각 통신주기가 개시되고 (S10), 갱신완료플래그가 완료레벨이면 (S11), 제어데이터생성부(122)는 상태플래그버퍼부(126)의 상태플래그를 정상레벨로 유지한다. (S12) 그러나, 갱신완료플래그가 미완레벨이면 (S11), 제어데이터생성부(122)는 상태플래그버퍼부(126)의 상태플래그를 이상레벨로 변경한다. (S13)As shown in FIG. 4, when each communication cycle is started (S10), and the update completion flag is the completion level (S11), the control data generation unit 122 sets the state flag of the state flag buffer unit 126 to the normal level. To keep. (S12) However, if the update completion flag is incomplete level (S11), the control data generation unit 122 changes the state flag of the state flag buffer unit 126 to an abnormal level. (S13)

이후, 통신처리부(130)는 각 통신주기의 데이터송수신기간 동안 제 1 제어버퍼부(123)의 제 1 구동제어데이터를 각 서보드라이버(11)에 전달한다. (S14)Thereafter, the communication processor 130 transmits the first driving control data of the first control buffer unit 123 to each servo driver 11 during the data transmission / reception period of each communication period. (S14)

그리고, 각 통신주기의 데이터송수신기간이종료되는 시점 및 각 제어주기가 개시되는 시점 중 어느 하나에, 제어데이터생성부(122)는 완료플래그버퍼부(125)의 갱신완료플래그를 미완레벨로 초기화한다. (S15)The control data generation unit 122 initializes the update completion flag of the completion flag buffer unit 125 to an incomplete level at any one of the time point at which the data transmission / reception period of each communication cycle ends and the start of each control cycle. . (S15)

그리고, 각 제어주기가 개시되면, 제어데이터생성부(122)는 제 2 제어버퍼부(124)의 제 2 구동제어데이터에 기초하여 제 1 제어버퍼부(123)를 갱신한다. (S16)Then, when each control period is started, the control data generation unit 122 updates the first control buffer unit 123 based on the second drive control data of the second control buffer unit 124. (S16)

여기서, 각 통신주기와 각 제어주기는 서로 다른 위상의 동일한 기간으로 이루어질 수 있다. 즉, 각 통신주기의 데이터송수신기간이 종료되는 시점에 각 제어주기가 개시될 수 있다. 다만, 이는 단지 예시일 뿐이며, 각 제어주기의 실행기간 및 구동제어기간 이후에 통신주기의 데이터송수신기간이 배치되는 범위 내에서, 제어주기 및 통신주기는 사용자의 의도에 따라 변형될 수 있다. 예시적으로, 통신주기는 제어주기의 정수배일 수 있다.Here, each communication period and each control period may be made of the same period of a different phase. That is, each control period can be started at the end of the data transmission / reception period of each communication period. However, this is merely an example, and within the range in which the data transmission / reception period of the communication period is arranged after the execution period and the driving control period of each control period, the control period and the communication period may be modified according to the intention of the user. In exemplary embodiments, the communication period may be an integer multiple of the control period.

도 5에 도시된 바와 같이, 각 제어주기가 개시되면 (S20), 프로그램실행부(110)는 각 제어주기의 실행기간 동안 사용자프로그램을 실행하여 모션제어명령을 생성한다. (S21)As shown in FIG. 5, when each control period is started (S20), the program execution unit 110 generates a motion control command by executing a user program during the execution period of each control period. (S21)

모션제어명령이 모션실행지시를 포함하는 경우, 각 제어주기의 실행기간이 종료되고 구동제어기간이 개시되면, 프로파일생성부(121)는 모션제어명령에 기초하여 속도프로파일을 제공한다. When the motion control command includes a motion execution instruction, when the execution period of each control period ends and the drive control period begins, the profile generation unit 121 provides a speed profile based on the motion control command.

이때, 프로파일생성부(121)가 새로운 속도프로파일을 제공하는 경우 (S22), 제어데이터생성부(122)는 모션제어명령 및 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 생성하고, 생성된 제 1 및 제 2 구동제어데이터(DCD1, DCD2)에 기초하여 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다. (S23)At this time, when the profile generation unit 121 provides a new speed profile (S22), the control data generation unit 122 is based on the motion control command and the speed profile, the first and second drive control data (DCD1, DCD2) Is generated, and the first and second control buffer units 123 and 124 are updated based on the generated first and second drive control data DCD1 and DCD2. (S23)

즉, 제어데이터생성부(122)는 새로운 속도프로파일에 대응하는 가감속프로파일을 생성하고, 가감속프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 생성한다. 그리고, 생성된 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 제 1 및 제 2 제어버퍼부(123, 124)에 전달함으로써, 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다.That is, the control data generation unit 122 generates the acceleration / deceleration profile corresponding to the new speed profile, and generates the first and second drive control data DCD1 and DCD2 based on the acceleration / deceleration profile. The first and second control buffer units 123 and 124 are updated by transferring the generated first and second drive control data DCD1 and DCD2 to the first and second control buffer units 123 and 124. do.

이에, 제 1 및 제 2 제어버퍼부(123, 124)가 모두 갱신되므로, 제어데이터생성부(122)는 완료플래그버퍼부(125)의 갱신완료플래그를 완료레벨로 변경한다. (S24)Accordingly, since both the first and second control buffer units 123 and 124 are updated, the control data generation unit 122 changes the update completion flag of the completion flag buffer unit 125 to the completion level. (S24)

또는, 프로파일생성부(121)가 속도프로파일을 그대로 유지하는 경우 (S22), 상태플래그버퍼부(126)의 상태플래그가 정상레벨이면 (S25), 제어데이터생성부(122)는 모션제어명령 및 속도프로파일에 기초하여 제 2 구동제어데이터(DCD2)를 생성하고, 생성된 제 2 구동제어데이터(DCD2)에 기초하여 제 2 제어버퍼부(124)를 갱신한다. (S26)Alternatively, when the profile generation unit 121 maintains the speed profile as it is (S22), and if the state flag of the state flag buffer unit 126 is at a normal level (S25), the control data generation unit 122 is a motion control command and The second drive control data DCD2 is generated based on the speed profile, and the second control buffer unit 124 is updated based on the generated second drive control data DCD2. (S26)

즉, 제어데이터생성부(122)는 속도프로파일이 그대로 유지됨에 따라, 기 생성된 가감속프로파일을 그대로 유지하고, 기 생성된 가감속프로파일에 기초하여 제 2 구동제어데이터(DCD2)를 생성한다. 그리고, 생성된 제 2 구동제어데이터(DCD2)를 제 2 제어버퍼부(124)에 전달함으로써, 제 2 제어버퍼부(124)를 갱신한다.That is, as the speed profile is maintained as it is, the control data generation unit 122 maintains the pre-generated acceleration / deceleration profile as it is and generates the second driving control data DCD2 based on the pre-generated acceleration / deceleration profile. The second control buffer unit 124 is updated by transferring the generated second drive control data DCD2 to the second control buffer unit 124.

앞서 도 4의 설명에서 언급한 바와 같이, 각 제어주기가 개시되는 시점에, 제어데이터생성부(122)는 제 2 제어버퍼부(124)의 제 2 구동제어데이터에 기초하여 제 1 제어버퍼부(123)을 갱신한다. (S16)As mentioned above in the description of FIG. 4, at the start of each control period, the control data generation unit 122 is configured based on the second driving control data of the second control buffer unit 124. Update 123. (S16)

이에, 제 2 제어버퍼부(124)가 갱신되면 (S26), 제 1 및 제 2 제어버퍼부(123, 124)가 모두 갱신되므로, 제어데이터생성부(122)는 완료플래그버퍼부(125)의 갱신완료플래그를 완료레벨로 변경한다. (S24)Thus, when the second control buffer unit 124 is updated (S26), since both the first and second control buffer units 123 and 124 are updated, the control data generation unit 122 completes the flag buffer unit 125. Change the update completion flag to the completion level. (S24)

또는, 상태플래그버퍼부(126)의 상태플래그가 이상레벨이면 (S25), 제어데이터생성부(122)는 모션제어명령 및 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터를 생성하고, 생성된 제 1 및 제 2 구동제어데이터에 기초하여 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다. (S23)Alternatively, if the state flag of the state flag buffer unit 126 is at an abnormal level (S25), the control data generation unit 122 generates the first and second drive control data based on the motion control command and the speed profile, and generates the generated state flag. The first and second control buffer units 123 and 124 are updated based on the first and second drive control data. (S23)

즉, 이상레벨의 상태플래그는 제 2 제어버퍼부(124)가 제어주기 동안 갱신되지 않은 상태를 의미하므로, 제어데이터생성부(122)는 기 생성된 가감속프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 생성한다. 그리고, 생성된 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 제 1 및 제 2 제어버퍼부(123, 124)에 전달함으로써, 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다.That is, since the state flag of the abnormal level means that the second control buffer unit 124 has not been updated during the control period, the control data generation unit 122 is based on the previously generated acceleration / deceleration profiles. The drive control data DCD1 and DCD2 are generated. The first and second control buffer units 123 and 124 are updated by transferring the generated first and second drive control data DCD1 and DCD2 to the first and second control buffer units 123 and 124. do.

이에, 제 1 및 제 2 제어버퍼부(123, 124)가 모두 갱신되므로, 제어데이터생성부(122)는 완료플래그버퍼부(125)의 갱신완료플래그를 완료레벨로 변경한다. (S24)Accordingly, since both the first and second control buffer units 123 and 124 are updated, the control data generation unit 122 changes the update completion flag of the completion flag buffer unit 125 to the completion level. (S24)

다음, 도 6의 예시에 대해 설명한다.Next, the example of FIG. 6 is demonstrated.

도 6은 5회의 제어주기(201, 202, 203, 204, 205) 및 통신주기(211, 212, 213, 214, 215)를 가정한다. 각 제어주기(201, 202, 203, 204, 205)의 실행기간(PE; Program Execution period) 및 구동제어기간(MC; Motion Control period) 동안, 각 통신주기(211, 212, 213, 214, 215)에 대응한 어느 하나의 서보모터(10)의 위치값 (P1, P2, P3, P4, P5)가 산출된 것을 가정한다. 그리고, 각 통신주기(211, 212, 213, 214, 215)의 데이터송수신기간(DC; Data Communication period)이 종료되면, 각 제어주기(201, 202, 203, 204, 205)가 개시되는 것으로 가정한다.6 assumes five control cycles 201, 202, 203, 204, 205 and communication cycles 211, 212, 213, 214, 215. During each execution period (PE; Program Execution period) and driving control period (MC) of each control period (201, 202, 203, 204, 205), each communication period (211, 212, 213, 214, 215) It is assumed that the position values P1, P2, P3, P4, and P5 of any one servomotor 10 corresponding to) are calculated. When the data communication period (DC) of each communication period 211, 212, 213, 214, and 215 ends, it is assumed that each control period 201, 202, 203, 204, 205 is started. do.

도 6의 예시에 따르면, 제 1 제어주기(201)의 실행기간(PE)동안 프로그램실행부(110)는 사용자프로그램을 실행하고, 실행결과에 기초하여 모션제어명령을 생성한다.According to the example of FIG. 6, during the execution period PE of the first control period 201, the program execution unit 110 executes a user program and generates a motion control command based on the execution result.

제 1 제어주기(201)의 구동제어기간(MC) 동안 구동제어부(120)는 모션제어명령에 기초하여 제 1 및 제 2 제어버퍼부(B1, B2)(도 3의 123, 124)를 갱신한다.During the drive control period MC of the first control period 201, the drive control unit 120 updates the first and second control buffer units B1 and B2 (123 and 124 in FIG. 3) based on the motion control command. do.

즉, 프로그램실행부(110)의 모션제어명령이 대상기기의 어느 하나의 서보모터(10)를 제 1 내지 제 5 위치값(P1~P5)으로 이동하는 모션으로 실행시키기 위한 모션실행지시를 포함하는 경우, 구동제어부(120)의 프로파일생성부(121)는 모션제어명령에 기초하여 제 1 내지 제 5 통신주기(211, 212, 213, 214, 215) 동안 제 1 내지 제 5 위치값(P1~P5)으로 이동하는 모션에 대응한 속도프로파일을 생성한다.That is, the motion control instruction of the program execution unit 110 includes a motion execution instruction for executing any one of the servo motor 10 of the target device to the motion to move to the first to fifth position values P1 to P5. In this case, the profile generator 121 of the driving controller 120 may perform the first to fifth position values P1 during the first to fifth communication periods 211, 212, 213, 214, and 215 based on the motion control command. Create a velocity profile that corresponds to the motion moving to ~ P5).

그리고, 구동제어부(120)의 제어데이터생성부(122)는 속도프로파일에 기초하여 각 위치값의 이전 위치값에서 각 위치값으로 이동하기 위한 가감속프로파일을 생성한다.Then, the control data generation unit 122 of the drive control unit 120 generates an acceleration / deceleration profile for moving from the previous position value of each position value to each position value based on the velocity profile.

이어서, 제어데이터생성부(122)는 가감속프로파일을 실행하여 제 1 통신주기(211)에 대응한 제 1 위치값(P1)을 포함하는제 1 구동제어데이터를 생성한다. 여기서, 제 1 구동제어데이터는 제 1 위치값(P1)으로의 이동을 위한 목표속도, 목표토크 및 가감속기간 중 적어도 하나를 더 포함할 수 있다.Subsequently, the control data generation unit 122 executes the acceleration / deceleration profile to generate first driving control data including the first position value P1 corresponding to the first communication period 211. Here, the first driving control data may further include at least one of a target speed, a target torque, and an acceleration / deceleration period for moving to the first position value P1.

그리고 제어데이터생성부(122)는 가감속프로파일을 더 실행하여 제 1 통신주기(211)의 다음 순번인 제 2 통신주기(212)에 대응한 제 2 위치값(P2)을 포함하는 제 2 구동제어데이터를 생성한다. 여기서, 제 2 구동제어데이터는 제 2위치값(P2)으로의 이동을 위한 목표속도, 목표토크 및 가감속기간 중 적어도 하나를 더 포함할 수 있다.In addition, the control data generation unit 122 further executes the acceleration / deceleration profile so as to include a second position value P2 corresponding to the second communication cycle 212 which is the next sequence of the first communication cycle 211. Create control data. Here, the second driving control data may further include at least one of a target speed, a target torque, and an acceleration / deceleration period for moving to the second position value P2.

제어데이터생성부(122)는 생성된 제 1 및 제 2 구동제어데이터를 제 1 및 제 2 제어버퍼부(B1, B2)에 전달한다. 이로써, 제 1 제어버퍼부(B1)는 제 1 위치값(P1)에 대응한 제 1 구동제어데이터를 보유하도록 갱신되고, 제 2 제어버퍼부(B2)는 제 2 위치값(P2)에 대응한 제 2 구동제어데이터를 보유하도록 갱신된다.The control data generation unit 122 transfers the generated first and second driving control data to the first and second control buffer units B1 and B2. As a result, the first control buffer unit B1 is updated to hold first drive control data corresponding to the first position value P1, and the second control buffer unit B2 corresponds to the second position value P2. It is updated to hold one second drive control data.

이와 같이, 제 1 및 제 2 제어버퍼부(B1, B2)가 모두 갱신되었으므로 제어데이터생성부(122)는 구동제어기간(MC)의 종료시점에 갱신완료플래그(RFF; Refresh Finish Flag)를 미완레벨에서 완료레벨로 변경한다.In this way, since both the first and second control buffer units B1 and B2 have been updated, the control data generation unit 122 does not complete the Refresh Finish Flag (RFF) at the end of the drive control period MC. Change from level to completion level.

제 1 통신주기(211)의 개시시점에 갱신완료플래그가완료레벨이므로, 상태플래그(SF; Status Flag)는 정상레벨로 유지된다.Since the update completion flag is the completion level at the start of the first communication period 211, the status flag SF is maintained at the normal level.

그리고, 제 1 통신주기(211)의 데이터송수신기간(DC) 동안 통신처리부(130)는 제 1 제어버퍼부(B1)의 제 1 구동제어데이터를 서보드라이버에 전달한다.The communication processor 130 transfers the first driving control data of the first control buffer unit B1 to the servo driver during the data transmission / reception period DC of the first communication period 211.

제 1 통신주기(211)의 데이터송수신기간(DC)가 종료되는 시점에, 제어데이터생성부(212)는 갱신완료플래그(RFF)를 미완레벨로 변경한다.When the data transmission / reception period DC of the first communication period 211 ends, the control data generation unit 212 changes the update completion flag RFF to an incomplete level.

그리고, 제 1 제어주기(201)가 종료되는 시점 및 제 1 통신주기(211)의 데이터송수신기간(DC)가 종료되는 시점 중 어느 하나에,제어데이터생성부(122)는 제 2 제어버퍼부(B2)의 제 2 구동제어데이터에 기초하여 제 1 제어버퍼부(B1)를 갱신한다. 이로써, 제 1 제어버퍼부(B1)는 제 2 통신주기(212)의 제 2위치값(P2)에 대응한 제 1 구동제어데이터를 보유하도록 갱신된다.Then, at any one of the time point when the first control period 201 ends and the time point when the data transmission / reception period DC of the first communication period 211 ends, the control data generation unit 122 includes the second control buffer unit. The first control buffer section B1 is updated based on the second drive control data in (B2). As a result, the first control buffer unit B1 is updated to hold first drive control data corresponding to the second position value P2 of the second communication period 212.

다음, 속도프로파일이 그대로 유지되고 상태플래그(SF)가 정상레벨이므로, 제 2 제어주기(202) 동안 제어데이터생성부(122)는 기 생성된 가감속프로파일을실행하여 제 3 통신주기(203)에 대응한 제 3 위치값(P3)을 포함하는 제 2 구동제어데이터를 생성한다. 여기서, 제 2 구동제어데이터는 제 3위치값(P3)으로의 이동을 위한 목표속도, 목표토크 및 가감속기간 중 적어도 하나를 더 포함할 수 있다.Next, since the speed profile is maintained and the status flag SF is at the normal level, the control data generation unit 122 executes the previously generated acceleration / deceleration profile during the second control period 202 to perform the third communication period 203. Generates second drive control data including a third position value P3 corresponding to the second position control data. Here, the second driving control data may further include at least one of a target speed, a target torque, and an acceleration / deceleration period for moving to the third position value P3.

제어데이터생성부(122)는 생성된 제 2 구동제어데이터를 제 2 제어버퍼부(B2)에 전달함으로써, 제 2 제어버퍼부(B2)는 제 3 통신주기(213)의 제 3위치값(P3)에 대응한 제 2 구동제어데이터를 보유하도록 갱신된다.The control data generation unit 122 transfers the generated second driving control data to the second control buffer unit B2, whereby the second control buffer unit B2 receives the third position value of the third communication period 213 ( It is updated to hold second drive control data corresponding to P3).

그리고, 제 2 제어주기(202)의 구동제어기간(MC) 동안 제 1 및 제 2 제어버퍼부(B1, B2)가 모두 갱신되었으므로, 제어데이터생성부(122)는 갱신완료플래그(RFF)를 완료레벨로 변경한다.In addition, since both the first and second control buffer units B1 and B2 have been updated during the drive control period MC of the second control period 202, the control data generation unit 122 generates an update completion flag RFF. Change to the completion level.

이에, 제 2 통신주기(212)의 개시시점에 갱신완료플래그(RFF)가 완료레벨이므로, 상태플래그(SF)는 정상레벨로 유지된다.Accordingly, since the update completion flag RFF is at the completion level at the start of the second communication period 212, the state flag SF is maintained at the normal level.

제 2 통신주기(212)의 데이터송수신기간(DC) 동안 통신처리부(130)는 제 1 제어버퍼부(B1)의 제 1 구동제어데이터를 서보드라이버에 전달한다.During the data transmission / reception period DC of the second communication period 212, the communication processor 130 transmits the first driving control data of the first control buffer unit B1 to the servo driver.

제 2 통신주기(212)의 데이터송수신기간(DC)이 종료되면, 제어데이터생성부(122)는 갱신완료플래그(RFF)를 미완레벨로 변경한다.When the data transmission / reception period DC of the second communication period 212 ends, the control data generation unit 122 changes the update completion flag RFF to an incomplete level.

그리고, 제 2 제어주기(203)의 종료시점 또는 제 2 통신주기(212)의 데이터송수신기간(DC)의 종료시점에 제어데이터생성부(122)는 제 2 제어버퍼부(B2)의 제 2 구동제어데이터에 기초하여 제 1 제어버퍼부(B1)를 갱신한다. 이로써, 제 1 제어버퍼부(B1)는 제 3 통신주기(213)의 제 3위치값(P3)에 대응한 제 1 구동제어데이터를 보유하도록 갱신된다.Then, at the end of the second control period 203 or at the end of the data transmission / reception period DC of the second communication period 212, the control data generation unit 122 generates a second of the second control buffer unit B2. The first control buffer unit B1 is updated based on the drive control data. As a result, the first control buffer unit B1 is updated to hold first drive control data corresponding to the third position value P3 of the third communication cycle 213.

이어서, 제 3 제어주기(203)의 실행기간(PE)과 구동제어기간(MC) 중 적어도 하나가 제어주기로 할당된 기간보다 길게 지연된다. 그로 인해, 제 2 제어버퍼부(B2)이 갱신되지 않은 상태이므로, 갱신완료플래그(RFF)는 미완레벨로 유지된다.Subsequently, at least one of the execution period PE and the drive control period MC of the third control period 203 is delayed longer than the period allocated to the control period. Therefore, since the second control buffer section B2 has not been updated, the update completion flag RFF is maintained at the incomplete level.

이에, 제 3 통신주기(213)의 개시시점에 갱신완료플래그(RFF)가 미완레벨이므로, 상태플래그(SF)는 이상레벨로 변경된다.Therefore, since the update completion flag RFF is incomplete level at the start of the third communication period 213, the state flag SF is changed to the abnormal level.

다만, 제 1 제어버퍼부(B1)는 제 3 통신주기(203)의 개시 시점에 제 2 제어버퍼부(B2)의 제 2 구동제어데이터에 기초하여, 제 3 통신주기(213)에 대응한 제 3 위치값(P3)을 나타내는 제 1 구동제어데이터를 보유하도록 갱신된다. However, the first control buffer unit B1 corresponds to the third communication cycle 213 based on the second drive control data of the second control buffer unit B2 at the start of the third communication cycle 203. It is updated to hold first drive control data indicating the third position value P3.

이에 따라, 제 3 통신주기(213)의 데이터송수신기간(DC) 동안, 통신처리부(130)는 제 3 위치값(P3)을 나타내는 제 1 구동제어데이터를 서보드라이버에 전달한다.Accordingly, during the data transmission / reception period DC of the third communication period 213, the communication processor 130 transmits the first driving control data indicating the third position value P3 to the servo driver.

그리고, 상태플래그(SF)가 이상레벨이므로, 제 4 제어주기(204)의 구동제어기간(MC) 동안 제어데이터생성부(122)는 가감속프로파일을 두 차례 실행하여, 제 4 통신주기(214)에 대응한 제 4 위치값(P4)을 포함하는 제 1 구동제어데이터와, 제 5 통신주기(215)에 대응한 제 5 위치값(P5)을 포함하는 제 2 구동제어데이터를 생성한다. In addition, since the state flag SF is at the abnormal level, the control data generation unit 122 executes the acceleration / deceleration profile twice during the driving control period MC of the fourth control period 204, whereby the fourth communication period 214 is performed. The first driving control data including the fourth position value P4 corresponding to) and the second driving control data including the fifth position value P5 corresponding to the fifth communication period 215 are generated.

그리고, 생성된 제 1 및 제 2 구동제어데이터에 기초하여 제 1 및 제 2 제어버퍼부(B1, B2)를 갱신한다. 이로써, 제 1 제어버퍼부(B1)는 제 4 통신주기(214)의 제 4 위치값(P4)을 포함하는 제 1 구동제어데이터를 보유하고, 제 2 제어버퍼부(B2)는 제 5 통신주기(215)의 제 5 위치값(P5)을 포함하는 제 2 구동제어데이터를 보유한다.Then, the first and second control buffer units B1 and B2 are updated based on the generated first and second drive control data. As a result, the first control buffer unit B1 holds the first driving control data including the fourth position value P4 of the fourth communication period 214, and the second control buffer unit B2 communicates with the fifth communication unit. The second drive control data including the fifth position value P5 of the period 215 is held.

이와 같이, 제 1 및 제 2 제어버퍼부(B1, B2)의 갱신이 완료되었으므로, 갱신완료플래그(RFF)는 완료레벨로 변경된다.In this way, since the update of the first and second control buffer units B1 and B2 has been completed, the update completion flag RFF is changed to the completion level.

제 4 통신주기(214)의 데이터송수신기간(DC) 동안 통신처리부(130)는 제 1 제어버퍼부(B1)에 보유된 제 4 위치값(P4)의 제 1 구동제어데이터를 서보드라이버에 전달한다.During the data transmission / reception period DC of the fourth communication period 214, the communication processing unit 130 transmits the first driving control data of the fourth position value P4 held in the first control buffer unit B1 to the servo driver. do.

그리고, 제 4 통신주기(214)의 데이터송수신기간(DC)이 종료하는 시점에 갱신완료플래그(RFF)가 완료레벨에서 미완레벨로 변경된다. 이에 따라 상태플래그(SF) 또한 이상레벨에서 정상레벨로 변경된다.At the end of the data transmission / reception period DC of the fourth communication period 214, the update completion flag RFF is changed from the completion level to the incomplete level. Accordingly, the state flag SF is also changed from the abnormal level to the normal level.

이상과 같이, 본 발명의 일 실시예에 따르면, 각 통신주기에 대응한 제 1 구동제어데이터와 각 통신주기의 다음 통신주기에 대응한 제 2 구동제어데이터를 보유하고, 통신주기의 데이터송수신기간이 종료한 이후에 각 통신주기에 대응한 제 1 구동제어데이터는 다음 통신주기에 대응한 제 2 구동제어데이터로 갱신된다.As described above, according to an embodiment of the present invention, the first drive control data corresponding to each communication cycle and the second drive control data corresponding to the next communication cycle of each communication cycle, and the data transmission and reception period of the communication cycle After this termination, the first drive control data corresponding to each communication cycle is updated with second drive control data corresponding to the next communication cycle.

이로써, 통신주기의 데이터송수신기간이 도래하기 전에 제 1 구동제어데이터가 갱신되지 않는 것을 방지할 수 있다. As a result, it is possible to prevent the first driving control data from being updated before the data transmission / reception period of the communication cycle arrives.

또한, 제 1 및 제 2 구동제어데이터의 갱신여부에 대응한 갱신완료플래그와 각 통신주기의 개시시점에 갱신완료플래그가 완료레벨인지 여부에 대응한 상태플래그를 이용하여, 제 1 및 제 2 구동제어데이터가 갱신 완료된 상태인지 여부를 용이하게 검출할 수 있다.Further, the first and second driving are performed by using the update completion flag corresponding to the update of the first and second drive control data and the status flag corresponding to whether the update completion flag is the completion level at the start of each communication period. Whether the control data is in the updated state can be easily detected.

그러므로, 각 통신주기의 구동제어데이터의 갱신여부에 대한 신뢰도가 향상될 수 있으므로, 모션제어장치에 의한 대상기기의 오작동이 방지될 수 있다.Therefore, since the reliability of the update of the drive control data of each communication period can be improved, malfunction of the target device by the motion control apparatus can be prevented.

전술한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by.

100: 모션제어장치
10: 서보모터
11: 서보드라이버
12, 13: 통신선로
120: 구동제어부
DCD1, DCD2: 제 1, 제 2 구동제어데이터
201, 202, 203, 204, 205: 제 1 내지 제 5 제어주기
PE: 실행기간
MC: 구동제어기간
211, 212, 213, 214, 215: 제 1 내지 제 5 통신주기
DC: 데이터송수신기간
P1, P2, P3, P4, P5: 제 1 내지 제 5 위치값
B1, B2: 제 1, 제 2 제어버퍼부
RFF: 갱신완료플래그
SF: 상태플래그
100: motion control device
10: servo motor
11: servo driver
12, 13: communication line
120: drive control unit
DCD1, DCD2: first and second drive control data
201, 202, 203, 204, and 205: first to fifth control periods
PE: Execution Period
MC: drive control period
211, 212, 213, 214, and 215: first to fifth communication cycles
DC: Data transmission and reception period
P1, P2, P3, P4, P5: first to fifth position values
B1 and B2: first and second control buffer sections
RFF: Renewal Completed Flag
SF: status flag

Claims (10)

적어도 하나의 서보모터를 포함하는 대상기기의 모션을 제어하는 장치에 있어서,
각 제어주기의 실행기간 동안 상기 대상기기의 모션에 대응하는 사용자프로그램을 실행하고, 상기 사용자프로그램의 실행결과에 기초하여 모션제어명령을 생성하는 프로그램실행부;
상기 각 제어주기의 구동제어기간 동안 상기 모션제어명령에 기초하여 각 통신주기에서의 상기 각 서보모터의 구동에 대응한 제 1 구동제어데이터와, 상기 각 통신주기의 다음 통신주기에서의 상기 각 서보모터의 구동에 대응한 제 2 구동제어데이터를 생성하는 구동제어부; 및
상기 각 통신주기의 데이터송수신기간 동안, 상기 각 서보모터를 구동하는 서보드라이버에 상기 제 1 구동제어데이터를 전달하는 통신처리부를 포함하는 모션제어장치.
In the device for controlling the motion of the target device including at least one servomotor,
A program execution unit executing a user program corresponding to a motion of the target device during an execution period of each control period, and generating a motion control command based on an execution result of the user program;
First drive control data corresponding to driving of each servo motor in each communication period based on the motion control command during the drive control period of each control period, and the respective servos in the next communication period of each communication period; A drive controller for generating second drive control data corresponding to the drive of the motor; And
And a communication processing unit for transferring the first driving control data to a servo driver for driving each servomotor during a data transmission / reception period of each communication period.
제 1 항에 있어서,
상기 구동제어부는
상기 모션제어명령에 기초하여 상기 각 서보모터의 구동에 대응한 속도프로파일을 제공하는 프로파일제공부;
상기 속도프로파일에 기초하여 상기 제 1 및 제 2 구동제어데이터 중 적어도 하나를 생성하는 제어데이터생성부;
상기 제 1 구동제어데이터를 보유하는 제 1 제어버퍼부;
상기 제 2 구동제어데이터를 보유하는 제 2 제어버퍼부;
상기 제 1 및 제 2 제어버퍼부의 갱신 여부에 대응한 갱신완료플래그를 보유하는 완료플래그버퍼부; 및
상기 각 통신주기의 데이터송수신기간이 개시되는 시점에 상기 갱신완료플래그가 완료레벨인지 여부에 대응한 상태플래그를 보유하는 상태플래그버퍼부를 포함하는 모션제어장치.
The method of claim 1,
The drive control unit
A profile providing unit providing a speed profile corresponding to the driving of each servo motor based on the motion control command;
A control data generation unit configured to generate at least one of the first and second drive control data based on the speed profile;
A first control buffer unit for holding the first drive control data;
A second control buffer unit for holding the second drive control data;
A completion flag buffer unit holding an update completion flag corresponding to whether the first and second control buffer units are updated; And
And a state flag buffer unit which holds a state flag corresponding to whether or not the update completion flag is a completion level at a time point at which the data transmission / reception period of each communication period starts.
제 2 항에 있어서,
상기 속도프로파일은 상기 대상기기의 모션을 실행하기 위해 상기 모션이 실행되는 기간의 각 시점에 대응한 상기 각 서보모터의 위치를 나타내는 모션제어장치.
The method of claim 2,
And the speed profile indicates a position of each servomotor corresponding to each time point of the period in which the motion is executed to execute the motion of the target device.
제 2 항에 있어서,
상기 프로파일제공부로부터 새로운 속도프로파일이 제공되면, 상기 제어데이터생성부는,
상기 속도프로파일에 기초하여 상기 제 1 구동제어데이터를 생성하며 상기 생성된 제 1 구동제어데이터에 기초하여 상기 제 1 제어버퍼부를 갱신하고,
상기 속도프로파일에 기초하여 상기 제 2 구동제어데이터를 생성하며 상기 생성된 제 2 구동제어데이터에 기초하여 상기 제 2 제어버퍼부를 갱신하는 모션제어장치.
The method of claim 2,
When a new velocity profile is provided from the profile provider, the control data generation unit,
Generate the first drive control data based on the speed profile, update the first control buffer unit based on the generated first drive control data,
And generating the second drive control data based on the speed profile and updating the second control buffer part based on the generated second drive control data.
제 2 항에 있어서,
상기 프로파일제공부의 상기 속도프로파일이 유지되고, 상기 상태플래그가 정상레벨인 경우,
상기 제어데이터생성부는 상기 각 제어주기가 개시되는 시점에 상기 제 2 제어버퍼부의 제 2 구동제어데이터에 기초하여 상기 제 1 제어버퍼부를 갱신하는 모션제어장치.
The method of claim 2,
When the speed profile of the profile provider is maintained and the status flag is at a normal level,
And the control data generation unit updates the first control buffer unit based on the second drive control data of the second control buffer unit at the start of each control period.
제 4 항에 있어서,
상기 프로파일제공부의 상기 속도프로파일이 유지되고, 상기 상태플래그가 정상레벨이면, 상기 제어데이터생성부는,
상기 속도프로파일에 기초하여 상기 다음 통신주기에서의 상기 서보모터의 속도에 대응한 제 2 속도데이터를 검출하고 상기 제 2 속도데이터에 기초하여 상기 제 2 구동제어데이터를 생성하며 상기 생성된 제 2 구동제어데이터에 기초하여 상기 제 2 제어버퍼부를 갱신하는 모션제어장치.
The method of claim 4, wherein
If the speed profile of the profile providing unit is maintained and the status flag is at a normal level, the control data generating unit
Detecting second speed data corresponding to the speed of the servomotor in the next communication period based on the speed profile, generating the second drive control data based on the second speed data, and generating the generated second drive; And a second control buffer unit based on control data.
제 2 항에 있어서,
상기 상태플래그가 이상레벨이면, 상기 제어데이터생성부는,
상기 속도프로파일에 기초하여 상기 제 1 구동제어데이터를 생성하며 상기 생성된 제 1 구동제어데이터에 기초하여 상기 제 1 제어버퍼부를 갱신하고,
상기 속도프로파일에 기초하여 상기 제 2 구동제어데이터를 생성하며 상기 생성된 제 2 구동제어데이터에 기초하여 상기 제 2 제어버퍼부를 갱신하는 모션제어장치.
The method of claim 2,
If the state flag is at an abnormal level, the control data generation unit,
Generate the first drive control data based on the speed profile, update the first control buffer unit based on the generated first drive control data,
And generating the second drive control data based on the speed profile and updating the second control buffer part based on the generated second drive control data.
제 2 항에 있어서,
상기 각 통신주기의 데이터송수신기간이 종료되면, 상기 갱신완료플래그는 상기 미완레벨로 초기화되고,
상기 제 1 및 제 2 제어버퍼부가 갱신되면, 상기 갱신완료플래그는 완료레벨로 변경되며,
상기 제 2 제어버퍼부가 갱신되지 않으면, 상기 갱신완료플래그는 상기 미완레벨로 유지되는 모션제어장치.
The method of claim 2,
When the data transmission / reception period of each communication period ends, the update completion flag is initialized to the incomplete level,
When the first and second control buffer unit is updated, the update completion flag is changed to the completion level,
If the second control buffer unit is not updated, the update completion flag is maintained at the incomplete level.
제 2 항에 있어서,
상기 각 통신주기의 데이터송수신기간이 개시되는 시점에 상기 갱신완료플래그가 상기 완료레벨이면, 상기 상태플래그는 정상레벨로 유지되고,
상기 각 제어주기의 개시시점에 상기 갱신완료플래그가 상기 미완레벨이면, 상기 상태플래그는 이상레벨로 변경되며,
상기 갱신완료플래그가 상기 미완레벨에서 상기 완료레벨로 변경되기까지 상기 상태플래그는 이상레벨로 유지되는 모션제어장치.
The method of claim 2,
If the update completion flag is the completion level at the time when the data transmission / reception period of each communication period is started, the status flag is maintained at the normal level,
If the update completion flag is the incomplete level at the start of each control period, the status flag is changed to an abnormal level,
And the state flag is maintained at an abnormal level until the update completion flag is changed from the incomplete level to the complete level.
제 1 항에 있어서,
상기 제 1 및 제 2 구동제어데이터 각각은 상기 각 서보모터의 목표위치, 목표속도, 목표토크 및 가감속기간 중 적어도 하나에 대한 정보를 포함하는 모션제어장치.
The method of claim 1,
Each of the first and second driving control data includes information on at least one of a target position, a target speed, a target torque, and an acceleration and deceleration period of each servomotor.
KR1020180021624A 2018-02-23 2018-02-23 Motion control apparatus KR20190101541A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180021624A KR20190101541A (en) 2018-02-23 2018-02-23 Motion control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180021624A KR20190101541A (en) 2018-02-23 2018-02-23 Motion control apparatus

Publications (1)

Publication Number Publication Date
KR20190101541A true KR20190101541A (en) 2019-09-02

Family

ID=67951162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180021624A KR20190101541A (en) 2018-02-23 2018-02-23 Motion control apparatus

Country Status (1)

Country Link
KR (1) KR20190101541A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220161931A (en) * 2021-05-31 2022-12-07 한국로봇융합연구원 Kinetic Display Controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220161931A (en) * 2021-05-31 2022-12-07 한국로봇융합연구원 Kinetic Display Controller

Similar Documents

Publication Publication Date Title
KR101494117B1 (en) Electric motor control system and communication method
US8965574B2 (en) Method for controlling an automated work cell
EP3113351B1 (en) Motor control system and motor control method
US20160124412A1 (en) Control system, control method and extension board
EP2555068B1 (en) Synchronization control apparatus
US20130131864A1 (en) Method for controlling an automated work cell
JP2014014897A (en) Vibration suppression control robot system
US10579031B2 (en) Controller
CN111682993A (en) Automobile CAN bus signal simulation method and device
KR20190101541A (en) Motion control apparatus
JP6460137B2 (en) Control device, control method, and program
KR101295956B1 (en) Servo motor system using ethercat communication
JP5687302B2 (en) Load drive control device and load drive control method
US20200218284A1 (en) Method for transmitting data between a central control apparatus and a plurality of decentralized devices, and corresponding means
CN110968036A (en) Numerical controller
WO2017203778A1 (en) Motor drive system, motor control system, and self-propelled robot
CN105227041A (en) The control method of motor driver and motor driven systems
KR20200116340A (en) Method for compensating control data in a network based drive
JPH0775357A (en) Method and equipment for simultaneously start of slave stations
JPH0619660B2 (en) Distributed numerical controller
EP2929646B1 (en) Motion control system using asynchronous communication and controller and method thereof
WO2022158079A1 (en) Control device and automatic work method
CN109753020B (en) Motor control device, control system, and motor control method
JP2018147017A (en) Control system and control apparatus
KR20140026875A (en) Master of servo motor system