WO2023012939A1 - 数値制御システム - Google Patents

数値制御システム Download PDF

Info

Publication number
WO2023012939A1
WO2023012939A1 PCT/JP2021/028980 JP2021028980W WO2023012939A1 WO 2023012939 A1 WO2023012939 A1 WO 2023012939A1 JP 2021028980 W JP2021028980 W JP 2021028980W WO 2023012939 A1 WO2023012939 A1 WO 2023012939A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
block
unit
ahead
blocks
Prior art date
Application number
PCT/JP2021/028980
Other languages
English (en)
French (fr)
Inventor
力 丹後
Original Assignee
ファナック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ファナック株式会社 filed Critical ファナック株式会社
Priority to PCT/JP2021/028980 priority Critical patent/WO2023012939A1/ja
Priority to TW111126089A priority patent/TW202307600A/zh
Publication of WO2023012939A1 publication Critical patent/WO2023012939A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme

Definitions

  • the present invention relates to numerical control systems.
  • the program is read ahead by a numerical control system, and the acceleration/deceleration operation is determined by reading out the program of the next block to be operated by FIFO (first-in first-out) from the program stored in advance by the number of blocks to be read ahead and processing it. to control the axis.
  • FIFO first-in first-out
  • the invention according to Patent Document 1 monitors the excess or deficiency of the number of data in the buffer held in the FIFO until the analysis data obtained by analyzing the NC data is used in the acceleration/deceleration interpolation means in the numerical control system.
  • Techniques are disclosed for, among other things, determining data shortage when the number of data expected to exist in the buffer is below a lower threshold. According to the technique described in Patent Document 1, when it is determined that the number of data in the buffer is insufficient, the priority of the NC data analysis processing task of the NC data analysis means can be raised.
  • Patent Document 1 merely raises the priority of the NC data analysis processing task when it is determined that there is insufficient data. is limited. Therefore, it is necessary to improve the processing capacity of the NC data analysis processing task so as to withstand the CPU load accompanying the increase in the number of programs, and there is concern about an increase in hardware costs. Furthermore, similar problems arise with the miniaturization of programs and the improvement of command speed.
  • Patent Document 1 simply raises the priority of the NC data analysis processing task when it is determined that data is insufficient. Furthermore, it does not deal with abnormal speed control at the location where data is insufficient.
  • a numerical control system of the present disclosure is a numerical control system that performs axis control while prefetching a machining program for each block, comprising: a program execution unit that executes the machining program; a program prefetch unit that prefetches the machining program; a prefetch block number calculation unit for calculating a prefetch block number that is a difference between a block number being executed by a program execution unit and a block number prefetched by the program prefetch unit; A depleted block detection unit that detects a depleted block that is a block at the time point when the value falls below a value, and in the depleted block predicted by the depleted block detection unit, the program execution unit executes a machining program and the program prefetch unit and a CPU load adjustment unit that stops or suppresses at least one function other than the function of prefetching the machining program.
  • a numerical control system capable of distributing the load on the CPU where the number of prefetched blocks has decreased.
  • FIG. 1 is a diagram showing the configuration of a numerical control system including a numerical control device according to an embodiment of the present invention
  • FIG. 1 is a diagram showing the configuration of a numerical controller according to an embodiment of the present invention
  • FIG. It is a figure which shows the functional block of the numerical controller which concerns on embodiment of this invention.
  • 9 is a graph showing changes over time in the number of look-ahead blocks
  • 10 is a graph showing temporal changes in the number of look-ahead blocks when the command speed update unit does not update the command speed
  • 7 is a graph showing temporal changes in the number of look-ahead blocks when the command speed update unit updates the command speed
  • FIG. 9 is a graph showing changes over time in the number of look-ahead blocks
  • 10 is a graph showing temporal changes in the number of look-ahead blocks when the command speed update unit does not update the command speed
  • 7 is a graph showing temporal changes in the number of look-ahead blocks when the command speed update unit updates the command speed
  • FIG. 10 is a diagram showing temporal changes in synthetic speed when the program command time adjustment unit does not stop the function of executing the machining program and when it stops.
  • FIG. 10 is a diagram showing changes over time in the amount of error when the program instruction time adjusting unit does not stop the function of executing the machining program and when it stops.
  • 4 is a flow chart showing the first operation of the numerical control system according to the embodiment of the present invention.
  • 4 is a flow chart showing a second operation of the numerical control system according to the embodiment of the invention; 9 is a flow chart showing a third operation of the numerical control system according to the embodiment of the invention; It is a flow chart which shows the 4th operation of the numerical control system concerning the embodiment of the present invention.
  • FIG. 1 is a diagram showing the configuration of a numerical control system including a numerical control device according to an embodiment of the present invention.
  • the numerical control system 10 includes a numerical control device 100, a machine tool 200, and a display device 210 as a look-ahead block number display section.
  • the numerical controller 100 is a device that outputs operation commands to the machine tool 200 and numerically controls the machine tool 200 . Details of the configuration and functions of the numerical controller 100 will be described later.
  • the machine tool 200 is a device that performs predetermined machining such as cutting.
  • the machine tool 200 includes a motor that drives to machine a workpiece, a main shaft and a feed shaft attached to this motor, jigs and tools corresponding to these shafts, and the like.
  • the machine tool 200 performs predetermined machining by driving the motor based on the operation command output from the numerical controller 100 .
  • the content of the predetermined machining is not particularly limited, and other machining such as grinding, polishing, rolling, or forging may be used other than cutting.
  • the display device 210 is a device that displays changes over time in the number of look-ahead blocks.
  • the display device 210 is electrically connected to the numerical controller 100 and the machine tool 200 .
  • the display device 210 has a display, and the display displays, for example, changes over time in the number of look-ahead blocks as shown in FIG. 4, which will be described later.
  • the current time, the number of prefetched blocks, and the block processing time can be displayed on the display of the display device 210, and the number of prefetched blocks at an arbitrary time and the corresponding program can be referred to later.
  • the display of the display device 210 it is possible to operate the numerical control device 100 and the machine tool 200 such as speed change from the dedicated screen of the display device 210, and automatically adjust the machining speed F to the median value of the recommended thresholds. It can also be updated.
  • the display device 210 can display on the display the threshold value of the processing speed at which prefetching is not exhausted, and can also set the upper limit value and the lower limit value of the processing speed on the display.
  • the display device 210 can also cause an alarm or message to appear on the display when a depleted block is detected. From the user's point of view, the current block processing time (BPT) can be confirmed on the display, and depleted blocks can be detected by alarms and messages. Note that the number of read-ahead blocks, depleted blocks, and the like will be described later.
  • FIG. 2 is a diagram showing the configuration of the numerical control device 100 according to the embodiment of the present invention.
  • the numerical controller 100 mainly includes a CPU 11, a ROM 12, a RAM 13, a CMOS 14, interfaces 15, 18, 19, a PMC (Programmable Machine Controller) 16, and an I/O unit. 17, axis control circuits 30 to 34, servo amplifiers 40 to 44, a spindle control circuit 60, and a spindle amplifier 61.
  • the CPU 11 is a processor that controls the numerical controller 100 as a whole.
  • the CPU 11 reads the system program stored in the ROM 12 via the bus 25 and controls the entire numerical controller 100 according to the system program.
  • the RAM 13 stores temporary calculation data, display data, and various data input by the operator via the display/MDI unit 70.
  • the CMOS memory 14 is configured as a non-volatile memory that is backed up by a battery (not shown) and retains the stored state even when the numerical controller 100 is powered off.
  • the CMOS memory 14 stores a machining program read via the interface 15, a machining program input via the display/MDI unit 70, and the like.
  • the ROM 12 is pre-written with various system programs for executing edit mode processing required for creating and editing a machining program and processing for automatic operation.
  • processing programs such as a processing program for executing the present invention can be input via the interface 15 and the display/MDI unit 70 and stored in the CMOS memory 14 .
  • the interface 15 enables connection between the numerical controller 100 and an external device 72 such as an adapter.
  • a machining program, various parameters, and the like are read from the external device 72 side.
  • the machining program edited in the numerical controller 100 can be stored in the external storage means via the external device 72 .
  • a PMC (programmable machine controller) 16 is a sequence program built into the numerical control device 100, and sends signals to auxiliary devices of the machine tool (for example, actuators such as robot hands for tool exchange) via the I/O unit 17. is output and controlled. It also receives signals from various switches on an operation panel provided on the main body of the machine tool, performs necessary signal processing, and passes the signals to the CPU 11 .
  • the display/MDI unit 70 is a manual data input device equipped with a display, keyboard, and the like.
  • the interface 18 receives commands and data from the keyboard of the display/MDI unit 70 and transfers them to the CPU 11 .
  • the interface 19 is connected to an operation panel 71 equipped with a manual pulse generator and the like.
  • the axis control circuits 30-34 for each axis receive the movement command amount for each axis from the CPU 11 and output the command for each axis to the servo amplifiers 40-44.
  • the servo amplifiers 40-44 receive this command and drive the servo motors 50-54 of each axis.
  • the servo motors 50 to 54 of each axis incorporate position/speed detectors, and feed back position/speed feedback signals from the position/speed detectors to the axis control circuits 30 to 34 to perform position/speed feedback control. conduct. Note that the block diagram omits position/velocity feedback.
  • the spindle control circuit 60 receives a spindle rotation command to the machine tool and outputs a spindle speed signal to the spindle amplifier 61 .
  • the spindle amplifier 61 receives this spindle speed signal, rotates the spindle motor 62 of the machine tool at the commanded rotational speed, and drives the tool.
  • a pulse encoder 63 is coupled to the spindle motor 62 with a gear, belt, or the like.
  • a pulse encoder 63 outputs feedback pulses in synchronization with the rotation of the main shaft. The feedback pulse is read by CPU 11 via bus 25 .
  • FIG. 3 is a diagram showing functional blocks of the numerical controller 100 according to the embodiment of the present invention. Specifically, FIG. 3 shows a function that the CPU 11 reads the system program and the application program stored in the ROM 12 via the bus 25 and implements them according to the system program and the application program.
  • the CPU 11 includes a program execution unit 111, a program prefetch unit 112, a prefetch block count calculation unit 113, a depleted block detection unit 114, a depleted block notification unit 115, a recommended value calculation unit 116, and a recommended value notification unit 117. , a command speed update unit 118 , a CPU load adjustment unit 121 , and a program command time adjustment unit 122 .
  • the program execution unit 111 executes the machining program.
  • the program execution unit 111 executes the machining program at a predetermined feed rate, feed acceleration/deceleration time, spindle speed, and spindle acceleration/deceleration time.
  • the program execution unit 111 can also execute a machining program simulation. In this simulation, it is preferable not only to idle the machining program, but also to actually operate the machine tool 200 after setting a workpiece on the machine tool 200, for example. This is because the manner in which the number of look-ahead blocks, which will be described later, changes over time differs depending on the operating environment and axis configuration of the machine tool 200 .
  • the program prefetching unit 112 prefetches the machining program. In this embodiment, even if the function of executing the machining program is stopped or suppressed, the program prefetching section 112 can prefetch the machining program. The program prefetching unit 112 can prefetch the machining program even before the machining program is executed. Naturally, in parallel with the execution or simulation of the machining program by the program execution unit 111, the machining program can be pre-read prior to the execution or simulation.
  • the prefetch block count calculation unit 113 calculates the prefetch block count, which is the difference between the sequence number of the block being executed by the program execution unit 111 and the sequence number of the block prefetched by the program prefetch unit 112 .
  • FIG. 4 is a graph showing changes over time in the number of look-ahead blocks.
  • FIG. 4 shows an example of temporal changes in the number of look-ahead blocks displayed on the display of display device 210 .
  • the number of prefetch blocks the positions of blocks prefetched by the program prefetch unit and the positions of blocks executed by the program execution unit 111 become 0 at the end of the machining program.
  • the number of look-ahead blocks does not decrease uniformly toward 0.
  • the number of look-ahead blocks decreases as the processing time for each block changes due to changes in the curvature of the machining path and the axis configuration. rate varies.
  • the program execution unit 110 executes the machining program, thereby consuming the number of prefetch blocks.
  • the number of pre-read blocks is accumulated by pre-reading the machining program by the program pre-reading unit 112 .
  • the ease of consuming the number of look-ahead blocks (the speed at which the program execution unit 110 executes the machining program) and the ease of accumulating the number of look-ahead blocks (the speed at which the program look-ahead unit 112 executes the look-ahead)
  • the number of look-ahead blocks increases or decreases while changing the rate of change.
  • the number of pre-read blocks is positive at the start of the machining program, but becomes 0 at the end of the machining program.
  • the number of pre-read blocks which was about 700 at the time T1 elapsed after the program started, decreased to about 500 at time T2, and then decreased further.
  • the first specified value which will be described later, is set to 500, the block in which the machining program is being executed at time T2 becomes the depleted block.
  • Such temporal change in the number of look-ahead blocks is displayed on the display of the display device 210, for example.
  • the depleted block detection unit 114 detects the number of read-ahead blocks. For example, the number of prefetched blocks is compared with a first specified value, and blocks are detected when the number of prefetched blocks is less than the first specified value.
  • "detecting" the number of prefetched blocks includes not only “detecting” the current number of prefetched blocks but also “predicting" the change in the number of prefetched blocks over time. .
  • the depleted block notification unit 115 notifies the position of the depleted block in the machining program to the outside of the numerical controller 100 .
  • the exhausted block annunciator 115 may display the locations of exhausted blocks, for example, by means of the display/MDI unit 70 shown in FIG.
  • the recommended value calculation unit 116 determines the length of the minute straight line that constitutes the machining path by the machine tool 200, the prefetch time by the program prefetch unit 112, and the program execution unit 111
  • the command speed as a recommended value is calculated from the execution time for each block by . More specifically, the command speed as a recommended value is calculated by Equation 1 below.
  • Command speed (mm/min) as a recommended value 60 x length of minute straight line (mm) / (look-ahead time + execution time for each block (msec)) (1)
  • the command speed set in the machining program is set to this recommended value, thereby increasing the machining speed. is slowed down, and the number of look-ahead blocks above a certain amount is ensured, so that the machining speed can be stabilized.
  • the recommended value notification unit 117 notifies the command speed as the recommended value calculated by the recommended value calculation unit 116 to the outside of the numerical controller 100 .
  • the command speed as the recommended value calculated by the recommended value calculator 116 is reported to the display device 210 .
  • the recommended value notification unit 117 may display the recommended value by, for example, the display/MDI unit 70 shown in FIG. This allows the user of the numerical controller 100 to recognize the command speed as a recommended value, and by extension, to set this command speed in the machining program.
  • the command speed update unit 118 uses the command speed as the recommended value calculated by the recommended value calculation unit 116 to update the command speed set after the depletion block in the machining program. Typically, the command speed is updated to be low. When the command speed update unit 118 updates the command speed to a lower speed, the program execution unit 111 executes the machining program at the updated command speed.
  • FIG. 5A shows changes over time in the number of look-ahead blocks when the command speed update unit 118 does not update the command speed set after the depletion block.
  • FIG. 5B shows changes over time in the number of look-ahead blocks when the command speed update unit 118 updates the command speed set after the depletion block.
  • the number of look-ahead blocks unilaterally decreases from 1000 blocks and runs out before the end of the program.
  • the CPU load adjusting unit 121 stops or suppresses at least one function other than the function of the program prefetching unit 112 prefetching the machining program in the depleted blocks detected by the depleted block detection unit 114 .
  • the CPU load due to functions other than the function of prefetching the machining program can be reduced.
  • at least one function that is stopped or suppressed by the CPU load adjustment unit 121 does not include the function that the program execution unit 111 executes the machining program.
  • the function stopped or suppressed by the CPU load adjustment unit 121 is a function that does not affect the machining time, accuracy, safety, etc. even if it is temporarily stopped.
  • the CPU load adjustment unit 121 preferably stops or suppresses each function as follows. (1) The CPU load adjustment unit 121 suspends or extends the ITP cycle (normally 4 msec distribution cycle to 8 msec) for monitor-related processing such as screen update of the display device 210, for example. CPU load can be reduced by thinning out monitor-related processing. (2) The CPU load adjustment unit 121 stops or suppresses checks made in two or more systems by PMC and DCS (dual check safety) PMC. By thinning out redundant checks, the CPU load can be reduced. (3) The CPU load adjustment unit 121 stops or suppresses the function of the axis (dummy axis) that does not have a motor. The CPU load on the dummy axis can be reduced. In addition, in the case of specifications with 5 or 8 axes, this is effective because the CPU load on the dummy axes increases.
  • the program instruction time adjustment unit 122 has a function of causing the program execution unit 111 to execute the machining program when it is detected (predicted) that the number of look-ahead blocks in the depleted blocks falls below a second specified value that is smaller than the first specified value. stop or suppress
  • the program command time adjustment unit 122 executes the machining program. stop or suppress the ability to As a result, the feed rate, feed acceleration/deceleration time, spindle speed, spindle acceleration/deceleration time, etc. are adjusted so that the progress of the program is suppressed (stopped). Specifically, to accumulate the number of look-ahead blocks, temporarily stop the progress of the machining program (application of dwell), adjust machining conditions or acceleration/deceleration, adjust feed speed (constant circumferential speed control adaptation), etc. are performed.
  • the CPU load adjusting unit 121 stops or suppresses at least one function other than the function of the program prefetching unit 112 prefetching the machining program in the depletion block, which is the block when the value is less than the first specified value. . If this alone does not increase the number of look-ahead blocks and it is detected that the number falls below a second specified value that is smaller than the first specified value, the program command time adjustment unit 122 causes the program execution unit 111 to execute the machining program. stop or suppress In this way, functions other than the function of the program prefetching unit 112 prefetching the machining program are stopped or suppressed step by step, and the load on the CPU is adjusted.
  • the program instruction time adjustment unit 122 stops or suppresses the function of the program execution unit 111 to execute the machining program until it is detected (estimated) that the number of look-ahead blocks exceeds the second specified value. Then, when the number of prefetched blocks accumulates to a certain number (for example, a number exceeding the second specified value) or more, the CPU load equal to or greater than that before stopping or suppressing the function that was stopped or suppressed good. Specifically, when the progress of the machining program has been stopped, the machining program may be advanced more rapidly than before the stop. After the acceleration, adjustment of the feed speed (adaptation of constant peripheral speed control), etc. may be performed. An upper limit of speed after acceleration may be provided.
  • FIG. 6 is a diagram showing changes over time in the combined speed when the program instruction time adjustment unit 122 does not stop the function of executing the machining program and when it stops.
  • FIG. 7 is a diagram showing changes over time in the amount of error when the program instruction time adjustment unit 122 does not stop the function of executing the machining program and when it stops.
  • the "error amount" is the difference between the position indicated by the command value for rotationally driving the motor of each axis and the actual position when the motor is rotationally driven.
  • the composite speed for example, F8000
  • the error amount falls below the specified value (for example, 0.03 mm).
  • FIG. 8 is a flow chart showing the first operation of the numerical controller 100 according to the present invention.
  • the program execution unit 111 executes a machining program.
  • step S12 the program prefetching unit 112 prefetches the machining program prior to execution of the machining program.
  • step S13 the prefetch block number calculation unit 113 calculates the prefetch block number.
  • step S14 if the number of prefetched blocks is less than the specified value (for example, the first specified value) (S14: YES), the process proceeds to step S15. If the number of prefetched blocks is equal to or greater than the specified value (S14: NO), the process proceeds to steps S11 and S12.
  • the specified value for example, the first specified value
  • step S15 the depleted block detection unit 114 detects depleted blocks.
  • step S16 the CPU load adjusting unit 121 adjusts the CPU load (stops or suppresses at least one function other than the function of the program prefetching unit 112 prefetching the machining program).
  • FIG. 9 is a flow chart showing the second operation of the numerical controller 100 according to the present invention. Note that steps S21 to S26 in FIG. 9 are the same as steps S11 to S16 in FIG. 6, respectively, so description thereof will be omitted.
  • step S27 the depleted block notification unit 115 notifies the display device 210 (external to the numerical controller 100) of the position of the depleted block within the machining program.
  • FIG. 10 is a flow chart showing the third operation of the numerical controller 100 according to the present invention. Note that steps S31 to S36 in FIG. 10 are the same as steps S21 to S26 in FIG. 9, respectively, so description thereof will be omitted.
  • step S37 if the number of prefetched blocks falls below the specified value (for example, the first specified value) again (S37: YES), the process proceeds to step S38. If the number of prefetched blocks is equal to or greater than the specified value (S37: NO), the process proceeds to steps S31 and S32.
  • the specified value for example, the first specified value
  • step S38 the CPU load adjustment unit 121 adjusts the CPU load again.
  • FIG. 11 is a flow chart showing the third operation of the numerical controller 100 according to the present invention. Note that steps S41 to S48 in FIG. 11 are the same as steps S31 to S38 in FIG. 10, respectively, so description thereof will be omitted.
  • step S49 if the number of prefetched blocks is less than the specified value (for example, the second specified value) (S37: YES), the process proceeds to step S50. If the number of prefetched blocks is equal to or greater than the specified value (S37: NO), the process proceeds to steps S41 and S42.
  • the specified value for example, the second specified value
  • step S50 the program instruction time adjustment unit 122 adjusts the execution of the machining program (stops or suppresses the function of the program execution unit 111 to execute the machining program). Furthermore, in step S50, the program command time adjustment unit 122 may adjust execution of the machining program until the number of look-ahead blocks exceeds a specified value (for example, a second specified value).
  • a specified value for example, a second specified value
  • the numerical control system 10 is a numerical control system 10 that performs axis control while prefetching a machining program for each block.
  • a prefetch block number calculator 113 that calculates the number of prefetch blocks that is the difference between the number of the block being executed by the program execution unit and the number of the block that is prefetched by the program prefetch unit;
  • the program prefetch unit 112 performs at least one function other than the function of prefetching the machining program.
  • a CPU load adjustment unit 121 that stops or suppresses the function.
  • the CPU load adjustment unit 121 By limiting at least one function other than the function of prefetching the machining program by the CPU load adjustment unit 121, it is possible to distribute the load on the CPU where the number of prefetch blocks is low. In other words, the load of the CPU can be concentrated on the function of the program prefetching unit 112 prefetching the machining program. As a result, depletion of the number of read-ahead blocks can be reduced.
  • the program execution unit 111 executes the machining program when it is detected that the number of look-ahead blocks in the depleted blocks falls below the second specified value smaller than the first specified value. It further comprises a program command time adjustment unit 122 that stops or suppresses the function of
  • the program instruction time adjustment unit 122 stops or suppresses the function of the program execution unit 111 executing the machining program until it is detected that the number of look-ahead blocks exceeds the second specified value.
  • the numerical control system 10 further includes a display device 210 that displays changes over time in the number of look-ahead blocks.
  • the display device 210 allows the user to monitor the block analysis processing status in real time, and to optimally adjust the command speed or acceleration/deceleration according to the status.
  • the program execution unit 111 may stop the machining program when a depleted block is detected.
  • the depleted block detection unit 114 designates a block as a depleted block when the number of prefetched blocks is less than the specified value, but it is not limited to this.
  • the depleted block detection unit 114 may determine a block as a depleted block at the time when the rate of decrease in the number of prefetched blocks exceeds a specified value.
  • the order of steps in the first to fourth operations is not limited to the above example.
  • the CPU load adjustment unit 121 first adjusts the CPU load. (Steps S46 and S48), and then the program command time adjustment unit 122 adjusts the machining program (Step S50).
  • the program command time adjustment unit 122 first adjusts the machining program (step S50).
  • the CPU load adjusting unit 121 may adjust the CPU load (steps S46, S48), and the CPU load adjusting unit 121 adjusts the CPU load (steps S46, S48) and adjusts the program instruction time.
  • the adjustment of the machining program by the unit 122 (step S50) may be performed in parallel.
  • control method by the numerical controller 100 is realized by software.
  • a program that constitutes this software is installed in the computer (numerical controller 100).
  • These programs may be recorded on removable media and distributed to users, or may be distributed by being downloaded to users' computers via a network. Furthermore, these programs may be provided to the user's computer (numerical controller 100) as a web service via a network without being downloaded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Abstract

