KR101731045B1 - Apparatus for precise-adjustment of frame transmission time in the motion control system based on EtherCAT, method thereof and computer recordable medium storing the method - Google Patents

Apparatus for precise-adjustment of frame transmission time in the motion control system based on EtherCAT, method thereof and computer recordable medium storing the method Download PDF

Info

Publication number
KR101731045B1
KR101731045B1 KR1020150127587A KR20150127587A KR101731045B1 KR 101731045 B1 KR101731045 B1 KR 101731045B1 KR 1020150127587 A KR1020150127587 A KR 1020150127587A KR 20150127587 A KR20150127587 A KR 20150127587A KR 101731045 B1 KR101731045 B1 KR 101731045B1
Authority
KR
South Korea
Prior art keywords
offset
motion
motion control
time
phase
Prior art date
Application number
KR1020150127587A
Other languages
Korean (ko)
Other versions
KR20170030262A (en
Inventor
김태현
김익환
Original Assignee
서울시립대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울시립대학교 산학협력단 filed Critical 서울시립대학교 산학협력단
Priority to KR1020150127587A priority Critical patent/KR101731045B1/en
Publication of KR20170030262A publication Critical patent/KR20170030262A/en
Application granted granted Critical
Publication of KR101731045B1 publication Critical patent/KR101731045B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation

Abstract

The present invention relates to an apparatus for correcting a frame transmission time point of an Ethernet-based motion control system, a method therefor and a computer-readable recording medium on which the method is recorded. The present invention relates to a motion control task including a transmission phase (Publish Phase) for transmitting a frame including a control command to a motor drive

Figure 112015087677915-pat00158
A motion controller for performing a motion control task on the motion control task, the communication controller for communicating with the motion controller performing the motion control task, and a pre-runtime executable file for causing the motion controller to collect the measurement data, And a controller for receiving the measurement data collected by the motion controller through the communication unit from the motion controller and analyzing the received measurement data to calculate a difference A data analysis module for deriving a range of offsets for delaying the starting point of the transmission step so that the offset is within a range of the offset, and a motion control task for delaying the starting point of the transmission step by a determined offset, Executable And a transmission time reflecting module for transmitting the generated transmission time point to the motion controller. The present invention also provides a method for correcting a frame transmission time point, and a computer readable recording medium on which the method is recorded.

Description

TECHNICAL FIELD [0001] The present invention relates to an apparatus for precisely correcting a frame transmission time point of an Ethernet-based motion control system, a method therefor, and a computer-readable recording medium on which the method is recorded. , method thereof and computer recordable medium storing the method}

The present invention relates to an Ethernet-based motion control system, and more particularly, to an apparatus for precisely correcting a frame transmission time point of an Ethernet-based motion control system, a method therefor, and a computer- .

Motion control systems, which are widely used in surgical robots and various industrial automation fields, are generally a system in which each component is physically and logically coupled strongly by utilizing industrial fieldbus technology. Different applications have different time requirements, but generally require a high level of synchronization. Representative real-time constraints include bounded end-to-end delay and end-to-end delay time variance.

The end-to-end delay time means the time from when the control command is generated from the motion controller to when the corresponding operation is generated in the motor drive. The smaller the value, the higher the precision of the shortening. The minimum cycle time (MCT) of the motion control system can be calculated from the end-to-end delay time. The deviation of the end-to-end delay time means a deviation of operation time between several drives within the same cycle (control cycle), and the smaller the value, the higher the synchronicity with respect to multiple axes.

The motion controller, which is one of the core components of the motion control system, is gradually becoming a universal one according to the requirements of the market to provide various additional functions such as interworking with the management system (MES, ERP) PC-based controllers using desktops and operating systems are becoming increasingly popular, and software is becoming increasingly important. On the other hand, real-time Ethernet (RTE) technology based on Ethernet technology, which is widely used in PC environment, has advantages such as high bandwidth, scalability, and relatively low maintenance cost, . One of the RTE network technologies, EtherCAT, is attracting attention due to its deterministic message communication delay, fast message delivery, global clock-based synchronization, and the flexibility and relatively low price of network topologies.

However, hardware - based frame switching, which is one of the advantages of Ethercat, can guarantee a deterministic data transfer time, but it can only satisfy real - time constraints at the communication network level. In the whole motion control system, And the delay time inside the motion controller and motor drive to account for the deviation, and the message delivery time through the network. In addition, in the case of Distributed Clock (DC) of Ethernet, which is known to provide a deviation of the end-to-end delay time of less than 1 μs, the time of occurrence of the distributed clock synchronization event in the transmission cycle And the delay time due to the internal software of the motion controller and the motor drive must be time-deterministic. Indeed, the biggest factor affecting end-to-end latency on an EtherCAT-based control network is the processing delay by software within the controller.

Korean Published Patent No. 2014 February 02, 2014 (name: Ethernet communication system and time synchronization method)

The motion control system must calculate the control message in the motion controller and the data exchange time between the controller and all the drives must be completed within a predetermined execution cycle (Tcycle). At the time when the motor operates and senses to generate accurate motion, (Isochronous Control). Ethercat provides two techniques: frame-based synchronization and DC-based synchronization. Frame-based synchronization is a technique in which a motor drive is driven by a motor drive in synchronization with arrival events of a frame transmitted from a motion controller. Distributed clock-based synchronization places a global clock in the motion control system so that all motor drives are synchronized at this point . The device supporting Ethernet is classified into a device supporting both the above-described two synchronization techniques and a device supporting only the frame-based synchronization technique. For a distributed clock-based synchronization, an appropriate shift time (a specific point in the control cycle) must be selected. Basically, it should be set to a point after the frame arrives at each motor drive so that the data exchange sequence is the same between the motion controller and the motor drive. For the frame arrival time interval should be constant. It is therefore an object of the present invention to provide a uniform frame transmission time point in an Ethernet-based motion control system composed of a motion controller and a plurality of motor drives.

