WO2018042704A1 - 指令値生成装置 - Google Patents

指令値生成装置 Download PDF

Info

Publication number
WO2018042704A1
WO2018042704A1 PCT/JP2017/005770 JP2017005770W WO2018042704A1 WO 2018042704 A1 WO2018042704 A1 WO 2018042704A1 JP 2017005770 W JP2017005770 W JP 2017005770W WO 2018042704 A1 WO2018042704 A1 WO 2018042704A1
Authority
WO
WIPO (PCT)
Prior art keywords
division
command
unit
machining program
command value
Prior art date
Application number
PCT/JP2017/005770
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 CN201780050738.0A priority Critical patent/CN109643102B/zh
Priority to US16/319,585 priority patent/US11327466B2/en
Priority to DE112017004424.3T priority patent/DE112017004424T5/de
Priority to JP2018536908A priority patent/JP6548830B2/ja
Publication of WO2018042704A1 publication Critical patent/WO2018042704A1/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/4093Numerical 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 part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • 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/41Numerical 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 interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format

Definitions

  • the present invention relates to a command value generating device that has a plurality of arithmetic devices and generates a tool movement command by executing the plurality of arithmetic devices in parallel.
  • machining program by CAM (Computer Aided Manufacturing).
  • the machining program describes machining shape information, tool feed speed, and tool rotation speed.
  • the command value generation apparatus reads the machining program and performs a tool path calculation by performing corrections such as coordinate conversion, tool length correction, tool radius correction, and machine error correction. Further, the command value generation device performs processing such as acceleration / deceleration, and calculates an interpolation point that is a command point on the tool path for each unit time.
  • interpolation points command points on the tool path for each unit time
  • a series of interpolation point groups are referred to as tool movement commands.
  • a numerical control device (NC: Numerical Control) is used as the command value generation device.
  • NC Numerical Control
  • a machining program that approximates the free-form surface with a plurality of continuous minute line segments is generated.
  • the line length of the machining program tends to be shorter.
  • the line segment length of the machining program is shortened, the number of line segments to be processed by the command value generation device increases, and thus the time required for generating the tool movement command increases. This problem is particularly noticeable in mold processing having a free-form surface and 5-axis processing with coordinate transformation.
  • Patent Document 1 discloses a technique in which a machining program is divided for each machining process and a tool movement command is calculated in parallel by a plurality of processor cores.
  • the machining program can be divided only at a point where machining is temporarily interrupted, and the processing amount of a plurality of arithmetic devices cannot be evenly distributed. Therefore, there has been a problem that it is not possible to generate a tool movement command at high speed by utilizing the processing performance of a plurality of arithmetic devices.
  • the present invention has been made in view of the above, and an object of the present invention is to obtain a command value generation device that generates a tool movement command at a higher speed than the prior art by utilizing a plurality of arithmetic devices.
  • the present invention calculates a tool path based on a machining program, and generates a command value that generates a tool movement command that is an interpolation point group for each unit time on the tool path.
  • the processing unit includes a dividing unit that generates a divided machining program by dividing the machining program into a plurality of execution units, and a plurality of arithmetic units, and executes the divided machining program in parallel for each execution unit, A parallel calculation unit that generates a division command that is an interpolation point group on a tool path for each execution unit; and a command value generation unit that generates a tool movement command from the division command for each execution unit, and the machining program
  • the division unit is the division machining program before and after at least one division point.
  • a command speed based on a preset acceleration with respect to an end portion of one of the division machining programs before the division point and a start portion of the one division machining program after the division point. Is calculated so that the overlap amount at the division point of the division machining program is equal to or greater than the acceleration distance, and the start and end portions of the division machining program are calculated as the overlap distance. It is characterized by overlapping each other by an amount.
  • FIG. 1 shows a data flow in the command value generation apparatus shown in FIG. 1 in Embodiment 1.
  • FIG. 2 shows a data flow in the command value generation device shown in FIG. 1 in the first embodiment.
  • FIG. 9 is a diagram illustrating behaviors before and after the division point of execution unit 1 and execution unit 2 when time is not plotted on the horizontal axis and speed is on the vertical axis in the first embodiment.
  • FIG. 9 is a diagram illustrating behaviors before and after the division point of execution unit 1 and execution unit 2 when time is not plotted on the horizontal axis and speed is on the vertical axis in the first embodiment.
  • FIG. 9 is a diagram illustrating behaviors before and after the division point of execution unit 1 and execution unit 2 when overlap is performed with time on the horizontal axis and speed on the vertical axis in the first embodiment.
  • route of the tool in a machining program FIG. 1 shows an example of a tool movement path in a machining program in consideration of the overlap amount in the first embodiment.
  • FIG. 1 is a diagram illustrating an example of a tool movement path in a machining program in which an inward rotation occurs in the first embodiment.
  • FIG. 2 is a diagram illustrating an example of a tool movement path in a machining program in which an inward rotation occurs in the first embodiment.
  • Embodiment 1 the timing chart which shows the execution timing of the division
  • FIG. 22 is a diagram illustrating the X-axis speed and the Y-axis speed with the horizontal axis representing time and the vertical axis representing speed when executing the machining program shape of FIG. 22 in the first embodiment.
  • it is a figure which shows an example of the tool movement command produced
  • FIG. 27 shows the X-axis speed and the Y-axis speed with time as the horizontal axis and speed as the vertical axis when the machining program shape of FIG. 27 is executed in the first embodiment.
  • it is a figure which shows an example of the tool movement command produced
  • route The figure which shows an example of the tool movement command at the time of execution of the machining program shape of FIG. 27 in Embodiment 1.
  • FIG. 32 is a timing chart showing the execution timing of the division machining program in the parallel calculation unit shown in FIG. 32 and the generation timing of a series of tool movement commands in the command value generation unit shown in FIG.
  • 1 is a timing chart showing the execution timing of the division machining program in the arithmetic unit shown in FIG. 1 and the generation timing of a series of tool movement commands in the command value generation unit shown in FIG. 34 is a timing chart showing the execution timing of the division machining program in the arithmetic unit shown in FIG.
  • FIG. 1 shows a data flow in the command value generating apparatus shown in FIG. 34 in the third embodiment.
  • FIG. 2 shows a data flow in the command value generation device shown in FIG. 34 in the third embodiment.
  • FIG. FIG. 1 is a diagram showing a configuration of a command value generation device according to Embodiment 1 of the present invention.
  • a command value generation device 100 shown in FIG. 1 is a numerical control device that controls an NC machine tool (not shown).
  • the command value generation device 100 shown in FIG. 1 outputs a tool movement command 11 that is an interpolation point group for each unit time on the tool path in accordance with the input machining program 10, so that a workpiece for an NC machine tool is processed. Numerical control of tool movement.
  • the command value generation device 100 includes a dividing unit 110, a parallel calculation unit 120, and a command value generation unit 130.
  • the dividing unit 110 divides the machining program 10 into execution units and generates a divided machining program.
  • the parallel computing unit 120 generates a division command that is a tool movement command for each execution unit according to the machining program for each execution unit.
  • the command value generation unit 130 generates a series of tool movement commands 11 from the division command.
  • the parallel computing unit 120 is provided with a computing device 121, a computing device 122, and a computing device 123.
  • the parallel computing unit 120 is configured by a multi-core CPU (Central Processing Unit), a personal computer having a plurality of CPUs, or a server or a cloud system connected by a communication line.
  • the communication line can be exemplified by a local area network and the Internet.
  • the parallel arithmetic unit 120 includes three arithmetic devices, but the present invention is not limited to this, and the number of arithmetic devices included in the parallel arithmetic unit 120 may be one or more. Since the tool movement command 11 can be generated at high speed when the number of arithmetic devices installed in the parallel arithmetic unit 120 is increased, the number of arithmetic devices may be determined according to the target value for speeding up.
  • the dividing unit 110 divides the input machining program 10 into a plurality of execution units, and outputs the divided machining program to the parallel operation unit 120 for each execution unit.
  • the parallel computing unit 120 allocates a divided machining program to the computing devices 121, 122, and 123 for each execution unit.
  • the arithmetic device 121, the arithmetic device 122, and the arithmetic device 123 perform processes such as acceleration / deceleration and coordinate conversion, sequentially generate a division command that is a tool movement command for each execution unit, and output it to the command value generation unit 130. To do.
  • the arithmetic device 121, the arithmetic device 122, and the arithmetic device 123 are executed in parallel, and when generation of a division command in one execution unit is completed, generation of a division command in the next execution unit is started and unprocessed. Repeat the process until there are no more execution units.
  • the command value generation unit 130 generates and outputs a series of tool movement commands 11 from the division command for each execution unit.
  • the command value generation unit 130 is configured by a single CPU, a personal computer having a single CPU, or a server or a cloud system connected by a communication line.
  • the command value generation unit 130 may be configured by a multi-core CPU, a personal computer including a plurality of CPUs, a server connected via a communication line, or a cloud system, like the parallel calculation unit 120.
  • FIG. 2 is a first diagram showing a data flow in command value generation device 100 shown in FIG. 1 in the first embodiment.
  • FIG. 2 shows a data flow when the parallel computing unit 120 is executed for the first time.
  • FIG. 3 is a second diagram showing a data flow in the command value generation device 100 shown in FIG. 1 in the first embodiment.
  • FIG. 3 shows a data flow when the first execution of the parallel operation unit 120 is completed and the machining program is executed in the next execution unit. 2 and 3, the dividing unit 110 divides the machining program 10 into six execution units, that is, an execution unit 1, an execution unit 2, an execution unit 3, an execution unit 4, an execution unit 5, and an execution unit 6.
  • the present invention is not limited to this, and the number of divisions can be set as appropriate.
  • the parallel operation unit 120 generates the split command 1, the split command 2, and the split command 3 by executing the execution unit 1, the execution unit 2, and the execution unit 3 in parallel.
  • the command value generation unit 130 generates a tool movement command for execution unit 1, execution unit 2, and execution unit 3 from division command 1, division command 2, and division command 3.
  • the parallel operation unit 120 executes the execution unit 6 from the execution unit 4 that is the next execution unit,
  • the division command 6 is generated from 4.
  • the command value generation unit 130 generates a tool movement command for the execution units 4 to 6 and generates and outputs a tool movement command 11 together with the tool movement command for the execution units 1 to 3.
  • the division command 1 is a division command for executing the execution unit 1, and this is the same for the division commands 2, 3, 4, 5, and 6.
  • FIG. 4 is a diagram illustrating a processing flow of the dividing unit 110 illustrated in FIG. 1 in the first embodiment.
  • the dividing unit 110 starts processing, and determines the division number N (S1).
  • the dividing unit 110 determines a dividing point for dividing the machining program 10 (S2).
  • the calculation time in the parallel calculation unit 120 of all execution units is made as uniform as possible.
  • the calculation time T (i) per block of the machining program 10 is obtained by dividing the block length L (i) by the command speed F (i). Accordingly, the entire calculation time T of the machining program 10 is represented by the sum of all blocks of the calculation time T (i) per block, as shown in the following equation (1).
  • M in the above formula (1) is the number of blocks of the machining program 10, that is, the number of lines of the machining program 10. That is, a point at which T / N is set to be a division point so that the calculation time per execution unit is as uniform as possible.
  • the dividing point often does not coincide with the block end point of the machining program.
  • the point calculated by the above equation (1) may be used as the dividing point, or the block end point closest to the point calculated by the above equation (1) may be used. May be used as a dividing point.
  • the calculation time T (i) per block is calculated by the block length L (i) and the command speed F (i), but is further set by a parameter.
  • the dividing point may be determined by calculating the calculation time T (i) in consideration of the effects of acceleration / deceleration and clamping speed using the allowable acceleration of the machine. Further, a division point may be a point obtained by dividing the total length L of all blocks by the division number N so that the path length per execution unit is as uniform as possible.
  • FIG. 5 is a diagram illustrating the behavior of the execution unit 1 and the execution unit 2 before and after the division point when there is no overlap, with time on the horizontal axis and speed on the vertical axis in the first embodiment.
  • FIG. 6 is a diagram showing the behavior before and after the division point of execution unit 1 and execution unit 2 when overlapping, with time on the horizontal axis and speed on the vertical axis in the first embodiment. Therefore, as illustrated in FIG.
  • the dividing unit 110 eliminates deceleration at the dividing point by overlapping the dividing units, and generates the same tool movement command in the case of dividing and not dividing. .
  • the overlap amount Lo may be set to be not less than the distance traveled from the speed zero until reaching the command speed F, that is, the acceleration distance La.
  • FIG. 7 is a diagram showing the acceleration distance La in the first embodiment, with time on the horizontal axis and speed on the vertical axis.
  • FIG. 8 is a diagram showing the overlap amount Lo, with time on the horizontal axis and speed on the vertical axis in the first embodiment. 7 and 8, when the acceleration A is accelerated to the command speed F and a smooth speed waveform is generated by the moving average filter having the time constant Ts, the acceleration distance La is from time 0 to time (F / A + Ts). ).
  • the overlap amount Lo is moved by the moving average filter time constant Ts at the command speed F.
  • the overlap amount Lo is the trapezoidal area shown in FIG. 8, and can be calculated by the following equation (2).
  • the length of the upper side of the trapezoid is Ts
  • the length of the lower side is (F / A + Ts)
  • the height is F.
  • the dividing unit 110 divides the machining program 10 into execution units at the division points determined in S2 (S4).
  • the overlap is performed by the overlap amount Lo calculated in S3.
  • FIG. 9 is a diagram illustrating an example of a tool movement path in the machining program 10 according to the first embodiment.
  • division point 1 is divided into two execution units, execution unit 1 and execution unit 2.
  • FIG. 10 is a first diagram illustrating an example of a tool movement path in the machining program in consideration of the overlap amount Lo in the first embodiment.
  • the start point of execution unit 1 is “start point of machining program”, but the end point of execution unit 1 is “a point moved from the division point 1 to the end point side by the overlap amount Lo”.
  • FIG. 11 is a second diagram showing an example of a tool movement path in the machining program in consideration of the overlap amount Lo in the first embodiment.
  • the starting point of the execution unit 2 is “a point moved from the dividing point 1 to the starting point side by the overlap amount Lo”
  • the end point of the execution unit 2 is “the end point of the machining program”.
  • the dividing point is made to coincide with the block end point.
  • the dividing point does not necessarily need to coincide with the block end point. Good.
  • start point and end point of the execution unit may be in the middle of the block, or the block end point closest to the start point or end point obtained by the above-described method may be used as the start point or end point of the execution unit.
  • Embodiment 1 it divides
  • it is not always necessary to generate a divided machining program.
  • it may be divided into execution units by specifying a serial number for each line of the machining program, which is a block number of the machining program 10, or a command G serving as a mark of division at a division point of the machining program.
  • a code or M code may be inserted.
  • the dividing unit 110 adds a machining mode command to the head of the divided machining program (S5).
  • FIG. 12 is a diagram illustrating an example of a machining program in the first embodiment.
  • the machining program shown in FIG. 12 coordinate values for machining are described for each block, that is, for each line.
  • commands relating to machining modes such as F command as a command speed, G0 as fast feed, G1 as a cutting mode, and G43 as tool length correction are also described in the machining program.
  • a command related to the machining mode is described at the head of the machining program, and then coordinate values for performing machining are described.
  • This coordinate value group is referred to as a coordinate value group 1.
  • This coordinate value group is referred to as coordinate value group 2.
  • there are three division machining programs that is, a division machining program 1 from the beginning of the machining program to the division point 1, a division machining program 2 from the division point 1 to the division point 2, and a division program from the division point 2 to the end of the machining program.
  • the divided machining program 3 is generated. However, an overlap is added to each divided machining program.
  • FIG. 13 is a diagram showing the division processing program 1 in the first embodiment.
  • the division machining program 1 shown in FIG. 13 is divided by adding an overlap to the division point 1.
  • a command relating to the machining mode is described at the head of the machining program before division, it is not necessary to add a command relating to the machining mode to the division machining program 1.
  • FIG. 14 is a diagram showing the divided machining program 2 in which a command related to the machining mode is added in the first embodiment.
  • the head of the divided machining program 2 is a coordinate value for performing machining, and no command related to the machining mode is described.
  • a directive has been added.
  • the command related to the machining mode added to the divided machining program 2 is a command related to the machining mode commanded from the beginning of the machining program to the beginning of the divided machining program 2 in the machining program before division.
  • FIG. 15 is a diagram showing the divided machining program 3 in which a command related to the machining mode is added in the first embodiment.
  • a command related to the machining mode is added to the head of the division machining program 3 as in the case of the division machining program 2.
  • only the command commanded last may be added.
  • the speed command in FIG. 12 that is, the F command
  • F5000 mm / min there is a command of F5000 mm / min
  • an overlap portion from the division point 2 which is the head of the division machining program 3.
  • F5000 mm / min an overlap portion from the division point 2 which is the head of the division machining program 3.
  • the division machining program 6 is generated from the division machining program 4, and the generated division machining program is output to the parallel operation unit 120.
  • the parallel arithmetic unit 120 illustrated in FIG. 1 includes the arithmetic device 121, the arithmetic device 122, and the arithmetic device 123.
  • the arithmetic device 121, the arithmetic device 122, and the arithmetic device 123 can specifically be exemplified by a processor core, a CPU, a personal computer or server connected by a network, or a virtual computer on the cloud.
  • the parallel calculation unit 120 allocates the division processing program to each of the arithmetic device 121, the arithmetic device 122, and the arithmetic device 123. Since the parallel arithmetic unit 120 shown in FIG. 1 includes the arithmetic device 121, the arithmetic device 122, and the arithmetic device 123, first, the division processing program 1 is allocated to the arithmetic device 121, and the division processing program 2 is allocated to the arithmetic device 122. The divided machining program 3 is allocated to the arithmetic device 123.
  • each of the arithmetic device 121, the arithmetic device 122, and the arithmetic device 123 the same processing as that of the numerical control device is executed in parallel, and a split command 1, a split command 2, and a split command 3 that are command paths of tools from the split machining program.
  • specific processing includes acceleration / deceleration processing for generating a speed waveform for acceleration / deceleration at a preset acceleration, smoothing processing for smoothing the speed waveform generated by the acceleration / deceleration processing, and speed after smoothing processing.
  • the interpolation process which calculates the interpolation point which is a tool position for every unit time when it moved can be illustrated.
  • the smoothing process is also referred to as a moving average filter process.
  • each point of the tool position per unit time is referred to as an interpolation point, and the entire interpolation point in the division machining program is referred to as a division command.
  • FIG. 16 is a first diagram illustrating an example of a tool movement path in the machining program in which an inward rotation occurs in the first embodiment.
  • FIG. 17 is a second diagram illustrating an example of a tool movement path in the machining program in which an inward rotation occurs in the first embodiment. Therefore, the division command when the division machining program shown in FIGS. 10 and 11 is executed passes through the start point and end point of the division machining program as shown in FIGS. It becomes a shape in which an inner circumference is generated with respect to the shape.
  • the inner volume of the division command due to the division of the machining program is small.
  • This region where the amount of inward rotation is reduced is referred to as an inward decrease region.
  • the inward rotation amount is determined by the command speed, and the length of the inward rotation reduction region is the acceleration distance La shown in FIG.
  • the dividing unit 110 divides by adding an overlap amount Lo that is equal to or longer than the acceleration distance La. Therefore, the inward reduction areas in each of the divided machining programs do not overlap, and at least one interpolation point that is not the inward reduction area can be obtained in the entire machining program shape. 16 and 17 show a case where the machining program is divided into two for the sake of explanation, but the same applies to the case where the machining program is further divided.
  • each of the arithmetic device 121, the arithmetic device 122, and the arithmetic device 123 executes the division machining program 1, the division machining program 2, and the division machining program 3, and the parallel calculation unit 120 includes the division command 1, the division command 2, and the division command.
  • the command 3 is generated, and the division command 1, the division command 2, and the division command 3 are output to the command value generation unit 130.
  • the parallel calculation unit 120 sequentially executes the division machining program 4, the division machining program 5, and the division machining program 6, and outputs the division command 4, the division command 5, and the division command 6 to the command value generation unit 130. . This process is repeated until there is no unexecuted divided machining program.
  • the command value generation unit 130 generates a series of tool movement commands 11 based on the division command output from each of the calculation device 121, the calculation device 122, and the calculation device 123.
  • each of the division commands also overlaps.
  • overlapping regions of the division command are removed as will be described later, and then combined to generate a series of tool movement commands 11.
  • the parallel calculation unit 120 executes the division machining program 1 with the calculation device 121, executes the division machining program 2 with the calculation device 122, and executes the division machining program 3 with the calculation device 123, while executing the division command. 1. Generation and output of the division command 2 and the division command 3 are started. Strictly speaking, since the division command is not completed during the execution of the division machining program, points indicating tool positions per unit time, which are interpolation points constituting the division command, are sequentially output.
  • the command value generation unit 130 outputs the division command 1 when the division command 1, the division command 2, and the division command 3 are input from the parallel calculation unit 120. At this time, the division command 2 and the division command 3 are stored in any storage area in the command value generation device 100. When the output of the division command 1 is completed, the command value generation unit 130 removes the overlapping area, which will be described later, and adjusts an abrupt interpolation point interval change that occurs at the point where the division command is switched. Output. At this time, since the execution of the division machining program 1 is completed in the arithmetic device 121, the division machining program 4 is started to be executed and the division command 4 is output to the command value generation unit 130.
  • the parallel calculation unit 120 starts the division machining program 5 and outputs the division command 5 to the command value generation unit 130.
  • the parallel calculation unit 120 starts the division machining program 6 and outputs the division command 6 to the command value generation unit 130.
  • the division machining program 1, the division machining program 2, and the division machining program 3 are executed at the same time, but the present invention is not limited to this.
  • FIG. 19 is a diagram illustrating an example of the division machining program 1 and the division machining program 2, and the division command 1 and the division command 2 in the first embodiment.
  • the division machining program 1 and the division machining program 2 are divided at a division point 1, and the division machining program 1 and the division machining program 2 overlap each other by an overlap amount Lo around the division point 1. ing.
  • the command value generation unit 130 When the division command 1 from the parallel calculation unit 120 is input, the command value generation unit 130 first outputs the division command 1 as the tool movement command 11, but the interpolation point corresponding to the division point 1 of the division machining program 1 is output. When the output is completed, the output of the division command 2 is started. That is, for the division command 1, no interpolation point corresponding to the end point is output from the division point 1 of the division machining program 1.
  • output is started from an interpolation point corresponding to the division point 1. That is, in response to the division command 2, an interpolation point corresponding to the division point 1 is not output from the starting point of the division machining program 2.
  • the division command 3 starts to be output.
  • the division point 2 is a point at which the division machining program 2 and the division machining program 3 are divided. That is, in response to the division command 2, the interpolation point corresponding to the end point is not output from the division point 2 of the division machining program 2.
  • the output of the division command 3 (not shown) is started from the interpolation point corresponding to the division point 2. That is, for the division command 3, the interpolation point corresponding to the division point 2 is not output from the start point of the division machining program 3.
  • the path of each division command has a shape that is inside the path of each division processing program. In other words, the path length of the division command is different from the path length of the division machining program.
  • the interpolation point x (n) on the path of the tool movement command that is the path after the moving average filter is the average of the points X on the path of the machining program that is the path before the moving average filter. Since it is represented by a value, it is represented by the following formula (3).
  • n in the above equation (3) is the number of the interpolation point from the start point to the end point.
  • m in the above equation (3) is a time constant of the moving average filter, and is set by a parameter.
  • the point X on the path before the moving average filter can be calculated from the interpolation point x on the path after the moving average filter. Thereby, the distance in the path before the moving average filter can be calculated.
  • An interpolation point x at which the distance from the start point or end point in the path before the moving average filter is the overlap amount Lo is defined as an interpolation point corresponding to the division point.
  • the interpolation point corresponding to the division point is calculated by calculating the distance in the path before the moving average filter from the interpolation point on the path after the moving average filter.
  • the calculation device 121, the calculation device 122, and the calculation device 123 may output the interpolation points corresponding to the division points with appropriate flags.
  • FIG. 20 is a diagram illustrating an example of the interpolation point interval at the point where the division command is switched in the first embodiment.
  • the interval between the interpolation points at the interpolation point position where the division command 1 is switched to the division command 2 is different from the interval between the other interpolation points.
  • the interpolation point indicates the tool position per unit time, and the interval between the interpolation points indicates the tool speed. That is, if the interval between the interpolation points changes, the tool speed changes, which causes a machining defect.
  • FIG. 21 is a diagram illustrating an example of the interpolation point interval adjusted at the point where the division command is switched in the first embodiment.
  • the command value generation unit 130 adjusts the position of the interpolation point on the path of the division command so that the interval between the interpolation points does not change even when the division command is switched.
  • the last interpolation point of the division command 1 output by the command value generation unit 130 that is, the last interpolation point that is not an overlapped region is the interpolation point 1 E, and the division command output by the command value generation unit 130.
  • the first interpolation point 2 that is, the first interpolation point that is not an overlapping region is defined as an interpolation point 2S.
  • the command value generation unit 130 moves the position of the interpolation point 2S along the path of the division command 2 so that the interval between the interpolation point 1E and the interpolation point 2S is equal to the interval L1 between the interpolation point 1E and the previous interpolation point. Adjust.
  • the command value generation unit 130 sets the interpolation point 2S so that the interval between the interpolation point 1E and the interpolation point 2S is equal to the interval between the interpolation point 1E and the next interpolation point that is not output from the command value generation unit 130.
  • the position may be adjusted along the path of the division command 2.
  • the command value generation unit 130 interpolates the interpolation point 2S so that the interval between the adjusted interpolation point 2S and the next interpolation point becomes equal to the interval L2 between the interpolation point 2S before adjustment and the next interpolation point.
  • the position of the next interpolation point is adjusted along the path of the division command 2.
  • the adjustment of the interpolation point position may be gradually reduced by setting the change of the allowable speed in advance and adjusting the position of the interpolation point while allowing the speed change below the allowable speed change.
  • the first embodiment is particularly effective in an environment where a large number of arithmetic devices such as a cloud can be used.
  • the division command can be generated in advance using a plurality of arithmetic devices. Therefore, since a segmentation command can be generated in advance even at locations where the line segment length is short and the processing load is heavy, the tool movement command can be computed at an appropriate computation cycle, and unnecessary deceleration can be prevented.
  • the number of divided programs is six for the sake of simplicity.
  • the processing load of each of the plurality of arithmetic devices can be further distributed to prevent unnecessary deceleration. Is possible.
  • FIG. 22 is a first diagram illustrating an example of a machining program shape in the first embodiment. A case will be described in which the machining program shape is a 90 ° corner which is a movement of only the X axis to a movement of only the Y axis in the XY plane as shown in FIG.
  • FIG. 23 is a diagram showing the X-axis speed and the Y-axis speed with time as the horizontal axis and speed as the vertical axis when the machining program shape of FIG. 22 is executed in the first embodiment.
  • the command value generation device 100 calculates a smooth X-axis speed and Y-axis speed in which the X-axis speed and the Y-axis speed overlap at the corner as shown in FIG. 23 by prefetching the line segment of the machining program. To do.
  • a velocity waveform in which the acceleration is smoothed is shown, but the present invention is not limited to this, and each axial velocity in which the velocity is smoothed may be used, or the jerk may be smoothed. It is good also as each axis speed made.
  • FIG. 24 is a diagram illustrating an example of a tool movement command generated when the machining program shape of FIG. 22 is executed in the first embodiment. Since the X-axis speed and the Y-axis speed are overlapped in the corner portion by pre-reading by the command value generation device 100 and both the X-axis and the Y-axis are operated, the tool movement command generated as shown in FIG. Smooth shape.
  • FIG. 25 is a diagram showing a velocity waveform and a tool path when the machining program shape shown in FIG. 22 is executed in the first embodiment. This is because if the shape before and after the divided points should generate a smooth path, each of the divided machining programs is executed separately by dividing the machining program. This is because a tool movement command passing through the divided points is generated.
  • FIG. 26 is a diagram illustrating an example of a tool movement command when the machining program shape of FIG. 22 is executed in the first embodiment. When machining is performed based on the tool movement command shown in FIG. 26, the corner portion is not smooth, the tool movement command and the machining program shape are the same shape, and the tool movement command that smoothes the corner portion is not generated.
  • FIG. 27 is a second diagram illustrating an example of a machining program shape in the first embodiment.
  • the machining program shape is a semicircle on the XY plane.
  • the speed of each axis basically follows a trigonometric function, but accelerates from zero speed at the start point and decelerates toward the end point to zero speed.
  • FIG. 28 is a diagram showing the X-axis speed and the Y-axis speed with time on the horizontal axis and speed on the vertical axis when the machining program shape of FIG. 27 is executed in the first embodiment.
  • smooth axis velocity waveforms as shown in FIG. 28 can be generated.
  • FIG. 29 is a diagram showing an example of a tool movement command generated when the machining program shape of FIG. 27 is executed in the first embodiment. Since each axis velocity waveform is delayed by the moving average filter, the tool movement command passes through the machining program start point and end point, as shown in FIG. 29, and the path between the start point and end point contains the machining program shape. A curved shape that turns.
  • FIG. 30 is a diagram showing a velocity waveform and a tool path when the machining program shape of FIG. 27 is executed in the first embodiment.
  • FIG. 31 is a diagram showing an example of a tool movement command when the machining program shape of FIG. 27 is executed in the first embodiment.
  • the path between the points passes through the start point, the end point, and the divided points, and has a curved shape that is within the machining program shape. That is, it is processed into a shape having protrusions at the divided points.
  • a tool movement command passing through the divided points is generated, and a tool movement command different from the tool movement command in the machining program when not divided is generated.
  • the path of the tool movement command changes greatly at the divided points, resulting in machining defects such as scratches on the machining surface.
  • the machining program can be divided only at a point where the machining process, for example, machining such as rough machining, intermediate finishing, and finishing machining is interrupted.
  • a tool movement command is issued at high speed using a plurality of computing devices. Can be generated.
  • FIG. FIG. 32 is a diagram showing a configuration of a command value generation apparatus according to Embodiment 2 of the present invention.
  • the command value generation device 200 shown in FIG. 32 can simulate the post-machining shape of the workpiece when a tool movement command is generated according to the input machining program 20.
  • the description of the first embodiment is used for the same configuration as that of the first embodiment, and the overlapping description is omitted.
  • machining simulations simulate the post-machining shape of the workpiece based on the machining program shape.
  • machining is performed based on a tool movement command obtained by adding various corrections to the machining program.
  • the correction applied to the machining program is acceleration / deceleration, tool correction, or coordinate conversion. Even if a machining defect such as a scratch occurs on the workpiece due to this correction may occur, even if the post-machining shape is simulated based on the machining program shape, such a machining defect is not simulated.
  • the post-processing shape of the workpiece is simulated based on the servo response obtained from the tool movement command, it is also possible to simulate a flaw caused by acceleration / deceleration, tool correction, or coordinate conversion correction. It is.
  • the command value generation device 200 includes a dividing unit 210, a parallel calculation unit 220, a command value generation unit 230, a servo simulation unit 240, and a machining simulation unit 250.
  • the dividing unit 210 divides the machining program 20 into execution units.
  • the parallel computing unit 220 generates a division command that is a tool movement command for each execution unit in accordance with the machining program for each execution unit.
  • the command value generation unit 230 generates a series of tool movement commands from the division command.
  • the servo simulation unit 240 generates a servo response by simulating the operation of a servo system of a machine tool (not shown) when a tool movement command is input.
  • the machining simulation unit 250 simulates the machining shape of the workpiece based on the servo response. Further, the servo simulation unit 240 may be omitted, and the machining simulation may be performed based on the tool movement command or the division command.
  • the parallel computing unit 220 is provided with computing devices 221, 222, and 223.
  • the parallel computing unit 220 is configured by a multi-core CPU, a personal computer including a plurality of CPUs, or a server or a cloud system connected by a communication line.
  • the parallel arithmetic unit 220 includes three arithmetic devices, but the present invention is not limited to this, and the number of arithmetic devices included in the parallel arithmetic unit 220 may be one or more.
  • the number of processing devices installed in the parallel processing unit 220 is increased, a tool movement command can be generated at high speed, and the number of processing devices installed may be determined according to the target value for speeding up.
  • the dividing unit 210 divides the input machining program 20 into a plurality of execution units, and outputs the divided machining program to the parallel calculation unit 220 for each execution unit.
  • the parallel calculation unit 220 allocates a divided machining program to the calculation devices 221, 222, and 223 for each execution unit.
  • the arithmetic device 221, the arithmetic device 222, and the arithmetic device 223 perform acceleration / deceleration and coordinate conversion processing, sequentially generate a division command, which is a tool movement command for each execution unit, and output it to the command value generation unit 230.
  • the arithmetic unit 221, the arithmetic unit 222, and the arithmetic unit 223 are executed in parallel, and when generation of a division command in one execution unit is completed, generation of a division command in the next execution unit is started and unprocessed. Repeat the process until there are no more execution units.
  • the command value generation unit 230 generates a series of tool movement commands from the division commands for each execution unit and outputs them to the servo simulation unit 240.
  • the command value generation unit 230 is configured by a single CPU, a personal computer having a single CPU, or a server or a cloud system connected by a communication line.
  • the command value generation unit 230 may be configured by a multi-core CPU, a personal computer including a plurality of CPUs, or a server or a cloud system connected by a communication line, like the parallel calculation unit 220.
  • the servo simulation unit 240 estimates a servo response from a tool movement command using a preset servo model, and outputs the servo response to the machining simulation unit 250.
  • the machining simulation unit 250 simulates the machining shape of the workpiece when the machine tool is operated based on the servo response from the servo simulation unit 240, and outputs it to an output device (not shown).
  • the output device can be exemplified by a display.
  • processing contents of each component will be described in detail. Note that the processing contents of the dividing unit 210 and the parallel computing unit 220 are the same as those of the dividing unit 110 and the parallel computing unit 120 of the first embodiment, and are therefore omitted.
  • the processing content of the command value generation unit 230 is similar to the command value generation unit 130 of the first embodiment. That is, a series of tool movement commands are generated by outputting in order from the first division command except for the overlapping region of each division command.
  • the subsequent process from the output of the command value generation unit 230 is an application that does not matter the order of the tool movement commands, as shown in FIG. 33, as soon as the generation of each split command is started, The overlapping area may be deleted and the division command may be output in parallel.
  • FIG. 33 is a timing chart showing the execution timing of the division machining program in the parallel operation unit 220 shown in FIG. 32 and the generation timing of a series of tool movement commands in the command value generation unit 230 shown in FIG. 32 in the second embodiment. is there.
  • the processing subsequent to the output of the command value generation unit 230 is only the machining simulation unit 250.
  • the machining simulation unit 250 does not matter the order of the tool movement commands. That is, the final machining simulation result is the same even if the division commands generated by the parallel computing unit 220 are machine-simulated in another order.
  • the command value generation unit 230 it is more efficient to output the division commands in parallel, instead of arranging them in the divided order, and to process the subsequent processing simulation in parallel. .
  • the servo simulation unit 240 simulates the behavior of a machine tool (not shown) that is a control target on a computer. Specifically, the servo simulation unit 240 includes parameters of inertia, viscosity, and elasticity of the machine tool, resonance frequency or anti-resonance frequency caused by inertia, viscosity, and elasticity, and parameters of backlash or lost motion at the time of axis reversal. Then, a parameter of thermal displacement and a parameter of displacement caused by reaction force during processing are set in advance, and a servo model for simulating the behavior of the controlled object is constructed.
  • the servo simulation unit 240 generates a servo response that is an actual operation of the machine tool from the tool movement command using the constructed servo model, and outputs the servo response to the machining simulation unit 250.
  • the servo response path and the velocity waveform may be displayed on a display as an output device.
  • the machining simulation unit 250 simulates the machining shape of the workpiece when the tool of the machine tool is operated based on the servo response generated by the servo simulation unit 240, and outputs the machining simulation result to the output device. That is, the machining simulation unit 250 displays the machining simulation result on the display.
  • the command value generation apparatus 200 includes a servo simulation unit 240, and the machining simulation unit 250 performs a machining simulation based on a servo response. However, the servo simulation unit 240 is omitted, and a tool movement command or division is performed. A machining simulation may be performed based on the command.
  • a sweep volume which is a volume when the tool operates along the servo response, is calculated. By removing the part of the workpiece crossed by the sweep volume, the final machining result of the workpiece can be simulated.
  • servo simulation or machining simulation based on the tool movement command can be performed at high speed.
  • a system that uses a single arithmetic unit can perform a simulation that requires a time comparable to actual machining in a short time, and can reduce the number of man-hours required for parameter adjustment, which is adjustment work for a machine tool. Is possible.
  • the tool movement command can be generated in a time of “1 / number of installed arithmetic devices” as compared with the case where the tool movement command is generated by one arithmetic device.
  • FIG. 34 is a diagram showing a configuration of a command value generation apparatus according to Embodiment 3 of the present invention.
  • the command value generation device 300 shown in FIG. 34 has a configuration capable of generating command values at high speed in the same manner as the command value generation device 100 shown in FIG. 1.
  • the command value generation device 300 shown in FIG. The command value generation device 100 shown in FIG.
  • the first point is that a parallel command value generation unit 330 is provided instead of the command value generation unit 130, and a command value generation unit is provided for each of the plurality of arithmetic devices, and the command value generation processing is performed in parallel. It is a point to do in.
  • the parallel command value generation unit 330 includes command value generation units 331, 332, and 333.
  • the description of the first and second embodiments is used for the same configuration as that of the first and second embodiments, and the overlapping description is omitted.
  • FIG. 35 shows the execution timing of the division machining program in the arithmetic devices 121, 122, 123 shown in FIG. 1 in the first embodiment and the generation timing of a series of tool movement commands in the command value generation unit 130 shown in FIG. It is a timing chart.
  • 36 shows the execution timing of the division machining program in the arithmetic devices 321, 322, and 323 shown in FIG. 34 in the third embodiment, and the generation of a series of tool movement commands in the command value generation units 331, 332, and 333 shown in FIG. It is a timing chart which shows a timing.
  • FIG. 35 and FIG. 36 show timing charts when there is a variation in the calculation time of each calculation device, and FIG. 35 is shown for comparison.
  • the division commands 1, 2, 3, 4, 5, and 6 are output to the command value generation unit 130 as soon as the processing in each of the arithmetic devices 121, 122, and 123 is completed.
  • the command value generation unit 130 processes the division commands 1, 2, 3, 4, 5, and 6 in this order, the calculation time of the calculation device 121 varies as compared with the calculation times of the calculation devices 122 and 123. If there is, the command value generation unit 130 starts the processing of the division commands 2 and 3 until the processing of the arithmetic device 121 is completed even though the arithmetic operations of the arithmetic devices 122 and 123 are completed. I can't.
  • the command value generation unit 130 cannot start the processing of the division commands 5 and 6 until the processing of the division command 4 is completed.
  • the entire processing speed of the command value generating device 100 is reduced due to variations in the calculation time of the calculation device.
  • the command value generation device 300 shown in FIG. 34 can perform independent command value generation processing for each arithmetic device, even if the processing of the division command 1 of the arithmetic device 321 is not completed, the arithmetic device 322 If the process of H.323 is completed, the process of the division commands 2 and 3 can be started.
  • a time lag occurs between the completion of the generation of the split command and the completion of the generation of the tool movement command even if the calculation time of each calculation device in the parallel calculation unit 320 varies. It is difficult to reduce speed reduction due to variations in calculation time of the calculation device.
  • the second point is that even if the processing in each arithmetic device is in the middle of processing, each division command generated up to that point is output, in other words, the division command is output in a plurality of times in fine units. Is a point.
  • the parallel command value generation unit 330 the NC machine tool (not shown), or the machining simulation process can be performed concurrently with the parallel calculation unit 320. Therefore, it is most suitable when importance is attached to real-time performance or when it is desired to perform NC machine tool or machining simulation at a higher speed.
  • the command value generation device 300 shown in FIG. 34 includes a dividing unit 310, a parallel calculation unit 320, and a parallel command value generation unit 330, and is an interpolation point group for each unit time on the tool path according to the input machining program 30.
  • the dividing unit 310 divides the machining program 30 into execution units and generates a divided machining program.
  • the parallel computing unit 320 generates a division command that is a tool movement command for each execution unit according to the machining program for each execution unit.
  • the parallel command value generation unit 330 generates a tool movement command from the division command.
  • the parallel arithmetic unit 320 is provided with arithmetic devices 321, 322, and 323.
  • the parallel command value generation unit 330 is provided with command value generation units 331, 332, and 333.
  • the parallel calculation unit 320 and the parallel command value generation unit 330 are configured by a multi-core CPU, a personal computer including a plurality of CPUs, or a server or a cloud system connected by a communication line.
  • the parallel arithmetic unit 320 includes three arithmetic devices.
  • the present invention is not limited to this, and the number of arithmetic devices included in the parallel arithmetic unit 320 may be one or more.
  • the number of command value generation units may be equal to the number of calculation devices provided in the parallel calculation unit 320.
  • the tool movement command can be generated at high speed, and the number of arithmetic devices may be determined according to the target value for speeding up.
  • the processing contents of the dividing unit 310 are the same as those of the dividing unit 110 shown in FIG.
  • the processing content of the parallel computing unit 320 is similar to that of the first embodiment, and the same processing as that of the numerical control device is executed in parallel to generate a split command that is a tool command path from the split machining program.
  • each division command generated up to that point can be output in a plurality of times in fine units.
  • a unit smaller than the division command is called an output unit number. The number of output units can be set as appropriate.
  • FIG. 37 is a first diagram showing a data flow in command value generation device 300 shown in FIG. 34 in the third embodiment.
  • FIG. 38 is a second diagram showing a data flow in command value generation device 300 shown in FIG. 34 in the third embodiment.
  • FIG. 37 shows a data flow at the time of the first execution of the parallel operation unit 320
  • FIG. 38 shows a data flow at the time of execution of the machining program in the next execution unit after the first execution of the parallel operation unit 320 is completed. .
  • the dividing unit 310 divides the machining program 30 into six execution units, that is, execution units 1, 2, 3, 4, 5, and 6, and further, a division command for each execution unit.
  • execution units 1, 2, 3, 4, 5, and 6 execution units 1, 2, 3, 4, 5, and 6, and further, a division command for each execution unit.
  • the output is divided into three equal parts, the present invention is not limited to this, and the number of divisions and the number of output units can be set as appropriate.
  • the parallel operation unit 320 including three operation devices 1, 2 and 3 are executed in parallel, and the division commands 1-1, 1-2, 1-3, the division commands 2-1, 2-2, 2-3 and the division commands 3-1, 3-2, 3 are executed.
  • -3 is generated.
  • the parallel command value generation unit 330 then generates the division commands 1-1, 1-2, 1-3, the division commands 2-1, 2-2, 2-3, and the division commands 3-1, 3-2, 3- 3 generates a tool movement command for execution unit 1 to execution unit 3.
  • division commands 1-1, 2-1, and 3-1 which are sets of interpolation point groups for each unit time, are generated.
  • specific processing includes acceleration / deceleration processing for generating a speed waveform for acceleration / deceleration at a preset acceleration, smoothing processing for smoothing the speed waveform generated by the acceleration / deceleration processing, and speed after smoothing processing.
  • the interpolation process which calculates the interpolation point which is a tool position for every unit time when it moved can be illustrated. At the same time, the interpolation points of the division commands 1-1, 2-1, and 3-1 are calculated.
  • each of the division commands 1-1, 2-1, and 3-1 has reached the number of output units and whether or not an overlap area is included.
  • the determination method differs depending on whether an overlap area is included in the start part of each of the division commands 1-1, 2-1, and 3-1 or whether an overlap area is included in the end part. .
  • Second, whether or not an overlap area is included in the start portion can be determined by comparing the accumulated distance when the division command is output with the overlap amount. If the former is larger, it is determined that the overlap area is not included in the division command, while if the latter is larger, it is determined that the overlap instruction is included in the division command.
  • the overlap area is included in the end portion can be determined by comparing the remaining distance when the division command is output with the overlap amount. If the former is larger, it is determined that the overlap area is not included in the division command, while if the latter is larger, it is determined that the overlap instruction is included in the division command.
  • each of the division commands 1-1, 2-1, and 3-1 is output to the parallel command value generation unit 330.
  • the division commands 1-1, 2-1, and 3-1 are stored in the parallel operation unit 320.
  • the division commands 1-2, 2-2, and 3-2 are stored. Are generated sequentially.
  • each of the division commands 1-2, 2-2, and 3-2 is output to the parallel command value generation unit 330. This operation is performed until the division commands 1-3, 2-3 and 3-3 are output to the parallel command value generator 330, and a tool movement command for the execution unit 3 from the execution unit 1 is generated.
  • the parallel operation unit 320 executes the execution unit 6 from the execution unit 4 that is the next execution unit, 4-1, 4-2, 4-3, split commands 5-1, 5-2, 5-3 and split commands 6-1, 6-2, 6-3 are generated.
  • processing contents of the parallel command value generation unit 330 including the same number of command value generation units as the number of operation devices installed in the parallel calculation unit 320 will be described.
  • the processing content of the command value generation unit 330 is also similar to the command value generation unit 130 shown in FIG. That is, the tool movement command is generated by outputting the divided commands except for the overlapping region.
  • the parallel calculation unit 320 outputs the divided command determined as not including the overlap area as it is. Moreover, the said process is performed in the command value production
  • the command value generation device is less susceptible to variations in processing time of the arithmetic device than the command value generation device according to the first embodiment, and generates a tool movement command at high speed. Is possible. Note that, when the above-described method is used to output the division command in a plurality of times in fine units, it is necessary to set the number of output units.
  • the number of output units can be changed at the timing of receiving the output unit number change request signal from the command value generation unit.
  • the number of output units can be changed at the timing of receiving the output unit number change request signal from the command value generation unit.
  • by outputting the output request signal from the command value generation unit at the timing when it is received it is possible to divide and output the division command in a plurality of times without providing the number of output units.
  • the configuration described in Embodiment 3 can be combined with the configuration described in Embodiment 2. That is, as described in the third embodiment, the command value generation device including the parallel command value generation unit may include the servo simulation unit and the machining simulation unit described in the second embodiment.
  • the configuration described in the above embodiment shows an example of the contents of the present invention, and can be combined with another known technique, and can be combined with other configurations without departing from the gist of the present invention. It is also possible to omit or change the part.
  • Command value generator 110, 210, 310 Dividing unit, 120, 220, 320 Parallel computing unit, 121, 122, 123, 221 222, 223, 321, 322, 323 arithmetic unit, 130, 230, 331, 332, 333, command value generation unit, 240 servo simulation unit, 250 machining simulation unit, 330 parallel command value generation unit.