数値制御システムは、加工プログラムをブロック毎に先読みしながら軸制御する数値制御システムであって、前記加工プログラムを実行するプログラム実行部と、前記加工プログラムを先読みするプログラム先読み部と、前記プログラム実行部が実行しているブロックの番号と、前記プログラム先読み部によって先読みされるブロックの番号との差分である先読みブロック数を算出する先読みブロック数算出部と、前記先読みブロック数が第1規定値を下回る時点のブロックである枯渇ブロックを検知する枯渇ブロック検知部と、前記枯渇ブロック検知部で予測された前記枯渇ブロックでは、前記プログラム先読み部が加工プログラムを先読みする機能以外の少なくとも1つの機能を制限するCPU負荷調整部と、を備える。

Description

数値制御システム
 本発明は、数値制御システムに関する。
 昨今の製造業では、IT部品等の小型化・精密化が進み、高速・高精度加工に対する関心が高まっている。高速・高精度加工におけるワークの加工プログラムは、更なる高品位での加工を実現するため、より小さなオーダーでの許容誤差(トレランス)で作成されることが増加している傾向にある。
 従来は、PC処理能力の観点から現実的ではなかった小さいトレランスの加工プログラムは、近年ではPC性能とCAM(Computer Aided Manufacturing)性能の向上から、十分に作成可能となってきており、その傾向は今後も強くなると考えられている。
 また、トレランス以外にも高品位加工における重要な要素として微小直線を均一化することが挙げられており、各軸の加減速を一定化することで振動を低減することにより、加工面の品位を向上させるため、均一な微小直線を適用した高品位加工プログラムは増加傾向にある。これらのことから、近年では、加工プログラムにおいてブロック数が増加している。
 従来技術では、数値制御システムによってプログラムを先読みし、先読みブロック数だけ事前に貯蓄したプログラムから、FIFO(先入れ先出し)によって、次に動作するブロックのプログラムを読み出して処理することにより、加減速動作を決定して、軸制御を行っている。
 しかしながら、これらの高品位加工プログラムにおいて、以下のような課題があった。すなわち、微小直線長さが短く、指令速度が高速なため、プログラムの実行に要する処理時間が、先読みの処理に要する時間よりも短い場合、加減速動作の決定に使用する先読みブロック数を確保できない結果、プログラムの挙動を考慮した加減速が定まらず、速度変化が一定ではなくなり、高品位な加工面が得られないことがあった。
 これに対し、特許文献1に係る発明は、数値制御システムにおいて、NCデータを解析した解析データを加減速補間手段に使用されるまで、FIFOで保持するバッファ内のデータ数の過不足を監視する技術であって、とりわけ、バッファ内に存在することが予測されるデータ数が下限となる閾値を下回る場合に、データ不足と判断する技術を開示している。特許文献1に記載の技術により、バッファ内のデータ数が不足と判断されると、NCデータ解析手段のNCデータ解析処理タスクの優先順位を上げることができる。
