US9904278B2 - Numerical controller capable of performing axis control routine of a plurality of axes in distributed manner - Google Patents

Numerical controller capable of performing axis control routine of a plurality of axes in distributed manner Download PDF

Info

Publication number
US9904278B2
US9904278B2 US14/825,394 US201514825394A US9904278B2 US 9904278 B2 US9904278 B2 US 9904278B2 US 201514825394 A US201514825394 A US 201514825394A US 9904278 B2 US9904278 B2 US 9904278B2
Authority
US
United States
Prior art keywords
control routine
axis control
grouped
routine
axes
Prior art date
Legal status (The legal status 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 status listed.)
Active, expires
Application number
US14/825,394
Other versions
US20160062348A1 (en
Inventor
Hideo Ogino
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Assigned to FANUC CORPORATION reassignment FANUC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OGINO, HIDEO
Publication of US20160062348A1 publication Critical patent/US20160062348A1/en
Application granted granted Critical
Publication of US9904278B2 publication Critical patent/US9904278B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4141Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by a controller or microprocessor per axis
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2205Multicore
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34015Axis controller

Definitions

  • the present invention relates to a numerical controller, and in particular, relates to a numerical controller having a multi-core processor and capable of improving performance by causing a plurality of cores of the multi-core processor to perform axis control routine in a distributed manner.
  • Processing of control software of a numerical controller that controls machine tools includes processing of high real-time properties as typified by various kinds of interpolation routine and axis control routine to create distribution data to each control axis and processing of low real-time properties as typified by automatic operation routine that analyzes a machining program or creates interpolation preparation data and HMI (human-machine interface) routine that performs an operation in accordance with the screen display or an operation.
  • HMI human-machine interface
  • the axis control routine having high real-time properties needs to be completed within a specified period and thus, if the time of the axis control routine increases with an increasing number of control axes, it becomes difficult to allocate the processing time within the specified period to other automatic operation routine or HMI routine having low real-time properties.
  • JP 63-181005 A and JP 1-195507 A propose a technology that divides the analyzing of a machining program and creation of interpolation preparation data into a plurality of processes and allocates each of the divided processes to each CPU of a multi-CPU for processing.
  • JP 2014-35564 A discloses a technology that provides a numerical controller having a multi-core processor, wherein a numerical control processor and a sequence control processor, provided separately in the past, are integrated as one of multi-cores of one processor, respectively, and also enables integration of peripheral control LSI by connecting the processor and the peripheral control LSI by a high-speed serial bus to reduce the number of pins of the LSI.
  • the amount of processing by control software of a numerical controller increases year by year due to adoption of multi-axial or multi-path machine tools or realization of high-functionality desires and particularly, an increase of axis control routine due to multi-axial machine tools is remarkable.
  • further shortening of the specified period of axis control routine having high real-time properties is required to realize high-precision machining at high speed and, as a result, it is necessary to perform more pieces of processing in a shorter time.
  • An object of the present invention is to provide a numerical controller that uses a multi-core processor that reduces heat generation and power consumption to a low level with a relatively low operating frequency and is at lower cost than a multi-CPU configuration and includes means for dividing axis control routine into groups of any number of axes and causes a plurality of cores of the multi-core processor to perform the processing in a distributed manner.
  • a numerical controller includes a multi-core processor having a plurality of cores, controls a machine including a plurality of axes, and is adapted to complete axis control routine configured by individual-axis routine which is processed for each of the plurality of axes and common routine which is processed commonly among the axes within a time of a specified period.
  • the numerical controller further includes: an execution start request unit that requests each of the plurality of cores to perform a plurality of pieces of grouped axis control routine obtained by dividing the axis control routine of the plurality of axes by a unit of any number of the axes; a grouped axis control routine execution unit which is arranged in each of the plurality of cores to perform the grouped axis control routine in response to a request from the execution start request unit; and an execution completion monitoring unit which monitors a completion state of the plurality of pieces of grouped axis control routine by the grouped axis control routine execution unit.
  • the numerical controller may be configured to use an inter-core interrupt when the execution start request unit makes a request to cause each of the plurality of cores to perform the plurality of pieces of grouped axis control routine in a distributed manner.
  • the grouped axis control routine execution unit may be configured to write the completion state of the grouped axis control routine into an inter-core shared memory, and the execution completion monitoring unit may be configured to monitor the inter-core shared memory.
  • axis control routine having high real-time properties can be performed in a short time by using a multi-core processor even when a machine tool having a large number of control axes is controlled and further, plenty of allocation time can be secured for processing of low real-time properties such as automatic operation routine and HMI routine.
  • the overall performance of the numerical controller can be enhanced at relatively low costs while heat generation and power consumption are reduced to a low level and therefore, multi-axial or multi-path machine tools can be adopted and also requests of higher performance can be met.
  • FIG. 1 is a block diagram illustrating principal units of an embodiment of a numerical controller according to the present embodiment
  • FIG. 2 is a diagram showing an overview of processing performed per specified period during normal operation and during increased axis control routine, by a conventional numerical controller, realized by one CPU without using a multi-core processor;
  • FIG. 3 is a diagram showing an example of the processing performed per specified period during increased axis control routine shown in FIG. 2 in which the axis control routine is configured by four pieces of ‘common routine’ and three pieces of ‘individual-axis routine’;
  • FIG. 4 is a diagram showing an example of distribution example of the axis control routine using the multi-core processor having four cores for ‘individual-axis routine ⁇ 1>’ shown in FIG. 3 ;
  • FIG. 5 is a flow chart showing the flow of execution start request routine performed by any one of cores of the multi-core processor in the numerical controller in FIG. 1 ;
  • FIG. 6 is a flow chart showing the flow of grouped axis control routine allocated to a own core performed by any one of cores of the multi-core processor in the numerical controller in FIG. 1 ;
  • FIG. 7 is a flow chart showing the flow of execution completion monitoring routine to wait for the completion of the grouped axis control routine performed by any one of cores of the multi-core processor in the numerical controller in FIG. 1 .
  • FIG. 1 is a block diagram illustrating principal units of an embodiment of a numerical controller according to the present embodiment.
  • a numerical controller 10 includes a multi-core processor 30 , an integrated peripheral control LSI 11 , a motor controller 13 including a motor controller processor 14 and a peripheral control LSI 15 thereof, and an amplifier interface unit 16 that performs communication with a motor driving amplifier 20 and these elements are respectively connected by an internal bus 22 .
  • the multi-core processor 30 includes four cores, a first core 31 to a fourth core 34 , an inter-core interrupt generator 35 that generates, among interrupts, particularly interrupts between CPU cores, and an interrupt controller 36 that generates an interrupt to communicate state changes from various devices and the like and these elements are connected by a processor internal bus 37 .
  • the multi-core processor 30 further includes an inter-core shared memory used for inter-core communication to share information among the cores 31 to 34 . For example, a DRAM 12 is used as the inter-core shared memory.
  • the multi-core processor 30 performs analytical processing of a machining program to control the motor driving amplifier 20 connected to the numerical controller 10 , creates a movement command by performing movement command creation routine based on a result of the analytical processing, and sends the created movement command to a RAM (not shown) inside the peripheral control LSI 15 of the motor controller 13 via the integrated peripheral control LSI 11 and the internal bus 22 .
  • the motor controller processor 14 of the motor controller 13 reads the movement command written into the internal RAM to create motor control data that is sent to the motor driving amplifier 20 . Then, the motor controller processor 14 sends the created motor control data to a communication control LSI 17 of the amplifier interface unit 16 via the internal bus 22 .
  • the communication control LSI 17 of the amplifier interface unit 16 sends data written into an internal RAM thereof to the motor driving amplifier 20 . Then, the motor driving amplifier 20 drives motors 21 corresponding to a plurality of axes included in a machine tool (not shown) to control the machine tool (not shown).
  • the multi-core processor 30 also performs programmable machine control routine (PMC routine) that executes a predetermined sequence control program based on input data from the machine tool (not shown) connected to the numerical controller 10 or the like. Then, the multi-core processor 30 sends a signal to control each machine element to a machine-side I/O unit 18 based on the result of the PMC routine.
  • PMC routine programmable machine control routine
  • An display/MDI unit 19 is a manual data input apparatus including a display, a keyboard and the like.
  • the integrated peripheral control LSI 11 receives a command or data from the keyboard and delivers the command or data to the multi-core processor 30 and also outputs a display command output by display processing performed by the multi-core processor 30 to a display of the display/MDI unit 19 .
  • FIG. 2 is a diagram showing an overview of processing performed per specified period during normal operation and during increased axis control routine by a conventional numerical controller realized by one CPU without using a multi-core processor.
  • “Axis control routine” shown in FIG. 2 is processing of high real-time properties such as various kinds of interpolation routine and distribution pulse creation routine to each control axis, and processing for the number of axes to be controlled needs to be necessarily completed within the specified period.
  • “Automatic operation routine” is processing to analyze a machining program created by the user to machine a workpiece by driving a machine tool to issue a command and to create preparation data for interpolation.
  • “HMI routine” is processing to make a screen display or to perform an operation in accordance with an operation.
  • the “automatic operation routine” and “HMI routine” are processing of low real-time properties that does not need to be necessarily completed within the specified period and processing remaining without being completed continues to be performed in the next period.
  • a numerical controller that controls machine tools having a small number of control axes, for example, a machine tool configured by three basic axes of the X axis, the Y axis, and the Z axis, as shown on the left side (during normal operation) of FIG. 2 , the ratio of the axis control routine within the specified period is relatively small and thus, plenty of time can be allocated to the automatic operation routine and the HMI routine.
  • multi-axial machine tools having a plurality of rotation axes to control the posture of a table or a tool and multi-axial machine tools having the aforementioned three basic axes and a plurality of rotation axes for simultaneous processing by placing a plurality of workpieces are also available.
  • a numerical controller that controls such machine tools having a large number of control axes as shown on the right side (“during increased axis control routine”) of FIG. 2 , the ratio of the axis control routine within the specified period is relatively large and it is difficult to allocate plenty of time to the automatic operation routine or the HMI routine.
  • Axis control routine of a numerical controller includes ‘common routine’ which is performed commonly without depending on each control axis and ‘individual-axis routine’ which is performed individually for each control axis.
  • FIG. 3 is a diagram showing an example of the processing performed per specified period during increased axis control routine shown in FIG. 2 in which the axis control routine is configured by four pieces of ‘common routine’ and three pieces of ‘individual-axis routine’.
  • the ‘individual-axis routine’ repeated processing is performed in an axis loop from the first axis to the 16-th axis in order.
  • FIG. 4 is a diagram showing a distribution example of the axis control routine using the multi-core processor having four cores for ‘individual-axis routine ⁇ 1>’ shown in FIG. 3 .
  • ‘common routine ⁇ 1>’ and ‘common routine ⁇ 2>’ are performed by the first core, and the individual-axis routine ⁇ 1> for 16 axes to be performed in the meantime is performed by four cores in a distributed manner; grouped axis control routine ⁇ 1> for four axes of the first axis to the fourth axis by the first core, grouped axis control routine ⁇ 2> for four axes of the fifth axis to the eighth axis by the second core, grouped axis control routine ⁇ 3> for four axes of the ninth axis to the twelfth axis by the third core, and grouped axis control routine ⁇ 4> for four axes of the thirteenth axis to the sixteenth axis by the fourth core.
  • processing by an execution start request unit is performed.
  • Completion information indicating the completion of grouped axis control routine divided into four groups is arranged in an inter-core shared memory 40 for four groups, which corresponds to the divided number. In this processing, these four pieces of completion information is first initialized. Subsequently, for the second, third, and fourth cores, an inter-core interrupt is caused via the inter-core interrupt generator 35 , and the processing start by grouped axis control routine execution units ⁇ 2>, ⁇ 3>, ⁇ 4>, allocated to each of these cores, is requested. Then, processing by a grouped axis control routine execution unit ⁇ 1> allocated to the first core, is started.
  • processing by the grouped axis control routine execution units ⁇ 2>, ⁇ 3>, ⁇ 4> associated with the interrupt is activated and performed for each core.
  • the grouped axis control routine ⁇ 1>, ⁇ 2>, ⁇ 3>, ⁇ 4> allocated to each core is repeatedly performed as many times as the number of allocated axes (in the present embodiment, four axes for all cores).
  • the completion information arranged in the inter-core shared memory is informed of the completion of the grouped axis control routine allocated to the relevant cores by the grouped axis control routine execution units ⁇ 1>, ⁇ 2>, ⁇ 3>, ⁇ 4>.
  • processing by an execution completion monitoring unit is performed.
  • the present processing is completed by confirming the completion information of grouped axis control routine for all four cores, which indicates that all cores are in a completion state, then the processing proceeds to execution by a common routine unit ⁇ 2>.
  • FIG. 5 is a flowchart showing the flow of execution start request routine performed by the execution start request unit.
  • the execution start request routine is performed in one of the cores (in the first core, in the case of the present embodiment) of the multi-core processor to allocate the grouped axis control routine to each core and to make a start request of the grouped axis control routine.
  • Step SA 01 All completion information arranged in the inter-core shared memory is initialized.
  • Step SA 02 ] ‘2’ is allocated to a variable n (division number counter of the grouped axis control routine).
  • Step SA 03 An inter-core interrupt is issued, via the inter-core interrupt generator 35 , to the core that performs the n-th grouped axis control routine.
  • Step SA 04 The value of the variable n is incremented by 1.
  • Step SA 05 It is determined whether or not the value of the variable n is larger than the division number of the grouped axis control routine. If the variable n is larger than the division number of the grouped axis control routine, the process proceeds to Step SA 06 , but if the variable n is not larger than the division number, the process returns to Step SA 03 .
  • Step SA 06 The first grouped axis control routine is activated by the grouped axis control routine execution unit that functions in the own core.
  • FIG. 6 is a flow chart showing the grouped axis control routine performed by the grouped axis control routine execution unit.
  • the grouped axis control routine is performed in each core and the grouped axis control routine allocated to the own core is sequentially performed.
  • Step SB 01 ] ‘1’ is allocated a variable m (counter of the number of division axes).
  • Step SB 02 The m-th axis routine is performed in the grouped axis control routine.
  • Step SB 03 The value of the variable m is incremented by 1.
  • Step SB 04 It is determined whether or not the value of the variable m is larger than the number of division axes allocated to the own core. If the variable m is larger than the number of division axes allocated to the own core, the process proceeds to Step SB 05 , but if the variable m is not larger than the number of division axes, the process returns to Step SB 02 .
  • Step SB 05 The completion information indicating the completion of the grouped axis control routine allocated to the own core is set to a completion state.
  • FIG. 7 is a flow chart showing the flow of execution completion monitoring routine performed by the execution completion monitoring unit.
  • the execution completion monitoring routine is performed by one of the cores (in the first core, in the case of the present embodiment) of the multi-core processor to wait for the completion of the grouped axis control routine allocated to each core.
  • Step SC 01 ] ‘1’ is allocated to the variable n (division number counter of the grouped axis control routine).
  • Step SC 02 It is determined whether or not the n-th completion information is in a completion state. If the n-th completion information is in a completion state, process proceeds to Step SC 03 , but if the n-th completion information is not a completion state, processing in Step SC 02 is repeated.
  • Step SC 03 The value of the variable n is incremented by 1.
  • Step SC 04 It is determined whether or not the value of the variable n is larger than the division number of the grouped axis control routine. If the variable n is larger than the division number of the grouped axis control routine, this processing is terminated, but if the variable n is not larger than the division number, process returns to Step SC 02 .
  • axes that control machine tools include axes of various uses such as a servo axis that controls the position and posture of a table on which machined work is placed and tools and a spindle axis (main axis) that controls the turn of a workpiece to be machined and the rotation of tools, and the axis control routine in the examples of the above embodiments can be applied to the axis control of axes of such various uses.
  • the execution completion monitoring unit may be caused to perform non-real-time routine at a lower level for a fixed time before returning to execution completion monitoring again.
  • the number of axes to be processed in the grouped axis control routine allocated to each core does not have to be necessarily fixed and the number of axes to be allocated to each core may be made settable and changeable in accordance with the axis configuration or core capabilities, for example, allocating three axes to the first core and four axes to each of the second to fourth cores for 15-axis configuration.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Abstract

