Numerical controller and computer-readable storage medium

By setting up a processing unit, an estimation unit, and a modification unit in the numerical control device, the problem of incomplete processing of program blocks caused by the increase in data processing volume is solved, ensuring proper control of the machining machine and efficient operation of the processor.

CN121889737APending Publication Date: 2026-04-17FANUC LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
FANUC LTD
Filing Date
2023-09-19
Publication Date
2026-04-17

AI Technical Summary

Technical Problem

In numerical control devices, when the amount of data processed increases, it may be impossible to complete the processing of program blocks of the machining program within one control cycle, resulting in the inability to properly control the machining machine.

Method used

The processing unit executes the program blocks in the processing program, the estimation unit estimates the relevant processing indicators, and the change unit changes the processor clock according to the indicators to ensure that the program blocks are processed properly within one control cycle.

Benefits of technology

This enables appropriate processing of program blocks within a control cycle, improving the control accuracy and efficiency of the numerical control device and preventing processor overload.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121889737A_ABST
    Figure CN121889737A_ABST
Patent Text Reader

Abstract

A numerical controller includes: 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 relating to the processing of at least one block in one control cycle; and a changing unit that changes the clock of the processor on the basis of the index estimated by the estimating unit.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to numerical control devices and computer-readable storage media. Background Technology

[0002] In recent years, the amount of data processed in numerical control devices for controlling machining centers has increased. For example, in machining centers, the amount of data processed increases due to the increased number of control axes of the controlled object (e.g., Patent Document 1).

[0003] Existing technical documents

[0004] Patent documents

[0005] Patent Document 1: Japanese Patent Application Publication No. 2020-62705 Summary of the Invention

[0006] The problem that the invention aims to solve

[0007] When the amount of data processed by a numerical control device increases, it may be impossible to complete the processing of a program block of the machining program within a single control cycle. In this case, the numerical control device cannot properly control the machining machine. Therefore, a technology is required that can properly process program blocks within a single control cycle.

[0008] Methods for solving problems

[0009] The numerical control apparatus disclosed herein includes: a processing unit that executes processing of at least one program block included in a processing program in a control cycle; an estimation unit that estimates an index related to the processing of at least one program block in a control cycle; and a modification unit that modifies the processor clock according to the index estimated by the estimation unit.

[0010] The computer-readable storage medium disclosed herein stores commands that enable a computer to perform the following steps: executing the processing of at least one program block contained in a processing program in a control cycle; estimating an index related to the processing of at least one program block in a control cycle; and changing the processor clock according to the estimated index. Attached Figure Description

[0011] Figure 1 This is a block diagram illustrating an example of the hardware structure of a machining machine.

[0012] Figure 2 This is a block diagram illustrating an example of the function of a numerical control device.

[0013] Figure 3 This is an example of a processing procedure.

[0014] Figure 4 This is a diagram illustrating an example of a process executed within a control cycle.

[0015] Figure 5A It is a graph showing the relationship between the string length of a program block and the processing time.

[0016] Figure 5B It is a graph showing the relationship between memory type and processing time.

[0017] Figure 6 This is a flowchart of an example of a process performed by a numerical control device.

[0018] Figure 7 This is a block diagram illustrating an example of the function of a numerical control device. Detailed Implementation

[0019] Hereinafter, the numerical control device and computer-readable storage medium according to embodiments of the present disclosure will be described with reference to the accompanying drawings. Furthermore, in the following description, structures having the same or similar functions will be labeled with the same reference numerals. Also, repeated descriptions of these structures will sometimes be omitted.

[0020] In this application, "based on XX" means "at least based on XX," but also includes cases based on other elements besides XX. Furthermore, "based on XX" is not limited to directly using XX, but also includes cases based on calculations or processing performed on XX. "XX" can be any element (e.g., any information).

[0021] The term "control axis" as used in this application refers to a virtual axis set in a machining center. Control axes include, for example, the X-axis, Y-axis, Z-axis, A-axis, B-axis, and C-axis.

[0022] A numerical control (NC) device is a device for controlling a machining center. For example, a NC device uses a system program and a machining program to control the machining center. The NC device may be housed in the machine's control panel.