特許第3723015号公報
 特許文献1に係る技術は、データ不足と判断した場合に、単にNCデータ解析処理タスクの優先順位を上げるのみであり、いくら優先順位を上げたところで、増加傾向にあるブロック数を処理するのには限界がある。そのため、プログラム数の増大に伴うCPU負荷に耐えられるように、NCデータ解析処理タスクの処理能力を向上させる必要があり、ハードのコスト増大が懸念される。さらにプログラムの微細化や、指令速度の向上に伴い同様の問題が発生する。
 また、プログラムによっては、著しく先読みブロック数が減少するブロックがあり、速度制御不良が発生する。これに対し、特許文献1に係る技術は、データ不足と判断した場合に、単にNCデータ解析処理タスクの優先順位を上げるのみであり、NCデータ内のどのデータ、あるいはどの位置で、データ不足となるかを判断するものではなく、延いては、データ不足となる箇所における速度制御異常に対応するものではない。
 従って、先読みブロック数が低下している箇所のCPUの負荷を分散可能な数値制御装置が必要となる。
 本開示の数値制御システムは、加工プログラムをブロック毎に先読みしながら軸制御する数値制御システムであって、前記加工プログラムを実行するプログラム実行部と、前記加工プログラムを先読みするプログラム先読み部と、前記プログラム実行部が実行しているブロックの番号と、前記プログラム先読み部によって先読みされるブロックの番号との差分である先読みブロック数を算出する先読みブロック数算出部と、前記先読みブロック数が第1規定値を下回る時点のブロックである枯渇ブロックを検知する枯渇ブロック検知部と、前記枯渇ブロック検知部で予測された前記枯渇ブロックでは、前記プログラム実行部が加工プログラムを実行する機能及び前記プログラム先読み部が加工プログラムを先読みする機能以外の少なくとも1つの機能を停止又は抑制するCPU負荷調整部と、を備える。
 本開示の一態様によれば、先読みブロック数が低下している箇所のCPUの負荷を分散可能な数値制御システムが提供される。