Landscapes

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

Abstract

加工プログラム(10)を複数の実行単位に分割して分割加工プログラムを生成する分割部(110)と、複数の演算装置を有し、実行単位毎に分割加工プログラムを並列して実行し、実行単位毎の工具経路上の補間点群である分割指令を生成する並列演算部(120)と、実行単位毎の分割指令から工具移動指令(11)を生成する指令値生成部(130)とを備え、分割部(110)は、少なくとも1つの分割点前後の分割加工プログラムにおいて、分割点より前にある1つの分割加工プログラムの終了部分、及び分割点より後にある1つの分割加工プログラムの開始部分に対して、予め設定された加速度に基づいて指令速度に到達するまでに移動する加速距離を演算し、分割加工プログラムの分割点におけるオーバラップ量が加速距離以上となるように演算し、分割加工プログラムの開始及び終了部分をオーバラップ量だけ互いにオーバラップさせる指令値生成装置(100)とする。

Description

指令値生成装置
 本発明は、複数の演算装置を有し、複数の演算装置を並列実行することで工具移動指令を生成する指令値生成装置に関する。
 従来、工作機械を用いて被加工物を加工する場合には、CAM(Computer Aided Manufacturing)で加工プログラムを作成することが一般的である。加工プログラムには加工形状の情報、工具の送り速度及び工具の回転数が記述されている。指令値生成装置は、この加工プログラムを読み込み、座標変換、工具長補正、工具径補正及び機械誤差補正といった補正を行うことで工具経路の演算を行う。更に、指令値生成装置は、加減速をはじめとする処理を行い、単位時間毎の工具経路上の指令点である補間点の演算を行う。以下の説明では、単位時間毎の工具経路上の指令点を補間点と称呼し、一連の補間点群を工具移動指令と称呼する。多くの場合、指令値生成装置には数値制御装置(NC:Numerical Control)が用いられる。加工形状が自由曲面を有する場合には、連続した複数の微小な線分で自由曲面を近似した加工プログラムを生成する。加工プログラムを生成する際には、自由曲面をできるだけ正確に表現するために加工プログラムの線分長を短くする必要があるため、加工プログラムの線分長は短くなる傾向にある。加工プログラムの線分長が短くなると、指令値生成装置で処理する線分数が増加するため、工具移動指令の生成に要する時間が増大する。この問題は、自由曲面を有する金型加工及び座標変換を伴う5軸加工において特に顕著である。
 そこで、複数の演算装置により並列して工具移動指令の演算を行うことで高速に工具移動指令を生成する方法が検討されている。従来技術の一例である特許文献1には、加工工程毎に加工プログラムを分割し、複数のプロセッサコアにより並列して工具移動指令の演算を行う技術が開示されている。
