NUMERICAL CONTROLLER HAVING SCALABLE PERFORMANCE
20210365001 · 2021-11-25
Assignee
Inventors
Cpc classification
G05B2219/31418
PHYSICS
G05B19/4093
PHYSICS
G05B2219/23013
PHYSICS
G05B19/4155
PHYSICS
G06F9/50
PHYSICS
International classification
G05B19/4093
PHYSICS
Abstract
A system program monitors a numerical controller executing a useful program controlling a machine. The numerical controller determines target values for position-controlled axes and controls the position-controlled axes in accordance with the target values. The numerical controller stores resources and determines whether, and optionally to which extent, the resources are enabled or disabled. Enabling or disabling the resources specifies how many processor cores are enabled for use, or how many processor threads are enabled for use, or to what extent a processor cache or a processor main memory are enabled for use, or which hardware components of the numerical controller are enabled for use, or to what extent use of external computing power is permitted. The numerical controller determines the target values for the position-controlled axes using only the enabled resources.
Claims
1-12. (canceled)
13. A method for operating a numerical controller which executes a useful program controlling a machine, the method comprising: executing a system program which monitors the numerical controller; the numerical controller determining, with a processor having a first clock rate and by executing the useful program, target values for position-controlled axes of the machine and actuating the position-controlled axes in accordance with the determined target values; storing in the numerical controller criteria for deciding which and to which extent resources of the numerical controller are enabled or disabled, wherein enabling or disabling the resources specifies a number of processor cores of the at least one processor to be enabled for use, or a number of processor threads of the at least one processor to be enabled for use, or an extent of a processor cache or of a main memory of the at least one processor to be enabled for use, or hardware components of the numerical controller to be enabled for use, or an extent of external computing power to be permitted; and the numerical controller determining the target values for the position-controlled axes using only the enabled resources.
14. The method of claim 13, further comprising the numerical controller receiving, during execution of the system program, but before execution of the useful program, a first unlock code from an operator or from a computer-controlled facility, and determining, based on the received first unlock code which of the resources are enabled and disabled, and to which extent the resources are enabled.
15. The method of claim 13, further comprising the numerical controller storing a minimum execution time for repeatedly executed controller-internal actions of the useful program during execution of the useful program, and during execution of the useful program, executing the controller-internal actions at least with the minimum execution time.
16. The method of claim 15, further comprising the numerical controller receiving, during execution of the system program, but before execution of the useful program, a second unlock code from an operator or from a computer-controlled facility, and determining the minimum execution time based on the received second unlock code.
17. The method of claim 13, further comprising the numerical controller storing a first upper limit for the first clock rate and limiting during execution of the useful program the first clock rate to the first upper limit.
18. The method of claim 17, further comprising the numerical controller receiving, during execution of the system program, but before execution of the useful program, a third unlock code from an operator or from a computer-controlled facility, and determining the first upper limit based on the received third unlock code.
19. The method of claim 13, further comprising the numerical controller communicating during execution of the useful program with an external facility with a second dock rate or with a communication bandwidth, and storing a second upper limit for the second dock rate or a third upper limit for the communication bandwidth.
20. The method of claim 19, further comprising the numerical controller receiving, during execution of the system program, but before execution of the useful program, a fourth unlock code from an operator or from a computer-controlled facility, and determining the second upper limit and/or the third upper limit in dependence on the received fourth unlock code.
21. The method of claim 13, further comprising the numerical controller storing a fourth upper limit for a processor dock rate of the processor, and limiting during execution of the useful program the processor clock rate to the fourth upper limit.
22. The method of claim 21, further comprising the numerical controller receiving, during execution of the system program, but before execution of the useful program, a fifth unlock code from an operator or from a computer-controlled facility, and determining the fourth upper limit based on the received fifth unlock code.
23. A system program for a numerical controller controlling a machine, wherein the system program comprises machine code embodied on a non-transitory storage medium, which when loaded into a memory of the numerical controller and executed by a processor of the numerical controller, causes the numerical controller to determine, with the processor having a first clock rate and by executing the useful program, target values for position-controlled axes of the machine and actuating the position-controlled axes in accordance with the determined target values, store criteria for deciding which and to which extent resources of the numerical controller are enabled or disabled, wherein enabling or disabling the resources specifies a number of processor cores of the at least one processor to be enabled for use, or a number of processor threads of the at least one processor to be enabled for use, or an extent of a processor cache or of a man memory of the at least one processor to be enabled for use, or hardware components of the numerical controller to be enabled for use, or an extent of external computing power to be permitted, and determine the target values for the position-controlled axes using only the enabled resources.
24. A numerical controller controlling a machine, wherein the numerical controller is programmed with a system program comprising machine cods embodied on a non-transitory storage medium, which when loaded into a memory of the numerical controller and executed by a processor of the numerical controller, causes the numerical controller to determine, with the processor having a first dock rate and by executing the useful program, target values for position-controlled axes of the machine and actuating the position-controlled axes in accordance with the determined target values, store criteria to, deciding which and to which extent resources of the numerical controller are enabled or disabled, wherein enabling or disabling the resources specifies a number of processor cores of the at least one processor to be enabled for use, or a number of processor threads of the at least one processor to be enabled for use, or an extent of a processor cache or of a main memory of the at least one processor to be enabled for use, or hardware components of the numerical controller to be enabled for use, or an extent of external computing power to be permitted, and determine the target values for the position-controlled axes using only the enabled resources.
Description
[0037] The above-described properties, features and advantages of this invention and the manner in which they are achieved will become clearer and more plainly comprehensible in conjunction with following description of the exemplary embodiments explained in more detail in conjunction with the drawings. These show in schematic depictions:
[0038]
[0039]
[0040]
[0041] According to
[0042] A numerical controller 5 is provided to control production machine 1. The numerical controller 5 is programmed with a system program 6. The system program 6 comprises machine code 7, which can be processed by the numerical controller 5. The processing of the machine code 7 by the numerical controller 5 causes the numerical controller 5 to execute an operating method which is explained in more detail below in conjunction with
[0043] According to
[0044] After configuration, in a step S3, the numerical controller 5 starts to execute a useful program 9. The useful program 9 can, for example, be a conventional parts program comprising corresponding sequences or target position values for the individual position-controlled axes 3. The numerical controller 5 executes the useful program 9 while being monitored by the system program 6.
[0045] In the context of the execution of the useful program 9, the numerical controller 5 determines, by means of at least one processor 10 having at least one first clock rate, target values for the position-controlled axes 3. It furthermore actuates the position-controlled axes 3 in accordance with the respectively determined target values. The first clock rate can, for example, be an IPO clock rate interpolation clock rate), a position-control clock rate, a speed-control dock rate or current-control clock rate. Other technology-related clock rates are possible. Technology-related clock rates are clock rates, which are related to the processing of the target values determined using the useful program 9. The opposite are control-related clock rates, which only relate to the internal functioning of the numerical controller 5. The unit of the first dock rate is hertz. The higher the first dock rate, the more quickly—with otherwise unchanged conditions—the useful program 9 can be processed.
[0046] The parameters recorded in the numerical controller can, for example, establish which resources of the numerical controller 5 are enabled and which are disabled. If intermediate stages between complete saving and complete enabling are possible, the recorded parameters can also establish the scope within which the resources are enabled. If the processor 10 is embodied as a multi-core processor, the cores of the processor 10 are an example of such resources. The parameters can, for example, establish whether, in the case of a quad-core processor, only one single processor core thereof, two processor cores thereof or all four processor cores thereof are used. Similar statements obviously also apply to processors 10 with a different number of processor cores, for example 2, 8 or 16 processor cores. Another example in this case are the individual processor threads 10. The parameters can, for example, establish whether, in the case of a maximum of eight possible threads, only one single thread is used or whether two, four or eight threads are used. Similar statements obviously also apply to processors 10 with a different number of threads, for example 4 or 16 threads. A further example consists in establishing whether, when a 4 MB cache is physically present, nothing, 1 MB, 2 MB or all 4 MB are used. A further example consists in establishing whether, in the case of two cache levels being present, one cache level is used or whether two cache levels are used. A further example consists in establishing whether, when a 4 GB main memory is physically present, 1 GB, 2 GB or all 4 GB are used. A further example consists in establishing whether a GPU (=graphical processing unit) that is present is used or not. Other functional units, for example a DSP (digital signal processor) or fixed-programmed modules (for example ASICs or FPGAs), can be unlocked or disabled as required.
[0047] The above statements are obviously by way of example only. Furthermore, it is not only possible to enable or block internal resources of the numerical controller 5 (completely or partially). Similar procedures are also possible for external resources of the numerical controller 6. For example, the parameters can power can be used—for example by another numerical controller or via a cloud.
[0048] The parameters can furthermore establish the minimum execution time with which repeatedly executed actions within the controller relating to the useful program 9 are executed, i.e. the minimum time elapsing between two such actions that follow in direct succession. An example of such an execution time is the block change-over time, i.e. the time between the loading of two successive data blocks of the useful program 9. For example, the parameters may not limit a minimum possible block change-over time of 1 ms due to the performance of the numerical controller 5, limit it to 2 ms or limit it to 4 ms.
[0049] The parameters can furthermore establish a first upper limit for the at least one first clock rate. For example, the parameters may not limit a maximum possible position-control clock rate of 4 kHz due to the performance of the numerical controller 5, limit it to 2 kHz or limit it to 1 kHz.
[0050] Furthermore, in the context of execution of the useful program 9, the numerical controller 5 often communicates with other facilities, for example with a stored program control 11 (often called PLC=progmmmable logic control) or other facilities, such as, for example a man-machine-interface 12. Communication with a further numerical controller via a corresponding machine-machine-interface is also possible. As a rule, such communication via the machine-machine-interface usually takes place with a very high or wide communication bandwidth.
[0051] As a rule, communication with the stored program control 11 generally takes place at a second dock rate. As a rule, communication with the man-machine interface 12 takes place with a communication bandwidth. The parameters can, for example, establish a second upper limit for the second clock rate. For example, the parameters may not limit a possible maximum second clock rate of 200 Hz due to the performance of the numerical controller 5, limit it to 100 Hz or limit it to 50 Hz. Alternatively or additionally, the parameters can, for example, establish a third upper limit for the communication bandwidth. For example, the parameters may not limit a possible maximum communication bandwidth of 1 Mbit/s due to the performance of the numerical controller 5, omit it to 500 kbit/s or limit it to 250 kbit/s.
[0052] The processor 10 works with a processor clock rate. The processor clock rate can be constant, for example 3.0 GHz. Alternatively, it can be variable, for example it can vary between 2.5 GHz and 3.0 GHz. Regardless of whether the processor dock rate is constant or variable, however, the parameters can establish a fourth upper limit for the processor dock rate, for example not limit the processor clock rate, limit it to 2.5 GHz or limit it to 2.0 GHz.
[0053] In the course of the execution of step S3, the numerical controller 5 observes all the restrictions and limitations established by the parameters. In particular, the numerical controller 5 determines the target values for the position-controlled axes 3 using only the enabled resources. Furthermore, it executes the actions within the controller with at least the respective minimum execution time. Therefore, although the execution time can be longer than the minimum execution time specified by the parameters it cannot be shorter than this. Furthermore, it limits the first clock rate to the first upper limit, the second clock rate to the second upper limit and the communication bandwidth to the third upper limit. Finally, it limits the processor clock rate to the fourth upper limit.
[0054] The procedure explained above in conjunction with
[0055]
[0056] Otherwise, in step S12 the numerical controller 5 extracts a first unlock code from the overall code. In step S13, the numerical controller 5 identifies which of the resources—optionally within which scope are enabled and which of the resources are disabled in dependence on the received first unlock code. In particular, it changes the content of the configuration memory 8 accordingly.
[0057] In a similar manner, in step 314, the numerical controller 5 extracts a second unlock code from the overall code. In step S15, the numerical controller 5 identifies the minimum execution times in dependence on the received second unlock code. In particular, it changes the content of the configuration memory 8 accordingly.
[0058] In a similar manner, in step S16, the numerical controller 5 extracts a third unlock code from the overall code. In step S17, the numerical controller 5 identifies the first upper limit in dependence on the received third unlock code. In particular, it changes the content of the configuration memory 8 accordingly.
[0059] In a similar manner, in step S18, the numerical controller 5 extracts a fourth unlock code from the overall code. In step S19 the numerical controller 5 identifies the second upper limit and/or the third upper limit in dependence on the received fourth unlock code. In particular, it changes the content of the configuration memory 8 accordingly.
[0060] In a similar manner, in step 320, the numerical controller 5 extracts a fifth unlock code from the overall code. In step S21, the numerical controller 5 identifies the fourth upper limit in dependence on the received fifth unlock code. In particular, it changes the content of the configuration memory 8 accordingly.
[0061] As far as they are explained, steps S12 to S21 are all present. However, it is possible for individual pairs of steps S12 to S21 to be omitted.
[0062] Furthermore, in accordance with the depiction in
[0063] The procedure according to the invention enables, for example, a faster IPO clock rate to be implemented if, and only if, non-rotationally symmetrical machining is to be performed during a turning operation. This is because such a case requires a very short IPO clock rate to enable the out-of-roundness to be interpolated with sufficient precision even at a relatively high spindle speed. For example, in order to enable a sufficiently fast IPO clock rate to be achieved, simultaneous parallel machining on a plurality of processor cores of the processor 10 may be necessary. In this case, it is, for example, possible for all four processor cores of a quadcore processor to be unlocked on the basis of a corresponding first unlock code.
[0064] Similarly, by means of a corresponding enablement, part of a so-called block preparation can be outsourced to an additional processor core in order to enable this to be calculated and processed more quickly, more precisely or in another improved manner. In this case, it is, for example, possible for two of the four processor cores of a quadcore processor to be unlocked on the basis of a corresponding first unlock code.
[0065] Thus, in summary the present invention relates to the following:
[0066] A numerical controller 6 executes a useful program 9 while being monitored by a system program 6. In the course of the execution of the useful program 9, the numerical controller 5 determines, by means of at least one processor 10 having at least one first clock rate, target values for position-controlled axes 3 of a machine 1 controlled by the numerical controller 5 and actuates the position-controlled axes 3 in accordance with the respectively determined target values. With regard to resources of the numerical controller 5, it is in each case recorded in the numerical controller 5 whether, and optionally within which scope, said resources are enabled or whether said resources are disabled. Enabling or disabling the resources establishes how many of a plurality of processor cores 10 are enabled for use and/or how many of a plurality of processor 10 threads are enabled for use and/or to what extent a processor 10 cache and/or a main memory assigned to the processor 10 are enabled for use and/or which hardware components of the numerical controller 5 are enabled for use and/or to what extent the use of external computing power is permitted. The numerical controller 5 determines the target values for the position-controlled axes 3 using only the enabled resources.
[0067] The present invention has many advantages. In particular, it is easily possible to scale the performance of a numerical controller 5 as required. An advantage for production machine manufacturers is that is only necessary to replace the numerical controller 5 in exceptional cases. The advantage for numerical controller 5 manufacturers is that the outlay for the hardware development of numerical controllers 5 can be reduced since fewer different numerical controllers 5 have to be developed. On the one hand, production machine 1 manufacturers only have to pay for the performance features that they, actually use, while the numerical controllers 5 still have considerable potential for expansion.
[0068] Although the invention has been illustrated and described in greater detail by the preferred exemplary embodiment, the invention is not restricted by the disclosed examples and other variations can be derived herefrom by the person skilled in the art without departing from the scope of protection of the invention.