KR20190101541A - Motion control apparatus - Google Patents
Motion control apparatus Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/4155—Numerical 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/416—Numerical 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34208—Motion 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
Description
본 발명은 적어도 하나의 서보모터를 포함하는 대상기기의 모션을 제어하는 장치에 관한 것이다. 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
각 서보모터(10)는 서보드라이버(11)에 의해 구동된다. Each
서보드라이버(11)는 통신선로(12)를 통해 모션제어장치(100)에 연결된다.The
예시적으로, 도 1에 도시된 바와 같이, 적어도 하나의 서보모터(10)에 대응한 적어도 하나의 서보드라이버(11)는 네트워크 통신선로(12)를 통해 모션제어장치(100)와 데이지체인방식으로 연결될 수 있다. For example, as illustrated in FIG. 1, at least one
이때, 모션제어장치(100)와 적어도 하나의 서보드라이버(11)는 링 형태 또는 라인 형태의 네트워크를 구성할 수 있다. 그리고, 모션제어장치(100)와 적어도 하나의 서보드라이버(11) 간의 데이터 송수신은 소정의 통신 프로토콜에 따른 데이터 프레임 형태로 실시될 수 있다.In this case, the
또는, 도 2에 도시된 바와 같이, 각 서보드라이버(11)는 개별 통신선로(13)를 통해 모션제어장치(100)에 연결될 수 있다. 이때, 모션제어장치(100)와 각 서보드라이버(11) 간의 데이터 송수신은 펄스신호를 통해 실시될 수 있다.Alternatively, as shown in FIG. 2, each
도 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
프로그램실행부(110)는 대상기기의 모션에 대응하는 소정의 사용자프로그램을 주기적으로 실행한다. 예시적으로, 프로그램실행부(110)는 각 제어주기의 실행기간 동안 사용자프로그램의 실행을 실시할 수 있다. The
그리고, 프로그램실행부(110)는 사용자프로그램의 실행결과에 기초하여 시퀀스제어명령 및 모션제어명령을 생성한다. The
모션제어명령은 적어도 하나의 서보모터(도 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
제 1 구동제어데이터(DCD1)는 각 통신주기에서의 각 서보모터(10)의 구동에 대응한다.The first drive control data DCD1 corresponds to the drive of each
제 2 구동제어데이터(DCD2)는 각 통신주기의 다음 통신주기에서의 각 서보모터(10)의 구동에 대응한다.The second drive control data DCD2 corresponds to the driving of each
여기서, 제 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
이와 같이, 본 발명의 일 실시예에 따르면, 구동제어부(120)는 각 제어주기의 구동제어기간 동안, 각 제어주기와 다음 제어주기에 대응하는 두 개의 구동제어데이터(DCD1, DCD2)를 마련한다. As described above, according to one embodiment of the present invention, the
구체적으로, 구동제어부(120)는 프로파일제공부(121), 제어데이터생성부(122), 제 1 제어버퍼부(123), 제 2 제어버퍼부(124), 완료플래그버퍼부(125) 및 상태플래그버퍼부(126)를 포함한다.In detail, the driving
프로파일제공부(121)는 프로그램실행부(110)의 모션제어명령에 기초하여 각 서보모터(10)의 구동에 대응한 속도프로파일을 제공한다. The
예시적으로, 모션제어명령이 소정 구동기간 동안의 모션 실행 지시를 포함하는 경우, 프로파일제공부(121)는 모션제어명령에 기초하여 소정 구동기간 동안 각 서보모터(10)의 위치 변동에 관한 속도프로파일을 생성할 수 있다. 여기서, 속도프로파일은 대상기기의 모션을 실행하기 위하여, 대상기기의 모션이 실행되는 구동기간의 각 시점에 대응한 각 서보모터(10)의 위치를 나타낸다. 이에, 속도프로파일에 기초하여 각 모터의 위치 변동을 위한 속도 및 변속기간 등이 도출될 수 있다.For example, when the motion control command includes a motion execution instruction for a predetermined driving period, the
제어데이터생성부(122)는 프로파일제공부(121)의 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2) 중 적어도 하나를 생성한다. The control
예시적으로, 제어데이터생성부(122)는 속도프로파일에 기초하여 각 통신주기에 대응하는 서보모터(10)의 위치값을 검출할 수 있다. 제어데이터생성부(122)는 각 통신주기의 이전 통신주기의 위치값에서 각 통신주기의 위치값으로 이동되기 위한 목표속도, 목표토크 및 가감속기간 중 적어도 하나를 포함하는 가감속프로파일을 생성할 수 있다. 그리고, 제어데이터생성부(122)는 가감속프로파일에 기초하여 각 통신주기에 대응한 제 1 구동제어데이터(DCD1) 및 각 통신주기의 다음 통신주기에 대응한 제 2 구동제어데이터(DCD2) 중 적어도 하나를 생성할 수 있다.In exemplary embodiments, the
여기서, 제어데이터생성부(122)는 속도프로파일이 유지되는 동안 각 제어주기마다 기 생성된 가감속프로파일을 실행하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2) 중 적어도 하나를 생성할 수 있다. 즉, 제어데이터생성부(122)는 각 제어주기마다 가감속프로파일을 생성하는 것이 아니라, 속도프로파일에 대응하는 가감속프로파일을 생성하면, 새로운 속도프로파일이 제공되기 전까지 각 제어주기마다 기 생성된 가감속프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2) 중 적어도 하나를 생성할 수 있다.Here, the control
더불어, 프로파일제공부(121)로부터 새로운 속도프로파일이 제공되는 경우, 및 이전 제어주기 동안 제 2 구동제어데이터가 갱신되지 않은 경우에, 제어데이터생성부(122)는 프로그램실행부(110)의 모션제어명령 및 프로파일제공부(121)의 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 생성한다.In addition, when a new speed profile is provided from the
반면, 프로파일제공부(121)의 속도프로파일이 그대로 유지되는 경우 및 이전 제어주기 동안 제 1 및 제 2 구동제어데이터가 모두 갱신된 경우에, 제어데이터생성부(122)는 프로그램실행부(110)의 모션제어명령 및 프로파일제공부(121)의 속도프로파일에 기초하여 제 2 구동제어데이터(DCD2)만을 생성한다.On the other hand, when the speed profile of the
제 1 제어버퍼부(123)는 제 1 구동제어데이터(DCD1)를 보유한다. 여기서, 제 1 제어버퍼부(123)는 제어데이터생성부(122) 및 제 2 제어버퍼부(124) 중 어느 하나로부터 제공되는 데이터에 의해 갱신된다.The first
제 2 제어버퍼부(124)는 제 2구동제어데이터(DCD2)를 보유한다. 여기서 제 2 제어버퍼부(124)는 제어데이터생성부(122)로부터 제공되는 제 2 구동제어데이터에 의해 갱신된다.The second
완료플래그버퍼부(125)는 각 제어주기 동안 제 1 및 제 2 제어버퍼부(123, 124)의 갱신 여부에 대응한 갱신완료플래그를 보유한다.The completion
여기서, 갱신완료플래그는 각 통신주기의 데이터송수신기간이 종료되면 미완레벨로 초기화된다. 그리고, 각 제어주기 동안 제 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
상태플래그버퍼부(126)는 각 통신주기의 데이터송수신기간이 개시되는 시점에 갱신완료플래그가 완료레벨인지 여부에 대응한 상태플래그를 보유한다. The state
여기서, 각 통신주기의 데이터송수신기간이 개시되는 시점에 갱신완료플래그가 완료레벨이면, 상태플래그는 정상레벨로 유지된다.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
여기서, 도 1의 도시와 같이, 모션제어장치(100)와 적어도 하나의 서보드라이버(11)가 네트워크 통신선로(12)를 통해 연결된 경우, 통신처리부(130)는 소정의 통신 프로토콜에 따라, 제 1 구동제어데이터(DCD1)가 삽입된 데이터 프레임을 각 서보드라이버(11)에 송신할 수 있다.Here, as shown in FIG. 1, when the
또는, 도 2의 도시와 같이, 모션제어장치(100)가 개별 통신선로(13)를 통해 각 서보드라이버(11)와 연결된 경우, 통신처리부(130)는 제 1 구동제어데이터(DCD1)에 대응한 펄스신호를 각 서보드라이버(11)에 송신할 수 있다.Alternatively, as shown in FIG. 2, when the
한편, 본 발명의 일 실시예에 따른 제어데이터생성부(122)는 프로그램실행부(110)의 모션제어명령, 프로파일생성부(121)의 속도프로파일 및 상태플래그버퍼부(126)의 상태플래그에 기초하여 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다. On the other hand, the control
구체적으로, 제어데이터생성부(122)는 프로그램실행부(110)로부터 모션제어명령을 수신하면 제 1 및 제 2 제어버퍼부(123, 124) 중 적어도 하나의 갱신을 위한 구동제어데이터의 생성을 실시한다.In detail, the control
이때, 프로파일제공부(121)로부터 새로운 속도프로파일이 제공되는 경우, 제어데이터생성부(122)는 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터를 각각 생성한다. 그리고, 생성된 제 1 구동제어데이터(DCD1)에 기초하여 제 1 제어버퍼부(123)를 갱신하며, 생성된 제 2 구동제어데이터(DCD2)에 기초하여 제 2 제어버퍼부(124)를 갱신한다.In this case, when a new speed profile is provided from the
또는, 프로파일제공부(121)의 속도프로파일이 그대로 유지되고, 상태플래그버퍼부(126)의 상태플래그가 정상레벨이면, 각 제어주기가 개시되는 시점에 제어데이터생성부(122)는 제 2 제어버퍼부(124)의 제 2 구동제어데이터(DCD2)에 기초하여 제 1 제어버퍼부(123)를 갱신한다.Alternatively, if the speed profile of the
그리고, 제어데이터생성부(122)는 각 제어주기의 구동제어기간 동안 속도프로파일에 기초하여 제 2 구동제어데이터(DCD2)를 생성하고, 생성된 제 2 구동제어데이터(DCD2)에 기초하여 제 2 제어버퍼부(124)를 갱신한다.The control
또는, 상태플래그버퍼부(126)의 상태플래그가 이상레벨이면, 제어데이터생성부(122)는 각 제어주기의 구동제어기간 동안 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터를 각각 생성한다. 그리고, 생성된 제 1 구동제어데이터(DCD1)에 기초하여 제 1 제어버퍼부(123)를 갱신하며, 생성된 제 2 구동제어데이터(DCD2)에 기초하여 제 2 제어버퍼부(124)를 갱신한다.Alternatively, if the state flag of the state
다음, 도 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
이후, 통신처리부(130)는 각 통신주기의 데이터송수신기간 동안 제 1 제어버퍼부(123)의 제 1 구동제어데이터를 각 서보드라이버(11)에 전달한다. (S14)Thereafter, the
그리고, 각 통신주기의 데이터송수신기간이종료되는 시점 및 각 제어주기가 개시되는 시점 중 어느 하나에, 제어데이터생성부(122)는 완료플래그버퍼부(125)의 갱신완료플래그를 미완레벨로 초기화한다. (S15)The control
그리고, 각 제어주기가 개시되면, 제어데이터생성부(122)는 제 2 제어버퍼부(124)의 제 2 구동제어데이터에 기초하여 제 1 제어버퍼부(123)를 갱신한다. (S16)Then, when each control period is started, the control
여기서, 각 통신주기와 각 제어주기는 서로 다른 위상의 동일한 기간으로 이루어질 수 있다. 즉, 각 통신주기의 데이터송수신기간이 종료되는 시점에 각 제어주기가 개시될 수 있다. 다만, 이는 단지 예시일 뿐이며, 각 제어주기의 실행기간 및 구동제어기간 이후에 통신주기의 데이터송수신기간이 배치되는 범위 내에서, 제어주기 및 통신주기는 사용자의 의도에 따라 변형될 수 있다. 예시적으로, 통신주기는 제어주기의 정수배일 수 있다.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
모션제어명령이 모션실행지시를 포함하는 경우, 각 제어주기의 실행기간이 종료되고 구동제어기간이 개시되면, 프로파일생성부(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
이때, 프로파일생성부(121)가 새로운 속도프로파일을 제공하는 경우 (S22), 제어데이터생성부(122)는 모션제어명령 및 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 생성하고, 생성된 제 1 및 제 2 구동제어데이터(DCD1, DCD2)에 기초하여 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다. (S23)At this time, when the
즉, 제어데이터생성부(122)는 새로운 속도프로파일에 대응하는 가감속프로파일을 생성하고, 가감속프로파일에 기초하여 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 생성한다. 그리고, 생성된 제 1 및 제 2 구동제어데이터(DCD1, DCD2)를 제 1 및 제 2 제어버퍼부(123, 124)에 전달함으로써, 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다.That is, the control
이에, 제 1 및 제 2 제어버퍼부(123, 124)가 모두 갱신되므로, 제어데이터생성부(122)는 완료플래그버퍼부(125)의 갱신완료플래그를 완료레벨로 변경한다. (S24)Accordingly, since both the first and second
또는, 프로파일생성부(121)가 속도프로파일을 그대로 유지하는 경우 (S22), 상태플래그버퍼부(126)의 상태플래그가 정상레벨이면 (S25), 제어데이터생성부(122)는 모션제어명령 및 속도프로파일에 기초하여 제 2 구동제어데이터(DCD2)를 생성하고, 생성된 제 2 구동제어데이터(DCD2)에 기초하여 제 2 제어버퍼부(124)를 갱신한다. (S26)Alternatively, when the
즉, 제어데이터생성부(122)는 속도프로파일이 그대로 유지됨에 따라, 기 생성된 가감속프로파일을 그대로 유지하고, 기 생성된 가감속프로파일에 기초하여 제 2 구동제어데이터(DCD2)를 생성한다. 그리고, 생성된 제 2 구동제어데이터(DCD2)를 제 2 제어버퍼부(124)에 전달함으로써, 제 2 제어버퍼부(124)를 갱신한다.That is, as the speed profile is maintained as it is, the control
앞서 도 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
이에, 제 2 제어버퍼부(124)가 갱신되면 (S26), 제 1 및 제 2 제어버퍼부(123, 124)가 모두 갱신되므로, 제어데이터생성부(122)는 완료플래그버퍼부(125)의 갱신완료플래그를 완료레벨로 변경한다. (S24)Thus, when the second
또는, 상태플래그버퍼부(126)의 상태플래그가 이상레벨이면 (S25), 제어데이터생성부(122)는 모션제어명령 및 속도프로파일에 기초하여 제 1 및 제 2 구동제어데이터를 생성하고, 생성된 제 1 및 제 2 구동제어데이터에 기초하여 제 1 및 제 2 제어버퍼부(123, 124)를 갱신한다. (S23)Alternatively, if the state flag of the state
즉, 이상레벨의 상태플래그는 제 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
이에, 제 1 및 제 2 제어버퍼부(123, 124)가 모두 갱신되므로, 제어데이터생성부(122)는 완료플래그버퍼부(125)의 갱신완료플래그를 완료레벨로 변경한다. (S24)Accordingly, since both the first and second
다음, 도 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
도 6의 예시에 따르면, 제 1 제어주기(201)의 실행기간(PE)동안 프로그램실행부(110)는 사용자프로그램을 실행하고, 실행결과에 기초하여 모션제어명령을 생성한다.According to the example of FIG. 6, during the execution period PE of the
제 1 제어주기(201)의 구동제어기간(MC) 동안 구동제어부(120)는 모션제어명령에 기초하여 제 1 및 제 2 제어버퍼부(B1, B2)(도 3의 123, 124)를 갱신한다.During the drive control period MC of the
즉, 프로그램실행부(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
그리고, 구동제어부(120)의 제어데이터생성부(122)는 속도프로파일에 기초하여 각 위치값의 이전 위치값에서 각 위치값으로 이동하기 위한 가감속프로파일을 생성한다.Then, the control
이어서, 제어데이터생성부(122)는 가감속프로파일을 실행하여 제 1 통신주기(211)에 대응한 제 1 위치값(P1)을 포함하는제 1 구동제어데이터를 생성한다. 여기서, 제 1 구동제어데이터는 제 1 위치값(P1)으로의 이동을 위한 목표속도, 목표토크 및 가감속기간 중 적어도 하나를 더 포함할 수 있다.Subsequently, the control
그리고 제어데이터생성부(122)는 가감속프로파일을 더 실행하여 제 1 통신주기(211)의 다음 순번인 제 2 통신주기(212)에 대응한 제 2 위치값(P2)을 포함하는 제 2 구동제어데이터를 생성한다. 여기서, 제 2 구동제어데이터는 제 2위치값(P2)으로의 이동을 위한 목표속도, 목표토크 및 가감속기간 중 적어도 하나를 더 포함할 수 있다.In addition, the control
제어데이터생성부(122)는 생성된 제 1 및 제 2 구동제어데이터를 제 1 및 제 2 제어버퍼부(B1, B2)에 전달한다. 이로써, 제 1 제어버퍼부(B1)는 제 1 위치값(P1)에 대응한 제 1 구동제어데이터를 보유하도록 갱신되고, 제 2 제어버퍼부(B2)는 제 2 위치값(P2)에 대응한 제 2 구동제어데이터를 보유하도록 갱신된다.The control
이와 같이, 제 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
제 1 통신주기(211)의 개시시점에 갱신완료플래그가완료레벨이므로, 상태플래그(SF; Status Flag)는 정상레벨로 유지된다.Since the update completion flag is the completion level at the start of the
그리고, 제 1 통신주기(211)의 데이터송수신기간(DC) 동안 통신처리부(130)는 제 1 제어버퍼부(B1)의 제 1 구동제어데이터를 서보드라이버에 전달한다.The
제 1 통신주기(211)의 데이터송수신기간(DC)가 종료되는 시점에, 제어데이터생성부(212)는 갱신완료플래그(RFF)를 미완레벨로 변경한다.When the data transmission / reception period DC of the
그리고, 제 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
다음, 속도프로파일이 그대로 유지되고 상태플래그(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
제어데이터생성부(122)는 생성된 제 2 구동제어데이터를 제 2 제어버퍼부(B2)에 전달함으로써, 제 2 제어버퍼부(B2)는 제 3 통신주기(213)의 제 3위치값(P3)에 대응한 제 2 구동제어데이터를 보유하도록 갱신된다.The control
그리고, 제 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
이에, 제 2 통신주기(212)의 개시시점에 갱신완료플래그(RFF)가 완료레벨이므로, 상태플래그(SF)는 정상레벨로 유지된다.Accordingly, since the update completion flag RFF is at the completion level at the start of the
제 2 통신주기(212)의 데이터송수신기간(DC) 동안 통신처리부(130)는 제 1 제어버퍼부(B1)의 제 1 구동제어데이터를 서보드라이버에 전달한다.During the data transmission / reception period DC of the
제 2 통신주기(212)의 데이터송수신기간(DC)이 종료되면, 제어데이터생성부(122)는 갱신완료플래그(RFF)를 미완레벨로 변경한다.When the data transmission / reception period DC of the
그리고, 제 2 제어주기(203)의 종료시점 또는 제 2 통신주기(212)의 데이터송수신기간(DC)의 종료시점에 제어데이터생성부(122)는 제 2 제어버퍼부(B2)의 제 2 구동제어데이터에 기초하여 제 1 제어버퍼부(B1)를 갱신한다. 이로써, 제 1 제어버퍼부(B1)는 제 3 통신주기(213)의 제 3위치값(P3)에 대응한 제 1 구동제어데이터를 보유하도록 갱신된다.Then, at the end of the
이어서, 제 3 제어주기(203)의 실행기간(PE)과 구동제어기간(MC) 중 적어도 하나가 제어주기로 할당된 기간보다 길게 지연된다. 그로 인해, 제 2 제어버퍼부(B2)이 갱신되지 않은 상태이므로, 갱신완료플래그(RFF)는 미완레벨로 유지된다.Subsequently, at least one of the execution period PE and the drive control period MC of the
이에, 제 3 통신주기(213)의 개시시점에 갱신완료플래그(RFF)가 미완레벨이므로, 상태플래그(SF)는 이상레벨로 변경된다.Therefore, since the update completion flag RFF is incomplete level at the start of the
다만, 제 1 제어버퍼부(B1)는 제 3 통신주기(203)의 개시 시점에 제 2 제어버퍼부(B2)의 제 2 구동제어데이터에 기초하여, 제 3 통신주기(213)에 대응한 제 3 위치값(P3)을 나타내는 제 1 구동제어데이터를 보유하도록 갱신된다. However, the first control buffer unit B1 corresponds to the
이에 따라, 제 3 통신주기(213)의 데이터송수신기간(DC) 동안, 통신처리부(130)는 제 3 위치값(P3)을 나타내는 제 1 구동제어데이터를 서보드라이버에 전달한다.Accordingly, during the data transmission / reception period DC of the
그리고, 상태플래그(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
그리고, 생성된 제 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
이와 같이, 제 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
그리고, 제 4 통신주기(214)의 데이터송수신기간(DC)이 종료하는 시점에 갱신완료플래그(RFF)가 완료레벨에서 미완레벨로 변경된다. 이에 따라 상태플래그(SF) 또한 이상레벨에서 정상레벨로 변경된다.At the end of the data transmission / reception period DC of the
이상과 같이, 본 발명의 일 실시예에 따르면, 각 통신주기에 대응한 제 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 및 제 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.
상기 속도프로파일은 상기 대상기기의 모션을 실행하기 위해 상기 모션이 실행되는 기간의 각 시점에 대응한 상기 각 서보모터의 위치를 나타내는 모션제어장치.
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.
상기 프로파일제공부로부터 새로운 속도프로파일이 제공되면, 상기 제어데이터생성부는,
상기 속도프로파일에 기초하여 상기 제 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 구동제어데이터에 기초하여 상기 제 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.
상기 프로파일제공부의 상기 속도프로파일이 유지되고, 상기 상태플래그가 정상레벨이면, 상기 제어데이터생성부는,
상기 속도프로파일에 기초하여 상기 다음 통신주기에서의 상기 서보모터의 속도에 대응한 제 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.
상기 상태플래그가 이상레벨이면, 상기 제어데이터생성부는,
상기 속도프로파일에 기초하여 상기 제 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.
상기 각 통신주기의 데이터송수신기간이 종료되면, 상기 갱신완료플래그는 상기 미완레벨로 초기화되고,
상기 제 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.
상기 각 통신주기의 데이터송수신기간이 개시되는 시점에 상기 갱신완료플래그가 상기 완료레벨이면, 상기 상태플래그는 정상레벨로 유지되고,
상기 각 제어주기의 개시시점에 상기 갱신완료플래그가 상기 미완레벨이면, 상기 상태플래그는 이상레벨로 변경되며,
상기 갱신완료플래그가 상기 미완레벨에서 상기 완료레벨로 변경되기까지 상기 상태플래그는 이상레벨로 유지되는 모션제어장치.
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 및 제 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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220161931A (en) * | 2021-05-31 | 2022-12-07 | 한국로봇융합연구원 | Kinetic Display Controller |
-
2018
- 2018-02-23 KR KR1020180021624A patent/KR20190101541A/en unknown
Cited By (1)
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 |