本発明の実施形態に係る数値制御装置を含む数値制御システムの構成を示す図である。 本発明の実施形態に係る数値制御装置の構成を示す図である。 本発明の実施形態に係る数値制御装置の機能ブロックを示す図である。 先読みブロック数の経時変化を示すグラフである。 指令速度更新部が指令速度を更新しなかった場合の先読みブロック数の経時変化を示すグラフである。 指令速度更新部が指令速度を更新した場合の先読みブロック数の経時変化を示すグラフである。 プログラム指令時間調整部が加工プログラムを実行する機能を停止しなかった場合と、停止した場合の合成速度の経時変化を示す図である。 プログラム指令時間調整部が加工プログラムを実行する機能を停止しなかった場合と、停止した場合のエラー量の経時変化を示す図である。 本発明の実施形態に係る数値制御システムの第1の動作を示すフローチャートである。 本発明の実施形態に係る数値制御システムの第2の動作を示すフローチャートである。 本発明の実施形態に係る数値制御システムの第3の動作を示すフローチャートである。 本発明の実施形態に係る数値制御システムの第4の動作を示すフローチャートである。
〔1.発明の構成〕
 以下、本発明の構成について図1~図7を参照して説明する。
 図1は、本発明の実施形態に係る数値制御装置を含む数値制御システムの構成を示す図である。図1に示すように、数値制御システム10は、数値制御装置100と、工作機械200と、先読みブロック数表示部としての表示装置210とを備える。
 数値制御装置100は、工作機械200に対して動作指令を出力し、工作機械200を数値制御する装置である。数値制御装置100の構成及び機能の詳細については後述する。
 工作機械200は、切削加工等の所定の機械加工を行う装置である。工作機械200は、ワークを加工するために駆動するモータや、このモータに取り付けられた主軸や送り軸や、これら各軸に対応する治具や工具等を備える。そして、工作機械200は、数値制御装置100から出力される動作指令に基づいてモータを駆動させることにより、所定の機械加工を行う。ここで、所定の機械加工の内容に特に限定はなく、切削加工以外にも、例えば研削加工、研磨加工、圧延加工、あるいは鍛造加工といった他の加工であってもよい。
 表示装置210は、先読みブロック数の経時変化を表示する装置である。本実施形態において、表示装置210は、数値制御装置100及び工作機械200と電気的に接続される。表示装置210はディスプレイを備え、ディスプレイには、例えば後述する図4に示すような先読みブロック数の経時変化が表示される。表示装置210のディスプレイには、現在の時間と先読みブロック数、ブロック処理時間を表示させることができ、任意時間の先読みブロック数と該当プログラムを後で参照することもできる。また、表示装置210のディスプレイには、表示装置210の専用画面から速度変更等の数値制御装置100及び工作機械200の操作を行うこともでき、自動的に推奨閾値の中央値で加工速度Fを更新することもできる。表示装置210は、先読みが枯渇しない加工速度の閾値をディスプレイに表示させることができ、ディスプレイ上で加工速度の上限値や下限値を設定することもできる。表示装置210は、枯渇ブロックが検知された場合にアラームやメッセージをディスプレイに表示させることもできる。ユーザから見れば、ディスプレイで現在のブロック処理能力(BPT:block processing time)を確認することができ、アラームやメッセージによって、枯渇ブロックを検知することが可能となる。なお、先読みブロック数や枯渇ブロック等の説明は後述する。
 図2は、本発明の実施形態に係る数値制御装置100の構成を示す図である。図2に示すように、数値制御装置100は、主として、CPU11と、ROM12と、RAM13と、CMOS14と、インタフェース15、18、19と、PMC(プログラマブル・マシン・コントローラ)16と、I/Oユニット17と、軸制御回路30~34と、サーボアンプ40~44と、スピンドル制御回路60と、スピンドルアンプ61とを備える。
 CPU11は数値制御装置100を全体的に制御するプロセッサである。CPU11は、ROM12に格納されたシステムプログラムを、バス25を介して読み出し、該システムプログラムに従って数値制御装置100の全体を制御する。
 RAM13には、一時的な計算データや表示データ、及び表示器/MDIユニット70を介してオペレータが入力した各種データが格納される。
 CMOSメモリ14は、図示しないバッテリでバックアップされ、数値制御装置100の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。CMOSメモリ14中には、インタフェース15を介して読み込まれた加工プログラムや、表示器/MDIユニット70を介して入力された加工プログラム等が記憶される。
 ROM12には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムが、予め書き込まれている。
 本発明を実行する加工プログラム等の各種加工プログラムは、インタフェース15や表示器/MDIユニット70を介して入力し、CMOSメモリ14に格納することができる。
 インタフェース15は、数値制御装置100とアダプタ等の外部機器72との接続を可能とするものである。外部機器72側からは、加工プログラムや各種パラメータ等が読み込まれる。また、数値制御装置100内で編集した加工プログラムは、外部機器72を介して外部記憶手段に記憶させることができる。
 PMC(プログラマブル・マシン・コントローラ)16は、数値制御装置100に内蔵されたシーケンスプログラムで、工作機械の補助装置(例えば、工具交換用のロボットハンドといったアクチュエータ)にI/Oユニット17を介して信号を出力して制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、信号をCPU11に渡す。
 表示器/MDIユニット70は、ディスプレイやキーボード等を備えた手動データ入力装置である。インタフェース18は、表示器/MDIユニット70のキーボードからの指令やデータを受けて、これらをCPU11に渡す。インタフェース19は、手動パルス発生器等を備えた操作盤71に接続されている。
 各軸の軸制御回路30~34は、CPU11からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ40~44に出力する。
 サーボアンプ40~44は、この指令を受けて、各軸のサーボモータ50~54を駆動する。各軸のサーボモータ50~54は、位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路30~34にフィードバックし、位置・速度のフィードバック制御を行う。なお、ブロック図では、位置・速度のフィードバックについては省略している。
 スピンドル制御回路60は、工作機械への主軸回転指令を受け、スピンドルアンプ61にスピンドル速度信号を出力する。スピンドルアンプ61は、このスピンドル速度信号を受けて、工作機械のスピンドルモータ62を指令された回転速度で回転させ、工具を駆動する。
 スピンドルモータ62には、歯車あるいはベルト等でパルスエンコーダ63が結合されている。パルスエンコーダ63は、主軸の回転に同期して帰還パルスを出力する。その帰還パルスは、バス25を経由してCPU11によって読み取られる。
 なお、図2に示す数値制御装置100の構成例では、軸制御回路30~34の5つの軸制御回路と、サーボモータ50~54の5つのサーボモータが示されている。しかし、本発明は、これには限定されず、任意の個数の軸制御回路及びサーボモータを備えることが可能である。
 図3は、本発明の実施形態に係る数値制御装置100の機能ブロックを示す図である。具体的には、図3は、CPU11がROM12に格納されたシステムプログラム及びアプリケーションプログラムを、バス25を介して読み出し、該システムプログラム及びアプリケーションプログラムに従って実現する機能を示す。CPU11は、プログラム実行部111と、プログラム先読み部112と、先読みブロック数算出部113と、枯渇ブロック検知部114と、枯渇ブロック報知部115と、推奨値算出部116と、推奨値報知部117と、指令速度更新部118と、CPU負荷調整部121と、プログラム指令時間調整部122とを備える。
 プログラム実行部111は、加工プログラムを実行する。本実施形態において、プログラム実行部111は、所定の送り速度、送りの加減速時間、主軸回転数、主軸の加減速時間で加工プログラムを実行している。
 プログラム実行部111は、加工プログラムのシミュレーションを実行することもできる。なお、このシミュレーションの際には、単に加工プログラムを空運転するだけではなく、例えば工作機械200にワークを設置した上で、実際に工作機械200を動作させることが好ましい。工作機械200の動作環境や軸構成によって、後述の先読みブロック数の経時変化の態様が異なってくるためである。
 プログラム先読み部112は、加工プログラムを先読みする。本実施形態においては、加工プログラムを実行する機能が停止又は抑制されていても、プログラム先読み部112は、加工プログラムを先読みすることができる。また、加工プログラムが実行される前であっても、プログラム先読み部112は、加工プログラムを先読みすることができる。当然に、プログラム実行部111による加工プログラムの実行又はシミュレーションと並列に、当該実行又はシミュレーションに先んじて加工プログラムを先読みすることもできる。
 先読みブロック数算出部113は、プログラム実行部111によって実行中のブロックのシーケンス番号と、プログラム先読み部112によって先読みされるブロックのシーケンス番号との差分である先読みブロック数を算出する。
 図4は、先読みブロック数の経時変化を示すグラフである。言い換えれば、図4は、表示装置210のディスプレイに表示される先読みブロック数の経時変化の一例を示す。先読みブロック数は、プログラム先読み部によって先読みされるブロックの位置や、プログラム実行部111によって実行されるブロックの位置が、加工プログラムの終わりでは0となる。しかし、通常、先読みブロック数は、0に向かって一様に減少していくわけではなく、加工経路の曲率の変化や軸構成によってブロック毎の処理時間が変化することで、先読みブロック数の減少率は変化する。
 具体的には、プログラム実行部110が加工プログラムを実行することで先読みブロック数は消費される。一方で、プログラム先読み部112が加工プログラムを先読みすることで先読みブロック数は蓄積される。ここで、先読みブロック数の消費しやすさ(プログラム実行部110が加工プログラムを実行する速さ)と、先読みブロック数の蓄積しやすさ(プログラム先読み部112が先読みを実行する速さ)とは、ブロックごとに一様ではない。その結果、加工プログラムの開始から終了までの期間において、先読みブロック数は変化率を変えながら増減する。なお、先読みブロック数は、加工プログラムの開始時にはプラスの状態であるが、加工プログラムの終了時には0となる。
 図4に示す例では、プログラムを開始して時間T1が経過した時点では700程度あった先読みブロック数が、時間T2の時点では500程度に減少し、その後さらに減少することが示されている。後述する第1規定値を500に設定した場合、T2の時点で加工プログラムが実行しているブロックが枯渇ブロックとなる。このような先読みブロック数の経時変化は、例えば、表示装置210のディスプレイに表示される。
 枯渇ブロック検知部114は、先読みブロック数を検知する。例えば、先読みブロック数を第1規定値と比較し、先読みブロック数が第1規定値を下回る時点でのブロックを検知する。なお、本明細書において、先読みブロック数を「検知すること」には、現時点での先読みブロック数を「検知すること」だけでなく、先読みブロック数の経時変化を「予測すること」が含まれる。
 枯渇ブロック報知部115は、加工プログラム内での枯渇ブロックの位置を、数値制御装置100の外部に報知する。枯渇ブロック報知部115は、例えば、図2に記載の表示器/MDIユニット70によって、枯渇ブロックの位置を表示してもよい。
 推奨値算出部116は、枯渇ブロック報知部115によって枯渇ブロックが検知された場合に、工作機械200による加工経路を構成する微小直線の長さと、プログラム先読み部112による先読み時間と、プログラム実行部111によるブロック毎の実行時間とから、推奨値としての指令速度を算出する。より詳細には、推奨値としての指令速度は、以下の数式1によって算出される。
 推奨値としての指令速度(mm/min)=60×微小直線の長さ(mm)/(先読み時間+ブロック毎の実行時間(msec)) (1)
 枯渇ブロック報知部115によって枯渇ブロックが検知された場合、すなわち先読みブロック数が第1規定値を下回った場合には、加工プログラム内で設定される指令速度をこの推奨値とすることにより、加工速度が遅くなり、一定量以上の先読みブロック数が確保されることで、加工速度を安定化することが可能となる。
 推奨値報知部117は、推奨値算出部116によって算出された推奨値としての指令速度を、数値制御装置100の外部に報知する。例えば、表示装置210に推奨値算出部116によって算出された推奨値としての指令速度が報知される。また、推奨値報知部117は、例えば、図2に記載の表示器/MDIユニット70によって、推奨値を表示してもよい。これにより、数値制御装置100のユーザは、推奨値としての指令速度を認識すること、延いては、この指令速度を加工プログラム内に設定することが可能となる。
 指令速度更新部118は、推奨値算出部116によって算出された推奨値としての指令速度を用いて、加工プログラム内の枯渇ブロック以降で設定される指令速度を更新する。典型的には、指令速度が低速になるように更新する。指令速度更新部118によって、指令速度が低速になるように更新されると、プログラム実行部111は更新された指令速度で加工プログラムを実行する。
 図5Aは、指令速度更新部118が枯渇ブロック以降で設定される指令速度を更新しなかった場合の先読みブロック数の経時変化を示す。図5Bは、指令速度更新部118が枯渇ブロック以降で設定される指令速度を更新した場合の先読みブロック数の経時変化を示す。
 図5Aに示すように、指令速度を更新しなかった場合、例えば、指令速度をF6000とした場合には、先読みブロック数は1000ブロックから一方的に減少し、プログラムの終了前に枯渇する。
 一方、図5Bに示すように、当初は指令速度がF6000であったものの、先読みブロック数が500ブロックを下回った時点で、指令速度をF3000に更新した場合には、指令速度の更新以降、プログラムの終了まで安定的に先読みブロック数を確保することができる。
 CPU負荷調整部121は、枯渇ブロック検知部114で検知された枯渇ブロックでは、プログラム先読み部112が加工プログラムを先読みする機能以外の少なくとも1つの機能を停止又は抑制する。これにより、加工プログラムを先読みする機能以外の機能によるCPU負荷を軽減することができる。なお、本実施形態において、CPU負荷調整部121が停止又は抑制する少なくとも1つの機能は、プログラム実行部111が加工プログラムを実行する機能を含まないものとする。また、CPU負荷調整部121が停止又は抑制する機能は、一時的に停止しても加工時間や精度、安全性等に影響を与えない機能であることが好ましい。
 具体的には、CPU負荷調整部121は、以下のように各機能を停止又は抑制することが好ましい。