A numerical controller that controls a machine including a plurality of axes includes a multi-core processor having a plurality of cores. If a request is made to cause each of the plurality of cores to perform a plurality of pieces of grouped axis control routine obtained by dividing axis control routine of the plurality of axes by a unit of any number of the axes, an execution unit arranged in each of the plurality of cores performs the grouped axis control routine. In addition, a completion state of the plurality of pieces of grouped axis control routine is monitored.

Description

RELATED APPLICATION DATA
This application claims priority under 35 U.S.C. § 119 and/or § 365 to Japanese Application No. 2014-175149 filed Aug. 29, 2014, the entire contents is incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a numerical controller, and in particular, relates to a numerical controller having a multi-core processor and capable of improving performance by causing a plurality of cores of the multi-core processor to perform axis control routine in a distributed manner.
2. Description of the Related Art
Processing of control software of a numerical controller that controls machine tools includes processing of high real-time properties as typified by various kinds of interpolation routine and axis control routine to create distribution data to each control axis and processing of low real-time properties as typified by automatic operation routine that analyzes a machining program or creates interpolation preparation data and HMI (human-machine interface) routine that performs an operation in accordance with the screen display or an operation.
The axis control routine having high real-time properties needs to be completed within a specified period and thus, if the time of the axis control routine increases with an increasing number of control axes, it becomes difficult to allocate the processing time within the specified period to other automatic operation routine or HMI routine having low real-time properties. When, for example, a machining program instructed in mold machining and formed of micro-segment lines is operated at high speed, it is necessary to analyze the machining program and to create interpolation preparation data in large quantities in a short time, but automatic operation routine or HMI routine is not adequately performed in situations in which the time of axis control routine increases and therefore, problems of unreachability of the command speed, an irregular machined surface due to an interrupted distribution pulse, a slower update of the screen display and a slower response to an operation arise.
For the purpose of smoothly analyzing a machining program and creating interpolation preparation data, JP 63-181005 A and JP 1-195507 A propose a technology that divides the analyzing of a machining program and creation of interpolation preparation data into a plurality of processes and allocates each of the divided processes to each CPU of a multi-CPU for processing.
Also, for the purpose of reducing the costs, JP 2014-35564 A discloses a technology that provides a numerical controller having a multi-core processor, wherein a numerical control processor and a sequence control processor, provided separately in the past, are integrated as one of multi-cores of one processor, respectively, and also enables integration of peripheral control LSI by connecting the processor and the peripheral control LSI by a high-speed serial bus to reduce the number of pins of the LSI.
The amount of processing by control software of a numerical controller increases year by year due to adoption of multi-axial or multi-path machine tools or realization of high-functionality desires and particularly, an increase of axis control routine due to multi-axial machine tools is remarkable. In addition, further shortening of the specified period of axis control routine having high real-time properties is required to realize high-precision machining at high speed and, as a result, it is necessary to perform more pieces of processing in a shorter time.
In the hardware configuration of multi-CPU described in JP 63-181005 A and JP 1-195507 A mentioned above, the cost rises with an increasing number of CPU and further, peripheral hardware circuits on which the multi-CPU is mounted becomes more complicated, thereby increasing man-hours needed for design and maintenance. Such prior art techniques reduce the processing time of the analyzing of a machining program and the creation of interpolation preparation data, but do not directly control the increase of axis control routine due to the adoption of multi-axial machine tools and are not sufficient as measures in response to requirements in recent years and further, the processing can be made faster by adopting CPU of a higher operating frequency, but problems of heat generation and increased power consumption arise, which makes the CPU unfit as a processor used to control a machine tool used in an unfavorable environment such as a manufacturing site.
In the case of a numerical controller having a multi-core processor described in JP 2014-35564 A, on the other hand, heat generation and power consumption are reduced to a low level while the costs are decreased, but the increase of axis control routine due to the adoption of multi-axial machine tools is not directly controlled and thus, like the technologies described in JP 63-181005 A and JP 1-195507 A, the technology is not sufficient as measures in response to requirements in recent years.
SUMMARY OF THE INVENTION
An object of the present invention is to provide a numerical controller that uses a multi-core processor that reduces heat generation and power consumption to a low level with a relatively low operating frequency and is at lower cost than a multi-CPU configuration and includes means for dividing axis control routine into groups of any number of axes and causes a plurality of cores of the multi-core processor to perform the processing in a distributed manner.
A numerical controller according to the present invention includes a multi-core processor having a plurality of cores, controls a machine including a plurality of axes, and is adapted to complete axis control routine configured by individual-axis routine which is processed for each of the plurality of axes and common routine which is processed commonly among the axes within a time of a specified period. The numerical controller further includes: an execution start request unit that requests each of the plurality of cores to perform a plurality of pieces of grouped axis control routine obtained by dividing the axis control routine of the plurality of axes by a unit of any number of the axes; a grouped axis control routine execution unit which is arranged in each of the plurality of cores to perform the grouped axis control routine in response to a request from the execution start request unit; and an execution completion monitoring unit which monitors a completion state of the plurality of pieces of grouped axis control routine by the grouped axis control routine execution unit.
The numerical controller may be configured to use an inter-core interrupt when the execution start request unit makes a request to cause each of the plurality of cores to perform the plurality of pieces of grouped axis control routine in a distributed manner.
The grouped axis control routine execution unit may be configured to write the completion state of the grouped axis control routine into an inter-core shared memory, and the execution completion monitoring unit may be configured to monitor the inter-core shared memory.
According to the present invention, by including the above configuration, axis control routine having high real-time properties can be performed in a short time by using a multi-core processor even when a machine tool having a large number of control axes is controlled and further, plenty of allocation time can be secured for processing of low real-time properties such as automatic operation routine and HMI routine. Thus, the overall performance of the numerical controller can be enhanced at relatively low costs while heat generation and power consumption are reduced to a low level and therefore, multi-axial or multi-path machine tools can be adopted and also requests of higher performance can be met.
Further, even if the number of control axes increases in the future, the increase of the number of control axes can easily be dealt with by distributing axis control routine for increased axes using a multi-core processor having more cores.
BRIEF DESCRIPTION OF THE DRAWINGS
The above-described and the objects and the features of the present invention will become apparent from the following description of the embodiment by reference to the accompanying drawings.
FIG. 1 is a block diagram illustrating principal units of an embodiment of a numerical controller according to the present embodiment;
FIG. 2 is a diagram showing an overview of processing performed per specified period during normal operation and during increased axis control routine, by a conventional numerical controller, realized by one CPU without using a multi-core processor;
FIG. 3 is a diagram showing an example of the processing performed per specified period during increased axis control routine shown in FIG. 2 in which the axis control routine is configured by four pieces of ‘common routine’ and three pieces of ‘individual-axis routine’;
FIG. 4 is a diagram showing an example of distribution example of the axis control routine using the multi-core processor having four cores for ‘individual-axis routine <1>’ shown in FIG. 3;
FIG. 5 is a flow chart showing the flow of execution start request routine performed by any one of cores of the multi-core processor in the numerical controller in FIG. 1;
FIG. 6 is a flow chart showing the flow of grouped axis control routine allocated to a own core performed by any one of cores of the multi-core processor in the numerical controller in FIG. 1; and
FIG. 7 is a flow chart showing the flow of execution completion monitoring routine to wait for the completion of the grouped axis control routine performed by any one of cores of the multi-core processor in the numerical controller in FIG. 1.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 is a block diagram illustrating principal units of an embodiment of a numerical controller according to the present embodiment.
A numerical controller 10 includes a multi-core processor 30, an integrated peripheral control LSI 11, a motor controller 13 including a motor controller processor 14 and a peripheral control LSI 15 thereof, and an amplifier interface unit 16 that performs communication with a motor driving amplifier 20 and these elements are respectively connected by an internal bus 22.
The multi-core processor 30 includes four cores, a first core 31 to a fourth core 34, an inter-core interrupt generator 35 that generates, among interrupts, particularly interrupts between CPU cores, and an interrupt controller 36 that generates an interrupt to communicate state changes from various devices and the like and these elements are connected by a processor internal bus 37. The multi-core processor 30 further includes an inter-core shared memory used for inter-core communication to share information among the cores 31 to 34. For example, a DRAM 12 is used as the inter-core shared memory.
The multi-core processor 30 performs analytical processing of a machining program to control the motor driving amplifier 20 connected to the numerical controller 10, creates a movement command by performing movement command creation routine based on a result of the analytical processing, and sends the created movement command to a RAM (not shown) inside the peripheral control LSI 15 of the motor controller 13 via the integrated peripheral control LSI 11 and the internal bus 22.
The motor controller processor 14 of the motor controller 13 reads the movement command written into the internal RAM to create motor control data that is sent to the motor driving amplifier 20. Then, the motor controller processor 14 sends the created motor control data to a communication control LSI 17 of the amplifier interface unit 16 via the internal bus 22.
The communication control LSI 17 of the amplifier interface unit 16 sends data written into an internal RAM thereof to the motor driving amplifier 20. Then, the motor driving amplifier 20 drives motors 21 corresponding to a plurality of axes included in a machine tool (not shown) to control the machine tool (not shown).
The multi-core processor 30 also performs programmable machine control routine (PMC routine) that executes a predetermined sequence control program based on input data from the machine tool (not shown) connected to the numerical controller 10 or the like. Then, the multi-core processor 30 sends a signal to control each machine element to a machine-side I/O unit 18 based on the result of the PMC routine.
An display/MDI unit 19 is a manual data input apparatus including a display, a keyboard and the like. The integrated peripheral control LSI 11 receives a command or data from the keyboard and delivers the command or data to the multi-core processor 30 and also outputs a display command output by display processing performed by the multi-core processor 30 to a display of the display/MDI unit 19.
FIG. 2 is a diagram showing an overview of processing performed per specified period during normal operation and during increased axis control routine by a conventional numerical controller realized by one CPU without using a multi-core processor.
“Axis control routine” shown in FIG. 2 is processing of high real-time properties such as various kinds of interpolation routine and distribution pulse creation routine to each control axis, and processing for the number of axes to be controlled needs to be necessarily completed within the specified period.
On the other hand, “Automatic operation routine” is processing to analyze a machining program created by the user to machine a workpiece by driving a machine tool to issue a command and to create preparation data for interpolation. “HMI routine” is processing to make a screen display or to perform an operation in accordance with an operation. The “automatic operation routine” and “HMI routine” are processing of low real-time properties that does not need to be necessarily completed within the specified period and processing remaining without being completed continues to be performed in the next period.
In a numerical controller that controls machine tools having a small number of control axes, for example, a machine tool configured by three basic axes of the X axis, the Y axis, and the Z axis, as shown on the left side (during normal operation) of FIG. 2, the ratio of the axis control routine within the specified period is relatively small and thus, plenty of time can be allocated to the automatic operation routine and the HMI routine.
On the other hand, multi-axial machine tools having a plurality of rotation axes to control the posture of a table or a tool and multi-axial machine tools having the aforementioned three basic axes and a plurality of rotation axes for simultaneous processing by placing a plurality of workpieces are also available. In a numerical controller that controls such machine tools having a large number of control axes, as shown on the right side (“during increased axis control routine”) of FIG. 2, the ratio of the axis control routine within the specified period is relatively large and it is difficult to allocate plenty of time to the automatic operation routine or the HMI routine.
When such circumstances arise, if, for example, a machining program such as a mold machining program in which the block length is short and the processing speed is fast is operated, analyzing of the machining program or creation of preparation data for interpolation is not completed in time and thus, disadvantages such as an irregular machined surface, a slower update of the screen display and a slower response to an operation occur.
Axis control routine of a numerical controller includes ‘common routine’ which is performed commonly without depending on each control axis and ‘individual-axis routine’ which is performed individually for each control axis.
FIG. 3 is a diagram showing an example of the processing performed per specified period during increased axis control routine shown in FIG. 2 in which the axis control routine is configured by four pieces of ‘common routine’ and three pieces of ‘individual-axis routine’. In the ‘individual-axis routine’, repeated processing is performed in an axis loop from the first axis to the 16-th axis in order. Note that “(N)” in FIG. 3 (and FIG. 4) represents the N-th axis (N=1, 2, . . . , 16).
FIG. 4 is a diagram showing a distribution example of the axis control routine using the multi-core processor having four cores for ‘individual-axis routine <1>’ shown in FIG. 3.
In the distribution example of the axis control routine in FIG. 4, ‘common routine <1>’ and ‘common routine <2>’ are performed by the first core, and the individual-axis routine <1> for 16 axes to be performed in the meantime is performed by four cores in a distributed manner; grouped axis control routine <1> for four axes of the first axis to the fourth axis by the first core, grouped axis control routine <2> for four axes of the fifth axis to the eighth axis by the second core, grouped axis control routine <3> for four axes of the ninth axis to the twelfth axis by the third core, and grouped axis control routine <4> for four axes of the thirteenth axis to the sixteenth axis by the fourth core.
In the first core, after ‘common routine <1>’ is performed, processing by an execution start request unit is performed. Completion information indicating the completion of grouped axis control routine divided into four groups is arranged in an inter-core shared memory 40 for four groups, which corresponds to the divided number. In this processing, these four pieces of completion information is first initialized. Subsequently, for the second, third, and fourth cores, an inter-core interrupt is caused via the inter-core interrupt generator 35, and the processing start by grouped axis control routine execution units <2>, <3>, <4>, allocated to each of these cores, is requested. Then, processing by a grouped axis control routine execution unit <1> allocated to the first core, is started.
In the second, third, and fourth cores, with the generation of the above inter-core interrupt, processing by the grouped axis control routine execution units <2>, <3>, <4> associated with the interrupt is activated and performed for each core.
In the processing by the grouped axis control routine execution units <1>, <2>, <3>, <4>, the grouped axis control routine <1>, <2>, <3>, <4> allocated to each core is repeatedly performed as many times as the number of allocated axes (in the present embodiment, four axes for all cores). When the processing for the number of axes allocated to each core is all completed, the completion information arranged in the inter-core shared memory is informed of the completion of the grouped axis control routine allocated to the relevant cores by the grouped axis control routine execution units <1>, <2>, <3>, <4>.
On the other hand, when the grouped axis control routine <1> is completed in the first core and the completion information is notified, processing by an execution completion monitoring unit is performed. Here, the present processing is completed by confirming the completion information of grouped axis control routine for all four cores, which indicates that all cores are in a completion state, then the processing proceeds to execution by a common routine unit <2>.
FIG. 5 is a flowchart showing the flow of execution start request routine performed by the execution start request unit. The execution start request routine is performed in one of the cores (in the first core, in the case of the present embodiment) of the multi-core processor to allocate the grouped axis control routine to each core and to make a start request of the grouped axis control routine.
[Step SA01] All completion information arranged in the inter-core shared memory is initialized.
[Step SA02] ‘2’ is allocated to a variable n (division number counter of the grouped axis control routine).
[Step SA03] An inter-core interrupt is issued, via the inter-core interrupt generator 35, to the core that performs the n-th grouped axis control routine.
[Step SA04] The value of the variable n is incremented by 1.
[Step SA05] It is determined whether or not the value of the variable n is larger than the division number of the grouped axis control routine. If the variable n is larger than the division number of the grouped axis control routine, the process proceeds to Step SA06, but if the variable n is not larger than the division number, the process returns to Step SA03.
[Step SA06] The first grouped axis control routine is activated by the grouped axis control routine execution unit that functions in the own core.
FIG. 6 is a flow chart showing the grouped axis control routine performed by the grouped axis control routine execution unit. The grouped axis control routine is performed in each core and the grouped axis control routine allocated to the own core is sequentially performed.
[Step SB01] ‘1’ is allocated a variable m (counter of the number of division axes).
[Step SB02] The m-th axis routine is performed in the grouped axis control routine.
[Step SB03] The value of the variable m is incremented by 1.
[Step SB04] It is determined whether or not the value of the variable m is larger than the number of division axes allocated to the own core. If the variable m is larger than the number of division axes allocated to the own core, the process proceeds to Step SB05, but if the variable m is not larger than the number of division axes, the process returns to Step SB02.
[Step SB05] The completion information indicating the completion of the grouped axis control routine allocated to the own core is set to a completion state.
FIG. 7 is a flow chart showing the flow of execution completion monitoring routine performed by the execution completion monitoring unit. The execution completion monitoring routine is performed by one of the cores (in the first core, in the case of the present embodiment) of the multi-core processor to wait for the completion of the grouped axis control routine allocated to each core.
[Step SC01] ‘1’ is allocated to the variable n (division number counter of the grouped axis control routine).
[Step SC02] It is determined whether or not the n-th completion information is in a completion state. If the n-th completion information is in a completion state, process proceeds to Step SC03, but if the n-th completion information is not a completion state, processing in Step SC02 is repeated.
[Step SC03] The value of the variable n is incremented by 1.
[Step SC04] It is determined whether or not the value of the variable n is larger than the division number of the grouped axis control routine. If the variable n is larger than the division number of the grouped axis control routine, this processing is terminated, but if the variable n is not larger than the division number, process returns to Step SC02.
In general, axes that control machine tools include axes of various uses such as a servo axis that controls the position and posture of a table on which machined work is placed and tools and a spindle axis (main axis) that controls the turn of a workpiece to be machined and the rotation of tools, and the axis control routine in the examples of the above embodiments can be applied to the axis control of axes of such various uses.
In the foregoing, embodiments of the present invention have been described, but the present invention is not limited to the examples of the above embodiments and can be embodied in other forms by making appropriate modifications.
If, for example, incomplete execution of one piece of grouped axis control routine or more is detected by the execution completion monitoring unit, the execution completion monitoring unit may be caused to perform non-real-time routine at a lower level for a fixed time before returning to execution completion monitoring again. In addition, the number of axes to be processed in the grouped axis control routine allocated to each core does not have to be necessarily fixed and the number of axes to be allocated to each core may be made settable and changeable in accordance with the axis configuration or core capabilities, for example, allocating three axes to the first core and four axes to each of the second to fourth cores for 15-axis configuration.

