Numerical control device and computer-readable storage medium
Patent Information
- Application Number
- PCT/JP2023/033843
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-19
- Publication Date
- 2025-03-27
Smart Images

Figure JP2023033843_27032025_PF_FP_ABST
Abstract
Description
Numerical control device and computer-readable storage medium
[0001] The present disclosure relates to a numerical control device and a computer-readable storage medium.
[0002] In recent years, the amount of data processed by numerical control devices that control processing machines has been increasing. For example, in processing machines, the amount of data processed increases as the number of control axes to be controlled increases (for example, see Patent Document 1).
[0003] Japanese Patent Application Laid-Open No. 2020-62705
[0004] When the amount of data processed by a numerical control device increases, there is a risk that the processing of a block of a machining program cannot be completed in one control cycle. In this case, the numerical control device cannot properly control the machining machine. Therefore, there is a demand for technology that can properly process a block in one control cycle.
[0005] The numerical control device disclosed herein comprises a processing unit that executes processing of at least one block included in a machining program in one control cycle, an estimation unit that estimates an index related to the processing of at least one block in one control cycle, and a modification unit that changes the processor clock based on the index estimated by the estimation unit.
[0006] The computer-readable storage medium of the present disclosure stores instructions that cause a computer to execute processing of at least one block included in a machining program in one control cycle, estimate an index related to the processing of at least one block in one control cycle, and change the processor clock based on the estimated index.
[0007] 1 is a block diagram showing an example of the hardware configuration of a processing machine; FIG. 2 is a block diagram showing an example of the functions of a numerical control device; FIG. 3 is an example of a processing program; FIG. 4 is a diagram showing an example of processing executed in one control cycle; FIG. 5 is a diagram showing the relationship between the character string length of one block and processing time; FIG. 6 is a diagram showing the relationship between the type of memory and processing time; FIG. 7 is a flowchart showing an example of processing executed by the numerical control device; and FIG. 8 is a block diagram showing an example of the functions of the numerical control device.
[0008] A numerical control device and a computer-readable storage medium according to an embodiment of the present disclosure will be described below with reference to the drawings. In the following description, components having the same or similar functions will be assigned the same reference numerals. Duplicate descriptions of those components may be omitted.
[0009] In this application, "based on XX" means "based on at least XX," and includes cases where it is based on other elements in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where it is based on XX that has been calculated or processed. "XX" is any element (for example, any information).
[0010] The term "control axes" used herein refers to virtual axes set in a processing machine, including, for example, the X-axis, Y-axis, Z-axis, A-axis, B-axis, and C-axis.
[0011] A numerical control device is a device that controls a processing machine. The numerical control device controls the processing machine using, for example, a system program and a processing program. The numerical control device is housed, for example, in an operation panel of the processing machine.
[0012] Examples of the processing machine include a machine tool, a three-dimensional printer, and a wire electric discharge machine. Examples of the machine tool include a lathe, a machining center, and a multi-tasking machine.
[0013] A processing machine, for example, has multiple systems. A system is a collection of control objects controlled by one command group. One command group is, for example, a processing program. The control objects include, for example, one or more spindles and one or more control axes.
[0014] The multiple systems are controlled by different sets of commands. For example, if a processing machine has a first system and a second system, the first system and the second system are controlled by a first processing program and a second processing program, respectively.
[0015] Each system includes, for example, a plurality of control axes, such as an X-axis, a Y-axis, a Z-axis, an A-axis, and a C-axis.
[0016] 1 is a block diagram showing an example of the hardware configuration of a processing machine 1. The processing machine 1 includes a numerical control device 2, an input / output device 3, a servo amplifier 4, a servo motor 5, a spindle amplifier 6, a spindle motor 7, and peripheral devices 8.
[0017] The numerical control device 2 includes, for example, a hardware processor 201 , a bus 202 , a read-only memory (ROM) 203 , a random access memory (RAM) 204 , and a non-volatile memory 205 .
[0018] The hardware processor 201 is a processor that controls the entire numerical control device 2 in accordance with a system program. The hardware processor 201 reads the system program and the like stored in the ROM 203 via the bus 202. The hardware processor 201 is, for example, a CPU (Central Processing Unit) or an electronic circuit.
[0019] The bus 202 is a communication path that connects the various hardware components of the numerical control device 2. The various hardware components of the numerical control device 2 exchange data via the bus 202.
[0020] The ROM 203 is a storage device that stores system programs, etc. The ROM 203 is a computer-readable storage medium.
[0021] The RAM 204 is a storage device that temporarily stores various data and functions as a work area for the hardware processor 201 to process various data.
[0022] The nonvolatile memory 205 is a storage device that retains data even when the power to the numerical control device 2 is turned off. The nonvolatile memory 205 stores, for example, a machining program. The nonvolatile memory 205 is a computer-readable storage medium. The nonvolatile memory 205 is, for example, a battery-backed memory or an SSD (Solid State Drive).
[0023] The numerical control device 2 further includes an interface 206 , an axis control circuit 207 , a spindle control circuit 208 , a PLC (Programmable Logic Controller) 209 , and an I / O unit 210 .
[0024] The interface 206 connects the bus 202 and the input / output device 3. The interface 206 sends various data processed by the hardware processor 201 to the input / output device 3, for example.
[0025] The input / output device 3 receives various data via the interface 206 and displays the various data on a display. The input / output device 3 also receives input of various data and sends the various data via the interface 206 to, for example, the hardware processor 201.
[0026] The input / output device 3 is, for example, a touch panel. When the input / output device 3 is a touch panel, the input / output device 3 is, for example, a capacitive touch panel. The touch panel is not limited to a capacitive touch panel and may be a touch panel of another type. The input / output device 3 is installed in an operation panel (not shown) in which the numerical control device 2 is housed.
[0027] The axis control circuit 207 is a circuit for controlling the servo motor 5. The axis control circuit 207 receives control commands from the hardware processor 201 and sends various commands to the servo amplifier 4 for driving the servo motor 5. The axis control circuit 207 sends, for example, a torque command for controlling the torque of the servo motor 5 to the servo amplifier 4.
[0028] The servo amplifier 4 receives a command from the axis control circuit 207 and supplies a current to the servo motor 5 .
[0029] The servo motors 5 are driven by receiving a current supply from the servo amplifier 4. The servo motors 5 are provided corresponding to each control axis of the processing machine 1. If the processing machine 1 is a machine tool having five axes, the servo motors 5 include, for example, an X-axis servo motor, a Y-axis servo motor, a Z-axis servo motor, an A-axis servo motor, and a C-axis servo motor. In this case, an axis control circuit 207 and a servo amplifier 4 are provided for each servo motor 5.
[0030] The servo motor 5 is connected to, for example, a ball screw that moves a turret. When the servo motor 5 is driven, a structure of the processing machine 1, such as a turret, moves along a predetermined control axis.
[0031] The servo motor 5 has a built-in encoder (not shown) that detects the position and feed rate of the control axis. Position feedback information and speed feedback information indicating the position and feed rate of the control axis detected by the encoder are fed back to the axis control circuit 207. In this way, the axis control circuit 207 performs feedback control of each control axis.
[0032] The spindle control circuit 208 is a circuit for controlling the spindle motor 7. The spindle control circuit 208 receives a control command from the hardware processor 201 and sends a command to the spindle amplifier 6 to drive the spindle motor 7. The spindle control circuit 208 sends, for example, a spindle speed command to the spindle amplifier 6 to control the rotation speed of the spindle motor 7.
[0033] The spindle amplifier 6 receives a command from the spindle control circuit 208 and supplies a current to the spindle motor 7 .
[0034] The spindle motor 7 is driven by receiving a current supplied from the spindle amplifier 6. The spindle motor 7 is connected to the main shaft and rotates the main shaft.
[0035] The PLC 209 is a device that executes a ladder program to control the peripheral device 8. The PLC 209 sends commands to the peripheral device 8 via an I / O unit 210.
[0036] The I / O unit 210 is the interface 206 that connects the PLC 209 and the peripheral device 8. The I / O unit 210 sends commands received from the PLC 209 to the peripheral device 8.
[0037] The peripheral device 8 is a device that is installed in the processing machine 1 and performs auxiliary operations in the processing machine 1. The peripheral device 8 operates based on commands received from the I / O unit 210. The peripheral device 8 may be a device that is installed in the periphery of the processing machine 1. The peripheral device 8 is, for example, a tool changer, a cutting fluid injection device, or an opening / closing door drive device.
[0038] 2 is a block diagram showing an example of the functions of the numerical control device 2. The numerical control device 2 controls the operation of each control axis of the processing machine 1 based on a processing program. The numerical control device 2 also controls the rotation of the spindle based on the processing program. In this way, the processing machine 1 processes the workpiece.
[0039] The numerical control device 2 includes, for example, a processing unit 211, a motor control unit 212, a peripheral device control unit 213, an estimation unit 214, and a change unit 215. The processing unit 211, the motor control unit 212, the peripheral device control unit 213, the estimation unit 214, and the change unit 215 are realized, for example, by the hardware processor 201 performing arithmetic processing using a system program stored in the ROM 203 and various data and machining programs stored in the non-volatile memory 205.
[0040] The processing unit 211 executes the processing of at least one block included in the machining program in one control cycle. The machining program is a program for machining a workpiece in the processing machine 1.
[0041] 3 shows an example of a machining program. The machining program includes a code indicating the name of the machining program, a code specifying the rotation speed of the spindle, a code specifying tool change, and a code specifying tool movement.
[0042] The first line of the machining program specifies "O0001." "O" is a code that specifies the name of the machining program. In other words, "O0001" specifies that the name of the machining program is "0001."
[0043] The line with sequence number N1 specifies "G50 S2000;". "G50" is a code that specifies the maximum spindle speed. In other words, "G50 S2000;" specifies that the maximum spindle speed is 2000 [rpm].
[0044] In the line with sequence number N2, "T0202;" is specified. The T code is a code that specifies the tool number and the tool offset number. In other words, "T0202;" specifies that the number of the newly used tool is 2 and the tool offset number is 2.
[0045] The line with sequence number N3 specifies "G96 S120;". "G96" is a code that specifies constant peripheral speed control. In other words, "G96 S120;" specifies that the peripheral speed during workpiece machining is 120 [m / min].
[0046] The line with sequence number N4 specifies "G00 X100 Z100;". "G00" is a rapid traverse command. In other words, "G00 X100 Z100;" specifies that the tool will be positioned at the "X100 Z100" position by rapid traverse.
[0047] The line with sequence number N5 specifies "X94;" and "G00" is a modal command. In other words, "X94;" specifies that the tool will be positioned at the "X94 Z100" position by rapid traverse.
[0048] The line with sequence number N6 specifies "G01 Z0 F0.25;". "G01" is a cutting feed command. The "F" code specifies the cutting feed rate. Also, "G01" is a modal command. In other words, "G01 Z0 F0.25;" specifies that the tool should be moved to the "X94 Z0" position at a feed rate of 0.25 [m / rev].
[0049] In the line with sequence number N22, "M00;" is specified. "M00" is a code that specifies the end of the program. In other words, "M00;" specifies the end of the machining program.
[0050] A block is a command or a set of commands specified in one line of a machining program. In other words, one or more commands specified in each line make up one block. Note that the ";" specified in each line of a machining program is a code that specifies the end of the block.
[0051] A control period is a unit of time during which a processor executes predetermined processes in a predetermined order. In other words, the processor executes predetermined processes in a predetermined order for each control period. The control period is, for example, several microseconds.
[0052] A plurality of processes are executed in one control cycle, including, for example, a program analysis process and an interpolation process.
[0053] The processing of one block is the processing of analyzing the instructions contained in one block, that is, the processing of one block is the program analysis processing of one block.
[0054] The program analysis process analyzes commands contained in one or more blocks of a machining program, and obtains information such as the tool movement path, the spindle rotation speed, the timing of tool replacement, and the timing of cutting fluid injection.
[0055] Interpolation processing is a process for interpolating a movement path specified in a machining program. In other words, interpolation processing is a process for generating interpolated data that indicates a minute path by filling in points between the start point and end point of a movement path specified in one block.
[0056] 4 is a diagram illustrating an example of processing executed in one control cycle, which is divided into, for example, a first period, a second period, a third period, and a fourth period.
[0057] In the first period, for example, interpolation processing and control processing are executed. That is, when one control cycle starts, the interpolation processing and control processing are executed first. The interpolation processing and control processing executed here are executed based on the analysis result of the machining program in the program analysis processing of the previous control cycle. The interpolation processing and control processing are executed in the motor control unit 212 or the peripheral device control unit 213.
[0058] In the second period, for example, a program analysis process is executed, which is a preparation process for the interpolation process and control process of the next control cycle.
[0059] In the third period, for example, a communication process is executed. The communication process is, for example, a communication process using an API (Application Programming Interface). The communication process is, for example, executed by a communication unit (not shown).
[0060] In the fourth period, for example, a screen update process is executed. The screen update process is, for example, a process of updating an image displayed on the display screen of the input / output device 3. The screen update process is executed by, for example, a screen update unit (not shown). Now, returning to the description of FIG. 2 .
[0061] The motor control unit 212 executes control processing based on the result of the interpolation processing. That is, the motor control unit 212 controls the servo motor 5 of the processing machine 1 based on the result of the interpolation processing. The motor control unit 212 also controls the spindle motor 7 based on, for example, the result of the program analysis processing executed by the processing unit 211.
[0062] The peripheral device control unit 213 controls the peripheral device 8. The peripheral device 8 is, for example, a tool changer and a cutting fluid ejection device. The peripheral device control unit 213 controls the operation of the peripheral device 8 based on, for example, the result of the program analysis process executed by the processing unit 211.
[0063] The estimation unit 214 estimates an index related to the processing of at least one block in one control period. The index estimated by the estimation unit 214 is a numerical value that indirectly indicates the load on the processor. The index is, for example, the processing time of one block included in the at least one block.
[0064] The estimation unit 214 estimates the index based on at least one of the number of motors to be controlled, the number of systems to be controlled, the number of control axes to be controlled, the number of spindles to be controlled, the type of signal, the amount of data input and output, historical information regarding the processing time of one block, the string length of one block, and the type of memory.
[0065] At least the number of motors to be controlled, the number of systems to be controlled, the number of control axes to be controlled, the number of spindles to be controlled, the type of signal, the amount of data input and output, historical information regarding the processing time of one block, the string length of one block, and the type of memory affect the time required for program analysis processing.
[0066] The motors to be controlled include the spindle motor 7 and the servo motor 5. The types of signals include an interrupt signal and a mode switching signal. The history information is data on the processing time of the block in the immediately previous control cycle. Alternatively, the history information may be data on the processing time of the block in multiple past control cycles.
[0067] 5A is a diagram showing the relationship between the character string length of one block and the processing time, and FIG. 5B is a diagram showing the relationship between the type of memory and the processing time.
[0068] If the character string of one block is 3 to 7 characters, the estimation unit 214 estimates the processing time of one block so that at least 2 μs is included in the processing time of one block.If the character string of one block is 8 to 12 characters, the estimation unit 214 estimates the processing time of one block so that at least 3 μs is included in the processing time of one block.
[0069] Furthermore, when the memory type is "A", the estimation unit 214 estimates the processing time of one block so that at least 1 μs is included in the processing time of one block. When the memory type is "B", the estimation unit 214 estimates the processing time of one block so that at least 2 μs is included in the processing time of one block.
[0070] For example, if one block contains three characters and the type of memory used is "A," the estimation unit 214 estimates the processing time for one block as the sum of 2 μs, 1 μs, and the time T μs that is always required when the program analysis process is executed. Now, returning to the explanation of FIG. 2 .
[0071] The change unit 215 changes the clock of the processor based on the index estimated by the estimation unit 214. The change unit 215, for example, shortens the period of the processor clock. In other words, the change unit 215 increases the processing speed of the processor. The processor is, for example, a CPU with multiple cores. The change unit 215 changes the clock, for example, at the start timing of a control period.
[0072] The change unit 215 changes the clock based on the result of comparing the value indicated by the index with a predetermined threshold value. For example, if the value indicated by the index is equal to or greater than the threshold value, the change unit 215 changes the clock of the processor.
[0073] The predetermined threshold value is at least one of a value set in a parameter, a value specified in a machining program, a value specified by a first signal, and a value calculated from the block length and feed rate.
[0074] When a threshold value is set in the parameter, the change unit 215 reads the value set in the parameter and compares the threshold value with the index. When a threshold value is specified in the machining program, the change unit 215 reads the value specified in the machining program and compares the threshold value with the index.
[0075] When the threshold value is specified by the first signal, the modifying unit 215 receives the first signal and compares the threshold value with the index. Here, the first signal is any signal that indicates the threshold value.
[0076] The block length is the length of the tool movement path specified by one block, and the tool movement time specified by one block is calculated based on the block length and the feed rate.
[0077] If the processing time for one block is longer than the tool movement time for that block, the timing for generating a command for tool movement will be later than the timing for tool movement. In this case, the numerical control device 2 may not be able to control the processing machine 1. In other words, the processing time for one block must be shorter than the movement time calculated from the block length and feed rate. In other words, a value calculated from the block length and feed rate may be used as the predetermined threshold value.
[0078] The change unit 215 may change the processor clock based on at least one of a command in the machining program, the second signal, and conditions set in the parameters. For example, if the character string length of one block in the machining program is quite long, the processing time for one block may be estimated from the operator's experience even if the processing unit 211 does not process the block. In this case, the operator can write a command to change the clock into the machining program in advance. The change unit 215 changes the clock based on the command written in the machining program.
[0079] Alternatively, if an operator or the like knows in advance the number of control axes, the number of systems, the number of spindles, etc., the operator can, for example, cause the processing unit 211 to output the second signal at a predetermined timing. Similarly, the operator can set conditions for changing the clock in parameters. The changing unit 215 changes the clock based on the second signal or based on the conditions set in the parameters. Note that the second signal is a signal for changing the clock.
[0080] The change unit 215 may change the clock of the processor when at least one of the following occurs: the power consumption of the processor exceeds a first threshold value; and the temperature of the processor exceeds a second threshold value. In this case, the change unit 215 extends the period of the clock of the processor. The first threshold value and the second threshold value may be set in parameters, for example.
[0081] 6 is a flowchart showing an example of processing executed by the numerical control device 2. In the numerical control device 2, first, the processing unit 211 executes processing of at least one block included in a machining program in one control cycle (step S1).
[0082] Next, the motor control unit 212 controls the servo motor 5 and the spindle motor 7 (step S2), and then the peripheral device control unit 213 controls the peripheral device 8 (step S3).
[0083] Next, the estimation unit 214 estimates an index related to the processing of at least one block in one control cycle (step S4). Next, the change unit 215 changes the processor clock (step S5). The processes from step S1 to step S5 are repeatedly executed, for example, for each control cycle, and these processes end at a predetermined timing.
[0084] Even if the processor clock is changed, the power consumption of the processor may still exceed the first threshold. Alternatively, even if the processor clock is changed, the temperature of the processor may still exceed the second threshold. In such cases, the numerical controller 2 may limit the operation of the cores, limit interrupt processing, change the task processing cycle, and limit the amount of input / output data.
[0085] Fig. 7 is a block diagram showing an example of the functions of the numerical control device 2. The numerical control device 2 shown in Fig. 7 includes a limiting unit 216 in addition to the functions of the numerical control device 2 shown in Fig. 2. The limiting unit 216 is realized, for example, by the hardware processor 201 performing arithmetic processing using the system program stored in the ROM 203 and the various data and machining programs stored in the non-volatile memory 205.
[0086] If the change unit 215 determines that the power consumption of the processor exceeds the first threshold or the temperature of the processor exceeds the second threshold even after the clock is changed, the limiting unit 216 performs at least one of restricting the operation of the core, restricting interrupt processing, changing the cycle of task processing, and restricting the amount of data input and output.
[0087] Restricting the operation of a core means, for example, restricting the operation of part of one or more sub-cores in a processor having a main core and one or more sub-cores.
[0088] Changing the task processing cycle means changing the task processing that is performed every certain control cycle to be performed every more control cycles, for example, changing the task processing cycle from once every four control cycles to once every eight control cycles.
[0089] The limiting unit 216 limits each operation or process, thereby suppressing the heat generated by the processor.
[0090] In the above-described embodiment, the indicator is the processing time of one block. However, the indicator is not limited to this. When the at least one block is a plurality of blocks, the indicator may be the number of the plurality of blocks processed during one control cycle.
[0091] The number of blocks processed during one control cycle is calculated by dividing the "time Ts that can be spent on processing multiple blocks in one control cycle" by "(processing time for one block) / k", where k is the processor clock weight. The processor clock weight is a coefficient that indicates the current processing capacity when the maximum processing capacity of the processor clock is 1.0. k is, for example, 0.8.
[0092] The "time Ts that can be spent on processing multiple blocks in one control cycle" is calculated by subtracting the "time required for basic operations," "time required for control processing," and "time required for signal processing" from the "value indicating the length of one control cycle."
[0093] The time required for the control process is calculated based on, for example, the number of systems to be controlled, the number of control axes to be controlled, and the number of spindles to be controlled. For example, if the number of systems to be controlled is two, the time required for the control process is calculated so that at least 40 μs is included in the time required for the control process. If the number of control axes to be controlled is 18, the time required for the control process is calculated so that at least 114 μs is included in the time required for the control process. If the number of spindles to be controlled is two, the time required for the control process is calculated so that at least 40 μs is included in the time required for the control process. In other words, if the number of systems to be controlled is two, the number of control axes to be controlled is 18, and the number of spindles to be controlled is two, the time required for the control process is 40 + 114 + 40 = 224 μs.
[0094] The time required for signal processing is calculated based on the type of signal. For example, when signal Gxxx.0 is '1', the time required for signal processing is calculated so that at least 152 [μs] of time is included in the time required for signal processing. When signal Gyyy.1 is '1', the time required for signal processing is calculated so that at least 42 [μs] of time is included in the time required for signal processing. In other words, when signal Gxxx.0 = '1' and signal Gyyy.1 = '1', the time required for signal processing is 152 + 42 = 194 [μs].
[0095] For example, if one control period is 4000 [μs], the time required for basic operation is 2800 [μs], the time required for control processing is 224 [μs], and the time required for signal processing is 194 [μs], then Ts can be calculated as Ts = (4000 - (2800 + 224 + 194)) × k. If the value of k is 0.8, Ts is 625.6 [μs]. If the processing time for one block is 207 [μs], the number of multiple blocks processed during one control period is approximately 3.02.
[0096] The change unit 215 changes the clock of the processor based on the index estimated by the estimation unit 214. The change unit 215 changes the clock based on the result of comparing the value indicated by the index with a predetermined threshold value.
[0097] For example, if the predetermined threshold is 3.5, the change unit 215 changes the processor clock so that the index exceeds the predetermined threshold.
[0098] As described above, the numerical control device 2 includes the processing unit 211 that executes processing of at least one block included in a machining program in one control cycle, the estimation unit 214 that estimates an index related to the processing of at least one block in one control cycle, and the change unit 215 that changes the processor clock based on the index estimated by the estimation unit 214. Therefore, the numerical control device 2 can appropriately process the blocks in one control cycle.
[0099] In the numerical control device 2, the index is the processing time of one block included in the at least one block. Alternatively, the at least one block is a plurality of blocks, and the index is the number of the plurality of blocks processed during one control period. Therefore, the numerical control device 2 can easily estimate the load on the processor.
[0100] The estimation unit 214 also estimates the index based on at least one of the number of motors to be controlled, the number of systems to be controlled, the number of control axes to be controlled, the number of spindles to be controlled, the type of signal, the amount of input and output data, history information on the processing time of one block, the character string length of one block, and the type of memory. Therefore, the numerical control device 2 can accurately estimate the load on the processor.
[0101] The change unit 215 changes the clock based on the result of comparing the value indicated by the index with a predetermined threshold value. The predetermined threshold value is at least one of a value set in a parameter, a value specified in a machining program, a value specified by a first signal, and a value calculated from the block length and feed rate. Therefore, the numerical control device 2 can easily compare the index with the threshold value and change the processor clock.
[0102] The changing unit 215 further changes the clock based on at least one of a command in the machining program, a second signal, and a condition set in a parameter. Therefore, the numerical control device 2 can reliably change the processor clock when it is predicted in advance that the processor load will be high.
[0103] Furthermore, the changing unit 215 changes the clock at the start timing of a control period, which means that the numerical control device 2 can change the processor clock at an appropriate timing.
[0104] Furthermore, the change unit 215 changes the clock when at least one of the following occurs: the power consumption of the processor exceeds a first threshold value; and the temperature of the processor exceeds a second threshold value. Therefore, the numerical control device 2 can prevent the processor from becoming overloaded and the processing capacity from decreasing.
[0105] Furthermore, the numerical controller 2 further includes a limiting unit 216 that, when the changing unit 215 determines that the power consumption exceeds the first threshold or the temperature exceeds the second threshold even after the clock is changed, executes at least one of limiting the operation of the core, limiting interrupt processing, changing the cycle of task processing, and limiting the amount of input / output data. Thus, the numerical controller 2 can prevent the processor from being overloaded.
[0106] Although the present disclosure has been described in detail, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible to these embodiments without departing from the gist of the present disclosure or the gist of the present disclosure derived from the content of the claims and their equivalents. Furthermore, these embodiments can also be implemented in combination.
[0107] The following are supplementary notes related to embodiments of the present disclosure. Supplementary Note [1] A numerical control device comprising: a processing unit that executes processing of at least one block included in a machining program in one control cycle; an estimation unit that estimates an index related to the processing of the at least one block in the one control cycle; and a change unit that changes a processor clock based on the index estimated by the estimation unit. Supplementary Note [2] The numerical control device according to Supplementary Note [1], wherein the index is a processing time of one block included in the at least one block. Supplementary Note [3] The numerical control device according to Supplementary Note [1] or [2], wherein the estimation unit estimates the index based on at least one of the number of motors to be controlled, the number of systems to be controlled, the number of control axes to be controlled, the number of spindles to be controlled, the type of signal, the amount of data input and output, history information related to the processing time of the one block, the character string length of the one block, and the type of memory. Supplementary Note [4] The numerical control device according to any of Supplements [1] to [3], wherein the change unit changes the clock based on a result of comparing a value indicated by the index with a predetermined threshold value. Supplementary Note [5] The numerical control device according to Supplementary Note [4], wherein the predetermined threshold value is at least one of a value set in a parameter, a value specified in the machining program, a value specified by a first signal, and a value calculated from a block length and a feed rate. Supplementary Note [6] The numerical control device according to any of Supplements [1] to [5], wherein the change unit changes the clock based on at least one of a command of the machining program, a second signal, and a condition set in a parameter. Supplementary Note [7] The numerical control device according to any of Supplements [1] to [6], wherein the change unit changes the clock at the start timing of one control period. Supplementary Note [8] The numerical control device according to any of Supplements [1] to [7], wherein the change unit changes the clock when at least one of power consumption of the processor exceeds a first threshold value and a temperature of the processor exceeds a second threshold value.Supplementary Note [9] The numerical control device according to Supplementary Note [8], further comprising a limiting unit that, when the changing unit determines that the power consumption exceeds the first threshold or the temperature exceeds the second threshold even after the clock is changed, executes at least one of limiting core operation, limiting interrupt processing, changing a task processing period, and limiting the amount of input / output data. Supplementary Note
[10] The numerical control device according to Supplementary Note [1], wherein the at least one block is a plurality of blocks, and the index is the number of the plurality of blocks processed during the one control period. Supplementary Note
[11] A computer-readable storage medium storing instructions that cause a computer to execute the steps of: executing processing of at least one block included in a machining program in one control period; estimating an index related to the processing of the at least one block in the one control period; and changing a processor clock based on the estimated index.
[0108] REFERENCE SIGNS LIST 1 Machining machine 2 Numerical control device 201 Hardware processor 202 Bus 203 ROM 204 RAM 205 Non-volatile memory 206 Interface 207 Axis control circuit 208 Spindle control circuit 209 PLC 210 I / O unit 211 Processing unit 212 Motor control unit 213 Peripheral device control unit 214 Estimation unit 215 Change unit 216 Limitation unit 3 Input / output device 4 Servo amplifier 5 Servo motor 6 Spindle amplifier 7 Spindle motor 8 Peripheral device
Claims
1. A numerical control device comprising: a processing unit that executes processing of at least one block included in a machining program in one control cycle; an estimation unit that estimates an index related to the processing of the at least one block in the one control cycle; and a modification unit that changes a processor clock based on the index estimated by the estimation unit.
2. The numerical control device according to claim 1, wherein the index is a processing time of one of the at least one blocks.
3. A numerical control device as described in claim 1 or 2, wherein the estimation unit estimates the index based on at least one of the number of motors to be controlled, the number of systems to be controlled, the number of control axes to be controlled, the number of spindles to be controlled, the type of signal, the amount of data input and output, historical information regarding the processing time of one block, the character string length of one block, and the type of memory.
4. A numerical control device according to any one of claims 1 to 3, wherein the change unit changes the clock based on a comparison result between the value indicated by the index and a predetermined threshold value.
5. A numerical control device as described in claim 4, wherein the predetermined threshold value is at least one of a value set in a parameter, a value specified in the machining program, a value specified by a first signal, and a value calculated from a block length and a feed rate.
6. A numerical control device according to any one of claims 1 to 5, wherein the change unit changes the clock based on at least one of the commands of the machining program, a second signal, and conditions set in parameters.
7. A numerical control device according to any one of claims 1 to 6, wherein the change unit changes the clock at the start timing of one of the control periods.
8. A numerical control device according to any one of claims 1 to 7, wherein the change unit changes the clock when at least one of the following occurs: the power consumption of the processor exceeds a first threshold value, and the temperature of the processor exceeds a second threshold value.
9. A numerical control device as described in claim 8, further comprising a restriction unit which, when the change unit determines that the power consumption exceeds the first threshold value or the temperature exceeds the second threshold value even after the clock is changed, executes at least one of restricting the operation of a core, restricting interrupt processing, changing the task processing period, and restricting the amount of data input and output.
10. The numerical control device according to claim 1, wherein the at least one block is a plurality of blocks, and the index is the number of the plurality of blocks processed during the one control period.
11. A computer-readable storage medium storing instructions that cause a computer to execute the following: executing processing of at least one block included in a machining program in one control cycle; estimating an indicator related to the processing of the at least one block in the one control cycle; and changing a processor clock based on the estimated indicator.
Citation Information
Patent Citations
Self-synchronous AC servo system for high-speed serial communication
EP1837727A1
Autonomous modification of waterjet cutting systems
JP2020524610A
Controlled deceleration of moveable components in a computer numerically controlled machine
US20180150062A1
Device, system, and method for compensating for isolation and cable delays in an SSI encoder interface circuit
US6608574B1
Control device, control method, and control program
WO2020017248A1