[0023] Processing machines include, for example, machine tools, 3D printers, and wire electrical discharge machining (EDM) machines. Machine tools include, for example, lathes, machining centers, and multi-functional machining centers.

[0024] A machining machine may have multiple systems. A system is a collection of controlled objects controlled by a set of instructions. A set of instructions may be a machining program. Controlled objects may include one or more spindles and one or more control axes.

[0025] Multiple systems are controlled by different sets of instructions. For example, in the case of a machining machine having a first system and a second system, a first machining program and a second machining program are used to control the first system and the second system, respectively.

[0026] Each system may include multiple control axes, such as the X-axis, Y-axis, Z-axis, A-axis, and C-axis.

[0027] Figure 1 This is a block diagram illustrating an example of the hardware structure of a machining machine. The machining 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 equipment 8.

[0028] The numerical control device 2 includes, for example, a hardware processor 201, a bus 202, a ROM (Read Only Memory) 203, a RAM (Random Access Memory) 204, and a non-volatile memory 205.

[0029] The hardware processor 201 is a processor that controls the entire numerical control device 2 according to the 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.

[0030] 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 bus 202.

[0031] ROM203 is a storage device for storing system programs, etc. ROM203 is a computer-readable storage medium.

[0032] RAM204 is a storage device for temporary storage of various data. RAM204 functions as the working area of ​​the hardware processor 201 for processing various data.

[0033] Non-volatile memory 205 is a storage device that retains data even when the power supply to the numerical control device 2 is cut off. For example, non-volatile memory 205 stores processing programs. Non-volatile memory 205 is a computer-readable storage medium. Non-volatile memory 205 may be, for example, a battery-backed memory or an SSD (Solid State Drive).

[0034] The numerical control device 2 also 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.

[0035] Interface 206 connects bus 202 and input / output device 3. Interface 206, for example, sends various data processed by hardware processor 201 to input / output device 3.

[0036] The input / output device 3 receives various data via interface 206 and displays various data on the display. In addition, the input / output device 3 accepts various data inputs and sends various data, for example, to the hardware processor 201 via interface 206.

[0037] The input / output device 3 is, for example, a touch panel. When the input / output device 3 is a touch panel, it is, for example, a capacitive touch panel. The touch panel is not limited to capacitive touch panels; other types of touch panels may also be used. The input / output device 3 is located on the control panel (not shown) that houses the numerical control device 2.

[0038] The axis control circuit 207 is used to control 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 to drive the servo motor 5. For example, the axis control circuit 207 sends torque commands that control the torque of the servo motor 5 to the servo amplifier 4.

[0039] Servo amplifier 4 receives instructions from axis control circuit 207 and supplies current to servo motor 5.

[0040] The servo motor 5 is driven by receiving current from the servo amplifier 4. The servo motor 5 is provided corresponding to each control axis of the machining center 1. In the case where the machining center 1 is a 5-axis machine tool, the servo motor 5 includes, for example, a servo motor for the X-axis, a servo motor for the Y-axis, a servo motor for the Z-axis, a servo motor for the A-axis, and a servo motor for the C-axis. In this case, an axis control circuit 207 and a servo amplifier 4 are provided for each servo motor 5.

[0041] The servo motor 5 is connected, for example, to a ball screw that moves the turret. Driven by the servo motor 5, the structure of the machine tool 1, such as the turret, moves along a predetermined control axis.

[0042] The servo motor 5 has a built-in encoder (not shown) for detecting the position and feed speed of the control axis. The position feedback information and speed feedback information detected by the encoder are fed back to the axis control circuit 207. Thus, the axis control circuit 207 performs feedback control on each control axis.

[0043] The spindle control circuit 208 is a circuit used to control the spindle motor 7. The spindle control circuit 208 receives control commands from the hardware processor 201 and sends commands to the spindle amplifier 6 to drive the spindle motor 7. For example, the spindle control circuit 208 sends a spindle speed command to the spindle amplifier 6 to control the rotational speed of the spindle motor 7.

[0044] The spindle amplifier 6 receives instructions from the spindle control circuit 208 and supplies current to the spindle motor 7.