According to an aspect of the present invention, there is provided an apparatus for correcting a frame transmission time, the apparatus comprising: a motion control task including a transmission phase for transmitting a frame having a control command to a motor drive

Figure 112015087677915-pat00001
And a control unit for controlling the motion controller to perform a motion control task and a motion control task, wherein the motion controller is configured to perform a pre-run time execution to collect measurement data including parameters related to the motion control task execution time while the motion controller is executing the motion control task And a controller for receiving the measurement data collected by the motion controller through the communication unit from the motion controller and analyzing the received measurement data to transmit the frame, And an offset for delaying the start time of the transmission step so that the difference between the intervals is minimized
Figure 112015087677915-pat00002
A data analysis module for deriving a range of the offset,
Figure 112015087677915-pat00003
), And the determined offset (
Figure 112015087677915-pat00004
And a transmission time reflecting module for generating an execution file to be executed by delaying the start time of the transmission step by a predetermined number of times and transmitting the generated execution file to the motion controller.

The motion control task (

Figure 112015087677915-pat00005
) Includes a collection phase (Retrieve Phase) for collecting feedback information, which is information about motions made in a motor connected to the motor drive, from the motor drive, a calculation phase (Computation Phase) for calculating a next motion based on the feedback information, And a transmission phase (Publish Phase) for transmitting a frame including a control command based on the calculated motion, wherein the data analysis module determines that the start point of the transmission step is a point at which the offset And the lower limit of the range is derived.

The data analysis module derives an upper limit of the range of the offset so that the execution times of the two consecutive motion control tasks do not overlap.

Wherein the data analysis module determines that the upper limit of the range of the offset is longer than the lower limit of the range of the offset

Figure 112015087677915-pat00006
) The range of the offset is derived.

Wherein the data collection module generates a storage code for storing measurement codes for time measurement of the motion control task and measurement data measured in accordance with the measurement code in a stub code to generate the free runtime execution file And transmits the generated free runtime execution file to the motion controller.

The range of the offset is given by the following equation

Figure 112015087677915-pat00007
Lt; / RTI >

remind

Figure 112015087677915-pat00008
Is the lower limit of the offset range,
Figure 112015087677915-pat00009
Is the upper limit of the offset range,
Figure 112015087677915-pat00010
Is the release jitter of the motion control task,
Figure 112015087677915-pat00011
Is a time point at which the computation phase of the motion control task ends,
Figure 112015087677915-pat00012
Is the execution cycle of the motion control task,
Figure 112015087677915-pat00013
Is also the time for performing the control sequence execution time of the current task instance and the time for the control command to update the information of the updated motor drive by traversing all the motor drives to the motion controller,
Figure 112015087677915-pat00014
Is a maximum value of a case in which the motion control task instance starts earlier than a predetermined time.

According to an aspect of the present invention, there is provided a method for correcting a frame transmission time, the method comprising: transmitting a frame including a control command to a motor drive, (

Figure 112015087677915-pat00015
) Generates a free runtime execution file for collecting measurement data, which is a parameter related to the motion control task execution time, while the motion control task is being performed, and transmits the generated free runtime execution file to the motion controller Receiving the measurement data collected by the motion controller from the motion controller and analyzing the received measurement data to delay the start time of the transmission step so as to minimize a difference in interval between transmission times of the frame, Offset (
Figure 112015087677915-pat00016
) Within the range of the offset, and deriving a range of the offset
Figure 112015087677915-pat00017
), Determining the determined offset (
Figure 112015087677915-pat00018
Generating a runtime executable file for executing the motion control task so that the start time of the transfer step is delayed and executed by a predetermined number of times.

The motion control task (

Figure 112015087677915-pat00019
) Includes a collection phase (Retrieve Phase) for collecting feedback information, which is information about motions made in a motor connected to the motor drive, from the motor drive, a calculation phase (Computation Phase) for calculating a next motion based on the feedback information, And a transmission phase (Publish Phase) for transmitting a frame including a control command based on the calculated motion, wherein the offset
Figure 112015087677915-pat00020
) Derives the lower limit of the range of the offset so that the starting point of the transmission step is performed after the end of the calculation step. The offset (
Figure 112015087677915-pat00021
) Is derived by deriving an upper limit of the range of the offset so that the execution times of two successive motion control tasks do not overlap.

The offset (

Figure 112015087677915-pat00022
) Is such that the upper limit of the range of the offset is longer than the lower limit of the range of the offset
Figure 112015087677915-pat00023
) The range of the offset is derived.

The step of transmitting the free runtime executable file may include generating a stuck code for storing a measurement code for time measurement for the motion control task and measurement data measured according to the measurement code in a stub code, And transmits the generated free runtime execution file to the motion controller.

The range of the offset is given by the following equation

Figure 112015087677915-pat00024
, And
Figure 112015087677915-pat00025
Is the lower limit of the offset range,
Figure 112015087677915-pat00026
Is the upper limit of the offset range,
Figure 112015087677915-pat00027
Is the release jitter of the motion control task,
Figure 112015087677915-pat00028
Is a time point at which the computation phase of the motion control task ends,
Figure 112015087677915-pat00029
Is the execution cycle of the motion control task,
Figure 112015087677915-pat00030
Is a time for which the control sequence execution time of the current task instance and the control command are updated to the motion controller by cycling through all the motor drives and updating the information of the motor drive,
Figure 112015087677915-pat00031
Is a maximum value of a case where the motion control task starts earlier than a predetermined time.

According to another aspect of the present invention, there is provided a computer-readable recording medium having recorded thereon instructions for executing a method for correcting the above-mentioned frame transmission time.