(1)CPU負荷調整部121は、例えば表示装置210の画面更新などのモニター系処理に対するITP周期を停止又は延長(通常4msecの分配周期を8msecに延長)する。モニター系処理を間引くことでCPU負荷を軽減することができる。
(2)CPU負荷調整部121は、PMCおよびDCS(dual check safety)PMCにより2系統以上でチェックしているものを停止または抑制する。重複するチェックを間引くことでCPU負荷を軽減することができる。
(3)CPU負荷調整部121は、モータがついていない軸(ダミー軸)に対する機能を停止又は抑制する。ダミー軸に対するCPU負荷を軽減することができる。なお、5軸や8軸の仕様の場合には、ダミー軸に対するCPU負荷が高くなるため、有効である。
 プログラム指令時間調整部122は、枯渇ブロックにおける先読みブロック数が第1規定値よりも小さい第2規定値を下回ることが検知(予測)される場合に、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。本実施形態においては、枯渇ブロック検知部114が、枯渇ブロックにおける先読みブロック数が第1規定値よりも小さい第2規定値を下回ることを検知すると、プログラム指令時間調整部122は、加工プログラムを実行する機能を停止又は抑制する。これにより、送り速度、送りの加減速時間、主軸回転数、主軸の加減速時間などが、プログラムの進行が抑制(停止)されるように調整される。具体的には、先読みブロック数が蓄積されるように、加工プログラムの進行を一時的に停止すること(ドウェルの適用)や、加工条件または加減速の調整、送り速度の調整(周速一定制御の適応)等が行われる。
 本実施形態においては、CPU負荷調整部121は、第1規定値を下回る時点のブロックである枯渇ブロックにおいて、プログラム先読み部112が加工プログラムを先読みする機能以外の少なくとも1つの機能を停止又は抑制する。それだけでは先読みブロック数が増加せずに、第1規定値よりも小さい第2規定値を下回ることが検知される場合、プログラム指令時間調整部122は、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。このように、段階的にプログラム先読み部112が加工プログラムを先読みする機能以外の機能が停止又は抑制されて、CPUの負荷が調整される。
 更に、プログラム指令時間調整部122は、先読みブロック数が第2規定値を上回ることが検知(予測)されるまで、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。そして、先読みブロック数が一定数(例えば、第2規定値を上回る数)以上蓄積された場合には、停止又は抑制されていた機能を停止又は抑制する以前と同等またはそれ以上のCPU負荷としてもよい。具体的には、加工プログラムの進行を停止していた場合には、停止する以前よりも加速して加工プログラムを進行してもよい。加速後、送り速度の調整(周速一定制御の適応)等が行われてもよい。加速後の速度の上限が設けられてもよい。
 図6は、プログラム指令時間調整部122が加工プログラムを実行する機能を停止しなかった場合と、停止した場合の合成速度の経時変化を示す図である。図7は、プログラム指令時間調整部122が加工プログラムを実行する機能を停止しなかった場合と、停止した場合のエラー量の経時変化を示す図である。なお、本明細書において「エラー量」とは、各軸のモータを回転駆動させるための指令値が示す位置とそのモータが回転駆動した際の実位置との差分である。
 図6の上段に示すように、ある加工プログラム(図6、7におけるプログラムA)を実行した後で、すぐに次の加工プログラム(図6、7におけるプログラムB)を実行した場合、加工プログラムの開始時の合成速度(例えば、F8000)を維持できず、加工プログラムの終了時までに合成速度が不安定となる。その結果、図7の上段に示すように、エラー量が規定値(例えば、0.03mm)を上回る。
 一方、図6の下段に示すように、ある加工プログラムを実行した後、次の加工プログラムを実行するまでに加工プログラムを停止した場合、加工プログラムの開始時の合成速度(例えば、F8000)を加工プログラムの終了時まで維持することができる。その結果、図7の上段に示すように、エラー量が規定値(例えば、0.03mm)を下回る。