特表2014-522529号公報
 しかしながら、上記従来の技術によれば、加工が一旦中断する箇所でしか加工プログラムを分割することができず、複数の演算装置の処理量を均等に分散することができない。そのため、複数の演算装置の処理性能を活用して工具移動指令を高速に生成することができない、という問題があった。
 本発明は、上記に鑑みてなされたものであって、複数の演算装置を活用して、従来よりも高速に工具移動指令を生成する指令値生成装置を得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本発明は、加工プログラムに基づいて工具経路を演算し、工具経路上の単位時間毎の補間点群である工具移動指令を生成する指令値生成装置において、前記加工プログラムを複数の実行単位に分割して分割加工プログラムを生成する分割部と、複数の演算装置を有し、前記実行単位毎に前記分割加工プログラムを並列して実行し、前記実行単位毎の工具経路上の補間点群である分割指令を生成する並列演算部と、前記実行単位毎の前記分割指令から工具移動指令を生成する指令値生成部とを備え、前記加工プログラムの開始から終了へ向かう方向を後、前記加工プログラムの終了から開始へ向かう方向を前とするとき、前記分割部は、少なくとも1つの分割点前後の前記分割加工プログラムにおいて、前記分割点より前にある1つの前記分割加工プログラムの終了部分、及び前記分割点より後にある1つの前記分割加工プログラムの開始部分に対して、予め設定された加速度に基づいて指令速度に到達するまでに移動する加速距離を演算し、前記分割加工プログラムの前記分割点におけるオーバラップ量が前記加速距離以上となるように演算し、前記分割加工プログラムの開始及び終了部分を前記オーバラップ量だけ互いにオーバラップさせることを特徴とする。
 本発明によれば、複数の演算装置を活用して、従来よりも高速に工具移動指令を生成することができるという効果を奏する。
