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

数値制御システム Download PDF

Info

Publication number
WO2023032164A1
WO2023032164A1 PCT/JP2021/032478 JP2021032478W WO2023032164A1 WO 2023032164 A1 WO2023032164 A1 WO 2023032164A1 JP 2021032478 W JP2021032478 W JP 2021032478W WO 2023032164 A1 WO2023032164 A1 WO 2023032164A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
block
unit
blocks
machining program
Prior art date
Application number
PCT/JP2021/032478
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/032478 priority Critical patent/WO2023032164A1/ja
Publication of WO2023032164A1 publication Critical patent/WO2023032164A1/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.
  • Patent Document 1 simply raises the priority of the NC data analysis processing task when it is determined that data is insufficient. (whether the number of read-ahead blocks is exhausted).
  • 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 below the depleted block, a program command time adjustment unit that stops or suppresses the function of the program execution unit to execute the machining program when the depleted block is detected, Prepare.
  • a numerical control system capable of suppressing depletion of the number of look-ahead blocks.
  • 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. It is a flow chart which shows operation of a numerical control system concerning an 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 111 executes the processing 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 111 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 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 specified value, and blocks are detected when the number of prefetched blocks is less than the 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 slowing down the machining speed. Securing the number of look-ahead blocks equal to or greater than a certain amount makes it possible to stabilize the machining speed.
  • 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 program instruction time adjustment unit 122 stops or suppresses the function of the program execution unit 111 to execute the machining program when it is detected (predicted) that the number of prefetch blocks in the depleted blocks is less than the specified value.
  • the program command time adjustment unit 122 stops or suppresses the function of executing the machining program.
  • 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).
  • 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 peripheral speed control adaptation), etc. are performed.
  • "suppressing" the function of executing the machining program means not only simply decelerating to an arbitrary command speed, but also increasing or decreasing the number of look-ahead blocks at a rate of change that falls within an arbitrary tolerance. It refers to controlling the feed rate within the threshold range. In other words, the execution of the machining program may be suppressed so that the number of look-ahead blocks is stored by a certain number, and the execution of the machining program may be accelerated within the range of the threshold depending on the change rate of the number of look-ahead blocks.
  • the program command time adjusting unit 122 when the program command time adjusting unit 122 "stops or suppresses" the function of executing the machining program, the movement of various components (motors, axes, etc.) of the machine tool 200 does not necessarily “stop or suppress”. It does not have to be “suppressed”. For example, in a machining program whose progress is stopped or suppressed, if the movement distance of each axis is long, it may be necessary to move each axis by a long distance before restarting the machining program. Conversely, if the movement distance of each axis is short in a machining program whose progress is stopped or suppressed, the speed of each axis can be adjusted so that the machining program can be restarted with each axis reaching the command speed.
  • the program instruction time adjustment unit 122 may stop or suppress the function of the program execution unit 111 to execute the machining program until a predetermined time (arbitrary number of seconds) elapses. For example, until the number of prefetch blocks is sufficiently accumulated (until it is detected that the number of prefetch blocks exceeds a specified value), the program execution unit 111 may stop or suppress the function of executing the machining program. On the other hand, when the number of look-ahead blocks exceeds the prescribed value, execution of the machining program by the program execution unit 111 may be resumed.
  • the CPU load may be equal to or greater than before stopping or suppressing the stopped or suppressed function.
  • the machining program may be advanced (restarted) at a higher speed than before the stop.
  • 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.
  • the program execution unit 111 may stop or suppress the function of executing the machining program step by step.
  • first specified value the number of blocks to be depleted blocks
  • second specified value one block number serving as a threshold
  • the program command time adjustment unit 122 executes the program step by step when the number of look-ahead blocks decreases below two thresholds. The function of the unit 111 to execute the machining program may be stopped or suppressed.
  • the program command time adjustment unit 122 reduces the command speed as a first step (suppresses the function of executing the machining program), and further reduces the number of look-ahead blocks. is lower than the second specified value, the command speed may be reduced to the first step or higher (the function of executing the machining program is suppressed) or stopped (the function of executing the machining program is stopped) as the second step.
  • 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).
  • 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. As a result, 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 adjusting unit 122 stops or stops the function of the program executing unit 111 executing the machining program when it is detected (predicted) that the number of look-ahead blocks in the depleted blocks falls below a specified value. Suppress.
  • the CPU load adjustment unit 121 determines whether the number of prefetched blocks exceeds the specified value.
  • the program prefetching unit 112 stops or suppresses at least one function other than the function of prefetching the machining program (to reduce the CPU load). If the CPU load is reduced, the ease of accumulating the number of look-ahead blocks can be improved, so exhaustion of machining programs can be suppressed.
  • FIG. 8 is a flow chart showing the operation of the numerical controller 100 according to the present invention.
  • the program execution unit 111 executes a machining program.
  • step S2 the program prefetching unit 112 prefetches the machining program prior to execution of the machining program.
  • step S3 the prefetch block number calculation unit 113 calculates the prefetch block number.
  • step S4 if the number of prefetched blocks is less than the specified value (S4: YES), the process proceeds to step S5. If the number of prefetched blocks is equal to or greater than the specified value (S4: NO), the process proceeds to steps S1 and S2.
  • step S5 the depleted block detection unit 114 detects depleted blocks.
  • step S6 the program instruction time adjustment unit 122 stops or suppresses the function of the program execution unit 111 to execute the machining program, for example, to stop various operations (axis operation and control).
  • each main operation (axis operation and axis control) is stopped and a predetermined number of look-ahead blocks is accumulated.
  • step S8 the program execution unit 111 resumes execution of the machining program. Further, in step 8, the program execution unit 111 may resume execution of the machining program after it is detected (predicted) that the number of pre-read blocks exceeds the specified value, and the CPU load is reduced by the CPU load adjustment unit 121. In this state, the program execution unit 111 may resume execution of the machining program.
  • 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, and the number of prefetch blocks is defined.
  • a depleted block detection unit 114 that detects a depleted block that is a block at the point when the value falls below the value, and a program command time adjustment unit that stops or suppresses the function of the program execution unit 111 to execute the machining program when the depleted block is detected. 122;
  • the program instruction time adjustment unit 122 stops or suppresses the function of the program execution unit 111 executing the machining program until a predetermined time has passed.
  • the number of prefetched blocks can be accumulated until a predetermined time elapses, and the depletion of the number of prefetched blocks can be suppressed.
  • 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 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 present invention is not limited to this.
  • the execution of the machining program by the program execution unit 111 may be resumed on a basis different from the prescribed value of the number of prefetch blocks, and the CPU load is reduced by the CPU load adjustment unit 121 on a basis different from the prescribed value of the number of prefetch blocks.
  • 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