〔2.発明の動作〕
 以下、図8~図11を参照することにより、本発明に係る数値制御装置100の動作を説明する。
〔2.1 第1の動作〕
 図8は、本発明に係る数値制御装置100の第1の動作を示すフローチャートである。ステップS11において、プログラム実行部111は、加工プログラムを実行する。
 ステップS12において、プログラム先読み部112は、加工プログラムの実行に先んじて加工プログラムを先読みする。
 ステップS13において、先読みブロック数算出部113は、先読みブロック数を算出する。
 ステップS14において、先読みブロック数が規定値(例えば第1規定値)を下回った場合(S14:YES)には、処理はステップS15に移行する。先読みブロック数が規定値以上である場合(S14:NO)には、処理はステップS11及びS12に移行する。
 ステップS15において、枯渇ブロック検知部114は枯渇ブロックを検知する。
 ステップS16において、CPU負荷調整部121は、CPUの負荷を調整(プログラム先読み部112が加工プログラムを先読みする機能以外の少なくとも1つの機能を停止又は抑制)する。
〔2.2 第2の動作〕
 図9は、本発明に係る数値制御装置100の第2の動作を示すフローチャートである。なお、図9におけるステップS21~S26の各々は、図6におけるステップS11~S16と同一であるため、その説明を省略する。
 ステップS27において、枯渇ブロック報知部115は、加工プログラム内での枯渇ブロックの位置を、表示装置210(数値制御装置100の外部)に報知する。
〔2.3 第3の動作〕
 図10は、本発明に係る数値制御装置100の第3の動作を示すフローチャートである。なお、図10におけるステップS31~S36の各々は、図9におけるステップS21~S26と同一であるため、その説明を省略する。
 ステップS37において、先読みブロック数が再び規定値(例えば第1規定値)を下回った場合(S37:YES)には、処理はステップS38に移行する。先読みブロック数が規定値以上である場合(S37:NO)には、処理はステップS31及びS32に移行する。
 ステップS38において、CPU負荷調整部121は、再びCPUの負荷を調整する。
〔2.4 第4の動作〕
 図11は、本発明に係る数値制御装置100の第3の動作を示すフローチャートである。なお、図11におけるステップS41~S48の各々は、図10におけるステップS31~S38と同一であるため、その説明を省略する。
 ステップS49において、先読みブロック数が規定値(例えば第2規定値)を下回った場合(S37:YES)には、処理はステップS50に移行する。先読みブロック数が規定値以上である場合(S37:NO)には、処理はステップS41及びS42に移行する。
 ステップS50において、プログラム指令時間調整部122は、加工プログラムの実行を調整(プログラム実行部111が加工プログラムを実行する機能を停止又は抑制)する。更に、ステップS50において、プログラム指令時間調整部122は、先読みブロック数が規定値(例えば第2規定値)を上回るまで、加工プログラムの実行を調整してもよい。
〔3.本実施形態の効果〕
 本実施形態に係る数値制御システム10は、加工プログラムをブロック毎に先読みしながら軸制御する数値制御システム10であって、加工プログラムを実行するプログラム実行部111と、加工プログラムを先読みするプログラム先読み部112と、プログラム実行部が実行しているブロックの番号と、プログラム先読み部によって先読みされるブロックの番号との差分である先読みブロック数を算出する先読みブロック数算出部113と、先読みブロック数が第1規定値を下回る時点のブロックである枯渇ブロックを検知する枯渇ブロック検知部114と、枯渇ブロック検知部で予測された枯渇ブロックでは、プログラム先読み部112が加工プログラムを先読みする機能以外の少なくとも1つの機能を停止又は抑制するCPU負荷調整部121と、を備える。
 CPU負荷調整部121が加工プログラムを先読みする機能以外の少なくとも1つの機能を制限することで、先読みブロック数が低下している箇所のCPUの負荷を分散させることができる。別の言い方をすれば、プログラム先読み部112が加工プログラムを先読みする機能にCPUの負荷を集中させることができる。これにより、先読みブロック数の枯渇を軽減できる。
 また、本実施形態に係る数値制御システム10は、枯渇ブロックにおける先読みブロック数が第1規定値よりも小さい第2規定値を下回ることが検知される場合に、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制するプログラム指令時間調整部122を更に備える。
 これにより、加工プログラムの進行が停止又は抑制されるので、先読みブロック数の消費を抑えることができる。従って、先読みブロック数の枯渇を軽減できる。
 また、本実施形態に係るプログラム指令時間調整部122は、先読みブロック数が第2規定値を上回ることが検知されるまで、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。
 先読みブロック数が第2規定値を上回ることが検知されるまで加工プログラムの進行が停止又は抑制されるので、先読みブロック数が第2規定値を下回って枯渇することを抑制することができる。
 また、本実施形態に係る数値制御システム10は、先読みブロック数の経時変化を表示する表示装置210を更に備える。
 これにより、先読みブロック数の経時変化を視認することが可能になる。例えば、枯渇ブロックが検知された場合に枯渇ブロックの位置を視認することができる。つまり、表示装置210により、ユーザは、ブロックの解析処理状況をリアルタイムでモニタリングすることができ、状況に応じて最適な指令速度または加減速を調整することができる。