実施の形態1に係る指令値生成装置の構成を示す図 実施の形態1において、図1に示す指令値生成装置におけるデータフローを示す第1図 実施の形態1において、図1に示す指令値生成装置におけるデータフローを示す第2図 実施の形態1において、図1に示す分割部の処理フローを示す図 実施の形態1において、時間を横軸とし、速度を縦軸とした、オーバラップさせない場合の実行単位1及び実行単位2の分割点の前後における挙動を示す図 実施の形態1において、時間を横軸とし、速度を縦軸とした、オーバラップさせる場合の実行単位1及び実行単位2の分割点の前後における挙動を示す図 実施の形態1において、時間を横軸とし、速度を縦軸とした、加速距離Laを示す図 実施の形態1において、時間を横軸とし、速度を縦軸とした、オーバラップ量Loを示す図 実施の形態1において、加工プログラムにおける工具の移動経路の一例を示す図 実施の形態1において、オーバラップ量を考慮した、加工プログラムにおける工具の移動経路の一例を示す第1図 実施の形態1において、オーバラップ量を考慮した、加工プログラムにおける工具の移動経路の一例を示す第2図 実施の形態1において、加工プログラムの一例を示す図 実施の形態1において、分割加工プログラム1を示す図 実施の形態1において、加工モードに関する指令を追記した分割加工プログラム2を示す図 実施の形態1において、加工モードに関する指令を追記した分割加工プログラム3を示す図 実施の形態1において、内回りが生じる、加工プログラムにおける工具の移動経路の一例を示す第1図 実施の形態1において、内回りが生じる、加工プログラムにおける工具の移動経路の一例を示す第2図 実施の形態1において、図1に示す並列演算部における分割加工プログラムの実行タイミングと、図1に示す指令値生成部における一連の工具移動指令の生成タイミングとを示すタイミングチャート 実施の形態1において、分割加工プログラム1及び分割加工プログラム2と、分割指令1及び分割指令2の一例を示す図 実施の形態1において、分割指令が切り替わる点における補間点の間隔の一例を示す図 実施の形態1において、分割指令が切り替わる点において調整された補間点の間隔の一例を示す図 実施の形態1において、加工プログラム形状の一例を示す第1図 実施の形態1において、図22の加工プログラム形状の実行時について、時間を横軸とし、速度を縦軸とし、X軸速度及びY軸速度を示す図 実施の形態1において、図22の加工プログラム形状の実行時について、生成される工具移動指令の一例を示す図 実施の形態1において、図22の加工プログラム形状の実行時における速度波形と、工具経路とを示す図 実施の形態1において、図22の加工プログラム形状の実行時における工具移動指令の一例を示す図 実施の形態1において、加工プログラム形状の一例を示す第2図 実施の形態1において、図27の加工プログラム形状の実行時について、時間を横軸とし、速度を縦軸とし、X軸速度及びY軸速度を示す図 実施の形態1において、図27の加工プログラム形状の実行時について、生成される工具移動指令の一例を示す図 実施の形態1において、図27の加工プログラム形状の実行時における速度波形と、工具経路とを示す図 実施の形態1において、図27の加工プログラム形状の実行時における工具移動指令の一例を示す図 実施の形態2に係る指令値生成装置の構成を示す図 実施の形態2における図32に示す並列演算部における分割加工プログラムの実行タイミングと、図32に示す指令値生成部における一連の工具移動指令の生成タイミングとを示すタイミングチャート 実施の形態3に係る指令値生成装置の構成を示す図 実施の形態1における図1に示す演算装置における分割加工プログラムの実行タイミングと、図1に示す指令値生成部における一連の工具移動指令の生成タイミングとを示すタイミングチャート 実施の形態3における図34に示す演算装置における分割加工プログラムの実行タイミングと、図34に示す指令値生成部における一連の工具移動指令の生成タイミングとを示すタイミングチャート 実施の形態3における図34に示す指令値生成装置におけるデータフローを示す第1図 実施の形態3における図34に示す指令値生成装置におけるデータフローを示す第2図
 以下に、本発明の実施の形態に係る指令値生成装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
 図1は、本発明の実施の形態1に係る指令値生成装置の構成を示す図である。図1に示す指令値生成装置100は、図示しないNC工作機械を制御する数値制御装置である。図1に示す指令値生成装置100は、入力された加工プログラム10に従って、工具経路上の単位時間毎の補間点群である工具移動指令11を出力することで、NC工作機械の被加工物に対する工具の移動を数値制御する。
 指令値生成装置100は、分割部110、並列演算部120及び指令値生成部130を備える。分割部110は、加工プログラム10を実行単位に分割して分割加工プログラムを生成する。並列演算部120は、実行単位毎の加工プログラムに従って実行単位毎の工具移動指令である分割指令を生成する。指令値生成部130は、分割指令から一連の工具移動指令11を生成する。
 ここで、並列演算部120には演算装置121、演算装置122及び演算装置123が設けられている。並列演算部120は、マルチコアCPU(Central Processing Unit)、複数のCPUを備えたパーソナルコンピュータ又は通信回線によって接続されたサーバ若しくはクラウドシステムによって構成されている。なお、通信回線には、ローカルエリアネットワーク及びインターネットを例示することができる。また、図1において、並列演算部120は3つの演算装置を備えるが、本発明はこれに限定されず、並列演算部120が備える演算装置の設置数は1つ以上であればよい。並列演算部120が備える演算装置の設置数を多くすると、工具移動指令11を高速に生成することができるため、高速化の目標値に応じて演算装置の設置数を決めればよい。
 分割部110は、入力された加工プログラム10を複数の実行単位に分割し、実行単位毎に分割加工プログラムを並列演算部120に出力する。
 並列演算部120は、実行単位毎に分割加工プログラムを演算装置121,122,123に割り振る。演算装置121、演算装置122及び演算装置123は、加減速及び座標変換をはじめとする処理を行い、実行単位毎の工具の移動指令である分割指令を順次生成して指令値生成部130に出力する。ここで、演算装置121、演算装置122及び演算装置123は、並列実行されており、1つの実行単位における分割指令の生成が完了すると、次の実行単位における分割指令の生成を開始し、未処理の実行単位がなくなるまで処理を繰り返す。
 指令値生成部130は、実行単位毎の分割指令から一連の工具移動指令11を生成して出力する。なお、指令値生成部130は、単一のCPU、単一のCPUを備えたパーソナルコンピュータ又は通信回線によって接続されたサーバ若しくはクラウドシステムによって構成されている。又は、指令値生成部130は、並列演算部120と同様に、マルチコアCPU、複数のCPUを備えたパーソナルコンピュータ又は通信回線によって接続されたサーバ若しくはクラウドシステムによって構成されていてもよい。
 次に、並列演算の実行順序について更に詳細に説明する。図2は、実施の形態1において、図1に示す指令値生成装置100におけるデータフローを示す第1図である。図2は、並列演算部120の初回実行時のデータフローを示している。
 図3は、実施の形態1において、図1に示す指令値生成装置100におけるデータフローを示す第2図である。図3は、並列演算部120の初回実行が完了し、次の実行単位における加工プログラムの実行時のデータフローを示している。なお、図2及び図3では、分割部110は、加工プログラム10を6個の実行単位、すなわち実行単位1、実行単位2、実行単位3、実行単位4、実行単位5及び実行単位6に分割しているが、本発明はこれに限定されず、分割数は適宜設定することができる。
 図2に示すように、分割部110が加工プログラム10を実行単位1、実行単位2、実行単位3、実行単位4、実行単位5及び実行単位6に分割した場合、並列演算部120は3個の演算装置を備えるため、並列演算部120は、実行単位1、実行単位2、実行単位3を並列実行して分割指令1、分割指令2及び分割指令3を生成する。そして、指令値生成部130は、分割指令1、分割指令2及び分割指令3から実行単位1、実行単位2及び実行単位3に対する工具移動指令を生成する。
 図3に示すように、並列演算部120が実行単位1から実行単位3の実行を完了すると、並列演算部120は、次の実行単位である実行単位4から実行単位6を実行し、分割指令4から分割指令6を生成する。そして、指令値生成部130は、実行単位4から6に対する工具移動指令を生成し、実行単位1から実行単位3に対する工具移動指令と併せて工具移動指令11を生成して出力する。
 なお、未実行の実行単位がある場合には、未実行の実行単位がなくなるまで同様の処理を繰り返す。また、ここで、分割指令1は実行単位1を実行するときの分割指令であり、これは、分割指令2,3,4,5,6についても同様である。
 次に、各構成要素の処理内容について詳細に説明する。図4は、実施の形態1において、図1に示す分割部110の処理フローを示す図である。まず、分割部110は、処理をスタートし、分割数Nを決定する(S1)。ここで、分割数Nは、並列演算部120が備える演算装置の設置数以上とするが、加工プログラムの行数が少ない場合には分割数Nを演算装置の設置数未満としてもよい。実施の形態1では、一例として分割数N=6としている。
 次に、分割部110は、加工プログラム10を分割する分割点を決定する(S2)。加工プログラム10をN個の実行単位に分割する場合には、全ての実行単位の並列演算部120での演算時間を可能な限り均一にする。加工プログラム10の1ブロックあたりの演算時間T(i)はブロックの長さL(i)を指令速度F(i)で割ることにより求められる。従って、加工プログラム10の全体の演算時間Tは下記の式(1)に示すように、1ブロックあたりの演算時間T(i)の全ブロックの総和で表わされる。