According to the present invention as described above, the measurement data received in the Ethernet-based motion control system including the motion controller and the plurality of motor drives is analyzed and the control command is transmitted so as to minimize the difference in the interval between the transmission times of the frames The transmitting point of the containing frame is offset (

Figure 112015087677915-pat00032
). Accordingly, by providing a uniform frame transmission time point, it is possible to provide the short axis motion precision (precision) and the multi-axis motion synchrony in an ethereal-based motion control system.

1 is a block diagram illustrating a configuration of a motion control system according to an embodiment of the present invention.
2 is a block diagram for explaining a configuration of a correction apparatus according to an embodiment of the present invention.
3 and 4 are views for explaining a motion control performing sequence according to an embodiment of the present invention.
5 is a diagram for explaining a method of deriving a range of an offset according to an embodiment of the present invention.
6 is a flowchart illustrating a method for correcting a frame transmission time point of a motion control system according to an embodiment of the present invention.
FIG. 7 is an example of a screen for explaining analysis data derived by analyzing measurement data according to an embodiment of the present invention.

Prior to the detailed description of the present invention, the terms or words used in the present specification and claims should not be construed as limited to ordinary or preliminary meaning, and the inventor may designate his own invention in the best way It should be construed in accordance with the technical idea of the present invention based on the principle that it can be appropriately defined as a concept of a term to describe it. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and are not intended to represent all of the technical ideas of the present invention. Therefore, various equivalents It should be understood that water and variations may be present.

Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that, in the drawings, the same components are denoted by the same reference symbols as possible. Further, the detailed description of known functions and configurations that may obscure the gist of the present invention will be omitted. For the same reason, some of the elements in the accompanying drawings are exaggerated, omitted, or schematically shown, and the size of each element does not entirely reflect the actual size.

First, the configuration of a motion control system according to an embodiment of the present invention will be described. 1 is a block diagram illustrating a configuration of a motion control system according to an embodiment of the present invention.

Referring to FIG. 1, a motion control system according to an embodiment of the present invention includes a motion controller 100, a plurality of homogenous motor drives 200 and a correction device 300, and includes a motion controller 100, The motor drives 200 are connected to the EtherCAT network (Line topology). In addition, the correction device 300 and the motion controller 100 are connected by a wireless or wired network.

The motion controller 100 periodically generates a control command including the target speed and the torque values, and transmits the control command to the motor drive 200 by including it in the Ethernet frame. The motor drive 200 basically performs an internal control loop based on the control command received from the motion controller 100 to operate the motor. Then, the motor drive 200 reports feedback information to the motion controller 100, which is information on the motion of the motor such as the current position and velocity value of the motor, using a sensor such as an encoder. Then, the motion controller 100 transmits a control command to the motor drive 200 based on the feedback information. A software component that performs this series of procedures is referred to as a motion control task,

Figure 112015087677915-pat00033
And performs a motion control task. That is, the motion control task of one cycle includes a collecting step (Retrieve Phase) in which the motion controller 100 collects feedback information, which is information on motion in the motor connected to the motor drive 200, from the motor drive 200, (Computation Phase) for calculating a next motion based on the calculated motion and a transmission phase (Publish Phase) for transmitting a frame including a control command based on the calculated motion. Such a motion control task can be implemented in a form that is responsible for dividing a single task or each part into a plurality of subtasks. However, in the embodiment of the present invention, description will be made assuming that the task is a single task.

The correction device 300 is for correcting a transmission time point of a frame according to an embodiment of the present invention. The correction device 300 receives the measurement data, which is a parameter related to the motion control task execution time, when performing the motion control task from the motion controller 100, analyzes the measurement data, and transmits the frame containing the control command An offset that delays the start time of the transmission phase (i.e.,

Figure 112015087677915-pat00034
) Is derived. The correction device 300 then determines the offset (i. E. ≪ RTI ID = 0.0 >
Figure 112015087677915-pat00035
). The correction device 300 then determines whether the motion controller 100 has determined the offset (< RTI ID = 0.0 >
Figure 112015087677915-pat00036
) To control the motion controller 100 to execute the motion control task. The construction and operation of this correction device 300 will be described in more detail below.

The configuration of the correction apparatus according to the embodiment of the present invention will now be described. 2 is a block diagram for explaining a configuration of a correction apparatus according to an embodiment of the present invention.

Referring to FIG. 2, the correction device 300 according to an exemplary embodiment of the present invention may be a stand-alone device that operates by itself. Typically, the correction device 300 may illustrate a personal computer. In addition, the correction device 300 may exemplify a tablet PC, a tablet PC, a notebook, and the like. The correction device 300 includes a communication unit 310, an input unit 320, a display unit 330, a storage unit 340, and a control unit 350.

The communication unit 310 is for communication with the motion controller 100, and such communication can be performed wirelessly or via wire. When the communication unit 310 performs wireless communication, it transmits and receives data through a radio frequency signal with the motion controller 100. In this case, the communication unit 310 may include an RF transmitter for up-converting and amplifying the frequency of the transmitted signal, an RF receiver for low-noise amplifying (LNA) the received signal and down-converting the frequency have. In addition, when the communication unit 310 performs wired communication, the communication unit 310 may include an input / output port for wired communication, a modem, and the like.

The input unit 320 receives a user's key operation for controlling the correction device 300, generates an input signal, and transmits the input signal to the control unit 350. The input unit 320 may include various keys including a power key for power on / off. The function of each kind of keys of the input unit 320 may be performed by the display unit 330 and the input unit 320 may be omitted if the display unit 330 can perform all the functions.

The display unit 330 visually provides a menu of the correction device 300, input data, function setting information, and various other information to the user. The display unit 330 may perform a function of outputting a boot screen, a standby screen, a menu screen, and other application screens of the correction apparatus 300. In particular, the display 330 may include a release jitter of the task according to an embodiment of the present invention