[0045] The spindle motor 7 is driven by receiving current from the spindle amplifier 6. The spindle motor 7 is connected to the spindle, causing the spindle to rotate.

[0046] PLC209 is a device that executes ladder logic to control peripheral devices 8. PLC209 sends instructions to peripheral devices 8 via I / O unit 210.

[0047] I / O unit 210 is an interface 206 connecting PLC 209 and peripheral device 8. I / O unit 210 sends instructions received from PLC 209 to peripheral device 8.

[0048] Peripheral device 8 is installed on machining machine 1 and is a device that performs auxiliary actions on machining machine 1. Peripheral device 8 operates based on instructions received from I / O unit 210. Peripheral device 8 can also be a device installed around machining machine 1. Peripheral device 8 is, for example, a tool changing device, a coolant spraying device, or a door opening / closing drive device.

[0049] Figure 2 This is a block diagram illustrating an example of the function of the numerical control device 2. The numerical control device 2 controls the movement of each control axis of the machining machine 1 according to the machining program. Furthermore, the numerical control device 2 controls the rotation of the spindle according to the machining program. Thus, workpiece machining is performed in the machining machine 1.

[0050] 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 modification unit 215. The processing unit 211, the motor control unit 212, the peripheral device control unit 213, the estimation unit 214, and the modification unit 215 are implemented, for example, by a hardware processor 201 using a system program stored in a ROM 203 and various data and processing programs stored in a non-volatile memory 205 for calculation and processing.

[0051] The processing unit 211 executes the processing of at least one program block contained in the machining program in one control cycle. The machining program is a program for machining a workpiece in the machining machine 1.

[0052] Figure 3 This is an example of a machining program. A machining program contains codes indicating the name of the machining program, codes specifying the spindle rotation speed, codes specifying tool change, and codes specifying tool movement.

[0053] The first line of the machining program specifies "O0001". "O" is a code that specifies the name of the machining program. That is, "O0001" specifies the name of the machining program as "0001".

[0054] In the line with serial number N1, "G50 S2000;" is specified. "G50" is the code that specifies the maximum spindle speed. That is, "G50 S2000;" specifies the maximum spindle speed as 2000 rpm.

[0055] In the line with serial number N2, "T0202;" is specified. The T code specifies the tool number and the tool's calibration number. That is, "T0202;" specifies that the newly used tool is number 2 and the tool's calibration number is 2.

[0056] In line N3, "G96 S120;" is specified. "G96" is the code for constant circumferential speed control. That is, "G96 S120;" specifies that the circumferential speed during workpiece machining is 120 m / min.

[0057] In line N4 of the serial number, "G00 X100 Z100;" is specified. "G00" is a rapid feed instruction. That is, by using "G00 X100 Z100;", the tool is specified to be positioned at "X100 Z100" using rapid feed.

[0058] In line N5 of the serial number, "X94;" is specified. Additionally, "G00" is a modal instruction. That is, "X94;" specifies that the tool should be positioned at "X94 Z100" using rapid feed.

[0059] In line N6, "G01 Z0 F0.25;" is specified. "G01" is the cutting feed command. The "F" code specifies the cutting feed rate. Additionally, "G01" is a modal command. That is, "G01 Z0 F0.25;" specifies that the tool should move to the position "X94 Z0" at a feed rate of 0.25 [m / rev].

[0060] In line N22, "M00;" is specified. "M00" is the code that indicates the end of the program. That is, "M00;" indicates the end of the machining program.

[0061] A program block is a collection of one or more instructions specified in a single line of a machining program. That is, one or more instructions specified in different lines constitute a program block. Additionally, the semicolon (;) specified in each line of the machining program marks the end of the program block.

[0062] A control cycle is a unit of time that constitutes the time required for a processor to execute predetermined processes in a predetermined order. That is, in each control cycle, predetermined processes are executed in a predetermined order within the processor. A control cycle is, for example, several μ seconds.

[0063] Multiple processes are executed within a single control cycle. These processes may include, for example, program parsing and interpolation.

[0064] The processing of a program block involves parsing the instructions contained within that block. In other words, the processing of a program block is the parsing and processing of that block's instructions.