Figure JPOXMLDOC01-appb-M000001
 ここで、上記の式(1)中のMは、加工プログラム10のブロック数、すなわち加工プログラム10の行数である。つまり、実行単位1つあたりの演算時間が可能な限り均一となるようにT/Nとなる点を分割点とする。ここで、分割点は加工プログラムのブロック終点と一致しないことが多い。しかしながら、分割点は必ずしもブロック終点に一致する必要はないため、上記の式(1)で演算した点を分割点としてもよいし、上記の式(1)で演算した点に最近接のブロック終点を分割点としてもよい。
 なお、上記の式(1)では、1ブロックあたりの演算時間T(i)は、ブロックの長さL(i)と指令速度F(i)とによって演算されているが、更にパラメータで設定されている機械の許容加速度を用いて加減速及びクランプ速度の影響も考慮して演算時間T(i)を演算することで、分割点を決定してもよい。また、実行単位1つあたりの経路長が可能な限り均一となるように全ブロックの長さの総和Lを分割数Nで除算した長さとなる点を分割点としてもよい。
 次に、分割部110は、実行単位に分割する際のオーバラップ量Loを計算する(S3)。図5は、実施の形態1において、時間を横軸とし、速度を縦軸とした、オーバラップさせない場合の実行単位1及び実行単位2の分割点の前後における挙動を示す図である。図5に示すように、分割点では速度ゼロまで減速するため、分割点の前後において、分割した場合の工具移動指令の経路と分割しなかった場合の工具移動指令の経路とが異なってしまう。図6は、実施の形態1において、時間を横軸とし、速度を縦軸とした、オーバラップさせる場合の実行単位1及び実行単位2の分割点の前後における挙動を示す図である。そこで、分割部110は、図6に示すように、分割単位をオーバラップさせることで、分割点における減速をなくし、分割した場合と分割しなかった場合とで、同一の工具移動指令を生成する。そのため、オーバラップ量Loは、速度ゼロから指令速度Fに到達するまでに移動する距離、すなわち加速距離La以上とすればよい。
 図7は、実施の形態1において、時間を横軸とし、速度を縦軸とした、加速距離Laを示す図である。図8は、実施の形態1において、時間を横軸とし、速度を縦軸とした、オーバラップ量Loを示す図である。図7及び図8において、加速度Aで指令速度Fまで加速し、更に時定数Tsの移動平均フィルタにより滑らかな速度波形を生成する場合には、加速距離Laは、時刻0から時刻(F/A+Ts)までに移動する距離である。図8に示すように、オーバラップ量Loは、加速に必要な加速距離La以上にするため、加速度Aで指令速度Fまで加速した後に、指令速度Fで移動平均フィルタ時定数Ts分だけ移動したときの距離とする。すなわち、オーバラップ量Loは、図8に示す台形の面積であり、下記の式(2)により演算することができる。この台形の上辺の長さはTsであり、下辺の長さは(F/A+Ts)であり、高さはFである。
Figure JPOXMLDOC01-appb-M000002
 次に、分割部110は、S2で決定した分割点で加工プログラム10を実行単位に分割する(S4)。ここで、加工プログラム10の分割の際に、S3で演算したオーバラップ量Loだけオーバラップさせる。
 図9は、実施の形態1において、加工プログラム10における工具の移動経路の一例を示す図である。図9においては、分割点1で2つの実行単位、実行単位1及び実行単位2に分割されている。
 図10は、実施の形態1において、オーバラップ量Loを考慮した、加工プログラムにおける工具の移動経路の一例を示す第1図である。図10に示すように、実行単位1の始点は「加工プログラムの始点」であるが、実行単位1の終点は「分割点1からオーバラップ量Loだけ終点側に移動した点」である。
 図11は、実施の形態1において、オーバラップ量Loを考慮した、加工プログラムにおける工具の移動経路の一例を示す第2図である。図11に示すように、実行単位2の始点は「分割点1からオーバラップ量Loだけ始点側に移動した点」であり、実行単位2の終点は「加工プログラムの終点」である。
 なお、図9から図11では、説明を簡単にするために、分割点はブロック終点と一致させているが、分割点は、必ずしもブロック終点と一致する必要はなく、ブロックの途中であってもよい。
 また、実行単位の始点及び終点もブロックの途中であってもよいし、前述の方法で求めた始点又は終点に最近接のブロック終点を改めて実行単位の始点又は終点としてもよい。
 また、図9から図11では、分割点は1点のみ記載されているが、分割点が複数存在する場合にも同様の方法で分割することができる。
 ここで、実行単位への具体的な分割方法について説明する。実施の形態1においては、加工プログラム10を分割して新たに分割加工プログラムを生成することで実行単位に分割する。ただし、必ずしも分割加工プログラムを生成することを要しない。一例として、加工プログラム10のブロック番号である加工プログラムの1行毎のシリアル番号を指定することで実行単位に分割してもよいし、加工プログラムの分割点に分割の目印となる指令であるGコード又はMコードを挿入してもよい。
 次に、分割部110は、分割加工プログラムの先頭に加工モード指令を追記する(S5)。
 図12は、実施の形態1において、加工プログラムの一例を示す図である。図12に示す加工プログラムには、加工を行うための座標値が1ブロック、すなわち1行毎に記載されている。その他、指令速度であるF指令、早送りであるG0、切削モードであるG1及び工具長補正であるG43といった加工モードに関する指令も加工プログラムに記載されている。図12に示す加工プログラムでは、加工プログラムの先頭で加工モードに関する指令が記述されており、その後、加工を行うための座標値が記述されている。この座標値群を座標値群1と称呼する。更にその後、再度加工モードに関する指令があり、加工を行うための座標値が記述されている。この座標値群を座標値群2と称呼する。
 ここで、座標値群1の途中に分割点1が存在し、座標値群2の途中に分割点2が存在する場合の分割加工プログラムについて説明する。この場合には、3つの分割加工プログラム、すなわち加工プログラムの先頭から分割点1までの分割加工プログラム1と、分割点1から分割点2までの分割加工プログラム2と、分割点2から加工プログラム末尾までの分割加工プログラム3とが生成される。ただし、各分割加工プログラムにはオーバラップを付加する。
 図13は、実施の形態1において、分割加工プログラム1を示す図である。図13に示す分割加工プログラム1は、分割点1にオーバラップが付加されて分割されたものである。ここで、分割前の加工プログラムの先頭で加工モードに関する指令が記述されているため、分割加工プログラム1には加工モードに関する指令を追記する必要はない。
 図14は、実施の形態1において、加工モードに関する指令を追記した分割加工プログラム2を示す図である。図14に示す分割加工プログラム2は、分割加工プログラム2の先頭が加工を行うための座標値であり、加工モードに関する指令が記述されていないので、分割加工プログラム2の先頭に必要な加工モードに関する指令が追記されている。ここで、分割加工プログラム2に追記される加工モードに関する指令は、分割前の加工プログラムにおいて、加工プログラムの先頭から分割加工プログラム2の先頭までの間に指令された加工モードに関する指令である。
 図15は、実施の形態1において、加工モードに関する指令を追記した分割加工プログラム3を示す図である。図15に示すように、分割加工プログラム3の先頭にも、分割加工プログラム2と同様に、加工モードに関する指令が追記される。ただし、同一種類の加工モードに関する指令が複数回指令された場合には、最後に指令された指令のみが追記されていればよい。一例として、図12における速度指令、すなわちF指令では、F3000mm/minの指令がされた後で、F5000mm/minの指令があり、その後、分割加工プログラム3の先頭である分割点2からオーバラップ分遡った箇所が存在する。そのため、分割加工プログラム3の先頭以前に指令された最後の速度指令であるF5000mm/minのみ指令すればよい。
 このような加工モードに関する指令の追記は、他にも絶対値指令と相対値指令、工具長補正及び工具径補正といった、一度指令するとそれ以降のブロックでも有効となる指令、すなわちモーダル指令の全てに対して行われる。
 実施の形態1においては分割数N=6であるので、同様に分割加工プログラム4から分割加工プログラム6を生成し、生成された分割加工プログラムを並列演算部120に出力する。
 次に、複数の演算装置を備える並列演算部120の処理内容について説明する。上記したように、図1に示す並列演算部120は、演算装置121、演算装置122及び演算装置123を備える。なお、演算装置121、演算装置122及び演算装置123は、具体的には、プロセッサコア、CPU、ネットワークによって接続されたパーソナルコンピュータ若しくはサーバ又はクラウド上の仮想コンピュータを例示することができる。
 並列演算部120は、分割部110から分割数Nで分割加工プログラムが出力されると、演算装置121、演算装置122及び演算装置123の各々に分割加工プログラムを割り振る。図1に示す並列演算部120は、演算装置121、演算装置122及び演算装置123を備えるため、まず、演算装置121には分割加工プログラム1が割り振られ、演算装置122には分割加工プログラム2が割り振られ、演算装置123には分割加工プログラム3が割り振られる。
 演算装置121、演算装置122及び演算装置123の各々では、数値制御装置と同一の処理を並列して実行し、分割加工プログラムから工具の指令経路である分割指令1、分割指令2及び分割指令3を生成する。ここで、具体的な処理には、予め設定された加速度で加減速するための速度波形を生成する加減速処理、加減速処理により生成した速度波形を滑らかにするスムージング処理及びスムージング処理後速度で移動したときの単位時間毎の工具位置である補間点を演算する補間処理を例示することができる。なお、スムージング処理は、移動平均フィルタ処理とも称呼される。ここでは、単位時間毎の工具位置の点の各々を補間点と称呼し、分割加工プログラムにおける補間点全体を分割指令と称呼する。
 このようにして滑らかに生成された分割指令の経路は、一般的に分割加工プログラムに対して内回りが生じる。なお、内回りが生じる理由は後述する。図16は、実施の形態1において、内回りが生じる、加工プログラムにおける工具の移動経路の一例を示す第1図である。図17は、実施の形態1において、内回りが生じる、加工プログラムにおける工具の移動経路の一例を示す第2図である。そのため、図10,11で示す分割加工プログラムを実行した場合の分割指令は、図16,17に示すように分割加工プログラムの始点及び終点を通り、始点と終点との間は、分割加工プログラムの形状に対して内回りが生じた形状となる。
 なお、始点又は終点の近くでは、加工プログラムを分割したことによる分割指令の内回り量は小さくなる。この内回り量が小さくなる領域を内回り減少領域と称呼する。ここで、内回り量は指令速度によって決まり、内回り減少領域の長さは図7に示す加速距離Laとなる。
 なお、分割部110は、加速距離La以上のオーバラップ量Loを付加して分割している。そのため、分割加工プログラムの各々における内回り減少領域が重なることはなく、加工プログラム形状の全域において、内回り減少領域でない補間点を少なくとも1点は得ることができる。なお、図16,17は、説明のために加工プログラムを2つに分割した場合を示しているが、更に多くに分割した場合も同様である。
 そして、演算装置121、演算装置122及び演算装置123の各々は、分割加工プログラム1、分割加工プログラム2及び分割加工プログラム3を実行し、並列演算部120は、分割指令1、分割指令2及び分割指令3を生成して、分割指令1、分割指令2及び分割指令3を指令値生成部130に出力する。そして、同様に、並列演算部120は、分割加工プログラム4、分割加工プログラム5及び分割加工プログラム6を順次実行し、分割指令4、分割指令5及び分割指令6を指令値生成部130に出力する。この処理を未実行の分割加工プログラムがなくなるまで繰り返す。
 次に、指令値生成部130の処理内容について説明する。指令値生成部130は、演算装置121、演算装置122及び演算装置123の各々から出力される分割指令に基づいて、一連の工具移動指令11を生成する。
 分割部110では分割加工プログラムの各々をオーバラップさせているため、分割指令の各々もオーバラップしている。実施の形態1においては、分割指令のオーバラップしている領域を後述するように除去し、その後、結合することで一連の工具移動指令11を生成する。
 図18は、実施の形態1において図1に示す並列演算部120における分割加工プログラムの実行タイミングと、実施の形態1において図1に示す指令値生成部130における一連の工具移動指令11の生成タイミングとを示すタイミングチャートである。
 上記したように、並列演算部120は、演算装置121で分割加工プログラム1を実行し、演算装置122で分割加工プログラム2を実行し、演算装置123で分割加工プログラム3を実行しつつ、分割指令1、分割指令2及び分割指令3の生成及び出力を開始する。厳密には、分割加工プログラムの実行中には分割指令は完成していないため、分割指令を構成する補間点である単位時間あたりの工具の位置を示す点を順次出力する。
 指令値生成部130は、並列演算部120から分割指令1、分割指令2及び分割指令3が入力されると、分割指令1を出力する。このとき、分割指令2及び分割指令3は、指令値生成装置100内のいずれかの保存領域に保存される。指令値生成部130は、分割指令1の出力が完了すると、後述する、オーバラップしている領域の除去及び分割指令が切り替わる点で生じる急激な補間点間隔変化の調整を行い、分割指令2を出力する。この時、演算装置121では分割加工プログラム1の実行が完了しているため、分割加工プログラム4の実行を開始し、分割指令4を指令値生成部130に出力する。また、並列演算部120は、演算装置122における分割加工プログラム2の実行が完了次第、分割加工プログラム5の実行を開始し、分割指令5を指令値生成部130に出力する。また、並列演算部120は、演算装置123における分割加工プログラム3の実行が完了次第、分割加工プログラム6の実行を開始し、分割指令6を指令値生成部130に出力する。図18では、分割加工プログラム1、分割加工プログラム2及び分割加工プログラム3の実行が同時に完了した状態としているが、本発明はこれに限定されるものではない。
 次に、各分割指令のオーバラップしている領域の除去について、図19を参照して説明する。図19は、実施の形態1において、分割加工プログラム1及び分割加工プログラム2と、分割指令1及び分割指令2の一例を示す図である。図19に示すように、分割加工プログラム1と分割加工プログラム2とは分割点1で分割され、分割加工プログラム1及び分割加工プログラム2は、分割点1を中心にオーバラップ量Loだけオーバラップしている。
 指令値生成部130は、並列演算部120からの分割指令1が入力されると、まず分割指令1を工具移動指令11として出力するが、分割加工プログラム1の分割点1に相当する補間点まで出力を完了すると、分割指令2の出力を開始する。すなわち、分割指令1に対しては、分割加工プログラム1の分割点1から終点に相当する補間点は出力しない。
 また、分割指令2については、分割点1に相当する補間点から出力が開始される。すなわち、分割指令2に対しては、分割加工プログラム2の始点から分割点1に相当する補間点は出力しない。分割点1に相当する補間点から順次出力し、分割点2に相当する補間点まで出力を完了すると、分割指令3を出力し始める。なお、分割点2は、分割加工プログラム2と分割加工プログラム3とを分割する点である。すなわち、分割指令2に対しては、分割加工プログラム2の分割点2から終点に相当する補間点も出力しない。
 また、図示しない分割指令3については、分割点2に相当する補間点から出力が開始される。すなわち、分割指令3に対しては、分割加工プログラム3の始点から分割点2に相当する補間点は出力しない。
 このような処理を順次繰り返し、分割指令6まで出力される。なお、図示していないが分割指令4については、始点及び終点の双方がオーバラップしているので、分割指令4に対しては、分割加工プログラム4の始点から分割点3に相当する補間点は出力されず、分割加工プログラム4の分割点4から終点に相当する補間点も出力されない。分割指令5についても同様であるが、分割指令6については、終点側がオーバラップしていないため、終点まで出力される。
 次に、各分割点に相当する補間点の求め方について説明する。数値制御装置では、滑らかな経路及び速度波形を生成するため、図19に示されるように、各分割指令の経路は各分割加工プログラムの経路を内回る形状となる。すなわち、分割指令の経路の長さと、分割加工プログラムの経路の長さとは異なる。
 移動平均フィルタにより経路を滑らかにする場合、移動平均フィルタ後経路である工具移動指令の経路上の補間点x(n)は、移動平均フィルタ前経路である加工プログラムの経路上の点Xの平均値で表わされるため、下記の式(3)で表わされる。