Claims (3)

The invention claimed is:
1. A numerical controller which includes a multi-core processor having a plurality of cores, for controlling a machine including a plurality of axes, the numerical controller comprising:
an execution start request unit that allocates, to each of the plurality of cores to perform, a plurality of pieces of a grouped axis control routine obtained by dividing an axis control routine of the plurality of axes by a unit of any number of the axes, wherein the plurality of pieces of the grouped axis control routine allocated to each of the cores is based on one or both of (i) an axis configuration of the machine and (ii) a capability of the respective core;
a grouped axis control routine execution unit which is arranged in each of the plurality of cores to perform the plurality of pieces of the grouped axis control routine allocated to each of the cores; and
an execution completion monitoring unit which monitors a completion state of the plurality of pieces of the grouped axis control routine allocated to each of the cores.
2. The numerical controller according to claim 1, wherein the numerical controller is configured to generate an inter-core interrupt to cause each of the plurality of cores to perform the allocated plurality of pieces of the grouped axis control routine in a distributed manner.
3. The numerical controller according to claim 1, wherein
the grouped axis control routine execution unit arranged in each of the plurality of cores is configured to write the completion state of the plurality of the pieces of the grouped axis control routine allocated to the respective core into an inter-core shared memory, and
the execution completion monitoring unit is configured to monitor the inter-core shared memory.
US14/825,394 2014-08-29 2015-08-13 Numerical controller capable of performing axis control routine of a plurality of axes in distributed manner Active 2036-07-01 US9904278B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-175149 2014-08-29
JP2014175149A JP6203691B2 (en) 2014-08-29 2014-08-29 Numerical control device that can execute distributed axis control processing for multiple axes