数値制御システムは、加工プログラムをブロック毎に先読みしながら軸制御する数値制御システムであって、前記加工プログラムを実行するプログラム実行部と、前記加工プログラムを先読みするプログラム先読み部と、前記プログラム実行部が実行しているブロックの番号と、前記プログラム先読み部によって先読みされるブロックの番号との差分である先読みブロック数を算出する先読みブロック数算出部と、前記先読みブロック数が規定値を下回る時点のブロックである枯渇ブロックを検知する枯渇ブロック検知部と、前記枯渇ブロックが検知された場合に、前記プログラム実行部が加工プログラムを実行する機能を停止又は抑制するプログラム指令時間調整部と、を備える。

Description

数値制御システム
 本発明は、数値制御システムに関する。
 昨今の製造業では、IT部品等の小型化・精密化が進み、高速・高精度加工に対する関心が高まっている。高速・高精度加工におけるワークの加工プログラムは、更なる高品位での加工を実現するため、より小さなオーダーでの許容誤差(トレランス)で作成されることが増加している傾向にある。
 従来は、PC処理能力の観点から現実的ではなかった小さいトレランスの加工プログラムは、近年ではPC性能とCAM(Computer Aided Manufacturing)性能の向上から、十分に作成可能となってきており、その傾向は今後も強くなると考えられている。
 また、トレランス以外にも高品位加工における重要な要素として微小直線を均一化することが挙げられており、各軸の加減速を一定化することで振動を低減することにより、加工面の品位を向上させるため、均一な微小直線を適用した高品位加工プログラムは増加傾向にある。これらのことから、近年では、加工プログラムにおいてブロック数が増加している。
 従来技術では、数値制御システムによってプログラムを先読みし、先読みブロック数だけ事前に貯蓄したプログラムから、FIFO(先入れ先出し)によって、次に動作するブロックのプログラムを読み出して処理することにより、加減速動作を決定して、軸制御を行っている。
 しかしながら、これらの高品位加工プログラムにおいて、以下のような課題があった。すなわち、微小直線長さが短く、指令速度が高速なため、プログラムの実行に要する処理時間が、先読みの処理に要する時間よりも短い場合、加減速動作の決定に使用する先読みブロック数を確保できない結果、プログラムの挙動を考慮した加減速が定まらず、速度変化が一定ではなくなり、高品位な加工面が得られないことがあった。
 これに対し、特許文献1に係る発明は、数値制御システムにおいて、NCデータを解析した解析データを加減速補間手段に使用されるまで、FIFOで保持するバッファ内のデータ数の過不足を監視する技術であって、とりわけ、バッファ内に存在することが予測されるデータ数が下限となる閾値を下回る場合に、データ不足と判断する技術を開示している。特許文献1に記載の技術により、バッファ内のデータ数が不足と判断されると、NCデータ解析手段のNCデータ解析処理タスクの優先順位を上げることができる。
特許第3723015号公報
 特許文献1に係る技術は、データ不足と判断した場合に、単にNCデータ解析処理タスクの優先順位を上げるのみであり、いくら優先順位を上げたところで、増加傾向にあるブロック数を処理するのには限界がある。
 また、プログラムによっては、著しく先読みブロック数が減少するブロックがあり、速度制御不良が発生する。これに対し、特許文献1に係る技術は、データ不足と判断した場合に、単にNCデータ解析処理タスクの優先順位を上げるのみであり、NCデータ内のどのデータ、あるいはどの位置で、データ不足となるか(先読みブロック数が枯渇するか)を判断するものではない。
 従って、先読みブロック数が枯渇することを抑制することが必要となる。
 本開示の数値制御システムは、加工プログラムをブロック毎に先読みしながら軸制御する数値制御システムであって、前記加工プログラムを実行するプログラム実行部と、前記加工プログラムを先読みするプログラム先読み部と、前記プログラム実行部が実行しているブロックの番号と、前記プログラム先読み部によって先読みされるブロックの番号との差分である先読みブロック数を算出する先読みブロック数算出部と、前記先読みブロック数が規定値を下回る時点のブロックである枯渇ブロックを検知する枯渇ブロック検知部と、前記枯渇ブロックが検知された場合に、前記プログラム実行部が加工プログラムを実行する機能を停止又は抑制するプログラム指令時間調整部と、を備える。
 本開示の一態様によれば、先読みブロック数が枯渇することを抑制できる数値制御システムが提供される。