[0065] Program parsing is the process of parsing the instructions contained in one or more program blocks of a machining program. Through program parsing, information such as the tool's movement path, spindle rotation speed, tool change timing, and coolant injection timing can be obtained.

[0066] Interpolation is the process of interpolating the movement path specified by the machining program. That is, interpolation is the process of generating interpolation data representing a small path by compensating for the points between the start and end points of the movement path specified by a program block.

[0067] Figure 4 This is a diagram illustrating an example of the processing performed within a control cycle. A control cycle may be divided into, for example, a first period, a second period, a third period, and a fourth period.

[0068] During the first period, interpolation processing and control processing are performed, for example. That is, when a control cycle begins, interpolation processing and control processing are performed first. The interpolation processing and control processing performed here are based on the analysis results of the machining program in the program analysis processing of the previous control cycle. The interpolation processing and control processing are processes performed in the motor control unit 212 or the peripheral equipment control unit 213.

[0069] In the second period, for example, program parsing processing is performed. This program parsing processing includes interpolation processing for the next control cycle and preparation processing for control processing.

[0070] In the third period, for example, communication processing is performed. This communication processing is, for example, API (Application Programming Interface) based communication processing. This communication processing is, for example, performed by a communication unit (not shown).

[0071] During the fourth period, for example, screen update processing is performed. Screen update processing is, for example, the process of updating the image displayed on the screen of the input / output device 3. Screen update processing is performed, for example, by a screen update unit (not shown). Here, return Figure 2 Explanation.

[0072] The motor control unit 212 performs control processing based on the results of the interpolation processing. That is, the motor control unit 212 controls the servo motor 5 of the machining machine 1 based on the results of the interpolation processing. In addition, the motor control unit 212 controls the spindle motor 7, for example, based on the results of the program parsing processing executed by the processing unit 211.

[0073] The peripheral equipment control unit 213 controls the peripheral equipment 8. The peripheral equipment 8 may be, for example, a tool changing device and a coolant spraying device. The peripheral equipment control unit 213 controls the operation of the peripheral equipment 8 based, for example, on the results of program analysis processed by the processing unit 211.

[0074] The estimation unit 214 estimates an indicator related to the processing of at least one program block in a control cycle. The indicator estimated by the estimation unit 214 is a value that indirectly represents the load on the processor. The indicator is, for example, the processing time of a program block contained in at least one program block.

[0075] The estimation unit 214 estimates the index based on at least one of the following: the number of motors of the controlled object, the number of systems of the controlled object, the number of control axes of the controlled object, the number of main axes of the controlled object, the type of signal, the amount of input and output data, historical information related to the processing time of a program block, the string length of a program block, and the type of memory.

[0076] The number of motors in the controlled object, the number of systems in the controlled object, the number of control axes in the controlled object, the number of main axes in the controlled object, the types of signals, the amount of input and output data, historical information related to the processing time of a program block, the string length of a program block, and the type of memory all affect the time of program parsing and processing.

[0077] In addition, the motors controlling the object include a spindle motor 7 and a servo motor 5. The types of signals include interrupt signals and mode switching signals. Historical information is data on the processing time of program blocks in the previous control cycle. Alternatively, historical information can also be data related to the processing time of program blocks in multiple past control cycles.

[0078] Figure 5A It is a graph that shows the relationship between the string length of a program block and the processing time. Figure 5B This is a graph showing the relationship between memory type and processing time.

[0079] When the string of a program block is 3 or more characters but less than 7 characters, the estimation unit 214 estimates the processing time of the program block such that at least 2 [μs] of time is included in the processing time of the program block. When the string of a program block is 8 or more characters but less than 12 characters, the estimation unit 214 estimates the processing time of the program block such that at least 3 [μs] of time is included in the processing time of the program block.

[0080] Furthermore, when the memory type is "A", the estimation unit 214 estimates the processing time of a program block such that at least 1 [μs] of time is included in the processing time of a program block. When the memory type is "B", the estimation unit 214 estimates the processing time of a program block such that at least 2 [μs] of time is included in the processing time of a program block.

[0081] For example, if the string of a program block is 3 characters and the type of memory used is "A", the estimation unit 214 estimates the processing time of a program block by adding 2 [μs], 1 [μs], and the time T [μs] that must be spent on program parsing. Here, return Figure 2 Explanation.