Publications (2)

Publication Number Publication Date
US20160062348A1 US20160062348A1 (en) 2016-03-03
US9904278B2 true US9904278B2 (en) 2018-02-27

Family

ID=55312232

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/825,394 Active 2036-07-01 US9904278B2 (en) 2014-08-29 2015-08-13 Numerical controller capable of performing axis control routine of a plurality of axes in distributed manner

Country Status (4)

Country Link
US (1) US9904278B2 (en)
JP (1) JP6203691B2 (en)
CN (1) CN105388850B (en)
DE (1) DE102015011005A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10386817B1 (en) * 2015-09-11 2019-08-20 Haas Automation, Inc. Multi-core processing machine tool control system
US20210157320A1 (en) * 2019-11-22 2021-05-27 Fanuc Corporation Motor control apparatus, numerical control apparatus, robot controller, and integrated controller system
US20220138123A1 (en) * 2020-11-05 2022-05-05 Hitachi, Ltd. Storage device and control method for storage device
US20230161323A1 (en) * 2020-05-28 2023-05-25 Fanuc Corporation Control device

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102079499B1 (en) * 2015-10-20 2020-02-21 엘에스산전 주식회사 A method of independent control period allocation of axis in the PLC positioning system
DE102016003362A1 (en) * 2016-03-18 2017-09-21 Giesecke+Devrient Currency Technology Gmbh Device and method for evaluating sensor data for a document of value
JP6879625B2 (en) * 2016-12-27 2021-06-02 東芝インフラシステムズ株式会社 Programmable controller, management device and control system
JP6530783B2 (en) * 2017-06-12 2019-06-12 ファナック株式会社 Machine learning device, control device and machine learning program
EP3543811A1 (en) * 2018-03-20 2019-09-25 Siemens Aktiengesellschaft Numerical controller with scalable performance
CN112567304B (en) * 2018-08-17 2023-09-19 三菱电机株式会社 Numerical control device

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63181005A (en) 1987-01-23 1988-07-26 Fanuc Ltd Parallel processing method for numerical controller
JPH01161503A (en) 1987-12-18 1989-06-26 Hitachi Seiko Ltd Device for controlling positioning of machine tool
JPH01195507A (en) 1988-01-29 1989-08-07 Nec Corp Divided pre-processing system for nc program operation by multi-cpu
JPH096425A (en) 1995-06-22 1997-01-10 Fanuc Ltd Multi-processor system
US20080243299A1 (en) * 2007-03-27 2008-10-02 Haas Automation, Inc. Machine tool control system
US20100088706A1 (en) * 2008-10-07 2010-04-08 Futurewei Technologies, Inc. User Tolerance Based Scheduling Method for Aperiodic Real-Time Tasks
US20100174886A1 (en) * 2008-08-29 2010-07-08 Texas Instruments Incorporated Multi-Core Processing Utilizing Prioritized Interrupts for Optimization
US20110022822A1 (en) * 2009-07-21 2011-01-27 Sundeep Chandhoke Motion Controller Utilizing a Plurality of Processors
US20110161965A1 (en) * 2009-12-28 2011-06-30 Samsung Electronics Co., Ltd. Job allocation method and apparatus for a multi-core processor
US20110238955A1 (en) * 2006-11-01 2011-09-29 Nvidia Corporation Methods for scalably exploiting parallelism in a parallel processing system
JP2012139047A (en) 2010-12-27 2012-07-19 Fuji Electric Co Ltd Control device of electric power conversion system
US20130041510A1 (en) * 2011-08-10 2013-02-14 Fanuc Corporation Numerical control system having multi-core processor
US20140042950A1 (en) 2012-08-07 2014-02-13 Fanuc Corporation Numerical controller with multicore processor
US20150277973A1 (en) * 2014-04-01 2015-10-01 Freescale Semiconductor, Inc. System and method for conditional task switching during ordering scope transitions

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3720825B2 (en) * 2003-07-28 2005-11-30 ファナック株式会社 Numerical controller

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4956785A (en) 1987-01-23 1990-09-11 Fanuc Ltd. Numerical control method with a parallel processing function
JPS63181005A (en) 1987-01-23 1988-07-26 Fanuc Ltd Parallel processing method for numerical controller
JPH01161503A (en) 1987-12-18 1989-06-26 Hitachi Seiko Ltd Device for controlling positioning of machine tool
JPH01195507A (en) 1988-01-29 1989-08-07 Nec Corp Divided pre-processing system for nc program operation by multi-cpu
JPH096425A (en) 1995-06-22 1997-01-10 Fanuc Ltd Multi-processor system
US20110238955A1 (en) * 2006-11-01 2011-09-29 Nvidia Corporation Methods for scalably exploiting parallelism in a parallel processing system
US20080243299A1 (en) * 2007-03-27 2008-10-02 Haas Automation, Inc. Machine tool control system
US20100174886A1 (en) * 2008-08-29 2010-07-08 Texas Instruments Incorporated Multi-Core Processing Utilizing Prioritized Interrupts for Optimization
US20100088706A1 (en) * 2008-10-07 2010-04-08 Futurewei Technologies, Inc. User Tolerance Based Scheduling Method for Aperiodic Real-Time Tasks
US20110022822A1 (en) * 2009-07-21 2011-01-27 Sundeep Chandhoke Motion Controller Utilizing a Plurality of Processors
US20110161965A1 (en) * 2009-12-28 2011-06-30 Samsung Electronics Co., Ltd. Job allocation method and apparatus for a multi-core processor
JP2012139047A (en) 2010-12-27 2012-07-19 Fuji Electric Co Ltd Control device of electric power conversion system
US20130041510A1 (en) * 2011-08-10 2013-02-14 Fanuc Corporation Numerical control system having multi-core processor
JP2013054730A (en) 2011-08-10 2013-03-21 Fanuc Ltd Numerical control system having multi-core processor
US20140042950A1 (en) 2012-08-07 2014-02-13 Fanuc Corporation Numerical controller with multicore processor
JP2014035564A (en) 2012-08-07 2014-02-24 Fanuc Ltd Numerical value control device having multi-core processor
US20150277973A1 (en) * 2014-04-01 2015-10-01 Freescale Semiconductor, Inc. System and method for conditional task switching during ordering scope transitions

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Decision to Grant a Patent dated Aug. 8, 2017 in Japanese Patent Application No. 2014-175149 (3 pages) with an English translation (3 pages).
Notification of Reasons for Refusal dated Aug. 2, 2016 in Japanese Patent Application No. 2014-175149 (2 pages) with an English Translation (2 pages).
Notification of Reasons for Refusal dated Jan. 10, 2017 in Japanese Patent Application No. 2014-175149 (2 pages) with an English Translation (2 pages).

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10386817B1 (en) * 2015-09-11 2019-08-20 Haas Automation, Inc. Multi-core processing machine tool control system
US20210157320A1 (en) * 2019-11-22 2021-05-27 Fanuc Corporation Motor control apparatus, numerical control apparatus, robot controller, and integrated controller system
US11487291B2 (en) * 2019-11-22 2022-11-01 Fanuc Corporation Motor control apparatus, numerical control apparatus, robot controller, and integrated controller system
US20230161323A1 (en) * 2020-05-28 2023-05-25 Fanuc Corporation Control device
US20220138123A1 (en) * 2020-11-05 2022-05-05 Hitachi, Ltd. Storage device and control method for storage device
US11531631B2 (en) * 2020-11-05 2022-12-20 Hitachi, Ltd. Storage device and control method for storage device