Figure 112015087677915-pat00037
) And execution time (
Figure 112015087677915-pat00038
) And the time at which the frame including the control command is transmitted
Figure 112015087677915-pat00039
), The minimum value, the maximum value, and the standard deviation, can be displayed on the screen. The display unit 330 may be formed of a liquid crystal display (LCD), an organic light emitting diode (OLED), an active matrix organic light emitting diode (AMOLED), or the like. Meanwhile, the display unit 330 may be implemented as a touch screen. In this case, the display section 330 includes a touch sensor. The touch sensor senses the user's touch input. The touch sensor may be constituted by a touch sensing sensor such as a capacitive overlay, a pressure type, a resistive overlay, or an infrared beam, or may be constituted by a pressure sensor . In addition to the above sensors, all kinds of sensor devices capable of sensing contact or pressure of an object can be used as the touch sensor of the present invention. The touch sensor senses the touch input of the user, generates a sensing signal, and transmits the sensed signal to the control unit 350. The sensing signal may include coordinate data input by the user. When the user inputs the touch position movement operation, the touch sensor may generate a sensing signal including the coordinate data of the touch position movement path and transmit the sensing signal to the controller 350. [

The storage unit 340 stores programs and data necessary for the operation of the correction device 300, and can be divided into a program area and a data area. The program area may store a program for controlling the overall operation of the correction device 300 and an operating system (OS) for booting the correction device 300, an application for executing the control task according to an embodiment of the present invention, have. The data area is an area where user data generated according to use of the correction device 300 is stored. In addition, the storage unit 340 may store various kinds of data received by the correction device 300 from the motion controller 100. [ Each kind of data stored in the storage unit 340 can be deleted, changed, or added according to a user's operation.

The control unit 350 may control the overall operation of the correction device 300 and the signal flow between the internal blocks of the correction device 300 and may perform a data processing function to process the data. The controller 350 may be a central processing unit (CPU), an application processor, or the like.

The control unit 350 includes a data collection module 351, a data analysis module 353, and a transmission time reflection module 357. The data acquisition module 351 generates a free runtime execution file for collecting measurement data, which is a parameter related to the motion control task execution time, and transmits the runtime execution file to the motion controller 100 through the communication unit 310. Accordingly, the motion controller 100 will collect measurement data. The data analysis module 353 receives the measurement data collected by the motion controller 100 from the motion controller 100 and analyzes the received measurement data so as to minimize the difference in intervals between the time points at which the frames are transmitted, An offset for delaying the start point of the transmission step of

Figure 112015087677915-pat00040
) Is derived. The transmission time reflecting module 357 calculates an offset to be reflected in the motion control task within the range of the offset ). At this time, the determination of the offset to be reflected in the motion control task can be made according to the user's selection or a preset algorithm. According to one embodiment, the transmission time reflecting module 357 can display a range of the offset to the user through the display unit 330. [ Accordingly, when the user selects an offset within the range of the offset through the input unit 320, the transmission time reflecting module 357 can determine the offset selected by the user to be reflected in the motion control task. According to another embodiment, the transmission time reflecting module 357 may determine a minimum value, a maximum value, an average value, or an intermediate value in an offset range as an offset to be reflected in the motion control task according to a predetermined setting. When the offset is determined, the transmission time reflecting module 357 generates an execution file of the motion control application that causes the start time of the transmission step of the motion control task to be delayed and executed by the determined offset. That is, the transmission time reflecting module 357 reflects the run time code of the motion control application whose transmission time is corrected according to the determined offset. Then, the transmission time reflecting module 357 transmits the execution file to the motion controller 100. [

Next, a motion control execution sequence according to an embodiment of the present invention will be described. 3 and 4 are views for explaining a motion control performing sequence according to an embodiment of the present invention.

The motion control execution sequence according to the embodiment of the present invention is assumed to be implemented in the form of a single task as shown in FIG. 3, and a single motion control task is assumed as a user-level task having the highest priority in the motion controller 100 do. Therefore, the execution of the control task can be delayed or preempted only by the system maintenance service or I / O interrupt handling task in the operating system. Further, it is assumed that the delay time due to software in the motor drive 200 is the same due to the use of a plurality of motor drives 200 of the same type.

Motion control task (

Figure 112015087677915-pat00042
A collection phase for collecting feedback information using the network from the motor drive 200, a computation phase for calculating motion based on the acquired information, and a transmission phase for transmitting a control frame, And a control sequence including the control sequence. This motion control task has a predetermined period (
Figure 112015087677915-pat00043
. The operations performed in each step are as follows. In the Retrieve Phase, the motion controller 100 collects status information (position, speed, torque, etc.) of the motor that the motor drive 200 reports to the motion controller 100 using the EtherCAT communication. In the computation phase, the motion controller 100 compares the intended motion trajectory with the collected state information of the motor, and performs a calculation to correct the trajectory when the motion trajectory is different. In the transmission phase (Publish Phase), the motion controller 100 transmits the control command generated based on the calculation to the motor drive 200.

According to general real-time system theory, each task instance (

Figure 112015087677915-pat00044
) Is released every fixed period. The release time of the task instance is then
Figure 112015087677915-pat00045
. However, interference occurs due to the timer resolution (TMR) or kernel level tasks of the actual motion controller 100 and the actual release time
Figure 112015087677915-pat00046
)silver
Figure 112015087677915-pat00047
,
Figure 112015087677915-pat00048
,
Figure 112015087677915-pat00049
. Due to interference by other software in the system,
Figure 112015087677915-pat00050
) May start later than the scheduled time (the motion control task release time according to the cycle of the predetermined motion control task) or may start soon. The difference between the scheduled release time and the actual release time is called task release jitter
Figure 112015087677915-pat00051
).
Figure 112015087677915-pat00052
> 0 means that if the task starts later than the specified time,
Figure 112015087677915-pat00053
≪ 0
Figure 112015087677915-pat00054
≪ 0) indicates a case where the task is started earlier than a predetermined time. Response time of the motion control task instance (
Figure 112015087677915-pat00055
) Is defined as the difference between the point at which the task instance starts to run and the point at which the control sequence ends (the end of the publish phase). Accordingly, when the execution completion time of all the motion task instances, that is, the time at which the control frame including the control command is released from the motion controller 100
Figure 112015087677915-pat00056
) Is the i-th task instance release time point
Figure 112015087677915-pat00057
) And task response time (
Figure 112015087677915-pat00058
), And can be expressed by the following Equation (1).