本発明の実施形態に係る数値制御装置を含む数値制御システムの構成を示す図である。 本発明の実施形態に係る数値制御装置の構成を示す図である。 本発明の実施形態に係る数値制御装置の機能ブロックを示す図である。 先読みブロック数の経時変化を示すグラフである。 指令速度更新部が指令速度を更新しなかった場合の先読みブロック数の経時変化を示すグラフである。 指令速度更新部が指令速度を更新した場合の先読みブロック数の経時変化を示すグラフである。 プログラム指令時間調整部が加工プログラムを実行する機能を停止しなかった場合と、停止した場合の合成速度の経時変化を示す図である。 プログラム指令時間調整部が加工プログラムを実行する機能を停止しなかった場合と、停止した場合のエラー量の経時変化を示す図である。 本発明の実施形態に係る数値制御システムの動作を示すフローチャートである。
〔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に向かって一様に減少していくわけではなく、加工経路の曲率の変化や軸構成によってブロック毎の処理時間が変化することで、先読みブロック数の減少率は変化する。
 具体的には、プログラム実行部111が加工プログラムを実行することで先読みブロック数は消費される。一方で、プログラム先読み部112が加工プログラムを先読みすることで先読みブロック数は蓄積される。ここで、先読みブロック数の消費しやすさ(プログラム実行部111が加工プログラムを実行する速さ)と、先読みブロック数の蓄積しやすさ(プログラム先読み部112が先読みを実行する速さ)とは、ブロックごとに一様ではない。その結果、加工プログラムの開始から終了までの期間において、先読みブロック数は変化率を変えながら増減する。なお、先読みブロック数は、加工プログラムの開始時にはプラスの状態であるが、加工プログラムの終了時には0となる。
 図4に示す例では、プログラムを開始して時間T1が経過した時点では700程度あった先読みブロック数が、時間T2の時点では500程度に減少し、その後さらに減少することが示されている。後述する規定値を500に設定した場合、T2の時点で加工プログラムが実行しているブロックが枯渇ブロックとなる。このような先読みブロック数の経時変化は、例えば、表示装置210のディスプレイに表示される。
 枯渇ブロック検知部114は、先読みブロック数を検知する。例えば、先読みブロック数を規定値と比較し、先読みブロック数が規定値を下回る時点でのブロックを検知する。なお、本明細書において、先読みブロック数を「検知すること」には、現時点での先読みブロック数を「検知すること」だけでなく、先読みブロック数の経時変化を「予測すること」が含まれる。
 枯渇ブロック報知部115は、加工プログラム内での枯渇ブロックの位置を、数値制御装置100の外部に報知する。枯渇ブロック報知部115は、例えば、図2に記載の表示器/MDIユニット70によって、枯渇ブロックの位置を表示してもよい。
 推奨値算出部116は、枯渇ブロック報知部115によって枯渇ブロックが検知された場合に、工作機械200による加工経路を構成する微小直線の長さと、プログラム先読み部112による先読み時間と、プログラム実行部111によるブロック毎の実行時間とから、推奨値としての指令速度を算出する。より詳細には、推奨値としての指令速度は、以下の数式1によって算出される。
 推奨値としての指令速度(mm/min)=60×微小直線の長さ(mm)/(先読み時間+ブロック毎の実行時間(msec)) (1)
 枯渇ブロック報知部115によって枯渇ブロックが検知された場合、すなわち先読みブロック数が規定値を下回った場合には、加工プログラム内で設定される指令速度をこの推奨値とすることにより、加工速度が遅くなり、一定量以上の先読みブロック数が確保されることで、加工速度を安定化することが可能となる。
 推奨値報知部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に更新した場合には、指令速度の更新以降、プログラムの終了まで安定的に先読みブロック数を確保することができる。
 プログラム指令時間調整部122は、枯渇ブロックにおける先読みブロック数が規定値を下回ることが検知(予測)される場合に、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。本実施形態においては、枯渇ブロック検知部114が、枯渇ブロックにおける先読みブロック数が規定値を下回ることを検知すると、プログラム指令時間調整部122は、加工プログラムを実行する機能を停止又は抑制する。これにより、送り速度、送りの加減速時間、主軸回転数、主軸の加減速時間等が、プログラムの進行が抑制(停止)されるように調整される。具体的には、先読みブロック数が蓄積されるように、加工プログラムの進行を一時的に停止すること(ドウェルの適用)や、加工条件又は加減速の調整、送り速度の調整(周速一定制御の適応)等が行われる。
 なお、本明細書において、加工プログラムを実行する機能を「抑制する」とは単純に任意の指令速度に減速するだけでなく、先読みブロック数の増減が任意のトレランスに収まる変化率となるような閾値の範囲で送り速度を制御することをいう。つまり、先読みブロック数が一定数貯蓄されるように加工プログラムの実行が抑制されればよく、先読みブロック数の変化率によっては、閾値の範囲内で加工プログラムの実行を加速してもよい。
 また、本明細書において、プログラム指令時間調整部122が加工プログラムを実行する機能を「停止又は抑制」した場合において、必ずしも工作機械200の各種構成(モータ、各軸等)の動きが「停止又は抑制」されなくてもよい。例えば、進行が停止又は抑制された加工プログラムにおいて、各軸の移動距離が長い場合、加工プログラムの再開されるまでに各軸を長い距離だけ移動させることが必要な場合がある。反対に、進行が停止又は抑制された加工プログラムにおいて、各軸の移動距離が短い場合、各軸が指令速度に到達した状態で加工プログラムが再開されるように各軸の速度を調整することが必要な場合もある。また、何れの場合であっても、工作機械200の各種構成が動いていても加工プログラムを実行する機能は停止又は抑制されている。これらのような場合には、加工プログラムが円滑に再開されるように工作機械200の各種構成を任意の速度で制御してもよい。つまり、加工プログラムを実行する機能が「停止又は抑制」されていれば、工作機械200の各種構成が動いていてもよい。
 更に、プログラム指令時間調整部122は、所定の時間(任意の秒数)が経過するまで、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制してもよく、所定の時間が経過し、例えば、先読みブロック数が十分に蓄積されるまで(先読みブロック数が規定値を上回ることが検知されるまで)、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制してもよい。一方で、先読みブロック数が規定値を上回った場合には、プログラム実行部111による加工プログラムの実行が再開されてもよい。そして、先読みブロック数が一定数(例えば、規定値を上回る数)以上蓄積された場合には、停止又は抑制されていた機能を停止又は抑制する以前と同等又はそれ以上のCPU負荷としてもよい。具体的には、加工プログラムの進行を停止していた場合には、停止する以前よりも加速して加工プログラムを進行(再開)してもよい。加速後、送り速度の調整(周速一定制御の適応)等が行われてもよい。加速後の速度の上限が設けられてもよい。
 また、先読みブロック数には枯渇ブロックとなるブロック数以外にも閾値となるブロック数が1つ以上設定されており、プログラム指令時間調整部122は、当該閾値(枯渇ブロックとなるブロック数を含む)を超えた場合に段階的にプログラム実行部111が加工プログラムを実行する機能を停止又は抑制してもよい。具体的には、枯渇ブロックとなるブロック数(以下、「第1規定値」ともいう)以外にも閾値となるブロック数が1つ設けられており(以下、「第2規定値」ともいう。また、以下の例において、第2規定値は、第1規定値よりも小さい)、プログラム指令時間調整部122は、先読みブロック数が2つの閾値を下回って減少した場合に、段階的にプログラム実行部111が加工プログラムを実行する機能を停止又は抑制してもよい。より具体的には、プログラム指令時間調整部122は、先読みブロック数が第1規定値を下回る場合に第1段階として指令速度を減速(加工プログラムを実行する機能を抑制)し、更に先読みブロック数が第2規定値を下回る場合に第2段階として指令速度を第1段階以上に減速(加工プログラムを実行する機能を抑制)又は停止(加工プログラムを実行する機能を停止)してもよい。
 図6は、プログラム指令時間調整部122が加工プログラムを実行する機能を停止しなかった場合と、停止した場合の合成速度の経時変化を示す図である。図7は、プログラム指令時間調整部122が加工プログラムを実行する機能を停止しなかった場合と、停止した場合のエラー量の経時変化を示す図である。なお、本明細書において「エラー量」とは、各軸のモータを回転駆動させるための指令値が示す位置とそのモータが回転駆動した際の実位置との差分である。
 図6の上段に示すように、ある加工プログラム(図6、7におけるプログラムA)を実行した後で、すぐに次の加工プログラム(図6、7におけるプログラムB)を実行した場合、加工プログラムの開始時の合成速度(例えば、F8000)を維持できず、加工プログラムの終了時までに合成速度が不安定となる。その結果、図7の上段に示すように、エラー量が規定値(例えば、0.03mm)を上回る。
 一方、図6の下段に示すように、ある加工プログラムを実行した後、次の加工プログラムを実行するまでに加工プログラムを停止した場合、加工プログラムの開始時の合成速度(例えば、F8000)を加工プログラムの終了時まで維持することができる。その結果、図7の下段に示すように、エラー量が規定値(例えば、0.03mm)を下回る。
 CPU負荷調整部121は、プログラム先読み部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は、枯渇ブロックにおける先読みブロック数が規定値を下回ることが検知(予測)される場合に、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。それだけでは先読みブロック数が十分に蓄積されない場合(例えば、所定の時間が経過しても先読みブロック数が規定値を上回らない場合)に、CPU負荷調整部121は、先読みブロック数が規定値を上回るように、プログラム先読み部112が加工プログラムを先読みする機能以外の少なくとも1つの機能を停止又は抑制する(CPU負荷を軽減する)。CPU負荷を軽減すれば、先読みブロック数の蓄積しやすさが改善されるので、加工プログラムの枯渇を抑制することができる。