Figure JPOXMLDOC01-appb-M000003
 ここで、上記の式(3)のnは、始点から終点までの補間点の番号である。また、上記の式(3)のmは、移動平均フィルタの時定数であり、パラメータにより設定される。上記の式(3)から移動平均フィルタ前経路上の点Xを求めると、下記の式(4)のようになる。
Figure JPOXMLDOC01-appb-M000004
 上記の式(4)を用いると、移動平均フィルタ後経路上の補間点xから移動平均フィルタ前経路上の点Xを演算することができる。これにより、移動平均フィルタ前経路における距離を演算することができる。移動平均フィルタ前経路における始点又は終点からの距離がオーバラップ量Loとなる補間点xを、分割点に相当する補間点と定義する。
 なお、実施の形態1では、移動平均フィルタ後経路上の補間点から移動平均フィルタ前経路での距離を演算することで、分割点に相当する補間点を演算しているが、本発明はこれに限定されるものではなく、演算装置121、演算装置122及び演算装置123の各々が、分割点に相当する補間点に適切なフラグを付けて出力する構成としてもよい。
 なお、一般的に、分割点に相当する補間点位置、すなわち分割指令が切り替わる点では補間点の間隔が急峻に変化してしまう。図20は、実施の形態1において、分割指令が切り替わる点における補間点の間隔の一例を示す図である。図20に示すように、分割指令1から分割指令2に切り替わる補間点位置における補間点の間隔は、他の補間点の間隔とは異なる。補間点は単位時間あたりの工具位置を示しており、補間点の間隔は工具速度を示している。すなわち、補間点の間隔が変化すると工具速度が変化してしまい、加工不良の原因となる。
 図21は、実施の形態1において、分割指令が切り替わる点において調整された補間点の間隔の一例を示す図である。指令値生成部130は、図21に示すように、分割指令が切り替わる点においても補間点の間隔が変化しないように補間点の位置を分割指令の経路上で調整する。
 図20に示すように、指令値生成部130が出力する分割指令1の最後の補間点、すなわち、オーバラップした領域でない最後の補間点を補間点1E、指令値生成部130が出力する分割指令2の最初の補間点、すなわち、オーバラップした領域でない最初の補間点を補間点2Sとする。指令値生成部130は、補間点1Eと補間点2Sとの間隔が補間点1Eとその前の補間点との間隔L1と等しくなるように、補間点2Sの位置を分割指令2の経路に沿って調整する。又は、指令値生成部130は、補間点1Eと補間点2Sとの間隔が、補間点1Eと、指令値生成部130から出力されない次の補間点との間隔と等しくなるように補間点2Sの位置を分割指令2の経路に沿って調整してもよい。また、指令値生成部130は、調整後の補間点2Sとその次の補間点との間隔が、調整前の補間点2Sとその次の補間点との間隔L2と等しくなるように補間点2Sの次の補間点の位置を分割指令2の経路に沿って調整する。この処理を順次繰り返すことで、工具移動指令全域において、工具速度の変化のない指令を生成することができるので、加工不良を抑えることができる。
 なお、前述の方法で補間点の位置を調整する場合、分割指令2以降の補間点は全て調整を要する。そこで、許容速度の変化を予め設定しておき、許容速度変化以下の速度変化を許容して補間点の位置を調整することで、徐々に補間点位置の調整を小さくしてもよい。このようにすることで、部分的な調整のみで分割指令の切り替わり点における速度変化を抑制することが可能である。
 以上説明したように、オーバラップした領域を除いて工具移動指令を出力することで、加工プログラムを分割しなかった場合と同一の工具移動指令を出力することが可能である。
 実施の形態1で説明した処理を行うことで、分割に起因する工具移動指令の変化が抑制されるため、あらゆる位置で加工プログラムを分割することが可能となる。これにより、演算装置の計算リソースを効率よく使用することが可能である。なお、実施の形態1は、クラウドをはじめとする演算装置を多数使用できる環境で特に効果が大きい。
 実施の形態1によれば、複数の演算装置を用いて先行して分割指令を生成することができる。従って、線分長が短く処理負荷が重い箇所も先行して分割指令を生成することができるため、適切な演算周期で工具移動指令を演算でき、不要な減速を防止することができる。
 また、実施の形態1では簡単のために分割プログラム数を6個としたが、更に細かく分割することで、複数の演算装置の各々の処理負荷をより分散して不要な減速を防止することが可能である。
 ここで、比較例である従来技術の構成と実施の形態1の構成とを対比して説明する。この比較例によっても、工具移動指令の演算を並列実行することで工具移動指令を生成することは可能である。
 指令値生成装置100は、加工プログラムの複数の線分を先読みし、工作機械が振動しないように経路、速度及び加速度を滑らかにした工具移動指令を生成している。図22は、実施の形態1において、加工プログラム形状の一例を示す第1図である。加工プログラム形状が図22に示すように、XY平面におけるX軸のみの移動からY軸のみの移動となる90°のコーナである場合について説明する。
 図23は、実施の形態1において、図22の加工プログラム形状の実行時について、時間を横軸とし、速度を縦軸とし、X軸速度及びY軸速度を示す図である。指令値生成装置100は、加工プログラムの線分を先読みすることで、図23に示すようにコーナ部においてX軸速度とY軸速度とが重なった滑らかなX軸速度とY軸速度とを演算する。ここで、図23においては加速度までを滑らかにした速度波形を示しているが、本発明はこれに限定されず、速度までを滑らかにした各軸速度としてもよいし、又は加加速度までを滑らかにした各軸速度としてもよい。
 図24は、実施の形態1において、図22の加工プログラム形状の実行時について、生成される工具移動指令の一例を示す図である。指令値生成装置100の先読みによってコーナ部においてX軸速度とY軸速度とが重なり、X軸及びY軸の両方が動作するため、図24に示すように生成される工具移動指令はコーナ部が滑らかな形状となる。
 他方で、図22に示すXY平面における90°のコーナを有する加工プログラムをコーナ部で2つに分割し、分割した加工プログラムについて各々異なる演算装置で工具移動指令を生成した場合について説明する。この場合には、X軸のみの移動と、Y軸のみの移動とを各々異なる演算装置で演算することになる。そのため、X軸速度とY軸速度とは異なる演算装置で演算され、X軸速度とY軸速度とが重なる部分はなく、分割後の加工プログラム形状と工具経路である工具移動指令とは、図25に示すように同一形状となる。図25は、実施の形態1において、図22の加工プログラム形状の実行時における速度波形と、工具経路とを示す図である。これは、本来ならば分割した点の前後の形状がお互いに影響し合った滑らかな経路を生成するはずであるところ、加工プログラムを分割することで、分割した加工プログラムの各々が別々に実行され、分割した点を通る工具移動指令を生成してしまうためである。図26は、実施の形態1において、図22の加工プログラム形状の実行時における工具移動指令の一例を示す図である。この図26に示す工具移動指令に基づいて加工を行うと、コーナ部は滑らかにならず、工具移動指令と加工プログラム形状とは同一形状となり、コーナ部を滑らかにした工具移動指令は生成されない。
 図27は、実施の形態1において、加工プログラム形状の一例を示す第2図である。図27では、加工プログラム形状はXY平面における半円である。円弧形状の場合には、各軸速度は基本的に三角関数に従うが、始点において速度ゼロから加速し、終点に向けて減速して速度ゼロとなる。図28は、実施の形態1において、図27の加工プログラム形状の実行時について、時間を横軸とし、速度を縦軸とし、X軸速度及びY軸速度を示す図である。移動平均フィルタをかけると、図28に示すような滑らかな各軸速度波形を生成することができる。
 図29は、実施の形態1において、図27の加工プログラム形状の実行時について、生成される工具移動指令の一例を示す図である。移動平均フィルタで各軸速度波形に遅れが生じるため、工具移動指令は、図29に示すように、加工プログラムの始点と終点とを通り、始点と終点との間の経路は加工プログラム形状を内回る曲線形状となる。
 他方で、図27に示すXY平面における半円の加工プログラムを半分に分割し、分割した加工プログラムについて各々異なる演算装置で工具移動指令を生成した場合について説明する。この場合も、分割した加工プログラムは別々に実行されるため、分割した点において各軸速度がゼロとなる。そのため、工具経路である工具移動指令は、図30に示すように、始点、終点及び分割した点を通り、各点の間の経路は加工プログラム形状を内回る曲線形状となる。図30は、実施の形態1において、図27の加工プログラム形状の実行時における速度波形と、工具経路とを示す図である。図31は、実施の形態1において、図27の加工プログラム形状の実行時における工具移動指令の一例を示す図である。この工具移動指令に基づいて加工を行うと、図31に示すように、始点、終点及び分割した点を通り、各点の間の経路は加工プログラム形状を内回る曲線形状となる。つまり、分割した点において突起を有する形状に加工されてしまう。
 以上説明したように、加工の途中で分割を行うと、分割した点を通る工具移動指令が生成され、分割しなかった場合の加工プログラムにおける工具移動指令とは異なる工具移動指令が生成されてしまう。このような工具移動指令が生成されると、分割した点で工具移動指令の経路が大きく変化し、加工面に傷が発生するといった加工不良が生じる。
 従って、比較例では、加工工程、例えば、粗加工、中仕上げ及び仕上げ加工の区切りといった加工が一旦中断する箇所においてのみ加工プログラムを分割することができる。
 そのため、加工工程数により分割数が制限されるので、複数の演算装置の活用には改善の余地がある。更に、一連の加工形状を中断することなく加工するような場合には、加工プログラムを分割することができず、工具移動指令は1つの演算装置で生成せざるを得ず、高速化できないという問題があった。
 実施の形態1によれば、一連の加工形状を連続して加工する場合又は加工工程数よりも演算装置の設置数が多い場合においても、複数の演算装置を活用して高速に工具移動指令を生成することができる。
実施の形態2.
 図32は、本発明の実施の形態2に係る指令値生成装置の構成を示す図である。図32に示す指令値生成装置200は、入力された加工プログラム20に従って工具移動指令を生成した場合の被加工物の加工後形状をシミュレーションすることができる。なお、実施の形態2において、実施の形態1と同様の構成については実施の形態1の説明を援用し、重複する説明を省略するものとする。
 従来の加工シミュレーションの多くは加工プログラム形状に基づいて被加工物の加工後形状をシミュレーションしている。しかしながら、実際の加工では、加工プログラムに様々な補正を加えた工具移動指令に基づいて加工を行う。ここで、加工プログラムに加える補正は、加減速、工具補正又は座標変換である。この補正により被加工物に傷が発生するといった加工不良が発生することもあるにも関わらず、加工プログラム形状に基づいて加工後形状をシミュレーションしても、このような加工不良はシミュレーションされない。実施の形態2では、工具移動指令から得られたサーボ応答に基づいて被加工物の加工後形状をシミュレーションするため、加減速、工具補正又は座標変換の補正に起因する傷をシミュレーションすることも可能である。
 指令値生成装置200は、分割部210、並列演算部220、指令値生成部230、サーボシミュレーション部240及び加工シミュレーション部250を備える。分割部210は、加工プログラム20を実行単位に分割する。並列演算部220は、実行単位毎の加工プログラムに従って実行単位毎の工具移動指令である分割指令を生成する。指令値生成部230は、分割指令から一連の工具移動指令を生成する。サーボシミュレーション部240は、工具移動指令が入力された場合の図示しない工作機械のサーボ系の動作をシミュレーションしてサーボ応答を生成する。加工シミュレーション部250は、サーボ応答に基づいて被加工物の加工形状をシミュレーションする。また、サーボシミュレーション部240を省略し、工具移動指令又は分割指令に基づいて加工シミュレーションを行ってもよい。
 ここで、並列演算部220には演算装置221,222,223が設けられている。並列演算部220は、マルチコアCPU、複数のCPUを備えたパーソナルコンピュータ又は通信回線によって接続されたサーバ若しくはクラウドシステムによって構成されている。また、図32において、並列演算部220は3つの演算装置を備えるが、本発明はこれに限定されず、並列演算部220が備える演算装置の設置数は1つ以上であればよい。並列演算部220が備える演算装置の設置数を多くすると、工具移動指令を高速に生成することができ、高速化の目標値に応じて演算装置の設置数を決めればよい。
 分割部210は、入力された加工プログラム20を複数の実行単位に分割し、実行単位毎に分割加工プログラムを並列演算部220に出力する。
 並列演算部220は、実行単位毎に分割加工プログラムを演算装置221,222,223に割り振る。演算装置221、演算装置222及び演算装置223は、加減速及び座標変換の処理を行い、実行単位毎の工具の移動指令である分割指令を順次生成して指令値生成部230に出力する。ここで、演算装置221、演算装置222及び演算装置223は、並列実行されており、1つの実行単位における分割指令の生成が完了すると、次の実行単位における分割指令の生成を開始し、未処理の実行単位がなくなるまで処理を繰り返す。
 指令値生成部230は、実行単位毎の分割指令から一連の工具移動指令を生成してサーボシミュレーション部240に出力する。なお、指令値生成部230は、単一のCPU、単一のCPUを備えたパーソナルコンピュータ又は通信回線によって接続されたサーバ若しくはクラウドシステムによって構成されている。又は、指令値生成部230は、並列演算部220と同様に、マルチコアCPU、複数のCPUを備えたパーソナルコンピュータ又は通信回線によって接続されたサーバ若しくはクラウドシステムによって構成されていてもよい。
 サーボシミュレーション部240は、予め設定されたサーボモデルを用いて工具移動指令からサーボ応答を推定し、加工シミュレーション部250に出力する。加工シミュレーション部250は、サーボシミュレーション部240からのサーボ応答に基づいて工作機械が動作した場合の被加工物の加工形状をシミュレーションし、図示しない出力装置に出力する。ここで、出力装置にはディスプレイを例示することができる。
 次に、各構成要素の処理内容について詳細に説明する。なお、分割部210及び並列演算部220の処理内容は、実施の形態1の分割部110及び並列演算部120と同様であるため省略する。
 指令値生成部230の処理内容も実施の形態1の指令値生成部130と類似している。すなわち、各分割指令のオーバラップした領域を除いて、先頭の分割指令から順に出力することで、一連の工具移動指令を生成する。ただし、指令値生成部230の出力より後段の処理が、工具移動指令の順序を問わない用途の場合には、図33に示すように、各分割指令の生成が開始され次第、各分割指令のオーバラップした領域を削除して並列して分割指令を出力してもよい。図33は、実施の形態2における図32に示す並列演算部220における分割加工プログラムの実行タイミングと、図32に示す指令値生成部230における一連の工具移動指令の生成タイミングとを示すタイミングチャートである。
 一例として、指令値生成部230の出力より後段の処理が、加工シミュレーション部250のみである場合について説明する。加工シミュレーション部250は、工具移動指令の順序を問わない。すなわち、並列演算部220で生成した分割指令を他の順番で加工シミュレーションしても最終的な加工シミュレーション結果は同じ結果となる。この場合には、指令値生成部230では、分割指令を分割した順序に整列させるのではなく、並列して出力し、後の処理である加工シミュレーションも並列して処理した方が演算効率がよい。
 サーボシミュレーション部240は、制御対象である図示しない工作機械の挙動を計算機上で模擬する。サーボシミュレーション部240は、具体的には、工作機械の慣性、粘性及び弾性のパラメータと、慣性、粘性及び弾性に起因する共振周波数又は反共振周波数と、軸反転時のバックラッシ又はロストモーションのパラメータと、熱変位のパラメータと、加工時の反力に起因する変位量のパラメータとを予め設定し、制御対象の挙動を模擬するためのサーボモデルを構築する。サーボシミュレーション部240は、構築したサーボモデルを用いて工具移動指令から実際の工作機械の動作であるサーボ応答を生成し、加工シミュレーション部250に出力する。なお、サーボ応答の経路及び速度波形を出力装置であるディスプレイに表示してもよい。
 加工シミュレーション部250は、サーボシミュレーション部240により生成されたサーボ応答に基づいて工作機械の工具を動作させたときの被加工物の加工形状をシミュレーションし、加工シミュレーション結果を出力装置に出力する。すなわち、加工シミュレーション部250は、加工シミュレーション結果をディスプレイに表示する。なお、実施の形態2の指令値生成装置200は、サーボシミュレーション部240を備え、サーボ応答に基づいて加工シミュレーション部250が加工シミュレーションを行うが、サーボシミュレーション部240を省略し、工具移動指令又は分割指令に基づいて加工シミュレーションを行ってもよい。
 加工シミュレーション部250では、工具がサーボ応答に沿って動作するときの容積である掃引容積が演算される。この掃引容積によって横切られる被加工物の部分を除去することで被加工物の最終的な加工結果をシミュレーションすることができる。
 実施の形態2で説明した処理を行うことで、工具移動指令に基づいたサーボシミュレーション又は加工シミュレーションを高速に行うことが可能となる。これにより、1つの演算装置を用いたシステムでは実加工に匹敵する時間を要していたシミュレーションを短時間で行うことができ、工作機械の調整作業であるパラメータ調整に要する工数を削減することが可能である。特に、加工シミュレーションの工具移動指令の順序を問わない場合には、並列演算部220で分割指令の生成の完了と工具移動指令の生成の完了との間にタイムラグが生じにくい。そのため、1つの演算装置で工具移動指令を生成した場合と比較すると「1/演算装置の設置数」の時間で工具移動指令を生成することができる。
実施の形態3.
 図34は、本発明の実施の形態3に係る指令値生成装置の構成を示す図である。図34に示す指令値生成装置300は、図1に示す指令値生成装置100と同様に高速で指令値を生成することが可能な構成であり、図34に示す指令値生成装置300は、図1に示す指令値生成装置100と2つの点で相違する。第1点目は、指令値生成部130に代えて、並列指令値生成部330を備え、複数の演算装置の各々に対して指令値生成部が各々設けられており、指令値生成処理を並列で行う点である。並列指令値生成部330は、指令値生成部331,332,333を備える。なお、実施の形態3において、実施の形態1,2と同様の構成については実施の形態1,2の説明を援用し、重複する説明を省略するものとする。
 図35は、実施の形態1における図1に示す演算装置121,122,123における分割加工プログラムの実行タイミングと、図1に示す指令値生成部130における一連の工具移動指令の生成タイミングとを示すタイミングチャートである。図36は、実施の形態3における図34に示す演算装置321,322,323における分割加工プログラムの実行タイミングと、図34に示す指令値生成部331,332,333における一連の工具移動指令の生成タイミングとを示すタイミングチャートである。図35及び図36には、各演算装置の演算時間にばらつきがある場合のタイミングチャートが示されており、図35は比較のために示すものである。
 図35においては、演算装置121,122,123の各々における処理が終わり次第、分割指令1,2,3,4,5,6を指令値生成部130に出力する。しかしながら、指令値生成部130では、分割指令1,2,3,4,5,6をこの順で処理するため、演算装置121の演算時間が演算装置122,123の演算時間に比してばらつきがある場合には、演算装置122,123の演算が完了しているにもかかわらず、演算装置121の処理が完了するまで、指令値生成部130は、分割指令2,3の処理を開始することができない。また、分割指令4,5,6の処理についても同様に、分割指令4の処理が完了するまで、指令値生成部130において分割指令5,6の処理を開始することができない。その結果、工具移動指令の生成が遅れるため、指令値生成装置100の全体の処理速度が演算装置の演算時間のばらつきに起因して低下することになる。
 一方、図34に示す指令値生成装置300では、演算装置ごとに独立した指令値生成処理が可能であるため、演算装置321の分割指令1の処理が完了していなくても、演算装置322,323の処理が完了していれば、分割指令2,3の処理を開始することができる。
 図34に示す構成とすることで、並列演算部320内の各演算装置の演算時間にばらつきがあっても、分割指令の生成の完了と工具移動指令の生成の完了との間にタイムラグが生じにくく、演算装置の演算時間のばらつきによる速度低下が小さくなる。
 第2点目は、各演算装置における処理が途中の段階であっても、その時点までに生成された各分割指令を出力する点、言い換えると分割指令を細かい単位で複数回に分けて出力する点である。
 図34に示す構成とすることで、並列演算部320の処理と同時並行で並列指令値生成部330の処理、図示しないNC工作機械の処理又は加工シミュレーションの処理を行うことができる。そのため、リアルタイム性を重視する場合、又はNC工作機械若しくは加工シミュレーションをより高速に行いたい場合には最適である。
 図34に示す指令値生成装置300は、分割部310、並列演算部320及び並列指令値生成部330を備え、入力された加工プログラム30に従って、工具経路上の単位時間毎の補間点群である工具移動指令31を出力することで、NC工作機械の被加工物に対する工具の移動を数値制御する。分割部310は、加工プログラム30を実行単位に分割して分割加工プログラムを生成する。並列演算部320は、実行単位毎の加工プログラムに従って実行単位毎の工具移動指令である分割指令を生成する。並列指令値生成部330は、分割指令から工具移動指令を生成する。
 ここで、並列演算部320には、演算装置321,322,323が設けられている。また、並列指令値生成部330には、指令値生成部331,332,333が設けられている。並列演算部320及び並列指令値生成部330は、マルチコアCPU、複数のCPUを備えたパーソナルコンピュータ又は通信回線によって接続されたサーバ若しくはクラウドシステムによって構成されている。また、図34において、並列演算部320は3つの演算装置を備えるが、本発明はこれに限定されず、並列演算部320が備える演算装置の設置数は1つ以上であればよい。並列指令値生成部330においても指令値生成部の数は、並列演算部320が備える演算装置の設置数と等しくすればよい。並列演算部320が備える演算装置の設置数を多くすると、工具移動指令を高速に生成することができ、高速化の目標値に応じて演算装置の設置数を決めればよい。
 次に、各構成要素の処理内容について詳細に説明する。なお、分割部310の処理内容は、図1に示す分割部110と同じであるため説明を省略する。並列演算部320の処理内容は、実施の形態1と類似し、数値制御装置と同一の処理を並列して実行し、分割加工プログラムから工具の指令経路である分割指令を生成する。実施の形態3では、各演算装置における処理が途中の段階であっても、その時点までに生成された各分割指令を、細かい単位で複数回に分けて出力することができる。この、分割指令よりも細かい単位を出力単位数と称呼する。なお、出力単位数は適宜設定することが可能である。
 ここで、分割数N=6とし、出力単位数を各分割指令の3等分となるように設定したとする。図37は、実施の形態3における図34に示す指令値生成装置300におけるデータフローを示す第1図である。図38は、実施の形態3における図34に示す指令値生成装置300におけるデータフローを示す第2図である。図37は、並列演算部320の初回実行時のデータフローを示し、図38は、並列演算部320の初回実行が完了し、次の実行単位における加工プログラムの実行時のデータフローを示している。
 なお、図37及び図38では、分割部310は、加工プログラム30を6個の実行単位、すなわち実行単位1,2,3,4,5,6に分割し、さらに実行単位毎の分割指令を3等分に細かく分けて出力しているが、本発明はこれに限定されず、分割数及び出力単位数は適宜設定することができる。
 図37に示すように、分割部310が加工プログラム30を実行単位1,2,3,4,5,6に分割した場合には、3個の演算装置を備える並列演算部320は、実行単位1,2,3を並列実行して、分割指令1-1,1-2,1-3、分割指令2-1,2-2,2-3及び分割指令3-1,3-2,3-3を生成する。そして、並列指令値生成部330は、分割指令1-1,1-2,1-3、分割指令2-1,2-2,2-3及び分割指令3-1,3-2,3-3から実行単位1から実行単位3に対する工具移動指令を生成する。
 まず、数値制御装置と同一の処理を実行し、単位時間毎の補間点群の集合である分割指令1-1,2-1,3-1が生成されていく。ここで、具体的な処理には、予め設定された加速度で加減速するための速度波形を生成する加減速処理、加減速処理により生成した速度波形を滑らかにするスムージング処理及びスムージング処理後速度で移動したときの単位時間毎の工具位置である補間点を演算する補間処理を例示することができる。これと同時に、分割指令1-1,2-1,3-1の補間点数を計算していく。
 その後、分割指令1-1,2-1,3-1の各々が、出力単位数に達したか否か及びオーバラップ領域が含まれているか否かを判定する。これは、分割指令1-1,2-1,3-1の各々の開始部分にオーバラップ領域が含まれているか、又は終了部分にオーバラップ領域が含まれているか否かにより判定手法が異なる。
 まず、開始部分にオーバラップ領域が含まれているか否かは、分割指令を出力した際の累積距離とオーバラップ量とを比較して、その大小で判定することができる。前者の方が大きい場合、分割指令にはオーバラップ領域は含まれていないと判定し、一方で、後者の方が大きい場合、分割指令にはオーバラップ領域が含まれていると判定する。
 次に、終了部分にオーバラップ領域が含まれているか否かは、分割指令を出力した際の残距離とオーバラップ量とを比較して、その大小で判定することができる。前者の方が大きい場合、分割指令にはオーバラップ領域は含まれていないと判定し、一方で、後者の方が大きい場合、分割指令にはオーバラップ領域が含まれていると判定する。
 上記の条件を満たしたとき、分割指令1-1,2-1,3-1の各々が並列指令値生成部330へ出力される。なお、上記の条件を満たすまで、分割指令1-1,2-1,3-1は、並列演算部320内で保存されるが、その間、分割指令1-2,2-2,3-2の生成は逐次行われていく。
 これと同時に、分割指令1-2,2-2,3-2の各々の補間点数を計算していき、分割指令1-1,2-1,3-1の各々に対して出力単位数に達したか否か及びオーバラップ領域が含まれているか否かを再び判定した後、分割指令1-2,2-2,3-2の各々を並列指令値生成部330へ出力する。この作業を分割指令1-3,2-3,3-3が並列指令値生成部330へ出力されるまで行い、実行単位1から実行単位3に対する工具移動指令を生成する。
 図38に示すように、並列演算部320が実行単位1から実行単位3の実行を完了すると、並列演算部320は、次の実行単位である実行単位4から実行単位6を実行し、分割指令4-1,4-2,4-3、分割指令5-1,5-2,5-3及び分割指令6-1,6-2,6-3を生成する。
 次に、並列演算部320の演算装置の設置数と同数の指令値生成部を備える並列指令値生成部330の処理内容について説明する。指令値生成部330の処理内容も、図1に示す指令値生成部130と類似する。すなわち、各分割指令のオーバラップした領域を除いて出力することで、工具移動指令を生成する。
 ただし、並列演算部320において、オーバラップ領域が含まれていないと判定された分割指令に対してはそのまま出力される。また、上記処理は、各演算装置に対応した指令値生成部にて行う。このようにして、分割指令が生成された演算装置から順次、指令値生成の処理を行うことができるため、各演算装置の処理時間にばらつきがあっても、指令値生成装置全体の速度低下を抑えることができる。
 以上、実施の形態3で説明した処理を行うことで、各演算装置の処理時間のばらつきに起因する指令値生成装置全体の速度低下の影響を最小限に抑えることができる。また、並列演算部320で分割指令の生成の完了と工具移動指令の生成の完了との間にタイムラグが生じにくい。そのため、実施の形態3に係る指令値生成装置は、実施の形態1に係る指令値生成装置よりも演算装置の処理時間のばらつきの影響を受けにくく、また、高速で工具移動指令を生成することが可能である。なお、前述の方法を用いて、分割指令を細かい単位で複数回に分けて出力する場合、出力単位数を設定する必要がある。しかしながら、指令値生成部からの出力単位数変更要求信号を受け取ったタイミングで出力単位数を変更することもできる。又は、指令値生成部からの出力要求信号を受け取ったタイミングで出力することで、出力単位数を設けずに、分割指令を細かい単位で複数回に分けて出力することも可能である。
 以上、実施の形態3にて説明した構成は実施の形態2にて説明した構成と組み合わせることも可能である。すなわち、実施の形態3にて説明したように並列指令値生成部を備える指令値生成装置が、実施の形態2にて説明したサーボシミュレーション部及び加工シミュレーション部を備えていてもよい。
 以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
 10,20,30 加工プログラム、11,31 工具移動指令、100,200,300 指令値生成装置、110,210,310 分割部、120,220,320 並列演算部、121,122,123,221,222,223,321,322,323 演算装置、130,230,331,332,333 指令値生成部、240 サーボシミュレーション部、250 加工シミュレーション部、330 並列指令値生成部。