〔4.変形例〕
 以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
 例えば、上記の実施形態では枯渇ブロックが検知された際、枯渇ブロックの位置を報知したり、推奨値としての指令速度を算出したりするが、これには限られない。例えば、枯渇ブロックが検知された際、プログラム実行部111は、加工プログラムを停止してもよい。
 また、上記の実施形態では、枯渇ブロック検知部114は、先読みブロック数が規定値を下回る時点のブロックを枯渇ブロックとしたが、これに限定されない。例えば、枯渇ブロック検知部114は、先読みブロック数の減少率が規定値を超えた時点でのブロックを枯渇ブロックとしてもよい。
 また、上記の実施形態では、第1の動作~第4の動作における各ステップの順序は上述した例に限定されない。例えば、第4の動作において、枯渇ブロック検知部114は、先読みブロック数が第1規定値を下回る時点のブロックである枯渇ブロックを検知した場合に、先にCPU負荷調整部121がCPU負荷を調整し(ステップS46、ステップS48)、その後でプログラム指令時間調整部122が加工プログラムを調整(ステップS50)する例を説明した。しかし、枯渇ブロック検知部114は、先読みブロック数が第2規定値を下回る時点のブロックである枯渇ブロックを検知した場合に、先にプログラム指令時間調整部122が加工プログラムを調整し(ステップS50)、その後でCPU負荷調整部121がCPU負荷を調整(ステップS46、ステップS48)してもよく、CPU負荷調整部121がCPU負荷を調整(ステップS46、ステップS48)することと、プログラム指令時間調整部122が加工プログラムを調整(ステップS50)することとを並行して行ってもよい。
 また、数値制御装置100による制御方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ(数値制御装置100)にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。更に、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータ(数値制御装置100)に提供されてもよい。
 10 数値制御システム
 100 数値制御装置
 111 プログラム実行部
 112 プログラム先読み部
 113 先読みブロック数算出部
 114 枯渇ブロック検知部
 115 枯渇ブロック報知部
 116 推奨値算出部
 117 推奨値報知部
 118 指令速度更新部
 121 CPU負荷調整部
 122 プログラム指令時間調整部
 200 工作機械
 210 表示装置(先読みブロック数表示部)

Claims (4)

  1.  加工プログラムをブロック毎に先読みしながら軸制御する数値制御システムであって、
     前記加工プログラムを実行するプログラム実行部と、
     前記加工プログラムを先読みするプログラム先読み部と、
     前記プログラム実行部が実行しているブロックの番号と、前記プログラム先読み部によって先読みされるブロックの番号との差分である先読みブロック数を算出する先読みブロック数算出部と、
     前記先読みブロック数が第1規定値を下回る時点のブロックである枯渇ブロックを検知する枯渇ブロック検知部と、
     前記枯渇ブロック検知部で予測された前記枯渇ブロックにおいて、前記プログラム先読み部が加工プログラムを先読みする機能以外の少なくとも1つの機能を停止又は抑制するCPU負荷調整部と、
     を備える数値制御システム。
  2.  前記枯渇ブロックにおける前記先読みブロック数が前記第1規定値よりも小さい第2規定値を下回ることが検知される場合に、前記プログラム実行部が加工プログラムを実行する機能を停止又は抑制するプログラム指令時間調整部を更に備える、請求項1に記載の数値制御システム。
  3.  前記プログラム指令時間調整部は、前記先読みブロック数が前記第2規定値を上回ることが検知されるまで、前記プログラム実行部が加工プログラムを実行する機能を停止又は抑制する、請求項2に記載の数値制御システム。
  4.  前記先読みブロック数の経時変化を表示する先読みブロック数表示部を更に備える、請求項1~3いずれかに記載の数値制御システム。
PCT/JP2021/028980 2021-08-04 2021-08-04 数値制御システム WO2023012939A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/028980 WO2023012939A1 (ja) 2021-08-04 2021-08-04 数値制御システム
TW111126089A TW202307600A (zh) 2021-08-04 2022-07-12 數值控制系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/028980 WO2023012939A1 (ja) 2021-08-04 2021-08-04 数値制御システム

Publications (1)

Publication Number Publication Date
WO2023012939A1 true WO2023012939A1 (ja) 2023-02-09

Family

ID=85154449

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/028980 WO2023012939A1 (ja) 2021-08-04 2021-08-04 数値制御システム

Country Status (2)

Country Link
TW (1) TW202307600A (ja)
WO (1) WO2023012939A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034320A (ja) * 1999-07-26 2001-02-09 Mitsubishi Electric Corp 数値制御装置
JP2007058541A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd プロセッサ、処理方法及び処理プログラム
JP2018185734A (ja) * 2017-04-27 2018-11-22 ファナック株式会社 数値制御装置
JP2020071695A (ja) * 2018-10-31 2020-05-07 ファナック株式会社 数値制御装置
JP2020071726A (ja) * 2018-10-31 2020-05-07 ファナック株式会社 数値制御装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034320A (ja) * 1999-07-26 2001-02-09 Mitsubishi Electric Corp 数値制御装置
JP2007058541A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd プロセッサ、処理方法及び処理プログラム
JP2018185734A (ja) * 2017-04-27 2018-11-22 ファナック株式会社 数値制御装置
JP2020071695A (ja) * 2018-10-31 2020-05-07 ファナック株式会社 数値制御装置
JP2020071726A (ja) * 2018-10-31 2020-05-07 ファナック株式会社 数値制御装置

Also Published As

Publication number Publication date
TW202307600A (zh) 2023-02-16

Similar Documents

Publication Publication Date Title
CN101303585B (zh) 控制装置
CN111123840B (zh) 数值控制装置
WO1995004633A1 (fr) Procede d'evaluation de la durabilite d'un outil
CN111123845B (zh) 数值控制装置
JPH11296213A (ja) 機械装置
JP5331068B2 (ja) 数値制御装置
CN111123841B (zh) 数值控制装置
US11126163B2 (en) Numerical controller
CN111123839B (zh) 数值控制装置
JP6885914B2 (ja) 数値制御装置
WO2023012939A1 (ja) 数値制御システム
JP6838031B2 (ja) 数値制御システム
WO2023032164A1 (ja) 数値制御システム
US11156986B2 (en) Machining program editing device
WO2022097607A1 (ja) 制御装置
WO2022244072A1 (ja) 数値制御装置及びコンピュータ読み取り可能な記憶媒体
JP3339807B2 (ja) 工作機械の熱変位量算出装置及び記憶媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21952766

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE