US20160062348A1 - 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 PDFInfo
- Publication number
- US20160062348A1 US20160062348A1 US14/825,394 US201514825394A US2016062348A1 US 20160062348 A1 US20160062348 A1 US 20160062348A1 US 201514825394 A US201514825394 A US 201514825394A US 2016062348 A1 US2016062348 A1 US 2016062348A1
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4141—Structure 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/22—Pc multi processor system
- G05B2219/2205—Multicore
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34015—Axis 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-181005A 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
- 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-181005A 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.
- 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.
- 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 inFIG. 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 inFIG. 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 inFIG. 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 inFIG. 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 inFIG. 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 amulti-core processor 30, an integratedperipheral control LSI 11, amotor controller 13 including amotor controller processor 14 and aperipheral control LSI 15 thereof, and anamplifier interface unit 16 that performs communication with amotor driving amplifier 20 and these elements are respectively connected by aninternal bus 22. - The
multi-core processor 30 includes four cores, afirst core 31 to afourth core 34, aninter-core interrupt generator 35 that generates, among interrupts, particularly interrupts between CPU cores, and aninterrupt controller 36 that generates an interrupt to communicate state changes from various devices and the like and these elements are connected by a processorinternal bus 37. Themulti-core processor 30 further includes an inter-core shared memory used for inter-core communication to share information among thecores 31 to 34. For example, aDRAM 12 is used as the inter-core shared memory. - The
multi-core processor 30 performs analytical processing of a machining program to control themotor driving amplifier 20 connected to thenumerical 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 theperipheral control LSI 15 of themotor controller 13 via the integratedperipheral control LSI 11 and theinternal bus 22. - The
motor controller processor 14 of themotor controller 13 reads the movement command written into the internal RAM to create motor control data that is sent to themotor driving amplifier 20. Then, themotor controller processor 14 sends the created motor control data to acommunication control LSI 17 of theamplifier interface unit 16 via theinternal bus 22. Thecommunication control LSI 17 of theamplifier interface unit 16 sends data written into an internal RAM thereof to themotor driving amplifier 20. Then, themotor driving amplifier 20drives 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 thenumerical controller 10 or the like. Then, themulti-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 integratedperipheral control LSI 11 receives a command or data from the keyboard and delivers the command or data to themulti-core processor 30 and also outputs a display command output by display processing performed by themulti-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 inFIG. 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)” inFIG. 3 (andFIG. 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 inFIG. 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 interruptgenerator 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)
1. A numerical controller which 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 comprising:
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.
2. The numerical controller according to claim 1 , wherein the numerical controller is 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.
3. The numerical controller according to claim 1 , wherein the grouped axis control routine execution unit is configured to write the completion state of the grouped axis control routine into an inter-core shared memory, and
the execution completion monitoring unit is configured to monitor the inter-core shared memory.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014175149A JP6203691B2 (en) | 2014-08-29 | 2014-08-29 | Numerical control device that can execute distributed axis control processing for multiple axes |
JP2014-175149 | 2014-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160062348A1 true US20160062348A1 (en) | 2016-03-03 |
US9904278B2 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 (3)
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 |
US10394213B2 (en) * | 2015-10-20 | 2019-08-27 | Lsis Co., Ltd. | Method of independent control period allocation of axis in the PLC positioning system |
US20210365001A1 (en) * | 2018-03-20 | 2021-11-25 | Siemens Aktiengesellschaft | Numerical controller having scalable performance |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
DE112019004142T5 (en) * | 2018-08-17 | 2021-05-06 | Mitsubishi Electric Corporation | Numerical control device |
JP7391629B2 (en) * | 2019-11-22 | 2023-12-05 | ファナック株式会社 | Motor control equipment, numerical control equipment, robot controllers and integrated controller systems |
DE112021002979T5 (en) * | 2020-05-28 | 2023-03-30 | Fanuc Corporation | control device |
JP7252931B2 (en) * | 2020-11-05 | 2023-04-05 | 株式会社日立製作所 | Storage device and storage device control method |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20130041510A1 (en) * | 2011-08-10 | 2013-02-14 | Fanuc Corporation | Numerical control system 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 |
Family Cites Families (7)
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 |
JP3720825B2 (en) * | 2003-07-28 | 2005-11-30 | ファナック株式会社 | Numerical controller |
JP2012139047A (en) * | 2010-12-27 | 2012-07-19 | Fuji Electric Co Ltd | Control device of electric power conversion system |
JP2014035564A (en) | 2012-08-07 | 2014-02-24 | Fanuc Ltd | Numerical value control device having multi-core processor |
-
2014
- 2014-08-29 JP JP2014175149A patent/JP6203691B2/en active Active
-
2015
- 2015-08-13 US US14/825,394 patent/US9904278B2/en active Active
- 2015-08-21 DE DE102015011005.5A patent/DE102015011005A1/en active Pending
- 2015-08-28 CN CN201510542634.4A patent/CN105388850B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20130041510A1 (en) * | 2011-08-10 | 2013-02-14 | Fanuc Corporation | Numerical control system 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 |
Cited By (4)
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 |
US10394213B2 (en) * | 2015-10-20 | 2019-08-27 | Lsis Co., Ltd. | Method of independent control period allocation of axis in the PLC positioning system |
US20210365001A1 (en) * | 2018-03-20 | 2021-11-25 | Siemens Aktiengesellschaft | Numerical controller having scalable performance |
US11782415B2 (en) * | 2018-03-20 | 2023-10-10 | Siemens Aktiengesellschaft | Numerical controller having scalable performance |
Also Published As
Publication number | Publication date |
---|---|
JP6203691B2 (en) | 2017-09-27 |
US9904278B2 (en) | 2018-02-27 |
DE102015011005A1 (en) | 2016-03-03 |
CN105388850B (en) | 2019-04-30 |
CN105388850A (en) | 2016-03-09 |
JP2016051258A (en) | 2016-04-11 |
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 | |
US9836039B2 (en) | Method and system for simulating a work process on a machine tool | |
CN109388107B (en) | Control device | |
US9436177B2 (en) | Numerical control system having multi-core processor | |
US9715226B2 (en) | Numerical controller with multi-core processor | |
JP6903275B2 (en) | Control device and control method | |
US20140316565A1 (en) | Numerical controller | |
CN113950651B (en) | Information processing device, information processing method, and information processing program | |
JP2007140655A (en) | Motion controller | |
JP2019061467A (en) | Support system and support program | |
JPS63181005A (en) | Parallel processing method for numerical controller | |
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 | |
JP6457376B2 (en) | A numerical controller that speeds up the input and output of external signals in the servo controller | |
US20220342381A1 (en) | Managing a machine tool method, for example method of mapping toolpath data and machine code, a control device, and a machine tool | |
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 | |
CN1083750C (en) | Machine tool controller system | |
JP6935606B1 (en) | Information processing equipment and information processing programs | |
KR20120016875A (en) | Hole work devices of machine tools and process method thereof | |
WO2022215476A1 (en) | Information processing device and information processing program | |
EP2548146A1 (en) | Distributed cnc toolpath calculations | |
CN114818426A (en) | Silicon wafer single-side thinning processing simulation method, electronic equipment and storage medium | |
CN107783496A (en) | A kind of aspheric lens numerical control lathe based on ARM9 |
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 |