Figure 112015087677915-pat00059

Figure 112015087677915-pat00060

Figure 112015087677915-pat00061

Figure 112015087677915-pat00062

Figure 112015087677915-pat00063

As a result, the i-th control command observation point (

Figure 112015087677915-pat00064
Is a time point at which the i-th control frame is released in the motion controller 100
Figure 112015087677915-pat00065
) And the control frame transmission delay to the corresponding motor drive 200
Figure 112015087677915-pat00066
). ≪ / RTI >

The control frame transmission delay is the delay time by the link layer (

Figure 112015087677915-pat00067
And the frame switching time in the motor drive 200 (
Figure 112015087677915-pat00068
), And transmission time by cable (
Figure 112015087677915-pat00069
). ≪ / RTI > Frame switching time and transmission time by cable (
Figure 112015087677915-pat00070
+
Figure 112015087677915-pat00071
) Is considered to be 1 [mu] s,
Figure 112015087677915-pat00072
It is also expressed as a constant. Therefore, the control frame transmission delay to the motor drive 200
Figure 112015087677915-pat00073
) Is a constant, and eventually the i-th control command observation point (
Figure 112015087677915-pat00074
Can be expressed by the following equation (2).

Figure 112015087677915-pat00075

In order for each motor attached to each of the motor drives 200 to receive a control command and operate at a precise uniform timing, the arrival time of two consecutive control commands observed by the particular motor drive 200 is determined by the execution of the motion control task Cycle(

Figure 112015087677915-pat00076
). Equation (3) shows this. As described above, the control frame transmission delay (
Figure 112015087677915-pat00077
) Is a constant, and Equation (3) is summarized as Equation (4) by Equation (1).

Figure 112015087677915-pat00078

Figure 112015087677915-pat00079

Finally, as shown in Equation 4, the task release jitter ("

Figure 112015087677915-pat00080
) Must be 0, and the difference between the response time of the current task instance and the previous task response time
Figure 112015087677915-pat00081
) Should be absent. Equation (4) can be derived from equations (1) and (3). However, even if you use customized hardware or a real-time operating system, making these values to 0 is a real difficult problem.

Therefore, instead of making these values 0, the present invention is not limited to a condition that satisfies Equation (4) as much as possible, that is, a control frame release time difference including two consecutive control commands of the motion controller 100

Figure 112015087677915-pat00082
) As much as possible.

Actually, when the control frame including the control command is released from the motion controller 200

Figure 112015087677915-pat00083
) Is very difficult to adjust when the network device starts transmitting packets to the external port, and it is difficult to adjust the network device driver stack by the version of the operating system mounted on the platform of the motion controller 100, This is also an inefficient aspect because it is too scalable.

Therefore, the present invention adjusts the starting point of the transmission phase (Publish Phase) of each instance of the motion control task so that the time interval at which the control command is released from the motion controller 100 is made uniform. This makes it easy to obtain motion accuracy and accuracy with high portability regardless of the type of network device.

The following Equation (5) represents the starting point of the transmission phase (Publish Phase)

Figure 112015087677915-pat00084
Represents the completion point of the computation phase of the i-th task instance.

Figure 112015087677915-pat00085

3, the start of a publish phase of each task instance according to an embodiment of the present invention may include an offset

Figure 112015087677915-pat00086
). Equation (6) is an offset
Figure 112015087677915-pat00087
) Is applied and the execution timing of the delayed transmission phase (Publish Phase)
Figure 112015087677915-pat00088
).

Figure 112015087677915-pat00089

According to the present invention, the execution phase of the first task instance (publish phase)

Figure 112015087677915-pat00090
), And then the execution phase of all task instances (Publish Phase) starts with a delay after the scheduled release time,
Figure 112015087677915-pat00091
). That is, according to the present invention, the transmission step of the task instance is offset (i.e.,
Figure 112015087677915-pat00092
), And then performs the delay.

The pseudo code according to the embodiment of the present invention is shown in Table 1 below.

while (! PLC_shutdown)
retrieving sensed values;
computing motion command;
/ * Pseudo Code start from here * /
if first_iter:
/ * Delay transmission time at first task instance * /
time2transmit = first_release_time +

Figure 112015087677915-pat00093
;
else
/ * Next transmission time is determined by
sum of previous transmission time and task period * /
time2transmit + = TSK_PERIOD;
endif

now = get current system time;
/ * Waiting for the time to transmit * /
while (now <time2transmit)
now = get current system time;
endwhile
time2transmit = now;
/ * Pseudo Code end here * /
publishing motion command;
wait until next task activation;
endwhile

Then, in accordance with an embodiment of the present invention,

Figure 112015087677915-pat00094
Will now be described in more detail. FIG. 5 is a diagram illustrating an offset
Figure 112015087677915-pat00095
) In the case of the first embodiment of the present invention.

