Control unit, control system and program
The control apparatus addresses interference issues in numerical control systems by calculating and selecting optimal angular combinations for tool orientation, ensuring safe and accurate machining on inclined surfaces.
Patent Information
- Application Number
- DE112022007185
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-08-03
- Publication Date
- 2025-04-30
AI Technical Summary
Existing numerical control systems face interference issues between tools and other objects when changing the direction of the tool with respect to an inclined surface during machining operations.
A control apparatus comprising a calculation unit, a selection unit, a control unit, and a determination unit, which calculates and selects optimal angular combinations for the tool's orientation to prevent interference with other objects.
The solution effectively prevents interference between the tool and other objects, ensuring safe and accurate machining operations on inclined surfaces.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical area
[0001] The present invention relates to a control device, a control system and a program. State of the art
[0002] When machining shapes such as holes or pockets in an inclined surface of a workpiece with a machine tool, a program similar to the program used for the XY plane is desirable to be used for machining.
[0003] Techniques for performing such machining include a technique that allows a numerical control to define an inclined surface (indexing of the tilted work plane (G68.2)) and a technique that allows the tool to be oriented perpendicular to the inclined surface (direction control of the tool axis (G53.1)).
[0004] For a machine tool with two rotary axes that can change the direction of the tool, there are two sets of angle combinations for the two rotary axes where the tool is perpendicular to the inclined surface. Conventional numerical control systems select the one with the smaller amount of movement of the rotary axes from these two sets. Citation listPatent document
[0005] Patent Document 1: PCT International Publication No. WO2011 / 117915 Disclosure of the inventionProblems to be solved by the invention
[0006] However, the angle combination selected by the numerical control units may cause interference between the tool and other objects such as workpieces or assembly racks.
[0007] An object to be achieved by the embodiments of the present invention is to provide a control device, a control system and a program capable of preventing interference between the tool and other objects when the direction of the tool is changed with respect to the inclined surface. Means to solve the problems
[0008] The control device of the embodiment includes a calculation unit, a selection unit, a control unit, and a determination unit. The calculation unit calculates a plurality of angle combinations for the plurality of rotation axes capable of changing the orientation of the tool so that the tool forms a predetermined angle with a plane. The selection unit selects one combination from the plurality of angle combinations calculated by the calculation unit. The control unit controls the plurality of rotation axes to change the orientation of the tool oriented in a predetermined orientation so that the tool forms a predetermined angle with the plane, and operates the plurality of rotation axes so that the angle combination for the plurality of rotation axes becomes the combination selected by the selection unit.The determination unit determines a combination to be used for actual operation from the plurality of angle combinations calculated by the calculation unit. Effects of the invention
[0009] The present invention is capable of preventing interference between the tool and other objects when the direction of the tool is changed with respect to an inclined surface. Short description of the drawings Fig. 1 is a block diagram showing an example of the main configuration of a numerical control system according to the first and second embodiments and the components included in the numerical control system; Fig. 2 is a flowchart showing an example of processing by the processor according to the Fig. 1 shows the first and second embodiments; Fig. 3 is a flowchart showing an example of processing by the processor according to the Fig. 1 shows the first embodiment; Fig. 4 is a flowchart showing an example of processing by the processor according to the Fig. 1 shows the first and second embodiments; Fig. 5 is a diagram showing a first example of the state of the tool and spindle when the tool is moved perpendicular to the inclined surface of the workpiece; Fig. 6 is a diagram showing a second example of the state of the tool and spindle when the tool is guided perpendicular to the inclined surface of the workpiece; and Fig. 7 is a flowchart showing an example of processing by the processor according to the Fig. 1 shows the second embodiment. Preferred embodiment of the invention
[0010] Numerical control systems according to several embodiments will be described below with reference to the drawings. In the drawings used in the following description of the embodiments, the scales of the respective parts may be changed accordingly. In the drawings used in the following description of the embodiments, configurations may be omitted for descriptive purposes. In the drawings and in the present description, the same reference numerals denote similar elements. [First embodiment]
[0011] Fig. 1 is a block diagram showing an example of the main configuration of the numerical control system 1 according to the first embodiment and the components included in the numerical control system 1. The numerical control system 1 includes, for example, a numerical control device 100 and an industrial machine 200. The numerical control system 1 is an example of a control system.
[0012] The numerical control device 100 is a device that performs numerical control of the industrial machine 200 or the like. The numerical control device 100 includes a function (hereinafter referred to as the "selection function") for selecting and determining the angle combination considered optimal among the possible angle combinations for guiding the tool perpendicular to the inclined surface. The "angle combinations for making the tool perpendicular to the inclined surface" are hereinafter referred to as "angle combinations." The numerical control device 100 may be a server device, a PC, a tablet terminal, or a smartphone. The numerical control device 100 includes, for example, a processor 110, a ROM (Read-Only Memory) 120, a RAM (Random-Access Memory) 130, an auxiliary storage device 140, an input device 150, a display device 160, and a control interface 170.These components are connected to each other via a bus 180 or similar. The numerical control unit 100 is an example of a control unit. The perpendicularity of the tool to the inclined surface is an example of a specified angle in this context.
[0013] The processor 110 is the central part of the computer that performs the necessary calculations and control for the operation of the numerical control device 100 by executing various calculations and processing. The processor 110 can be, for example, a CPU (central processing unit), MPU (microprocessing unit), SoC (system on a chip), DSP (digital signal processor), GPU (graphics processing unit), ASIC (application-specific integrated circuit), PLD (programmable logic unit), or FPGA (field-programmable gate array). Alternatively, the processor 110 can also be a combination of several of these components. The processor 110 can also be combined with hardware accelerators. The processor 110 controls various functions of the numerical control device 100 based on programs such as firmware, system software, application software, and NC (numerical control) programs stored in the ROM 120 or the auxiliary memory 140.The processor 110 executes the processing described later based on these programs. Some or all of these programs may be embedded in the circuitry of the processor 110. The NC program is a program for numerical control of the industrial machine 200.
[0014] By executing the above-mentioned programs, the processor 110 functions as a program analysis unit 111, a position confirmation unit 112, a selection setting unit 113, a candidate selection unit 114, and a motion control unit 115.
[0015] The program analysis unit 111 analyzes the NC program.
[0016] The position confirmation unit 112 selects a set from the possible angle combinations for the multiple rotary axes. The position confirmation unit 112 causes the industrial machine 200 to perform operations to position the tool perpendicular to the inclined surface. The position confirmation unit 112 performs reconfirmation.
[0017] The selection unit 113 determines the angle combination for the multiple rotary axes to be used for the actual operation.
[0018] The candidate selection unit 114 selects a set from the plurality of candidates.
[0019] The motion control unit 115 controls the rotation axes based on the angle combination determined by the selection unit 113.
[0020] Details of the processing by the program analysis unit 111, the position confirmation unit 112, the selection setting unit 113, the candidate selection unit 114, and the motion control unit 115 will be described later.
[0021] ROM 120 and RAM 130 are the main memories of the computer, which is built around processor 110. ROM 120 is a non-volatile memory used exclusively for reading data. ROM 120 stores firmware, including the programs mentioned above. ROM 120 also stores data used by processor 110 for various processing. RAM 130 is a memory used for reading and writing data. RAM 130 is used as a work area for temporarily storing data used by processor 110 when executing various processing operations. RAM 130 is typically a volatile memory.
[0022] The auxiliary storage device 140 is an auxiliary storage device of the computer, arranged around the processor 110. The auxiliary storage device 140 may be, for example, an EEPROM (Electrically Erasable Programmable Read-Only Memory), an HDD (Hard Disk Drive), or a flash memory. The auxiliary storage device 140 stores, for example, system software, application software, and NC programs among the above-mentioned programs. The auxiliary storage device 140 stores data used by the processor 110 when executing various processing, data generated by the processing in the processor 110, and various settings.
[0023] The input device 150 receives inputs from the operator of the numerical control device 100. The input device 150 can be, for example, a keyboard, a keypad, a touchpad, a mouse, or a controller. The input device 150 can also be a voice input device.
[0024] The display device 160 displays screens to communicate various information to the operator of the numerical control device 100. The display device 160 can be, for example, a liquid crystal display or an organic EL (electroluminescence) display. A touch panel can also be used as the input device 150 and the display device 160. That is, the display panel included in the touch panel can be used as the display device 160, and the pointing device for touch input included in the touch panel can be used as the input device 150.
[0025] The control interface 170 is an interface for the numerical control unit 100 to communicate with the industrial machine 200 or the like. The numerical control unit 100 controls the industrial machine 200 or the like via the control interface 170 based on the NC program.
[0026] The bus 180 comprises a control bus, an address bus and a data bus and transmits the signals exchanged between the various parts of the numerical control device 100.
[0027] The industrial machines 200 are machines that operate with numerical control or the like. The industrial machine 200 can be, for example, a machine tool, a manipulator, a robot arm, or a robot. The industrial machine 200 includes, for example, an input device 210, a tool 220, and a spindle 230.
[0028] The input device 210 receives inputs from the operator of the industrial machine 200. The input device 210 can be, for example, a control panel, a keyboard, a keypad, a touchpad, a touch panel, a mouse, or a controller. The input device 210 can also be a voice input device.
[0029] The tool 220 and the spindle 230 are controlled by Fig. 5 described. Fig. 5 is a diagram showing a first example of the state of the tool 220 and the spindle 230 when the tool 220 is oriented perpendicular to the inclined surface 301 of the workpiece 300.
[0030] The tool 220 is a tool, e.g. a drill, that is used for machining the workpiece 300.
[0031] The spindle 230 can fix the tool 220. The spindle 230 can rotate the tool 220, for example, about the central axis of the tool 220.
[0032] The spindle 230 includes a rotation axis 231 and a rotation axis 232. The rotation axis 231 can rotate in the direction of the B-axis. The spindle 230 can change the direction of the tool 220 by rotating the tool 220 in the direction of the B-axis around the rotation axis 231. The rotation axis 232 can rotate in the direction of the C-axis. The spindle 230 can change the direction of the tool 220 by rotating the tool 220 in the C-axis direction around the rotation axis 232. The rotation axes 231 and 232 can typically rotate in both positive and negative directions. The rotation axes 231 and 232 can have limited or unlimited rotation ranges. The spindle 230 can have three or more rotation axes.
[0033] Hereinafter, the operation of the numerical control system 1 according to the first embodiment will be described with reference to FIG. Fig. 2 to 4. The processing details in the following operating descriptions are examples, and various processing methods that can achieve similar results can be used accordingly. Fig. 2 to 4 are flowcharts showing examples of processing by the processor 110 of the numerical control device 100. The processor 110 executes the Fig. 2 to 4 based on programs stored, for example, in the ROM 120 or in the auxiliary storage device 140.
[0034] First, the operation of the numerical control device 100 in the case of executing the selection function with reference to the Fig. 2 and Fig. 3. In step ST11 of Fig. 2, the processor 110 of the numerical control device 100 determines whether to execute the selection function. For example, if the input device 150 or the input device 210 is operated to input a command to execute the selection function, the processor 110 determines that the selection function is being executed. When the input device 210 is operated, the details of the operation are input to the numerical control device 100 via the control interface 170. Alternatively, the processor 110 determines to execute the selection function when a command instructing the execution of the selection function is input from an external device or the like. The processor 110 may also decide to execute the selection function based on a predetermined schedule. If it is determined that the selection function is not to be executed, the processor 110 determines "No" in step ST11 and repeats the processing from step ST11.Conversely, in case of deciding to execute the selection function, the processor 110 determines “Yes” in step ST11 and proceeds to step ST12.
[0035] In step ST12, the processor 110 determines an NC program as the target for executing the selection function. The determined NC program is hereinafter referred to as the "target program." The processor 110 determines the target program based, for example, on the operation input to the input device 150 or the input device 210. Alternatively, the processor 110 determines the target program based, for example, on instructions from an external device or the like. Alternatively, the processor 110 determines an NC program that satisfies predetermined conditions as the target program. The predetermined conditions may include, for example, the condition that the NC program has not yet been determined as the target for executing the selection function. Alternatively, the predetermined conditions may include, for example, a condition that the setting of angle combinations in the selection function is incomplete.
[0036] In step ST13, the processor 110 retrieves the target program from the auxiliary storage device 140 or the like. The processor 110 may also retrieve the target program from an external storage device.
[0037] In step ST14, the processor 110 analyzes the target program. During the analysis, the processor 110 checks whether the target program contains a vertical command. The vertical command is a command that orients the tool perpendicular to the inclined surface and specifies a coordinate system based on the inclined surface. The inclined surface is defined by the vertical command. Through analysis, the processor 110 checks the number of vertical commands in the target program. Through the analysis, the processor 110 obtains further information necessary for further processing. For example, the program analysis unit 111 executes the processing of step ST14.
[0038] In step ST15, the processor 110 determines whether the target program contains an unselected vertical instruction. The vertical instruction is selected in step ST16. Once selected, a vertical instruction cannot be deselected. If the target program contains no vertical instructions, the processor 110 determines that there are no unselected vertical instructions. If it is determined that the target program contains no unselected vertical instructions, the processor 110 determines "No" in step ST15 and returns to step ST11. Conversely, if it is determined that the target program contains unselected vertical instructions, the processor 110 determines "Yes" in step ST15 and proceeds to step ST16.
[0039] In step ST16, if a selected vertical instruction (hereinafter referred to as the "selected instruction") exists, the processor 110 deselects the vertical instruction. The processor 110 selects one of the unselected vertical instructions in the target program. If multiple unselected vertical instructions exist, the processor 110 prioritizes the instruction to be executed first.
[0040] If the target program contains multiple vertical instructions, two of them are called the first vertical instruction and the second vertical instruction.
[0041] In step ST17, processor 110 determines whether the angle combination to be used for actual operation has been determined for the selected command. If the angle combination has been determined, processor 110 determines "Yes" in step ST17 and returns to step ST15. If the angle combination has not been determined, processor 110 determines "No" in step ST17 and proceeds to step ST18. The determination of the angle combination will be described later.
[0042] Thus, by executing the processing of step ST17 when a combination has already been determined by the determination unit, the processor 110 functions as an example of a control unit that does not operate the plurality of rotation axes so that the angle combination for the plurality of rotation axes becomes the combination selected by the selection unit.
[0043] In step ST18, the processor 110 calculates the angle combination by which the tool is perpendicular to the inclined surface. The inclined surface is defined by the selected command. The angle combination calculated here is a candidate for the angle combination used in the actual control of the industrial machine 200. If there are two rotation axes that can change the orientation of the tool 220, there are usually two candidates. However, depending on the rotation range of each rotation axes, there may be fewer than two candidates. If there are three or more rotation axes, the processor 110 can limit the calculated combinations to those that meet the specified conditions. The possible combinations in the first vertical command are examples of the first combination. The possible combinations in the second vertical command are examples of the second combination.
[0044] In the Fig. 5 and Fig. Figure 6 shows examples of two angle combinations. Fig. 6 is a diagram showing a second example of the state of the tool 220 and the spindle 230 when the tool 220 is guided perpendicular to the inclined surface 301 of the workpiece 300.
[0045] The Fig. 5 and Fig. The inclined surface 301 shown in Figure 6 is inclined at -30 degrees relative to the X1 axis. The inclined surface 301 is parallel to the Y1 axis. The X1Y1Z1 coordinate system is the initial coordinate system before the tool 220 is aligned perpendicular to the inclined surface. The X2Y2Z2 coordinate system is the coordinate system after the tool 220 is aligned perpendicular to the inclined surface 301. That is, in the X2Y2Z2 coordinate system, the inclined surface 301 is parallel to the X2Y2 plane. Preferably, the inclined surface 301 coincides with the X2Y2 plane.
[0046] In the first in Fig. In the example shown in Figure 5, the angle of the rotation axis 231 is 30 degrees and the angle of the rotation axis 232 is 0 degrees. In the second example, Fig. In the example shown in Figure 6, the angle of the rotation axis 231 is -30 degrees and the angle of the rotation axis 232 is 180 degrees.
[0047] By executing the processing of step ST18, the processor 110 functions as an example of a calculation unit that calculates a plurality of angle combinations for the plurality of rotation axes capable of changing the orientation of the tool to form a predetermined angle with a plane.
[0048] In step ST19, the processor 110 deselects the angle combination if there is a currently selected angle combination (hereinafter referred to as the "selected combination"). Then, the processor 110 selects a combination from the angle combinations for the selected command. The processor 110 automatically selects a combination. In this case, for example, the processor 110 selects a combination at random. Alternatively, the processor 110 may select a combination that meets certain conditions. The processor 110 may select the angle combination based on, for example, an operator input specifying the angle combination, rather than automatically. This input may be, for example, an input to the input device 150 of the numerical control device 100 or the input device 210 of the industrial machine 200.Alternatively, the processor 110 may select the angle combination based on an input specifying the angle combination from an external device or the like. The angle combination is calculated in step ST18. After the processing of step ST19, the processor 110 proceeds to the processing of step ST20 in step ST21. Fig. 3. For example, the candidate selection unit 114 executes the processing of step ST19.
[0049] By executing the processing of step ST19, the processor 110 functions as an example of a selecting unit that selects one combination from the plurality of angle combinations calculated by the calculating unit.
[0050] In step ST20 of Fig. 3, the processor 110 controls the industrial machine 200 to move each part of the industrial machine 200 to the position at the time of the start of the selected command (hereinafter referred to as the "start position"). If the target program is executed until immediately before the selected command, the position of each part of the industrial machine 200 is the start position of the selected command. For example, the processor 110 executes the target program until immediately before the selected command to move each part of the industrial machine 200 to the start position of the selected command. Alternatively, the processor 110 may move each part of the industrial machine 200 to the start position without executing the target program.
[0051] For example, the processor 110 moves each part of the industrial machine 200 to the starting position by controlling and operating the real industrial machine 200. Alternatively, the processor 110 can move each part of the industrial machine 200 to the starting position by controlling and operating a virtual industrial machine 200. Operating the virtual industrial machine 200 means operating the virtual industrial machine 200 in a virtual space through simulation. For the sake of clarity, the real industrial machine 200 is referred to below as industrial machine 200A, and the virtual industrial machine 200 is referred to as industrial machine 200B. The rotation axes provided in the industrial machine 200A are real rotation axes. The rotation axes provided in the industrial machine 200B are virtual rotation axes.
[0052] When the processor 110 executes the target program up to immediately before the selected command, the position of each part of the industrial machine 200 is the starting position of the selected command. The starting position of the selected command is described using the following NC program "O0001" as an example. O0001 N1 G54 N2 G90 G00 X200.0 Y200.0 Z300.0 B0 C90.0 N3 G68.2 P1 X50.0 Y0 Z100.0 I0 J30.0 K0 N4 G53.1 N5 G43 H1 X0 Y0 Z0
[0053] In the NC program "O0001," the letter N followed by a number indicates the line number. For example, N3 represents the third line. The NC program "O0001" contains a vertical command.
[0054] The first line of the NC program “O0001” is a command that specifies the initial coordinate system, i.e. the coordinate system X1Y1Z1.
[0055] The second line of the NC program “O0001” is a command that moves the tool 220 of the industrial machine 200.
[0056] The third line of the NC program “O0001” is a command that defines the position and angle of the inclined surface 301 of the workpiece 300.
[0057] The fourth line of the NC program “O0001” is the vertical command.
[0058] Therefore, in the NC program "O0001," the position after the tool 220 is moved by the command in the second line in the coordinate system specified by the command in the first line is the starting position of the vertical command in the fourth line. The orientation of the tool 220 at the starting position is an example of a specified orientation. The orientation of the tool 220 at the starting position of the first vertical command is an example of the first specified orientation. The orientation of the tool 220 at the starting position of the second vertical command is an example of the second specified orientation.
[0059] In step ST21, the processor 110 determines whether to adjust the movement speed or the movement method of the industrial machine 200. When the input device 150 or the input device 210 is operated to input an instruction to adjust the movement speed or the movement method, the processor 110 determines to adjust the movement speed or the movement method. Alternatively, the processor 110 determines to adjust the movement speed or the movement method when a command instructing to adjust the movement speed or the movement method is input from an external device or the like. The processor 110 can automatically adjust the movement speed or the movement method. In this case, the processor 110 determines whether to adjust the movement speed or the movement method only once.If it is determined that the movement speed or the movement method should not be set, the processor 110 determines “No” in step ST21 and proceeds to step ST22.
[0060] In step ST22, the processor 110 determines whether to start execution of the selected command. When the input device 150 or the input device 210 is operated to input a command to start execution of the selected command, the processor 110 determines to start execution of the selected command. Alternatively, the processor 110 determines to start execution of the selected command when a command is input from an external device or the like. If it is determined that execution of the selected command should not be started, the processor 110 determines "No" in step ST22 and returns to step ST21.Thus, the processor 110 remains in a standby state and repeats steps ST21 and ST22 until it determines that the movement speed or the movement method of the industrial machine 200 should be adjusted, or until it determines that the execution of the selected command should begin.
[0061] In case of determining to adjust the movement speed of the industrial machine 200 during the standby state of steps ST21 and ST22, the processor 110 determines “Yes” in step ST21 and proceeds to step ST23.
[0062] In step ST23, the processor 110 sets at least one of the movement speeds or the movement method of the industrial machine 200. The target industrial machine 200 may be the industrial machine 200A or the industrial machine 200B. For example, the processor 110 sets at least one of the movement speeds or the movement method based on an operation input to instruct at least one of the movement speeds or the movement method. This operation input may be an input to the input device 150 of the numerical control device 100 or the input device 210 of the industrial machine 200. Alternatively, the processor 110 sets the movement speed or the movement method based on an input from an external device that instructs the movement speed or the movement method.Alternatively, the processor 110 can automatically set the movement speed or movement method to a predefined setting. The movement speed set here is preferably slower than the speed during normal operation. This is intended to prevent the tool 220 from colliding with the workpiece or fixture. This also prevents damage in the event of a collision.
[0063] The movement methods for the industrial machines 200 include normal movement methods in automatic operation and movement methods in manual operation. The types of manual operation include manual handle feed, jog feed, and incremental feed. In manual handle feed, each part of the industrial machine 200 is moved according to the speed at which the handle is rotated while an operation indicating the feed is performed, e.g., manually rotating the handle. Jog feed moves each part of the industrial machine 200 only at the set movement speed while an operation indicating the feed, such as manually pressing a switch, is turned on. In incremental feed, each part of the industrial machine 200 is moved each time an operation indicating the feed, e.g.,The handle 110 is moved by a specific amount at the set movement speed when a manual operation is performed, i.e., the manual pressing of a switch. Handles and switches for manual operation are included, for example, in the input device 210. Alternatively, handles and switches for manual operation may also be included in the input device 150. After processing step ST23, the processor 110 returns to step ST21.
[0064] If a decision is made to begin execution of the selected command during the standby state of steps ST21 and ST22, processor 110 determines "Yes" in step ST22 and proceeds to step ST24. Processor 110 may automatically begin execution of the selected command. In this case, processor 110 skips processing of step ST22 and proceeds to step ST24.
[0065] In step ST24, the processor 110 begins executing the selected command to which the selected combination is applied. By executing the selected command, the processor 110 controls the industrial machine 200A or the industrial machine 200B to move each part and set the angle combination for each rotation axis to the selected combination. In a case where the control target is the industrial machine 200B, the selected command is executed as a simulation. In a case where the movement method is an automatic operation, the processor 110 automatically moves each part through the processing of step ST24. In a case where the movement method is a manual operation, the movement waits in a standby state until an operation indicating the feed, such as a handle or a switch, is executed. The selected command is executed in step ST24 to verify the operation.That is, this process is distinguished from the actual process.
[0066] When executing the vertical command in the processing of step ST24 and processing the actual operation, it is advantageous for the processor 110 to operate the multiple rotary axes of the industrial machine 200 simultaneously rather than individually. This is because the vertical command can be executed in a shorter time when the multiple rotary axes are operated simultaneously rather than individually.
[0067] In a case where the control target is the industrial machine 200B, the processor 110 controls the display device 160 to display the operating status of the industrial machine 200B. The display device 160 displays the operating status of the industrial machine 200B as 2D (two-dimensional) or 3D (three-dimensional) videos, or the like.
[0068] The processor 110 functions as a display unit that displays the results of the simulation by displaying the operating status of the industrial machine 200B in cooperation with the display device 160.
[0069] In a case where the movement method for the industrial machine 200 is automatic operation, by executing the processing of step ST24, the processor 110 functions as an example of a control unit that controls the plurality of rotation axes to change the orientation of the tool oriented in a predetermined orientation so that the tool forms a predetermined angle with the plane, and operates the plurality of rotation axes so that the angle combination for the plurality of rotation axes becomes the combination selected by the selection unit. The inclined surface 301 is an example of the plane. The inclined surface 301 in the first vertical direction is an example of the first plane. The inclined surface 301 in the first vertical direction is an example of the second plane.
[0070] In step ST25, the processor 110 determines whether to adjust at least one of the movement speeds or the movement method of the industrial machine 200 in the same manner as in step ST21. If it is determined that the movement speed or the movement method should not be adjusted, the processor 110 determines "No" in step ST25 and proceeds to step ST26.
[0071] In step ST26, the processor 110 determines whether a feed command is present. For example, if an operation indicating a feed is being performed, the processor 110 determines that a feed command is present. If the movement method of the industrial machine 200 is set to automatic operation, the processor 110 may skip the processing of step ST26 and proceed to the processing of step ST27. If it is determined that there is no feed command, the processor 110 determines "No" in step ST26 and proceeds to step ST27.
[0072] In step ST27, the processor 110 determines whether the execution of the selected command is complete. For example, if the angle combination for each rotary axis matches the selected combination, the processor 110 determines that the execution of the selected command is complete. If it is determined that the execution of the selected command is not complete, the processor 110 determines "No" in step ST27 and returns to step ST25. In this way, the processor 110 remains in a standby state and repeats steps ST25 to ST27 until it determines that the movement speed or the movement method of the industrial machine 200 should be adjusted, or until it determines that a feed command is present, or until it determines that the execution of the selected command is complete.
[0073] When it is determined that at least one of the movement speeds or the movement method of the industrial machine 200 should be set during the standby state of steps ST25 to ST27, the processor 110 determines “Yes” in step ST25 and proceeds to step ST28.
[0074] In step ST28, the processor 110 sets at least one of the movement speeds or the movement method of the industrial machine 200 in the same manner as in step ST23. After the processing of step ST28, the processor 110 returns to step ST25.
[0075] If it is determined that a feed command is present during the standby state of steps ST25 to ST27, the processor 110 determines “Yes” in step ST26 and proceeds to step ST29.
[0076] In step ST29, the processor 110 advances the execution of the selected command according to the feed commands. As a result, the industrial machine 200 moves by the amount corresponding to the feed commands.
[0077] If the movement method of the industrial machine 200 is set to manual handle feed, the industrial machine 200 moves at a speed equal to the speed at which the handle is rotated. The industrial machine 200 moves for a duration equal to the duration of the handle rotation.
[0078] When the movement method of the industrial machine 200 is a jog operation, the processor 110 moves the industrial machine 200 for a duration equal to the duration of the operation indicating the feed command.
[0079] In a case where the movement method of the industrial machine 200 is incremental feed, the processor 110 moves the industrial machine 200 by an amount corresponding to the number of times the operation indicating the feed command is executed. After processing step ST29, the processor 110 returns to step ST25.
[0080] In a case where the movement method of the industrial machine 200 is a manual operation, the processor 110 functions as an example of a control unit by executing steps ST24, ST26, and ST29.
[0081] If it is determined that the execution of the selected command is completed during the standby state of steps ST25 to ST27, the processor 110 determines "Yes" in step ST27 and proceeds to step ST30.
[0082] In step ST30, the processor 110 determines whether reconfirmation should be performed. Reconfirmation refers to the re-execution of the selected command to which the selected combination is applied. When the input device 150 or the input device 210 is operated to input a reconfirmation execution command, the processor 110 determines to execute reconfirmation. Alternatively, the processor 110 determines to execute reconfirmation when a reconfirmation command is input from an external device or the like. If it is determined that reconfirmation should not be performed, the processor 110 determines "No" in step ST30 and proceeds to step ST31. The processing of step ST19 of Fig. 2 to step ST30 of Fig. 3 is executed, for example, by the position confirmation unit 112.
[0083] In step ST31, the processor 110 determines whether to select the angle combination. For example, when the input device 150 or the input device 210 is operated to input an instruction to select the angle combination, the processor 110 determines to select the angle combination. Alternatively, the processor 110 determines to select the angle combination when a command instructing the selection of the angle combination is input from an external device or the like. If it is determined that the angle combination should not be selected, the processor 110 determines "No" in step ST31 and proceeds to step ST32.
[0084] In step ST32, the processor 110 determines whether to determine the angle combination to be used in the selected command. If it is determined that the angle combination should not be selected, the processor 110 determines "No" in step ST32 and returns to step ST30. In this way, the processor 110 remains in a standby state and repeats steps ST30 to ST32 until it decides to perform a reconfirmation of the selected command to which the selected combination is applied, or until it decides to select one of the candidates for the angle combination or determine the angle combination.
[0085] In case of deciding to perform reconfirmation during the standby state of steps ST30 to ST32, the processor 110 determines “Yes” in step ST30 and returns to step ST20.
[0086] If it is determined during the standby state of steps ST30 to ST32 that one of the angle combinations is to be selected, the processor 110 determines “Yes” in step ST31 and returns to step ST19 of Fig. 2 back.
[0087] After returning to step ST19, the processor 110 selects an angle combination other than the one whose selection was canceled in step ST19, for example. Alternatively, the processor 110 selects an angle combination based on an input specifying the angle combination. This input may be, for example, an input to the input device 150 of the numerical control device 100 or to the input device 210 of the industrial machine 200. Alternatively, the processor 110 selects the angle combination based on an input specifying the angle combination from an external device or the like.
[0088] In this way, the processor 110 executes the selected command to which each possible angle combination is applied, while changing the angle combination selection for the selected command. By visually confirming the operation of the industrial machine 200 to which each possible angle combination is applied, the operator using the numerical control system 1 can confirm whether the tool 220 will collide with, for example, the workpiece 300 or the fixture. Based on the confirmation results, the operator determines which angle combination to use in the actual machining. The operator specifies the angle combination to be used for the numerical control device 100 by operating the input device 150 or the input device 210.
[0089] In step ST32 of Fig. 3, for example, the processor 110 determines to determine an angle combination when the input device 150 or the input device 210 is operated to input an instruction indicating which angle combination is used in the selected command. Alternatively, the processor 110 determines an angle combination when there is an input from an external device or the like indicating which angle combination is used in the selected command. If the decision to determine the angle combination is made during the standby state of steps ST30 to ST32, the processor 110 determines "Yes" in step ST32 and proceeds to step ST33.
[0090] In step ST33, the processor 110 determines the angle combination to be used in the selected command for actual operation. The processor 110 determines the angle combination specified by the operation of the input device 150 or the input device 210 as the angle combination to be used in the selected command. Alternatively, the processor 110 determines the angle combination specified by an external device as the angle combination to be used in the selected command. The selection setting unit 113 executes, for example, the processing of step ST33.
[0091] Thus, by executing the processing of step ST33, the processor 110 functions as an example of a determination unit that determines a combination to be used for actual operation from the plurality of angle combinations calculated by the calculation unit.
[0092] In step ST34, the processor 110 stores the determination information associated with the target program and the selected instruction in the auxiliary storage device 140 or the like. The determination information indicates the angle combination determined in step ST33. After the processing of step ST34, the processor 110 returns to step ST15 in Fig. 2 back.
[0093] As described above, the processor 110 determines by repeating step ST15 in Fig. 2 to step ST34 in Fig. 3 the angle combination to be used for actual operation for each vertical instruction included in the target program and stores the angle combination in the auxiliary storage device 140 or the like.
[0094] Next, the operation of the numerical control device 100 in the case of the actual operation of the industrial machine 200 by the actual use of the NC program with reference to Fig. 4 described.
[0095] In step ST41 of Fig. 4, the processor 110 of the numerical control device 100 retrieves the NC program to be executed from the auxiliary memory 140 or the like. In a case where there is destination information associated with the NC program, the processor 110 also acquires the destination information.
[0096] In step ST42, the processor 110 begins executing the acquired NC program.
[0097] In step ST43, the processor 110 detects the next instruction to be executed (hereinafter referred to as the "next instruction") and determines whether the detected next instruction is a vertical instruction. If it is determined that the detected next instruction is not a vertical instruction, the processor 110 determines "No" in step ST43 and proceeds to step ST44.
[0098] In step ST44, the processor 110 executes the next instruction detected in step ST43.
[0099] Conversely, if it is determined that the next detected instruction is a vertical instruction, the processor 110 determines “Yes” in step ST43 and proceeds to step ST45.
[0100] In step ST45, the processor 110 refers to the determination information associated with the vertical command and acquires the determined angle combination. The vertical command is the next command last acquired in step ST43.
[0101] In step ST46, the processor 110 executes the vertical command to which the angle combination detected in step ST45 is applied. The vertical command is the next command, most recently detected in step ST43. The motion control unit 115 executes the processing of step ST46, for example.
[0102] After processing step ST44 or step ST46, the processor 110 proceeds to step ST47. In step ST47, the processor 110 determines whether to terminate the execution of the acquired NC program. For example, if there is no next command, the processor 110 determines to terminate the execution of the NC program. If it is determined that the execution of the NC program should not be terminated, the processor 110 determines "No" in step ST47 and returns to step ST43. Conversely, if the decision is to terminate the execution of the NC program, the processor 110 determines "Yes" in step ST47 and terminates the processing of Fig. 4, which terminates the execution of the NC program.
[0103] According to the numerical control system 1 of the first embodiment, the numerical control device 100 selects one combination from the plurality of candidate angle combinations. By executing the vertical command to which the selected combination is applied, the numerical control device 100 controls and operates the industrial machine 200. The industrial machine 200 determines the angle combination to be used for actual operation.
[0104] As a result, the operator can confirm the operating state of the industrial machine 200 for each candidate. Therefore, the operator can determine the candidate considered optimal from the plurality of candidates as the angle combination to be used for actual operation. For example, the operator can determine a candidate that does not cause interference from each candidate as the angle combination to be used for actual operation. In a case where there are a plurality of candidates that do not cause interference, the operator can determine the candidate with the shortest completion time from each candidate that does not cause interference as the angle combination.
[0105] According to the numerical control system 1 of the first embodiment, the numerical control device 100 can control the actual industrial machine 200 in the selection function. In this case, the operator can confirm the operating state of the industrial machine 200 by visually inspecting the actual machine.
[0106] According to the numerical control system 1 of the first embodiment, the numerical control device 100 determines the angle combination to be used for actual operation based on the operation input. Therefore, the operator can use his desired combination for the actual operation of the numerical control device 100.
[0107] According to the numerical control system 1 of the first embodiment, the numerical control device 100 can control the virtual industrial machine 200 in the selection function. That is, the numerical control device 100 of the embodiment can perform a simulation in the selection function. In this case, the numerical control device 100 of the embodiment does not need to operate the real industrial machine 200. Therefore, the numerical control device 100 of the embodiment can perform the selection function even when the industrial machine 200 is unavailable.
[0108] According to the numerical control system 1 of the first embodiment, the numerical control device 100 displays the simulation results. This allows the operator to confirm the operating state of the virtual industrial machine 200.
[0109] According to the numerical control system 1 of the first embodiment, in a case where the NC program includes a plurality of vertical commands, the numerical control device 100 determines the angle combination to be used for actual operation for each vertical command. As a result, even in a case where the NC program includes a plurality of vertical commands, the operator can use his desired combination for the actual operation of the numerical control device 100 for each vertical command.
[0110] According to the numerical control system 1 of the first embodiment, the numerical control device 100 skips the combination determination processing for vertical commands for which the angle combination to be used for actual operation has already been determined. As a result, the numerical control device 100 of the embodiment can prevent the operator from unnecessarily reconfirming the operation of the vertical commands for which the angle combination to be used for actual operation has already been determined. [Second embodiment]
[0111] In the second embodiment, the numerical control device 100 automatically determines the angle combination to be used in the selected command. The configuration of the numerical control system 1 in the second embodiment is similar to that in the first embodiment.
[0112] Next, the operation of the numerical control system 1 according to the second embodiment will be described with reference to FIG. Fig. 2, Fig. 4 and Fig. 7. The processing details in the following operating descriptions are examples, and various processing methods that can achieve similar results can be used appropriately. Fig. 2, Fig. 4 and Fig. 7 are flowcharts showing examples of processing by the processor 110 of the numerical control device 100. The processor 110 executes the Fig. 2, Fig. 4 and Fig. 7 based on programs stored, for example, in the ROM 120 or in the auxiliary storage device 140.
[0113] In describing the operation of the second embodiment, parts identical to those of the first embodiment may be omitted.
[0114] In the second embodiment, the processor 110 executes the Fig. 2 and Fig. 4 as in the first embodiment. In the second embodiment, the processor 110 executes the processing shown in Fig. 7 instead of Fig. 3 processing shown.
[0115] In the second embodiment, the processor 110 controls in step ST20 of Fig. 7 the industrial machine 200B to move each part of the industrial machine 200B to the start position.
[0116] In the second embodiment, the processor 110 proceeds to step ST24 after the processing of step ST20.
[0117] In the second embodiment, the processor 110 treats the industrial machine 200B as the control target in step ST24. That is, in the second embodiment, the execution of the selected command to which the selected combination is applied is limited to simulation. In the second embodiment, the movement method of the industrial machine 200B is automatic operation. In the second embodiment, it is advantageous that the processor 110 executes the simulation at a speed corresponding to the processing speed of the processor 110 without considering the setting of the movement speed. Therefore, the processor 110 does not need to set the movement speed.
[0118] In the second embodiment, the processor 110 proceeds to step ST27 after the processing of step ST24.
[0119] In the second embodiment, if the determination is "No" in step ST27, the processor 110 returns to step ST27. If the determination is "Yes" in step ST27, the processor 110 proceeds to step ST51.
[0120] In step ST51, the processor 110 determines whether there is an unselected angle combination. The angle combination is determined in step ST18 by Fig. 2 is calculated. The selection of the angle combination is performed in step ST19. Once selected, an angle combination is not deselected. If there is an unselected angle combination, the processor 110 sets the angle combination in step ST51. Fig. 7 “Yes” and returns to step ST19 of Fig. 2 back.
[0121] In the second embodiment, the processor 110 selects from the unselected angle combinations in step ST19.
[0122] If, on the other hand, there is no unselected angle combination, the processor 110 determines “No” in step ST51 and proceeds to step ST52.
[0123] As described above, the processor 110 executes by repeating steps ST19, ST20, ST24, ST27 and ST51 of the Fig. 2 and Fig. 7 the selected command to which each angle combination calculated in step ST18 is applied.
[0124] In step ST52 of Fig. 7, the processor 110 selects and determines the optimal angle combination from the plurality of angle combinations as the angle combination to be used for the actual operation. The optimal angle combination is, for example, the one that does not cause interference and has the shortest time to completion. Interference occurs, for example, between the tool 220 and the workpiece 300 or the fixture. After processing step ST52, the processor 110 proceeds to step ST34.
[0125] By executing the processing of step ST52, the processor 110 functions as an example of a determination unit.
[0126] The determination information in step ST34 of the second embodiment indicates the angle combination determined in step ST52.
[0127] According to the numerical control system 1 of the second embodiment, the numerical control device 100 automatically selects the angle combination. The numerical control device 100 of the embodiment automatically determines the angle combination used for actual operation. As a result, the numerical control device 100 of the embodiment can reduce the operator's workload.
[0128] The above statements may be modified as follows: In the above embodiments, the numerical control unit 100 positions the tool 220 perpendicular to the inclined surface 301. However, the numerical control unit 100 may also use a different angle instead of the perpendicular. The other angle is an example of a predetermined angle.
[0129] The numerical control unit 100 does not necessarily have to include the function of controlling the industrial machine 200A. In this case, the numerical control unit 100 performs the Fig. 4 does not suffice for the processing shown.
[0130] The processor 110 may implement some or all of the processing implemented by the program in the above embodiments through the hardware configuration of the circuit.
[0131] The program for performing the processing of the embodiments can be transmitted, for example, in a state stored on a non-transitory recording medium in the device. However, the device can also be transmitted without the stored program. The program can be transmitted separately and written to the device. The program can be transmitted, for example, by recording it on a removable, non-transferable recording medium or by downloading it over a network such as the Internet or a LAN (Local Area Network).
[0132] The above-described embodiments of the present invention are presented as examples and do not limit the scope of the present invention. The embodiments of the present invention can be implemented in various forms without departing from the spirit of the present invention. Explanation of reference symbols 1 Numerical control system 100 numerical control unit 110 processor 111 Program Analysis Unit 112 Position confirmation unit 113 Selection setting unit 114 Candidate Selection Unit 115 Motion control unit 120 ROM 130 RAM 140 Auxiliary storage device 150, 210 input device 160 display device 170 Control interface 180 buses 200 industrial machines 220 tools 230 spindle 231, 232 rotation axis QUOTES CONTAINED IN THE DESCRIPTION
[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature
[0000] WO 2011 / 117915
[0005]
Claims
[1] A control device comprising: a calculation unit that calculates a plurality of angle combinations for a plurality of rotation axes capable of changing an orientation of a tool so that the tool forms a predetermined angle with a plane; a selection unit that selects one combination from the plurality of angle combinations calculated by the calculation unit; a control unit that controls the plurality of rotation axes to change the orientation of the tool oriented in a predetermined orientation, that the tool forms the predetermined angle with the plane, and operates the plurality of rotation axes so that an angle combination for the plurality of rotation axes becomes the combination selected by the selection unit; and a determination unit which determines a combination to be used for actual operation from the plurality of angle combinations calculated by the calculation unit. [2] The control device according to claim 1, wherein the rotation axes are true rotation axes. [3] The control device according to claim 1, wherein the determination unit determines a combination based on an operation input. [4] The control device according to claim 1, wherein the rotation axes are virtual rotation axes, and operation of the rotation axes is a simulation by the control unit. [5] The control device according to claim 4 further comprising a display unit that displays a result of the simulation. [6] The control device according to claim 4, wherein the selection unit selects one combination from the plurality of angle combinations calculated by the calculation unit for each of the plurality of angle combinations calculated by the calculation unit, the control unit controls the plurality of rotation axes so that the angle combination for the plurality of rotation axes becomes the combination selected by the selection unit for each of the plurality of angle combinations selected by the selection unit, and the determination unit determines a combination that does not cause interference. [7] The control device according to claim 1, wherein the control unit operates the plurality of rotation axes simultaneously. [8] The control device according to claim 1, wherein the calculation unit calculates a plurality of first angle combinations so that the tool forms the predetermined angle with a first plane, and calculates a plurality of second angle combinations so that the tool forms the predetermined angle with a second plane, the control unit controls the plurality of rotation axes to change the orientation of the tool oriented in a first predetermined orientation so that the tool forms the predetermined angle with the first plane, and operates the plurality of rotation axes so that the angle combinations for the plurality of rotation axes become the first angle combinations calculated by the calculation unit for each of the plurality of first angle combinations calculated by the calculation unit, and controls the plurality of rotation axes to change the orientation of the tool oriented in a second predetermined orientation so that the tool forms the predetermined angle with the second plane, and operates the plurality of rotation axes so that the angle combinations for the plurality of rotation axes become the second angle combinations,calculated by the calculation unit for each of the plurality of second angle combinations calculated by the calculation unit, and, the determination unit determines a combination to be used for actual operation from the plurality of first angle combinations calculated by the calculation unit, and determines a combination to be used for actual operation from the plurality of second angle combinations calculated by the calculation unit. [9] The control device according to claim 1, wherein, in a case where a combination has already been determined by the determination unit, the control unit does not operate the plurality of rotation axes so that the angle combination for the plurality of rotation axes becomes the combination selected by the selection unit. [10] A tax system comprising: a control unit; and Industrial machines with a variety of rotation axes that can change the orientation of a tool, where the control unit includes: a calculation unit that calculates a plurality of angle combinations for the plurality of rotation axes so that the tool forms a predetermined angle with a plane; a selection unit that selects one combination from the plurality of angle combinations calculated by the calculation unit; a control unit that controls the plurality of rotation axes to change the orientation of the tool oriented in a predetermined orientation so that the tool forms a predetermined angle with the plane, and actuates the plurality of rotation axes so that the angle combination for the plurality of rotation axes becomes the combination selected by the selection unit; and a determination unit which determines a combination to be used for actual operation from the plurality of angle combinations calculated by the calculation unit. [11] A program that causes a processor contained in a control unit to function as: a calculation unit that calculates a plurality of angle combinations for a plurality of rotation axes capable of changing an orientation of a tool so that the tool forms a predetermined angle with a plane; a selection unit that selects one combination from the plurality of angle combinations calculated by the calculation unit; a control unit that controls the plurality of rotation axes to change the orientation of the tool oriented in a predetermined orientation, that the tool forms the predetermined angle with the plane, and operates the plurality of rotation axes so that the angle combination for the plurality of rotation axes becomes the combination selected by the selection unit; and a determination unit which determines a combination to be used for actual operation from the plurality of angle combinations calculated by the calculation unit.
Citation Information
Patent Citations
Numerical control device and numerical control method
WO2011117915A1