[0082] The modification unit 215 modifies the processor clock based on indicators estimated by the estimation unit 214. For example, the modification unit 215 shortens the processor clock cycle. In other words, the modification unit 215 increases the processor's processing speed. The processor is, for example, a multi-core CPU. The modification unit 215, for example, modifies the clock at the beginning of a control cycle.

[0083] The modification unit 215 changes the clock based on a comparison between the value shown by the indicator and a predetermined threshold. For example, if the value shown by the indicator is above the threshold, the modification unit 215 changes the processor's clock.

[0084] The predetermined threshold is at least one of the following: a value set as a parameter, a value specified by the machining program, a value specified by the first signal, and a value calculated based on the program block length and feed rate.

[0085] When a threshold is set as a parameter, the modification unit 215 reads the value set as the parameter and compares the threshold with the indicator. When a threshold is specified through a processing program, the modification unit 215 reads the value specified through the processing program and compares the threshold with the indicator.

[0086] When the threshold is specified by a first signal, the change unit 215 receives the first signal and compares the threshold with the indicator. Here, the first signal is any signal representing the threshold.

[0087] The block length is the length of the tool's movement path specified by a block. Therefore, the movement time of the tool specified by a block is calculated based on the block length and the feed rate.

[0088] Suppose that the processing time of a program block is longer than the tool movement time within that block, the timing of generating instructions related to tool movement is later than the tool movement timing. In this case, the numerical control device 2 may be unable to control the machining machine 1. That is, the processing time of a program block must be shorter than the movement time calculated based on the program block length and feed rate. In other words, a value calculated based on the program block length and feed rate can also be used as a predetermined threshold.

[0089] Furthermore, the change unit 215 can also change the processor clock based on at least one of the following: instructions from the machining program, a second signal, or conditions for setting parameters. For example, when the string length of a program block in the machining program is quite long, even if the processing unit 211 does not process the program block, the processing time of the program block is sometimes estimated based on the operator's experience. In this case, the operator can pre-write instructions for changing the clock into the machining program. The change unit 215 changes the clock based on these instructions written into the machining program.

[0090] Alternatively, if the operator or others have prior knowledge of the number of control axes of the controlled object, the number of systems controlled by the controlled object, the number of spindles of the controlled object, etc., the operator can, for example, cause the processing unit 211 to output a second signal at a predetermined timing. Similarly, the operator can set parameters to change the clock. The changing unit 215 changes the clock based on the second signal or based on the parameters set. Furthermore, the second signal is a signal used to change the clock.

[0091] The modification unit 215 can modify the processor clock in at least one of the following situations: the processor's power consumption exceeds a first threshold, and the processor's temperature exceeds a second threshold. In this case, the modification unit 215 extends the clock cycle length. The first and second thresholds can be set as parameters, for example.

[0092] Figure 6 This is a flowchart illustrating an example of the processing performed by the numerical control device 2. In the numerical control device 2, firstly, the processing unit 211 performs processing (step S1) on at least one program block included in the machining program in one control cycle.

[0093] Next, the motor control unit 212 controls the servo motor 5 and the spindle motor 7 (step S2). Next, the peripheral device control unit 213 controls the peripheral device 8 (step S3).

[0094] Next, the estimation unit 214 estimates the indicators related to the processing of at least one program block in a control cycle (step S4). Next, the change unit 215 changes the processor clock (step S5). The processing of steps S1 to S5 is executed repeatedly in each control cycle, and these processes end at a predetermined time.

[0095] Even if the processor clock is changed, the processor's power consumption may still exceed the first threshold. Or, even if the processor clock is changed, the processor's temperature may still exceed the second threshold. In such cases, the numerical control unit 2 can also limit the core's actions, interrupt handling, task processing cycles, and the amount of input / output data.

[0096] Figure 7 This is a block diagram illustrating an example of the function of the numerical control device 2. Figure 7 The numerical control device 2 shown, in addition to Figure 2 In addition to the functions of the numerical control device 2 shown, it also includes a limiting unit 216. The limiting unit 216 is implemented, for example, by a hardware processor 201 using a system program stored in ROM 203 and various data and processing programs stored in non-volatile memory 205 for calculation and processing.