Referring to FIG. 5, an offset (&quot;

Figure 112015087677915-pat00096
The following three conditions must be satisfied.

First, for all control cycles

Figure 112015087677915-pat00097
. That is, it indicates that for all task instances, the execution phase of the publish phase should be corrected to be done after the computation phase is over. This condition is offset (
Figure 112015087677915-pat00098
) Is the lower limit of
Figure 112015087677915-pat00099
Respectively.

Second, the execution of two consecutive control cycles is not overlapped. In other words, after performing a coordinated transfer phase (Publish Phase), there must be some spare time until the next task instance is released. If the condition is not met, the next control cycle must wait for the arrival of the feedback information transmitted from the motor drive 200. [ This condition is offset (

Figure 112015087677915-pat00100
) Is the upper limit
Figure 112015087677915-pat00101
.

third,

Figure 112015087677915-pat00102
. If this condition is not met, it means that there is not enough time to complete the motion control sequence (Retrieve, Computation and Publish Phase) within the control period.

Jitter

Figure 112015087677915-pat00103
) And when the computation phase is completed (
Figure 112015087677915-pat00104
) Shows a random distribution, so the exact offset lower limit (
Figure 112015087677915-pat00105
) Is difficult to determine. Also, the offset upper limit (
Figure 112015087677915-pat00106
), The worst case task release jitter occurs (the maximum value of the case where the next task instance starts earlier than the scheduled time:
Figure 112015087677915-pat00107
), There must be enough time between the release of the control frame of the current task instance and the release of the next task instance. Therefore, the transmission time offset upper / lower limit (
Figure 112015087677915-pat00108
,
Figure 112015087677915-pat00109
) Is estimated through pre-runtime analysis before actual application execution.

Also, after all the control frames including the control sequence execution time and the control command of the current task instance have traversed the N motor drives 200, the time for updating the information of the updated motor drive 200 to the motion controller 100 (

Figure 112015087677915-pat00110
).

The range of the transmission time offset satisfying the above three constraints is expressed by Equation (7).

Figure 112015087677915-pat00111

A method of obtaining a range of the above-described offset, selecting an offset in the range of the obtained offset, and reflecting it to the motion control task will be described. 6 is a flowchart illustrating a method for correcting a frame transmission time point of a motion control system according to an embodiment of the present invention. FIG. 7 is an example of a screen for explaining analysis data derived by analyzing measurement data according to an embodiment of the present invention.

The motion control application according to an embodiment of the present invention is created by a user according to the need or intention of the user. It is assumed that the motion control application is created using the correction device 300 and stored in the storage unit 340. According to an embodiment of the present invention, a motion control application is executed in advance for a predetermined time,

Figure 112015087677915-pat00112
) Is obtained. To this end, the data acquisition module 351 of the control unit 350 includes a time measurement code and a measurement data storage code for the motion control application created by the user in step S110, thereby generating a pre-runtime execution file . At this time, the data acquisition module 351 builds a source code of the motion control application into an executable file, and generates a time measurement code and a measurement data storage code provided by the operating system based on a runtime code stub And generates an embedded pre-runtime executable file. On the other hand, the user can input the execution time of the free run-time execution file through the input unit 320 and set it in advance. Then, the data acquisition module 351 detects an input for limiting the execution time of the user's free run-time executable file through the input unit 320, and outputs a code for defining the execution time of the free run- In addition to the measurement data storage code, it can be included in the free runtime executable file.

Next, the data acquisition module 351 provides the pre-runtime execution file to the motion controller 100 through the communication unit 310 in step S120. Accordingly, after receiving the free run-time execution file from the correction device 300, the motion controller 100 executes the free run-time execution file received in step S130 for a predetermined period of time. The motion controller 100 includes a motion control task including a collection phase (Retrieve Phase), a calculation phase (Computation Phase), and a transmission phase (Publish Phase) according to a free run-

Figure 112015087677915-pat00113
). At this time, furthermore, the motion controller 100 calculates the execution time point of each task instance (for example,
Figure 112015087677915-pat00114
) And the completion time of the computation phase (
Figure 112015087677915-pat00115
), And the execution time point of this task instance (
Figure 112015087677915-pat00116
) And the completion time of the computation phase (
Figure 112015087677915-pat00117
) In the data storage space (e.g., memory) of the motion controller 100. In addition, the motion controller 100 may store the measurement data stored in the storage space in a text file format when the free runtime execution file is terminated according to the measurement data storage code included in the free runtime execution file.

Next, the motion controller 100 transmits the measurement data to the correction device 300 in step S140. Here, the measurement data may be in a text file format. The data analysis module 353 of the correction device 300 receives the measurement data through the communication unit 310. Then, in step S150, the data analysis module 353 analyzes the measurement data, which is a parameter related to the motion control task execution time, and derives the analysis data necessary for determining the offset. The analysis data includes the task's release jitter (

Figure 112015087677915-pat00118
), The point in time when the calculation step is completed
Figure 112015087677915-pat00119
) And the time at which the frame including the control command is transmitted
Figure 112015087677915-pat00120
), And further includes a probability density function for each item based on these data. In particular, the analysis data further includes a range of offsets such as Equation (7).

An offset (or motion) that increases the precision and concurrency of motion over the control cycle of the currently set motion application

Figure 112015087677915-pat00121
) Is calculated in consideration of the timing information of the measured motion control task, the number of motor drives, and the data size.

Also, the data analysis module 353 may display an analysis screen including analysis data through the display unit 330 in step S160. An example of such a screen is shown in Fig. As shown, the analysis screen displays the task's release jitter (

Figure 112015087677915-pat00122
), The calculation step is completed (
Figure 112015087677915-pat00123
) And the time at which the frame including the control command is transmitted
Figure 112015087677915-pat00124
), And a graph of the probability density function for each item is displayed based on the measured statistical value. Further, the analysis screen can display the range of the offset as shown in Equation (7). Meanwhile, the data analysis module 353 can output the graph file and the statistical summary table in the form of a text file when there is a request according to the input of the user.

On the other hand, the user can browse the analysis data through this screen. In particular, the user may browse the range of offsets and may select the offsets within the range of such offsets through input 320. When the user inputs an offset (a numerical value) selected by the user through the input unit 320, the transmission time reflecting module 357 senses the input through the input unit 320 and outputs the offset inputted by the user in step S170 to the user As an offset to be applied to the created motion control application.

Then, the transmission time reflecting module 357 receives the offset (step &lt; RTI ID = 0.0 &gt;

Figure 112015087677915-pat00125
) To the motion control application to generate an executable file. At this time, the transmission time reflecting module 357 receives the determined offset (
Figure 112015087677915-pat00126
) Is replaced with a runtime code stub by buliding the source code of the motion control application into an executable file to generate an executable file for actual execution.

Then, the transmission time reflecting module 357 transmits the execution file to the motion controller 100 in step S190. Then, in step S200, the motion controller 100 will execute an executable file of the motion control application to which the offset is applied.

On the other hand, in the embodiment described above, the correction device 300 has indicated that the range of the offset is indicated and the user selects the offset within the range of the offset. As an alternative to this embodiment, according to another embodiment of the present invention, if the data analysis module 353 derives the range of the offset as described in step S150, the transmission time reflecting module 357 may determine, The data analysis module 353 may automatically select one of the maximum value, the minimum value, the intermediate value, and the average value in the range of the offset to determine the offset to be applied to the motion control application. The transmission time reflecting module 357 applies the determined offset to the motion control application to generate an execution file and transmits the generated execution file to the motion controller 100 so that the motion controller 100 determines whether the offset Can be executed.

Meanwhile, a method for correcting a frame transmission time of an Ethernet-based motion control system according to an embodiment of the present invention may be implemented in a form of a program readable by various computer means and recorded in a computer-readable recording medium. Here, the recording medium may include program commands, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on a recording medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. For example, the recording medium may be a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical medium such as a CD-ROM or a DVD, a magneto-optical medium such as a floppy disk magneto-optical media, and hardware devices that are specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language wires such as those produced by a compiler, as well as high-level language wires that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

While the present invention has been described with reference to several preferred embodiments, these embodiments are illustrative and not restrictive. It will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.

100: Motion controller 200: Motor driver
300: Correction device 310:
320: input unit 330:
340: storage unit 350: control unit
351: Data collection module 353: Data analysis module
355: Transmission point reflection module

Claims (13)

An apparatus for correcting a frame transmission time,
A motion control task including a transmission phase (Publish Phase) for transmitting a frame having a control command to the motor drive
Figure 112017007626812-pat00166
A communication unit for communicating with the motion controller performing the motion control;
A data collection module for generating a free runtime execution file for collecting measurement data including parameters related to the motion control task execution time while the motion controller executing the motion control task through the communication unit and transmitting the generated free runtime execution file to the motion controller;
Wherein the control unit receives the measurement data collected by the motion controller from the motion controller through the communication unit and analyzes the received measurement data to delay the start time of the transmission step so as to minimize a difference in interval between transmission times of the frame, Offset (
Figure 112017007626812-pat00167
A data analysis module for deriving a range of the data; And
Within the range of the offset, an offset (
Figure 112017007626812-pat00168
), And the determined offset (
Figure 112017007626812-pat00169
And a transmission time reflecting module for generating an execution file to be executed by delaying the start time of the transmission step by a predetermined number of times and transmitting the generated execution file to the motion controller,
The motion control task (
Figure 112017007626812-pat00170
) Includes a collection phase (Retrieve Phase) for collecting feedback information, which is information about motions made in a motor connected to the motor drive, from the motor drive, a calculation phase (Computation Phase) for calculating a next motion based on the feedback information, And a transmission phase (Publish Phase) for transmitting a frame including a control command based on the calculated motion,
Wherein the data analysis module derives a lower limit of the range of the offset so that the starting point of the transmission step is performed after the end of the calculation step.
delete The method according to claim 1,
Wherein the data analysis module derives an upper limit of the range of the offset so that the execution times of two successive motion control tasks do not overlap.
The method of claim 3,
The data analysis module
The upper limit of the range of the offset is longer than the lower limit of the range of the offset
Figure 112015087677915-pat00132
) Deriving a range of the offset.
The method according to claim 1,
The data collection module
Generating a storage code for storing a measurement code for time measurement of the motion control task and measurement data measured in accordance with the measurement code in a stub code to generate a free run time execution file, And transmits an execution file to the motion controller.
The method according to claim 1,
The range of the offset is
Equation
Figure 112015087677915-pat00133
Lt; / RTI &gt;
remind
Figure 112015087677915-pat00134
Is the lower limit of the offset range,
remind
Figure 112015087677915-pat00135
Is the upper limit of the offset range,
remind
Figure 112015087677915-pat00136
Is the release jitter of the motion control task,
remind
Figure 112015087677915-pat00137
Is the time when the computation phase of the motion control task ends,
remind
Figure 112015087677915-pat00138
Is the execution cycle of the motion control task,
remind
Figure 112015087677915-pat00139
Is also the time at which the control sequence execution time of the current task instance and the control command update the information of the updated motor drive by traversing all the motor drives to the motion controller,
remind
Figure 112015087677915-pat00140
Is a maximum value of a case where the motion control task instance starts earlier than a predetermined time.
A method for correcting a frame transmission time,
A motion control task including a transfer phase (Publish Phase) for transmitting a frame including a control command to the motor drive
Figure 112017007626812-pat00171
) Generates a free runtime execution file for collecting measurement data, which is a parameter related to the motion control task execution time, while the motion control task is being performed, and transmits the generated free runtime execution file to the motion controller ;
An offset calculating unit for receiving the measurement data collected by the motion controller from the motion controller and analyzing the received measurement data to calculate an offset for delaying a start time of the transmission step so that a difference between intervals at which the frame is transmitted is minimized
Figure 112017007626812-pat00172
);
Within the range of the offset, an offset (
Figure 112017007626812-pat00173
); And
The determined offset (
Figure 112017007626812-pat00174
Generating a runtime executable file for executing the motion control task to cause the start time of the transfer step to be delayed and executed by a predetermined number of times,
The motion control task (
Figure 112017007626812-pat00175
) Includes a collection phase (Retrieve Phase) for collecting feedback information, which is information about motions made in a motor connected to the motor drive, from the motor drive, a calculation phase (Computation Phase) for calculating a next motion based on the feedback information, And a transmission phase (Publish Phase) for transmitting a frame including a control command based on the calculated motion,
The offset (
Figure 112017007626812-pat00176
) Deriving a lower limit of the range of the offset so that the starting point of the transmitting step is performed after the end of the calculating step.
delete 8. The method of claim 7,
The offset (
Figure 112017007626812-pat00147
Gt;) &lt; / RTI &gt;
Wherein an upper limit of the range of the offset is derived so that the execution times of two successive motion control tasks do not overlap.
10. The method of claim 9,
The offset (
Figure 112017007626812-pat00148
Gt;) &lt; / RTI &gt;
The upper limit of the range of the offset is longer than the lower limit of the range of the offset
Figure 112017007626812-pat00149
) &Lt; / RTI &gt; wherein a range of the offset is derived.
8. The method of claim 7,
The step of transmitting the free runtime executable file
Generating a pre-runtime executable file by generating a measurement code for time measurement of the motion control task and measurement data measured according to the measurement code in a stub code, generating the pre-run execution file, And transmitting the frame to the motion controller.
8. The method of claim 7,
The range of the offset is
Equation
Figure 112015087677915-pat00150
Lt; / RTI &gt;
remind
Figure 112015087677915-pat00151
Is the lower limit of the offset range,
remind
Figure 112015087677915-pat00152
Is the upper limit of the offset range,
remind
Figure 112015087677915-pat00153
Is the release jitter of the motion control task,
remind
Figure 112015087677915-pat00154
Is the time when the computation phase of the motion control task ends,
remind
Figure 112015087677915-pat00155
Is the execution cycle of the motion control task,
remind
Figure 112015087677915-pat00156
Is also the time at which the control sequence execution time of the current task instance and the control command update the information of the updated motor drive by traversing all the motor drives to the motion controller,
remind
Figure 112015087677915-pat00157
Is a maximum value of a case where the motion control task starts earlier than a predetermined time.
12. A computer-readable recording medium having recorded thereon instructions for executing a method for correcting a frame transmission time according to any one of claims 7, 9, 10, 11,
KR1020150127587A 2015-09-09 2015-09-09 Apparatus for precise-adjustment of frame transmission time in the motion control system based on EtherCAT, method thereof and computer recordable medium storing the method KR101731045B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150127587A KR101731045B1 (en) 2015-09-09 2015-09-09 Apparatus for precise-adjustment of frame transmission time in the motion control system based on EtherCAT, method thereof and computer recordable medium storing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150127587A KR101731045B1 (en) 2015-09-09 2015-09-09 Apparatus for precise-adjustment of frame transmission time in the motion control system based on EtherCAT, method thereof and computer recordable medium storing the method

Publications (2)

Publication Number Publication Date
KR20170030262A KR20170030262A (en) 2017-03-17
KR101731045B1 true KR101731045B1 (en) 2017-04-27

Family

ID=58502096

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150127587A KR101731045B1 (en) 2015-09-09 2015-09-09 Apparatus for precise-adjustment of frame transmission time in the motion control system based on EtherCAT, method thereof and computer recordable medium storing the method

Country Status (1)

Country Link
KR (1) KR101731045B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101492910B1 (en) * 2013-02-15 2015-02-12 서울시립대학교 산학협력단 Method and system for ethercat-based distributed clokc synchronization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101492910B1 (en) * 2013-02-15 2015-02-12 서울시립대학교 산학협력단 Method and system for ethercat-based distributed clokc synchronization

Also Published As

Publication number Publication date
KR20170030262A (en) 2017-03-17

Similar Documents

Publication Publication Date Title
EP3643017B1 (en) Structured schema for temporal graph storage and retrieval
US10061281B2 (en) Controller support device, method, and recording medium
US9740186B2 (en) Monitoring control system and control device
US8190941B2 (en) Field control system
US8977534B2 (en) Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program
JP2011028752A5 (en)
CN106461709B (en) Numerical frequency response analysis system and method for power supply
US20220100561A1 (en) Timer-based task processing method and apparatus and electronic device
US11231700B2 (en) Communication system, communication method, and information storage medium
WO2019056947A1 (en) Method and system for mobile robot task scheduling
US20190369587A1 (en) Control device
EP3623952B1 (en) Operation data collection system, operation data collection method, and program
KR101731045B1 (en) Apparatus for precise-adjustment of frame transmission time in the motion control system based on EtherCAT, method thereof and computer recordable medium storing the method
CN115102453A (en) Position control system and method
US11640150B2 (en) Communication system, communication method, and information storage medium
US20220286267A1 (en) Control system, information processing device, and non-transitory computer readable medium
JP7230989B2 (en) Communication system, communication method, and program
US20230256610A1 (en) Component management system and method
CN108702308A (en) System and method for intelligent event paging
JP2021144650A (en) Production system, control method, and program
JP2021144651A (en) Production system, data transmission method, and program

Legal Events

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