Claims (10)

  1.  加工プログラムに基づいて工具経路を演算し、工具経路上の単位時間毎の補間点群である工具移動指令を生成する指令値生成装置において、
     前記加工プログラムを複数の実行単位に分割して分割加工プログラムを生成する分割部と、
     複数の演算装置を有し、前記実行単位毎に前記分割加工プログラムを並列して実行し、前記実行単位毎の工具経路上の補間点群である分割指令を生成する並列演算部と、
     前記実行単位毎の前記分割指令から工具移動指令を生成する指令値生成部とを備え、
     前記加工プログラムの開始から終了へ向かう方向を後、前記加工プログラムの終了から開始へ向かう方向を前とするとき、
     前記分割部は、少なくとも1つの分割点前後の前記分割加工プログラムにおいて、前記分割点より前にある1つの前記分割加工プログラムの終了部分、及び前記分割点より後にある1つの前記分割加工プログラムの開始部分に対して、予め設定された加速度に基づいて指令速度に到達するまでに移動する加速距離を演算し、前記分割加工プログラムの前記分割点におけるオーバラップ量が前記加速距離以上となるように演算し、前記分割加工プログラムの開始及び終了部分を前記オーバラップ量だけ互いにオーバラップさせることを特徴とする指令値生成装置。
  2.  前記指令値生成部は、前記実行単位毎の前記分割指令からオーバラップした部分を削除することを特徴とする請求項1に記載の指令値生成装置。
  3.  前記分割部は、前記加工プログラムを前記並列演算部の演算装置の設置数以上の実行単位に分割することを特徴とする請求項1に記載の指令値生成装置。
  4.  前記分割部は、前記実行単位毎の前記分割指令の演算時間又は前記加工プログラムの前記実行単位毎の経路長を等しくすることを特徴とする請求項1に記載の指令値生成装置。
  5.  前記工具移動指令に基づいて被加工物の加工形状をシミュレーションする加工シミュレーション部を備えることを特徴とする請求項1に記載の指令値生成装置。
  6.  予め設定されたサーボモデルに基づいて、前記工具移動指令からサーボ応答を推定するサーボシミュレーション部を備えることを特徴とする請求項1に記載の指令値生成装置。
  7.  前記並列演算部は、マルチコアCPU、複数のCPUを備えたパーソナルコンピュータ又は通信回線によって接続されたサーバ若しくはクラウドシステムによって構成されていることを特徴とする請求項1に記載の指令値生成装置。
  8.  前記指令値生成部は、前記分割指令が切り替わる箇所で生じた補間点間隔を修正するために、補間点の位置を分割指令の経路上で調整することを特徴とする請求項1に記載の指令値生成装置。
  9.  前記指令値生成部は、前記実行単位毎に並列して前記分割指令からオーバラップした部分を削除することを特徴とする請求項1に記載の指令値生成装置。
  10.  前記並列演算部は、前記分割指令を細かい単位で複数回に分けて出力することを特徴とする請求項1に記載の指令値生成装置。
PCT/JP2017/005770 2016-09-02 2017-02-16 指令値生成装置 WO2018042704A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201780050738.0A CN109643102B (zh) 2016-09-02 2017-02-16 指令值生成装置
US16/319,585 US11327466B2 (en) 2016-09-02 2017-02-16 Command-value generation apparatus
DE112017004424.3T DE112017004424T5 (de) 2016-09-02 2017-02-16 Befehlswerterzeugungsvorrichtung
JP2018536908A JP6548830B2 (ja) 2016-09-02 2017-02-16 指令値生成装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016172161 2016-09-02
JP2016-172161 2016-09-02

Publications (1)

Publication Number Publication Date
WO2018042704A1 true WO2018042704A1 (ja) 2018-03-08

Family

ID=61301780

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/005770 WO2018042704A1 (ja) 2016-09-02 2017-02-16 指令値生成装置

Country Status (5)

Country Link
US (1) US11327466B2 (ja)
JP (1) JP6548830B2 (ja)
CN (1) CN109643102B (ja)
DE (1) DE112017004424T5 (ja)
WO (1) WO2018042704A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019152936A (ja) * 2018-02-28 2019-09-12 ファナック株式会社 工作機械の加工シミュレーション装置
WO2020035975A1 (ja) * 2018-08-17 2020-02-20 三菱電機株式会社 数値制御装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6871207B2 (ja) * 2018-09-05 2021-05-12 ファナック株式会社 加工時間予測装置
JP7010877B2 (ja) * 2019-04-25 2022-01-26 ファナック株式会社 機械学習装置、数値制御システム及び機械学習方法
CN114341752B (zh) * 2019-09-02 2023-06-13 山崎马扎克公司 控制装置、机床、修正系数算出方法和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11114858A (ja) * 1997-10-07 1999-04-27 Toyoda Mach Works Ltd 軌跡制御方法および軌跡制御装置
JP2001117617A (ja) * 1999-10-22 2001-04-27 Okuma Corp 数値制御装置
JP5165159B2 (ja) * 2010-07-02 2013-03-21 三菱電機株式会社 数値制御プログラミング方法、数値制御プログラミング装置、プログラム、及び数値制御装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001075538A1 (fr) 2000-03-31 2001-10-11 Incs Inc. Dispositif, procede et programme de generation de donnees
CN102473007B (zh) 2009-07-06 2014-07-30 三菱电机株式会社 数控编程方法及其装置
CN101615022B (zh) * 2009-07-21 2010-12-08 中国科学院数学与系统科学研究院 基于曲面重构的三轴数控机床刀具的半径补偿方法
JP5149421B2 (ja) * 2011-05-20 2013-02-20 ファナック株式会社 加工時間予測部および加工誤差予測部を有する数値制御装置
DE102011105141A1 (de) 2011-06-09 2012-12-13 Dmg Electronics Gmbh Verfahren und system zur simulation eines arbeitsprozesses an einer werkzeugmaschine
JP5417392B2 (ja) * 2011-07-29 2014-02-12 新日本工機株式会社 数値制御装置
JP5192574B2 (ja) * 2011-08-25 2013-05-08 ファナック株式会社 工具先端点の加速度または加加速度の表示部を備えた工具軌跡表示装置
CN106233213B (zh) * 2014-04-16 2018-12-21 三菱电机株式会社 指令值生成装置
JP6081954B2 (ja) * 2014-04-24 2017-02-15 ファナック株式会社 工作機械の反転動作を高速化する数値制御装置
JP6257796B2 (ja) * 2014-10-29 2018-01-10 株式会社牧野フライス製作所 工具経路の生成方法および工作機械

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11114858A (ja) * 1997-10-07 1999-04-27 Toyoda Mach Works Ltd 軌跡制御方法および軌跡制御装置
JP2001117617A (ja) * 1999-10-22 2001-04-27 Okuma Corp 数値制御装置
JP5165159B2 (ja) * 2010-07-02 2013-03-21 三菱電機株式会社 数値制御プログラミング方法、数値制御プログラミング装置、プログラム、及び数値制御装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019152936A (ja) * 2018-02-28 2019-09-12 ファナック株式会社 工作機械の加工シミュレーション装置
WO2020035975A1 (ja) * 2018-08-17 2020-02-20 三菱電機株式会社 数値制御装置
JPWO2020035975A1 (ja) * 2018-08-17 2021-01-07 三菱電機株式会社 数値制御装置
CN112567304A (zh) * 2018-08-17 2021-03-26 三菱电机株式会社 数控装置
CN112567304B (zh) * 2018-08-17 2023-09-19 三菱电机株式会社 数控装置

Also Published As

Publication number Publication date
JP6548830B2 (ja) 2019-07-24
US11327466B2 (en) 2022-05-10
JPWO2018042704A1 (ja) 2019-01-17
CN109643102A (zh) 2019-04-16
DE112017004424T5 (de) 2019-06-19
CN109643102B (zh) 2021-10-01
US20200183359A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
JP6548830B2 (ja) 指令値生成装置
JP6257796B2 (ja) 工具経路の生成方法および工作機械
JP5762625B2 (ja) 軌跡制御装置
JP2929996B2 (ja) 工具点列発生方法
JP6410826B2 (ja) 数値制御装置
JP2001092516A (ja) 数値制御曲面加工装置
JP6151669B2 (ja) 加工プログラム指令内容に応じてcpu負荷を分散可能な数値制御装置
CN107340732B (zh) 伺服控制装置以及伺服控制方法
JP7473321B2 (ja) シミュレーション装置、数値制御装置、及びシミュレーション方法
CN105629882A (zh) 一种用于样条插补的三角函数速度规划方法
JP2018073097A (ja) 工具経路生成装置、工具経路生成方法及び工具経路生成プログラム
US10139803B2 (en) Instruction value generation device
Hayasaka et al. A lightweight interpolation algorithm for short-segmented machining tool paths to realize vibration avoidance, high accuracy, and short machining time
JP2020077311A (ja) 数値制御装置、加工経路設定方法及びプログラム
JP5573664B2 (ja) 数値制御装置、移動制御方法、移動制御プログラム及び記憶媒体
JP2008046913A (ja) 工作機械の数値制御装置
JP2006227701A (ja) 円弧加工指令作成装置及びその方法並びにプログラム
JP6219866B2 (ja) 表示機能付き数値制御装置および表示プログラム
JP6823032B2 (ja) プログラム修正装置
JP2018533127A (ja) 移動プロファイルを提供するための方法、制御装置、機械、およびコンピュータプログラム
CN108628255B (zh) 一种指令点纠正平滑处理方法
WO2014050246A1 (ja) 加工システム及び数値制御データ生成装置及び数値制御データ生成方法
JP6000496B1 (ja) 数値制御装置
JP2001154719A (ja) 自由曲線補間方法
JP6124721B2 (ja) 数値制御装置および数値制御方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018536908

Country of ref document: JP

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

Ref document number: 17845715

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17845715

Country of ref document: EP

Kind code of ref document: A1