Also Published As

Publication number Publication date
US20160062348A1 (en) 2016-03-03
DE102015011005A1 (en) 2016-03-03
JP2016051258A (en) 2016-04-11
JP6203691B2 (en) 2017-09-27
CN105388850B (en) 2019-04-30
CN105388850A (en) 2016-03-09

Similar Documents

Publication Publication Date Title
US9904278B2 (en) Numerical controller capable of performing axis control routine of a plurality of axes in distributed manner
CN106802634B (en) Numerical controller
US9715226B2 (en) Numerical controller with multi-core processor
CN109388107B (en) Control device
JP6903275B2 (en) Control device and control method
JP5266412B2 (en) Numerical controller system with multi-core processor
JP2007140655A (en) Motion controller
JP2014211721A (en) Numerical control device
WO2013161082A1 (en) Machining program-generating device, machining program-generating method, and recording medium
JP2016071407A (en) Numerical control device using control software in host computer
JP2014035564A (en) Numerical value control device having multi-core processor
JPS63181005A (en) Parallel processing method for numerical controller
JP2019061467A (en) Support system and support program
JP6396276B2 (en) Numerical control device with improved servo control performance
WO2017101700A1 (en) Computer aided manufacturing method, device and system in direct communication with numerical control system
JP6881174B2 (en) Control device and control method
JP6457376B2 (en) A numerical controller that speeds up the input and output of external signals in the servo controller
JP2008269501A (en) Machining support system, integrated server applied thereto and integrated server program
Hasan Computer numerical control machines: An account of programming methods and techniques
US20050171743A1 (en) Method for developing a machine
US10386817B1 (en) Multi-core processing machine tool control system
JP6935606B1 (en) Information processing equipment and information processing programs
WO2022215476A1 (en) Information processing device and information processing program
WO2011114256A1 (en) Distributed cnc toolpath calculations
JPS61255407A (en) Numerical control device

Legal Events

Date Code Title Description
AS Assignment

Owner name: FANUC CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OGINO, HIDEO;REEL/FRAME:036319/0990

Effective date: 20150408

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4