〔2.発明の動作〕
 以下、図8を参照することにより、本発明に係る数値制御装置100の動作を説明する。
 図8は、本発明に係る数値制御装置100の動作を示すフローチャートである。ステップS1において、プログラム実行部111は、加工プログラムを実行する。
 ステップS2において、プログラム先読み部112は、加工プログラムの実行に先んじて加工プログラムを先読みする。
 ステップS3において、先読みブロック数算出部113は、先読みブロック数を算出する。
 ステップS4において、先読みブロック数が規定値を下回った場合(S4:YES)には、処理はステップS5に移行する。先読みブロック数が規定値以上である場合(S4:NO)には、処理はステップS1及びS2に移行する。
 ステップS5において、枯渇ブロック検知部114は枯渇ブロックを検知する。
 ステップS6において、プログラム指令時間調整部122は、例えば、各種の動作(軸動作及び制御)を停止するようにプログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。
 ステップS7において、各主動作(軸動作及び軸制御)が停止されて、所定の先読みブロック数が蓄積される。
 ステップS8において、プログラム実行部111が加工プログラムの実行を再開する。また、ステップ8において、先読みブロック数が規定値を上回ることが検知(予測)されてからプログラム実行部111が加工プログラムの実行を再開してもよく、CPU負荷調整部121によりCPU負荷を軽減した状態で、プログラム実行部111が加工プログラムの実行を再開してもよい。