[0097] If, even if the clock is changed, the modification unit 215 determines that the processor's power consumption exceeds the first threshold or the processor's temperature exceeds the second threshold, the restriction unit 216 performs at least one of the following: restriction on the operation of the execution core, restriction on interrupt handling, change of the task processing cycle, and restriction on the amount of input / output data.

[0098] Restricting the operation of a core, for example, refers to limiting the operation of a portion of one or more sub-cores in a processor that has a main core and one or more sub-cores.

[0099] A change in the task processing cycle refers to changing the task processing that was performed in a certain control cycle to be performed in more control cycles. For example, a change in the task processing cycle could be performing tasks at a rate of once every 8 control cycles to once every 4 control cycles.

[0100] The limiting unit 216 can suppress the heat generated by the processor by limiting the execution of each action or process.

[0101] In the above implementation, the metric is the processing time of a program block. However, the metric is not limited to this. When at least one program block is multiple program blocks, the metric can be the number of multiple program blocks processed during a control cycle.

[0102] The number of program blocks processed during a control cycle is calculated by dividing "the time Ts that can be spent processing multiple program blocks in a control cycle" by "(processing time of one program block) / k". k is the weight of the processor clock. The processor clock weight is a coefficient representing the current processing capacity when the processor's maximum clock processing capacity is set to 1.0. k is, for example, 0.8.

[0103] The time Ts that can be spent processing multiple program blocks in a control cycle is calculated by subtracting the time spent on basic actions, the time spent on control processing, and the time spent on signal processing from the value representing the length of a control cycle.

[0104] The time spent on control processing is calculated, for example, based on the number of systems controlled, the number of control axes, and the number of principal axes. For instance, when the number of systems controlled is 2, the time spent on control processing is calculated such that at least 40 [μs] of the time is included in the total control processing time. Furthermore, when the number of control axes controlled is 18, the time spent on control processing is calculated such that at least 114 [μs] of the time is included in the total control processing time. Additionally, when the number of principal axes controlled is 2, the time spent on control processing is calculated such that at least 40 [μs] of the time is included in the total control processing time. That is, when the number of systems controlled is 2, the number of control axes controlled is 18, and the number of principal axes controlled is 2, the time spent on control processing is 40 + 114 + 40 = 224 [μs].

[0105] The time spent on signal processing is calculated based on the type of signal. For example, when signal Gxxx.0 is '1', the time spent on signal processing is calculated such that at least 152 [μs] of the time spent on signal processing is included. Furthermore, when signal Gyy.1 is "1", the time spent on signal processing is calculated such that at least 42 [μs] of the time spent on signal processing is included. That is, when signal Gxxx.0 = '1' and signal Gyyy.1 = '1', the time spent on signal processing is 152 + 42 = 194 [μs].

[0106] For example, given a control cycle of 4000 μs, a basic action time of 2800 μs, a control processing time of 224 μs, and a signal processing time of 194 μs, Ts can be calculated using the formula: Ts = (4000 - (2800 + 224 + 194)) × k. When k is 0.8, Ts is 625.6 μs. With a processing time of 207 μs for a single program block, the number of program blocks processed within a single control cycle is approximately 3.02.

[0107] The modification unit 215 modifies the processor clock based on an indicator estimated by the estimation unit 214. The modification unit 215 modifies the clock based on a comparison between the value shown by the indicator and a predetermined threshold.

[0108] 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.

[0109] As described above, the numerical control device 2 includes: a processing unit 211 that executes processing of at least one program block included in a processing program in one control cycle; an estimation unit 214 that estimates an index related to the processing of at least one program block in one control cycle; and a modification unit 215 that modifies the processor clock based on the index estimated by the estimation unit 214. Therefore, the numerical control device 2 is able to appropriately process program blocks in one control cycle.

[0110] Furthermore, in the numerical control device 2, the index is the processing time of a program block contained in at least one program block. Alternatively, if at least one program block comprises multiple program blocks, the index is the number of multiple program blocks processed within one control cycle. Therefore, the numerical control device 2 can easily estimate the load applied to the processor.

[0111] Furthermore, the estimation unit 214 estimates the parameters based on at least one of the following: the number of motors in the controlled object, the number of systems in the controlled object, the number of control axes in the controlled object, the number of spindles in the controlled object, the type of signal, the amount of input / output data, historical information related to the processing time of a program block, the string length of a program block, and the type of memory. Therefore, the numerical control device 2 can estimate the load applied to the processor with high accuracy.

[0112] Furthermore, the adjustment unit 215 adjusts the clock based on a comparison between the value shown by the indicator and a predetermined threshold. The predetermined threshold is at least one of the following: a value set as a parameter, a value specified by the machining program, a value specified by a first signal, and a value calculated based on the program block length and feed rate. Therefore, the numerical control device 2 can easily adjust the processor clock by comparing the indicator with the threshold.

[0113] The modification unit 215 also modifies the clock based on at least one of the instructions in the processing program, the second signal, or the conditions for setting parameters. Therefore, the numerical control device 2 can reliably modify the processor clock when it anticipates an increase in processor load.

[0114] Furthermore, the change unit 215 changes the clock at the beginning of the control cycle. That is, the numerical control device 2 can change the processor's clock at an appropriate timing.

[0115] Furthermore, the clock is changed by the switching unit 215 in at least one of the following situations: the processor's power consumption exceeds a first threshold, and the processor's temperature exceeds a second threshold. Therefore, the numerical control device 2 can prevent the processor from becoming overloaded and thus reducing its processing capacity.

[0116] Furthermore, the numerical control device 2 also includes a limiting unit 216, which, when the changing unit 215 determines that even with a change in clock power consumption exceeds a first threshold or the temperature exceeds a second threshold, restricts at least one of the following: limiting the operation of the execution core, limiting interrupt handling, changing the task processing cycle, and limiting the amount of input / output data. Therefore, the numerical control device 2 can prevent the processor from becoming overloaded.

[0117] This disclosure has been described in detail, but it is not limited to the various embodiments described above. Various additions, substitutions, modifications, and partial deletions can be made to these embodiments without departing from the spirit of this disclosure, or from the spirit of this disclosure derived from the content described under the claimed scope and its equivalents. Furthermore, these embodiments can also be implemented in combination.

[0118] The following are notes regarding embodiments of this disclosure.

[0119] Postscript [1]

[0120] A numerical control device is characterized by comprising: a processing unit that executes processing of at least one program block included in a processing program in a control cycle; an estimation unit that estimates an index related to the processing of the at least one program block in the control cycle; and a modification unit that modifies the processor clock based on the index estimated by the estimation unit.

[0121] Postscript [2]

[0122] According to the numerical control device described in Appendix [1], the index is the processing time of a program block contained in the at least one program block.

[0123] Postscript [3]

[0124] According to the numerical control device described in Appendix [1] or [2], the estimation unit estimates the index based on at least one of the following: the number of motors of the controlled object, the number of systems of the controlled object, the number of control axes of the controlled object, the number of spindles of the controlled object, the type of signal, the amount of input and output data, historical information related to the processing time of the program block, the string length of the program block, and the type of memory.

[0125] Postscript [4]

[0126] According to any of the appendices [1] to [3], the changing unit changes the clock based on a comparison between the value represented by the index and a predetermined threshold.

[0127] Postscript [5]

[0128] According to the numerical control device described in Appendix [4], the predetermined threshold is at least one of the following: a value set as a parameter, a value specified by the machining program, a value specified by a first signal, and a value calculated based on the program block length and feed rate.

[0129] Postscript [6]

[0130] According to any one of the appendices [1] to [5], the change unit changes the clock according to at least one of the instructions of the machining program, the second signal, and the conditions for setting parameters.

[0131] Postscript [7]

[0132] According to any of the appendices [1] to [6], the change unit changes the clock at the beginning of the control cycle.

[0133] Postscript [8]

[0134] According to any one of the appendices [1] to [7], the changing unit changes the clock in at least one of the following situations: the power consumption of the processor exceeds a first threshold and the temperature of the processor exceeds a second threshold.

[0135] Postscript [9]

[0136] According to the numerical control device described in Appendix [8], the numerical control device further comprises: 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 if the clock is changed, performs at least one of the following: limiting the operation of the core, limiting interrupt handling, changing the cycle of task processing, and limiting the amount of input and output data.

[0137] Postscript

[10]

[0138] According to the numerical control device described in Appendix [1], the at least one program block is a plurality of program blocks, and the index is the number of the plurality of program blocks processed during the one control cycle.

[0139] Postscript

[11]

[0140] A computer-readable storage medium stores commands that cause a computer to perform the following steps: executing processing of at least one program block contained in a processing program in a control cycle; estimating an index related to the processing of the at least one program block in the control cycle; and changing the processor clock according to the estimated index.

[0141] Explanation of reference numerals in the attached figures

[0142] 1 processing machine

[0143] 2 Numerical control device

[0144] 201 Hardware Processor

[0145] 202 bus

[0146] 203ROM

[0147] 204 RAM

[0148] 205 non-volatile memory

[0149] 206 interface

[0150] 207-axis control circuit

[0151] 208 spindle control circuit

[0152] 209 PLC

[0153] 210 I / O unit

[0154] 211 Processing Department

[0155] 212 Electric Motor Control Unit

[0156] 213 Peripheral Equipment Control Department

[0157] 214 Presumption Section

[0158] 215 Change Department

[0159] 216 Restriction Department

[0160] 3 Input / Output Devices

[0161] 4 Servo Amplifiers

[0162] 5 servo motors

[0163] 6-spindle amplifier

[0164] 7 spindle motors

[0165] 8. Peripheral equipment.

Claims

1. A numerical control device, characterized in that, The numerical control device includes: The processing unit performs processing of at least one program block contained in the processing program during a control cycle; An estimation unit that estimates indicators related to the processing of the at least one program block in the said control cycle; and The modification unit changes the processor's clock based on the indexes estimated by the estimation unit.

2. The numerical control device according to claim 1, characterized in that, The metric is the processing time of a program block contained within the at least one program block.

3. The numerical control device according to claim 1 or 2, characterized in that, The estimation unit estimates the index based on at least one of the following: the number of motors of the controlled object, the number of systems of the controlled object, the number of control axes of the controlled object, the number of spindles of the controlled object, the type of signal, the amount of input and output data, historical information related to the processing time of the program block, the string length of the program block, and the type of memory.

4. The numerical control device according to any one of claims 1 to 3, characterized in that, The modification unit changes the clock based on a comparison between the value represented by the indicator and a predetermined threshold.

5. The numerical control device according to claim 4, characterized in that, The predetermined threshold is at least one of the following: a value set as a parameter, a value specified by the machining program, a value specified by the first signal, and a value calculated based on the program block length and feed rate.

6. The numerical control device according to any one of claims 1 to 5, characterized in that, The modification unit changes the clock according to at least one of the instructions of the processing program, the second signal, or the conditions for setting parameters.

7. The numerical control device according to any one of claims 1 to 6, characterized in that, The modification unit changes the clock at the beginning of a control cycle.

8. The numerical control device according to any one of claims 1 to 7, characterized in that, The alteration unit alters the clock in at least one of the following situations: the processor's power consumption exceeds a first threshold and the processor's temperature exceeds a second threshold.

9. The numerical control device according to claim 8, characterized in that, The numerical control device further includes a limiting unit that, even if the clock is changed, determines that the power consumption exceeds the first threshold or the temperature exceeds the second threshold, performs at least one of the following: limiting the operation of the core, limiting interrupt handling, changing the cycle of task processing, and limiting the amount of input / output data.

10. The numerical control device according to claim 1, characterized in that, The at least one program block can be multiple program blocks. The metric is the number of program blocks processed during the period of the control cycle.

11. A computer readable storage medium, characterized in that, Store commands that cause the computer to perform the following steps: The processing of at least one program block contained in the machining program is performed in a control cycle; Indicators relating to the processing of at least one program block in the control cycle are estimated; as well as The processor clock is changed based on the estimated parameters.

Citation Information

Patent Citations

  • Machine tool, program and correction amount calculation method

    JP2020062705A