〔3.本実施形態の効果〕
 本実施形態に係る数値制御システム10は、加工プログラムをブロック毎に先読みしながら軸制御する数値制御システム10であって、加工プログラムを実行するプログラム実行部111と、加工プログラムを先読みするプログラム先読み部112と、プログラム実行部が実行しているブロックの番号と、プログラム先読み部によって先読みされるブロックの番号との差分である先読みブロック数を算出する先読みブロック数算出部113と、先読みブロック数が規定値を下回る時点のブロックである枯渇ブロックを検知する枯渇ブロック検知部114と、枯渇ブロックが検知された場合に、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制するプログラム指令時間調整部122と、を備える。
 プログラム指令時間調整部122が加工プログラムを実行する機能を制限することで、加工プログラムの実行に伴う先読みブロック数の低下を抑制することができる。これにより、先読みブロック数が枯渇することを抑制できる。
 また、プログラム指令時間調整部122は、所定の時間が経過するまで、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。
 これにより、所定の時間が経過するまで、先読みブロック数を蓄積することができ、先読みブロック数が枯渇することを抑制できる。
 また、本実施形態に係るプログラム指令時間調整部122は、先読みブロック数が規定値を上回ることが検知されるまで、プログラム実行部111が加工プログラムを実行する機能を停止又は抑制する。
 先読みブロック数が規定値を上回ることが検知されるまで加工プログラムの進行が停止又は抑制されるので、先読みブロック数が規定値を下回って枯渇することを抑制することができる。
 また、本実施形態に係る数値制御システム10は、先読みブロック数の経時変化を表示する表示装置210を更に備える。
 これにより、先読みブロック数の経時変化を視認することが可能になる。例えば、枯渇ブロックが検知された場合に枯渇ブロックの位置を視認することができる。つまり、表示装置210により、ユーザは、ブロックの解析処理状況をリアルタイムでモニタリングすることができ、状況に応じて最適な指令速度又は加減速を調整することができる。
〔4.変形例〕
 以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
 例えば、上記の実施形態では枯渇ブロックが検知された際、枯渇ブロックの位置を報知したり、推奨値としての指令速度を算出したりするが、これには限られない。例えば、枯渇ブロックが検知された際、プログラム実行部111は、加工プログラムを停止してもよい。
 また、上記の実施形態では、枯渇ブロック検知部114は、先読みブロック数が規定値を下回る時点のブロックを枯渇ブロックとしたが、これに限定されない。例えば、枯渇ブロック検知部114は、先読みブロック数の減少率が規定値を超えた時点でのブロックを枯渇ブロックとしてもよい。
 また、上記の実施形態では、先読みブロック数が規定値を上回ることで、プログラム実行部111による加工プログラムの実行が再開される例を説明し、先読みブロック数が規定値を上回るようにCPU負荷調整部121がCPU負荷を軽減する例を説明したが、これらに限定されない。例えば、先読みブロック数の規定値とは異なる基準でプログラム実行部111による加工プログラムの実行が再開されてもよく、先読みブロック数の規定値とは異なる基準でCPU負荷調整部121によりCPU負荷が軽減されてもよい。
 また、数値制御装置100による制御方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ(数値制御装置100)にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。更に、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータ(数値制御装置100)に提供されてもよい。
 10 数値制御システム
 100 数値制御装置
 111 プログラム実行部
 112 プログラム先読み部
 113 先読みブロック数算出部
 114 枯渇ブロック検知部
 115 枯渇ブロック報知部
 116 推奨値算出部
 117 推奨値報知部
 118 指令速度更新部
 121 CPU負荷調整部
 122 プログラム指令時間調整部
 200 工作機械
 210 表示装置(先読みブロック数表示部)

Claims (4)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/032478 WO2023032164A1 (ja) 2021-09-03 2021-09-03 数値制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/032478 WO2023032164A1 (ja) 2021-09-03 2021-09-03 数値制御システム

Publications (1)

Publication Number Publication Date
WO2023032164A1 true WO2023032164A1 (ja) 2023-03-09

Family

ID=85412339

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/032478 WO2023032164A1 (ja) 2021-09-03 2021-09-03 数値制御システム

Country Status (1)

Country Link
WO (1) WO2023032164A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094936A (ja) * 2005-09-30 2007-04-12 Fanuc Ltd 数値制御装置
JP2020071695A (ja) * 2018-10-31 2020-05-07 ファナック株式会社 数値制御装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094936A (ja) * 2005-09-30 2007-04-12 Fanuc Ltd 数値制御装置
JP2020071695A (ja) * 2018-10-31 2020-05-07 ファナック株式会社 数値制御装置

Similar Documents

Publication Publication Date Title
EP1950633A1 (en) Controller with acceleration detection means
CN111123840B (zh) 数值控制装置
US20130123968A1 (en) Numerical control apparatus
JPH11296213A (ja) 機械装置
CN111123845B (zh) 数值控制装置
CN111123841B (zh) 数值控制装置
US11126163B2 (en) Numerical controller
CN111123839B (zh) 数值控制装置
WO2023032164A1 (ja) 数値制御システム
CN111123846B (zh) 数值控制装置和数值控制系统
WO2023012939A1 (ja) 数値制御システム
CN111123844B (zh) 数值控制系统
JPH11202926A (ja) 数値制御における送り速度制御方法および装置
US11156986B2 (en) Machining program editing device
US20180364681A1 (en) Numerical controller
WO2022244072A1 (ja) 数値制御装置及びコンピュータ読み取り可能な記憶媒体
JP2570445B2 (ja) Nc切削装置
JPH11212617A (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: 21956051

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE