Control device
By expressing the mechanical structure of the machine tool in a graph form where the constituent elements are nodes, and inserting control points and coordinate systems, storing error information, generating error nodes, and correcting machine tool errors, the machining accuracy is improved.
Patent Information
- Application Number
- CN202180012329.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-02-04
- Filing Date
- 2021-02-02
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2041-02-02
AI Technical Summary
The prior art is difficult to directly apply the graph control technology with the constituent elements as nodes to correct errors in machine tools with arbitrary mechanical structures.
By expressing the mechanical structure in a graph form where the constituent elements are nodes, inserting control points and coordinate systems in the graph, assigning identifiers, storing error information, generating error nodes, specifying control points and coordinate systems, determining that the command value corresponds to the coordinate value, and instructing the control point to move to correct the error.
Correction of machine tool errors with any mechanical structure is achieved, and machining accuracy is improved.
Smart Images

Figure CN115066660B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a control device. Background Art
[0002] Typically, control devices for machine tools and robots use command values in a program to control control points within the machine tool or robot. For example, in machine tools, the tool root position is typically used as a control point. On the other hand, when using the tool length correction function or implementing tool tip point control, the tool tip position is also used as a control point. These control points are then controlled by moving to the coordinates specified by the command values.
[0003] However, in actual machines, errors often exist in the numerical values representing the tool tip position, tool base position, tool posture, etc. Therefore, due to these errors, the tool tip position and tool posture may not follow the command values.
[0004] In this regard, as a technology for correcting errors, there is known a technology related to a numerical control device, which is used to correct the influence of the translation error and posture error of the movement depending on the straight axis, and the translation error and posture error of the movement depending on the rotation axis to achieve high-precision processing, and controls a machine tool having a straight axis and a rotation axis, and the numerical control device has: a straight axis dependent position correction amount calculation unit, which calculates the position correction amount of the straight axis based on the translation error and posture error of the movement depending on the straight axis; a rotational axis dependent position correction amount calculation unit, which calculates the position correction amount of the straight axis based on the translation error and posture error of the movement depending on the rotation axis; a rotational axis angle correction amount calculation unit, which calculates the angle correction amount of the rotation axis based on a part of the posture error of the movement depending on the straight axis and a part of the posture error of the movement depending on the rotation axis; and a position addition correction amount calculation unit, which calculates the position correction amount of the straight axis corresponding to the rotational axis correction amount (for example, refer to patent document 1).
[0005] Meanwhile, there is known a technique for expressing the mechanical structure of an industrial machine to be controlled in a graph format with components as nodes and controlling an industrial machine having an arbitrary mechanical structure based on the graph (for example, see Patent Document 2).
[0006] Prior art literature
[0007] Patent Literature
[0008] Patent Document 1: Japanese Patent No. 5105024
[0009] Patent Document 2: Japanese Patent No. 6549683 Summary of the Invention
[0010] Problems to be solved by the invention
[0011] Conventional error correction techniques are not compatible with machine tools with arbitrary mechanical structures. Therefore, for example, the aforementioned control techniques using a graph with components as nodes could be considered for error correction. However, conventional control techniques using a graph with components as nodes are difficult to directly apply to error correction.
[0012] A technology for correcting errors in a machine tool having an arbitrary mechanical structure by using a graph having components as nodes is desired.
[0013] Means for solving problems
[0014] One embodiment of the present disclosure is a control device that represents and holds a mechanical structure to be controlled in a graph format in which components are nodes. The control device includes: a control point coordinate system insertion unit that inserts a control point and a coordinate system as a node into each node of the graph of the mechanical structure; an identifier assignment unit that assigns an identifier to the inserted control point and coordinate system; an error information storage unit that stores information regarding a mechanical error in the controlled object and an identifier assigned to a coordinate system in which the mechanical error is observed; an error node generation unit that converts the mechanical error into an equivalent error node; an error node addition unit that adds the error node to the graph of the mechanical structure; a control point coordinate system designation unit that specifies one or more control points and coordinate systems for the graph of the mechanical structure using the identifier; a command value determination unit that determines, based on the control points and coordinate systems specified by the control point coordinate system designation unit, which one or more command values specified in a program correspond to which coordinate values in which coordinate system for which control point; and a movement instruction unit that instructs movement of the control point so that the coordinate value of the control point becomes the command value.
[0015] One embodiment of the present disclosure is a control device that represents and holds a mechanical structure to be controlled in a graph format having constituent elements as nodes. The control device includes: a control point coordinate system insertion unit that causes each node of the graph of the mechanical structure to have a control point and a coordinate system as information; an identifier assignment unit that assigns identifiers to the inserted control points and coordinate systems; an error information storage unit that stores information regarding mechanical errors in the controlled target and identifiers assigned to coordinate systems in which the mechanical errors are observed; an error node generation unit that converts the mechanical errors into equivalent error nodes; an error node addition unit that adds the error nodes to the graph of the mechanical structure; a control point coordinate system designation unit that specifies one or more sets of control points and coordinate systems for the graph of the mechanical structure using the identifiers; a command value determination unit that determines, based on the control points and coordinate systems specified by the control point coordinate system designation unit, which one or more command values specified in a program correspond to which coordinate values in which coordinate system for which control point; and a movement instruction unit that instructs movement of the control point so that the coordinate values of the control point become the command values.
[0016] Effects of the Invention
[0017] According to the present invention, errors in a machine tool having an arbitrary mechanical structure can be corrected by using a graph having components as nodes. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1 It is a diagram showing the configuration of a control device according to an embodiment of the present invention.
[0019] Figure 2 This is a block diagram showing the function of the CMOS memory included in the control device according to the embodiment of the present invention.
[0020] Figure 3 This is a block diagram showing the functions of a CPU included in the control device according to the embodiment of the present invention.
[0021] Figure 4 This is a block diagram showing the functions of the CPU of the movement instruction unit according to the embodiment of the present invention.
[0022] Figure 5 This is a diagram showing an example of a machine for which a machine structure tree is generated according to an embodiment of the present invention.
[0023] Figure 6 This is a diagram showing a method for generating a machine structure tree according to an embodiment of the present invention.
[0024] Figure 7 This is a diagram showing a method for generating a machine structure tree according to an embodiment of the present invention.
[0025] Figure 8 This is a diagram showing the operation of generating a mechanical structure tree generated in the embodiment of the present invention.
[0026] Figure 9A This is a diagram showing an example of a parent-child relationship of a mechanical structure according to an embodiment of the present invention.
[0027] Figure 9B This is a diagram showing an example of a parent-child relationship of a mechanical structure according to an embodiment of the present invention.
[0028] Figure 10A It is a diagram showing an example of units included in the mechanical structure according to the embodiment of the present invention.
[0029] Figure 10B It is a diagram showing an example of units included in the mechanical structure according to the embodiment of the present invention.
[0030] Figure 10C It is a diagram showing an example of units included in the mechanical structure according to the embodiment of the present invention.
[0031] Figure 11 It is a diagram showing an example of a mechanical structure according to an embodiment of the present invention.
[0032] Figure 12A This is a diagram showing a method of defining units included in a mechanical structure according to an embodiment of the present invention.
[0033] Figure 12B It is a diagram showing an example of units included in the mechanical structure according to the embodiment of the present invention.
[0034] Figure 13A This is a diagram showing an example of a GUI (Graphical User Interface) in the embodiment of the present invention.
[0035] Figure 13B This is a diagram showing an example of a GUI (Graphical User Interface) in the embodiment of the present invention.
[0036] Figure 13C This is a diagram showing an example of a GUI (Graphical User Interface) in the embodiment of the present invention.
[0037] Figure 13D This is a diagram showing an example of a GUI (Graphical User Interface) in the embodiment of the present invention.
[0038] Figure 14 This is a diagram showing an example of a command to a workpiece placed on a normal workbench.
[0039] Figure 15 This is a diagram showing an example of a command of a numerical controller according to an embodiment of the present invention.
[0040] Figure 16A This figure shows an example of a machine to be generated for the machine structure tree.
[0041] Figure 16B This is a diagram showing an example of a machine structure tree corresponding to a machine to be generated as a machine structure tree.
[0042] Figure 17 This is a diagram showing an example in which a coordinate system and control points are inserted into each node of a machine in the embodiment of the present invention.
[0043] Figure 18 This is a diagram showing an example of a machine structure tree into which a coordinate system and control points are inserted in the embodiment of the present invention.
[0044] Figure 19A This is a diagram showing an example of a machine in which offsets and posture matrices are inserted into each node in the embodiment of the present invention.
[0045] Figure 19B This is a diagram showing an example in which offsets and posture matrices are inserted into each node of a machine in the embodiment of the present invention.
[0046] Figure 20 This is a diagram showing a generating operation of inserting a control point into a machine structure tree in the embodiment of the present invention.
[0047] Figure 21 This is a diagram showing an example of a machine structure tree into which a coordinate system and control points are inserted in the embodiment of the present invention.
[0048] Figure 22 This is a diagram showing an example of a machine structure tree in the embodiment of the present invention.
[0049] Figure 23 This is a diagram showing the control point position vectors and the control point posture matrix relative to the machine origin of the machine coordinate system in the embodiment of the present invention.
[0050] Figure 24 This is a diagram showing a command value position vector and a command value posture matrix relative to a machine origin in a machine coordinate system in an embodiment of the present invention.
[0051] Figure 25 It is a diagram showing an example of a program in the embodiment of the present invention.
[0052] Figure 26 It is a diagram showing an example of a program in the embodiment of the present invention.
[0053] Figure 27 It is a diagram showing an example of a program in the embodiment of the present invention.
[0054] Figure 28 This is a diagram showing an example of information used when generating a shift pulse in the embodiment of the present invention.
[0055] Figure 29 It is a diagram showing an example of a program in the embodiment of the present invention.
[0056] Figure 30 It is a diagram showing an example of a program in the embodiment of the present invention.
[0057] Figure 31 This is a diagram showing an example of information used when generating a shift pulse in the embodiment of the present invention.
[0058] Figure 32 This is a diagram showing an example of information used when generating a shift pulse in the embodiment of the present invention.
[0059] Figure 33 This is a diagram showing an example of information used when generating a shift pulse in the embodiment of the present invention.
[0060] Figure 34 It is a diagram showing an example of a program in the embodiment of the present invention.
[0061] Figure 35 This diagram explains the actual measurement method of errors in machine tools.
[0062] Figure 36 This is an explanatory diagram of an offset as an error of a reflecting mirror installed in a machine tool.
[0063] Figure 37 This is an explanatory diagram of roll, pitch, and yaw errors of a reflective mirror installed in a machine tool.
[0064] Figure 38 This is a diagram explaining the error offset vector in a machine tool.
[0065] Figure 39 This is a diagram showing the insertion position of the error node in the machine structure tree according to the embodiment of the present invention.
[0066] Figure 40 This is a diagram showing a method of converting translation errors and rotation errors between different coordinate systems in an embodiment of the present invention.
[0067] Figure 41 This is a diagram showing an example of a machine structure tree in the embodiment of the present invention.
[0068] Figure 42 This diagram explains mirror offset in a machine tool.
[0069] Figure 43 This is a diagram showing an example of a machine structure tree in the embodiment of the present invention.
[0070] Figure 44 This diagram illustrates the verticality error in a machine tool.
[0071] Figure 45 This is a diagram showing an example of a machine structure tree in the embodiment of the present invention.
[0072] Figure 46 This is a diagram showing a structural example of an artificial object having a reference shape for measurement.
[0073] Figure 47 This is a diagram showing an example of the placement of artifacts in the embodiment of the present invention.
[0074] Figure 48 This is a diagram showing an example of a machine structure tree in the embodiment of the present invention. DETAILED DESCRIPTION
[0075] Below, refer to Figures 1 to 48 The embodiment of the present invention will be described in detail. First, the configuration of the control device according to the embodiment of the present invention will be described.
[0076] [1. Structure of the Invention]
[0077] exist Figure 1 2 shows an example of the configuration of a control device 100 according to an embodiment of the present invention. The control device 100 mainly includes a CPU 11, a ROM 12, a RAM 13, a CMOS 14, interfaces 15, 18, and 19, a PMC (Programmable Machine Controller) 16, an I / O unit 17, axis control circuits 30 to 34, servo amplifiers 40 to 44, a spindle control circuit 60, and a spindle amplifier 61.
[0078] The CPU 11 is a processor that controls the entire control device 100. The CPU 11 reads a system program stored in the ROM 12 via the bus 20 and controls the entire control device 100 according to the system program.
[0079] The RAM 13 stores temporary calculation data, display data, and various data input by the operator via the display / MDI unit 70 .
[0080] The CMOS memory 14 is a nonvolatile memory backed up by a battery (not shown) that maintains the stored state even when the control device 100 is powered off. The CMOS memory 14 stores machining programs read via the interface 15 and machining programs input via the display / MDI unit 70.
[0081] Furthermore, in the present embodiment, the ROM 12 includes a mechanical configuration table storage unit 141 and an error information storage unit 142 . Figure 2 The structure of the ROM 12 is shown.
[0082] The mechanical structure graph storage unit 141 stores a mechanical structure in a graph format generated by the graph generating unit 111 described later, that is, a “mechanical structure tree” in this embodiment.
[0083] The error information storage unit 142 stores information on machine errors in the industrial machine to be controlled and identifiers assigned to the coordinate systems in which the machine errors are observed. Note that these identifiers are assigned by the identifier assigning unit 114 described later.
[0084] Note that functions related to input and output of information between the error information storage unit 142 and other components included in the CPU 11 will be described later in the description of the CPU 11 .
[0085] Various system programs for executing processing in an edit mode required for creating and editing a machining program and processing for automatic operation are written in advance in the ROM 12 .
[0086] Various machining programs such as the machining program for executing the present invention can be input via the interface 15 and the display / MDI unit 70 and stored in the CMOS memory 14 .
[0087] The interface 15 can connect the control device 100 and an external device 72 such as an adapter. The machining program, various parameters, etc. are read from the external device 72. The machining program edited in the control device 100 can be stored in an external storage unit via the external device 72.
[0088] The PMC (Programmable Machine Controller) 16 controls the industrial machine's auxiliary devices (e.g., actuators such as a tool-changing robot arm) by outputting signals via the I / O unit 17, based on a sequence program built into the control device 100. The PMC also receives signals from various switches on the operating panel of the industrial machine, performs necessary signal processing, and then transmits the signals to the CPU 11.
[0089] The display / MDI unit 70 is a manual data input device including a display, keyboard, etc. The interface 18 receives commands and data from the keyboard of the display / MDI unit 70 and transmits the commands and data to the CPU 11. The interface 19 is connected to the operation panel 71 including a manual pulse generator, etc.
[0090] The axis control circuits 30 to 34 of the respective axes receive movement command amounts of the respective axes from the CPU 11 and output the commands of the respective axes to the servo amplifiers 40 to 44 .
[0091] Servo amplifiers 40-44 receive this command and drive the servo motors 50-54 for each axis. Each servo motor 50-54 has a built-in position and speed detector. Position and speed feedback signals from these position and speed detectors are fed back to the axis control circuits 30-34 to perform position and speed feedback control. Position and speed feedback is omitted in the block diagram.
[0092] The spindle control circuit 60 receives a spindle rotation command to the industrial machine and outputs a spindle speed signal to the spindle amplifier 61. The spindle amplifier 61 receives the spindle speed signal and rotates the spindle motor 62 of the machine tool at the commanded rotation speed to drive the tool.
[0093] The pulse encoder 63 is coupled to the spindle motor 62 via gears, a belt, etc. The pulse encoder 63 outputs a feedback pulse in synchronization with the rotation of the spindle. The feedback pulse is read by the CPU 11 via the bus 20 .
[0094] In addition, Figure 1 The illustrated configuration example of the control device 100 includes five axis control circuits 30 to 34 and five servo motors 50 to 54. However, the present invention is not limited thereto, and any number of axis control circuits and servo motors may be provided.
[0095] Figure 3 This is a functional block diagram showing the functions implemented by the CPU 11 in accordance with the system programs and application programs stored in the ROM 12, read via the bus 20. The CPU 11 includes a graph generation unit 111, a control point coordinate system insertion unit 113, an identifier assignment unit 114, an error node generation unit 115, a control point coordinate system designation unit 116, a command value determination unit 117, and a movement instruction unit 118.
[0096] The graph generation unit 111 generates the mechanical structure of the control target in a graph format. The detailed operation thereof will be described in detail in the following "2. Generation of Mechanical Structure Tree".
[0097] Furthermore, the graph generating unit 111 includes an error node adding unit 112. The function of the error node adding unit 112 will be described later.
[0098] The control point coordinate system insertion unit 113 inserts control points and a coordinate system into the graph of the mechanical structure.
[0099] The identifier assigning unit 114 assigns identifiers to the control points and the coordinate systems, respectively.
[0100] The detailed operations of the control point coordinate system insertion unit 113 and the identifier assignment unit 114 are described in detail in the following “3. Abstraction of command addresses” to “8. Derivation of coordinate system from machine structure tree”.
[0101] The error node generator 115 converts the mechanical error stored in the error information storage 142 into a relative value with respect to the error node insertion position.
[0102] The error node adding unit 112 adds the error nodes converted by the error node generating unit 115 to the mechanical structure generated in a graph form, that is, the “mechanical structure tree” in this embodiment.
[0103] Specific examples of the functions of the error information storage unit 142 , the error node generation unit 115 , and the error node addition unit 112 will be described in “10. Embodiment” below.
[0104] The control point coordinate system designation unit 116 designates the control points and coordinate system based on the identifiers. Specifically, the control point coordinate system designation unit 116 designates the control points and coordinate system based on, for example, program instructions, parameter settings, screen operations, or input values from an input unit of the control device 100.
[0105] The command value determination unit 117 determines which control point and coordinate value in which coordinate system the command value in the program corresponds to.
[0106] The detailed operations of the control point coordinate system designation unit 116 and the command value determination unit 117 are described in detail in the following “3. Abstraction of command addresses” to “8. Derivation of coordinate system from machine structure tree”.
[0107] The movement instruction unit 118 instructs the movement of the control point in such a way that the coordinate value of the control point becomes the instruction value in the program. The detailed operation of the movement instruction unit 118 is described in detail in the following "9. Movement pulse generation method". Figure 4 A configuration example of the movement instruction unit 118 is shown.
[0108] like Figure 4 As shown, the movement instruction unit 118 includes a simultaneous equations generating unit 181 , a simultaneous equations solving unit 182 , and a movement pulse generating unit 183 .
[0109] The simultaneous equations generating unit 181 uses the method described in the following "9. Moving pulse generating method" to obtain the first coordinate transformation formula of the instruction value based on the diagram of the specified coordinate system and mechanical structure. In addition, based on the diagram of the specified control point and mechanical structure, it obtains the second coordinate transformation formula of the control point, and generates a multivariate simultaneous equation that defines the equality of the first coordinate transformation formula and the second coordinate transformation formula.
[0110] The simultaneous equations solver 182 finds a solution to the aforementioned multivariate multi-order simultaneous equations.
[0111] The movement pulse generating unit 183 generates a movement pulse for a movement instruction using the solution generated by the simultaneous equation solving unit 182 .
[0112] 〔2. Generation of Mechanical Structure Tree〕
[0113] The control device 100 of the embodiment of the present invention first generates a graph showing the mechanical structure. As an example of the graph, refer to Figures 5 to 8 The method of generating a mechanical structure tree is described in detail.
[0114] As an example, Figure 5 The following describes how to create a mechanical structure tree that represents the structure of the machine. Figure 5 In a machine, the X-axis is perpendicular to the Z-axis, with tool 1 and tool 2 located on the X-axis and the Z-axis, respectively. Meanwhile, the B-axis is located on the Y-axis, the C-axis on the B-axis, and workpieces 1 and 2 are located on the C-axis. This machine structure can be represented as a machine structure tree as follows.
[0115] First, if Figure 6 As shown, only the origin 201 and nodes 202A to 202G are arranged. At this stage, there is no connection between the origin 201 and the node 202, or between the nodes 202, and the names of the origins and nodes are not set.
[0116] Next, set the axis name (axis type) of each axis, the name of each tool, the name of each workpiece, the name of each origin, and the physical axis number (axis type) of each axis. Next, set the parent node (axis type) of each axis, the parent node of each tool, and the parent node of each workpiece. Finally, set the cross offset (axis type) of each axis, the cross offset of each tool, and the cross offset of each workpiece. As a result, a Figure 7 The mechanical structure tree shown.
[0117] In addition, each node in the mechanical structure tree is not limited to the above-mentioned information. For example, it may also have an identifier (name), an identifier of its own parent node, identifiers of all child nodes that have itself as a parent node, a relative offset (cross offset) relative to the parent node, a relative coordinate value relative to the parent node, a relative movement direction (unit vector) relative to the parent node, a node category (linear axis / rotational axis / unit (described later) / control point / coordinate system / origin, etc.), a physical axis number, information related to the transformation formula of the orthogonal coordinate system and the physical coordinate system, or it may not have it.
[0118] In addition, each node of the mechanical structure tree may or may not have the information required for the node itself to function as a control point or coordinate system. The information required as a control point or coordinate system will be described in detail later, but for example, information such as offset, posture matrix, movement, and offset may or may not be included. In this case, the implementation method of the control point coordinate system designation unit described later will be different depending on whether the node itself has the information required as a control point or coordinate system. In addition, even if the node does not have the required information, the required information can be assigned to the node through the control point coordinate system insertion unit and the control point coordinate system identifier assignment unit described later.
[0119] By setting values for each node in this manner, data having a machine structure tree structure is generated within the control device 100. Furthermore, when another machine (or robot) is added, an origin and, consequently, a node can be added.
[0120] exist Figure 8 2 shows a flowchart of a generalized method of generating the above-mentioned mechanical structure tree, in particular, a method of setting each value of each node.
[0121] In step S11 , the graph generation unit 111 receives the value of the parameter set for the node.
[0122] In step S12, if the parameter item set is "own parent node" (S12: Yes), the process proceeds to step S13. If it is not "own parent node" (S12: No), the process proceeds to step S17.
[0123] In step S13, if a parent node has been set for the node for which parameters have been set (S13: Yes), the process proceeds to step S14. If a parent node has not been set (S13: No), the process proceeds to step S15.
[0124] In step S14 , the graph generation unit 111 deletes its own identifier from the item “child node” of the current parent node of the node to which the parameter is set, and updates the machine structure tree.
[0125] In step S15 , the graph generation unit 111 sets values for corresponding items of the nodes for setting parameters.
[0126] In step S16 , the graph generator 111 adds its own identifier to the item “child node” of the parent node, updates the machine structure tree, and then ends the process.
[0127] In step S17 , the graph generation unit 111 sets values for corresponding items of the parameter setting nodes and then ends the process.
[0128] By using the method for generating data having the above-described machine structure tree-like data structure, it is possible to set a parent-child relationship between the components of the machine.
[0129] Here, the parent-child relationship refers to, for example, Figure 9A In this way, when there are two rotation axis nodes 104 and 105, a change in the coordinate value of one node 104 unilaterally affects the geometric state (typically, position and posture) of the other node 105. In this case, nodes 104 and 105 are said to have a parent-child relationship, with node 104 being called the parent node and node 105 being called the child node.
[0130] However, for example Figure 9B As shown, in a mechanical structure consisting of two linear axis nodes 102 and 103 and four free joints 101, a change in the coordinate value (length) of one of the nodes 102 and 103 affects not only the geometry of the other node but also its own geometry. In this case, the nodes can be considered to be parent and child, meaning that the parent-child relationship is bidirectional.
[0131] In this way, for the convenience of the mechanism, the change of a certain node affects other nodes, and it is considered as a unit. By inserting the unit into the mechanical structure tree, the entire mechanical structure tree is generated. Figure 10A There are two connection points 110 and 120, in the unit such as Figure 10B When inserted into the mechanical structure tree, Figure 10C In this way, the parent node is connected to the connection point 120, and the child node is connected to the connection point 110. In addition, the unit has a transformation matrix from the connection point 120 to the connection point 110. This transformation matrix is represented by the coordinate values of each node included in the unit. For example, Figure 11 In the case of such a mechanical structure, if the homogeneous matrix representing the position and posture of the connection point 120 is M A , let the homogeneous matrix representing the position and posture of the connection point 110 be M B, then the transformation formula between these matrices is expressed as follows using the coordinate values x1 and x2 of each linear axis node contained in the unit.
[0132] [Formula 1]
[0133]
[0134] If set to
[0135] Then through M B =TM A in, express.
[0136] The unit representing this mechanical structure has a homogeneous transformation matrix such as T in the above-mentioned [Formula 1]. A homogeneous matrix is a 4×4 matrix that can collectively express positions and postures as shown in the following [Formula 2].
[0137] [Formula 2]
[0138]
[0139] In addition, even when the parent-child relationship is not mutual, in order to simplify the calculation process and settings, a unit obtained by aggregating multiple nodes into one can be defined in advance and constructed in the mechanical structure tree.
[0140] In addition, such a unit may be predefined in the numerical controller, or a script independently written by the user may be read into the numerical controller.
[0141] Figure 12A This section shows an example of the flow when a numerical controller reads a script written independently by the user.
[0142] In step S21 , the control device 100 reads a scenario defined by the user.
[0143] In step S22 , the control device 100 analyzes the contents of the read script and redefines the unit.
[0144] In step S23 , the control device 100 newly registers the newly defined unit as a component that can be inserted into the mechanical configuration diagram.
[0145] As a result, in step S24, the user can register the individual unit (in Figure 12B In the example "MyUnit" is inserted into the mechanical structure tree.
[0146] That is, the numerical control device reads a script written independently by the user and analyzes the content to thereby newly define a unit, which can be configured in the machine structure tree using the unit.
[0147] Figure 12B Indicates passing Figure 12A The script described in [ ] inserts a newly defined unique unit "MyUnit" into the machine structure tree. This allows users to define their own units even if the desired unit format is not predefined in the numerical controller, thus improving convenience.
[0148] As described above, in this embodiment, the graph of the mechanical structure can include, as a component, a unit in which a plurality of axes are grouped together into one.
[0149] In addition, the above mechanical structure tree can be Figure 13A The display 70 is graphically displayed as shown in FIG. 1 , and the setting is easily performed using a graphical user interface (GUI) on the display 70. For example, Figure 13B As shown, nodes can be configured by dragging and dropping. Figure 13C By dragging the nodes, you can set the parent-child relationship between them. Figure 13D In this way, you can open the setting menu by clicking the mouse to set the properties of the node.
[0150] Industrial machinery, such as machine tools, has a variety of mechanical structures, resulting in a wide variety of parent-child relationships between components. However, numerical controllers typically lack information regarding these parent-child relationships, making it impossible to perform the control required based on this information. However, by using the aforementioned machine structure tree or a method for generating data having a machine structure tree-like data structure, numerical controllers can control machine tools and robots with diverse mechanical structures, improving convenience. Furthermore, users can intuitively set the machine structure tree in the numerical controller using a graphical user interface (GUI).
[0151] 〔3.Abstraction of instruction addresses〕
[0152] As described above, when creating a machine structure tree, axis names are assigned to the axes. Typically, in machining programs used in numerical controllers, movement is instructed using a combination of an axis name and a coordinate value indicating a movement destination or a numerical value indicating a movement amount.
[0153] However, even if the axis names can be set arbitrarily, if the axis structure of the machine is different, the program must be different if the axis names are used to indicate the axis. Figure 14As shown, when machining a workpiece 212 using a tool 213, the workpiece is mounted on a rotary table 214 as in (a), and the workpiece is mounted on a linear table 211 as in (b). Even if the desired relative machining path 215 of the tool 213 relative to the workpiece 212 is the same, the program will differ, as the command for implementing that path is 216 in (a) and 217 in (b). Specifically, the program differs as follows: in the case of 216, the circular path is achieved by moving the rotary table's rotation axis C 180 degrees, while in the case of 217, the circular path is achieved by issuing a circular interpolation command using the linear axes XY.
[0154] Furthermore, conventionally, address specifications were determined for each G-code mode. When the mode changed, the command address needed to be changed accordingly. For example, in tool tip point control, to indicate the tool posture, the address specifications for each mode were determined such that in Type 1 mode, the tool posture was indicated using the addresses of the respective rotation axes (e.g., addresses A, B, and C), while in Type 2 mode, the tool posture vector (addresses I, J, and K) was used. Therefore, for example, it was not possible to specify using addresses I, J, and K in Type 1 mode, and conversely, it was not possible to specify using the rotation axis addresses A, B, and C in Type 2 mode.
[0155] Therefore, in the present invention, instead of using axis names, abstract addresses that define the position and posture of a control point in a coordinate system are used. Specifically, first, in order to define the address, Figure 15 218. In 218, by substituting appropriate addresses α and β into identifiers (identifier L1 indicating the position of the first linear axis, identifier L2 indicating the position of the second linear axis) predefined independently of the actual axis names in the mechanical structure, address α is defined as the first linear axis position of the orthogonal coordinate system, and address β is defined as the second linear axis position of the orthogonal coordinate system. Similarly, appropriate addresses may be substituted into identifiers V1, V2, and V3 indicating tool posture vectors predefined independently of the actual axis names to define the addresses representing the tool posture vectors. Alternatively, appropriate addresses may be substituted into identifiers R1 and R2 indicating the first and second rotation axis positions predefined independently of the actual axis names to define the addresses representing the positions of the rotation axes. When these addresses are not defined in the program, the default addresses set by parameters in the control device 100 are defined as addresses representing the abstract meanings of the first linear axis position, the second linear axis position, and the like. Moreover, as described later Figure 15As shown in FIG219, by using these α and β in the program, no matter what the mechanical structure is, or between machines with different actual axis names, the program can be described in a common form. In addition, even if it is an instruction for the same control point, only by Figure 15 The address can be changed as in 220, for example, in order to determine the direction of the tool in a certain program block, a vector can be used for indication, or in a certain program block, a rotation axis angle can be used for indication, and the program maker can use various appropriate instruction methods each time.
[0156] As described above, in this embodiment, arbitrary addresses assigned to identifiers predefined for each meaning can be used as command values, regardless of the axis names included in the diagram of the mechanical structure. Furthermore, the aforementioned "meaning" includes the position of a control point, the posture of the control point, and the angular position of the rotation axis that determines the posture.
[0157] 〔4. Automatic insertion of control points and coordinate systems〕
[0158] As described in "2. Generating a Machine Structure Tree," each node in the machine structure graph may or may not contain the information necessary to serve as a control point or coordinate system. If a node lacks the necessary information to serve as a control point or coordinate system, the following method is implemented using the machine structure tree generated in "2. Generating a Machine Structure Tree" to designate various locations on the machine structure as control points and to set coordinate systems for various parts of the machine structure.
[0159] For example, in Figure 16A In the multi-station rotary machine tool 300 shown, the X1 axis is set perpendicular to the Z1 axis, and tool 1 is set on the X1 axis. In addition, the X2 axis is set perpendicular to the Z2 axis, and tool 2 is set on the X2 axis. Furthermore, the C1 axis and C2 axis are set in parallel on the worktable along the C axis, and workpiece 1 and workpiece 2 are set on the C1 axis and C2 axis, respectively. If the machine structure is represented by a machine structure tree, it becomes Figure 16B The mechanical structure tree shown.
[0160] Take a series of nodes connected from each workpiece to the mechanical origin as an example, Figure 17 As shown in the figure, coordinate systems and control points are automatically inserted at the machine origin, C axis, C1 axis, C2 axis, workpiece 1, and workpiece 2. This is not only implemented for the worktable, but also for the entire series of nodes connected from each tool to the machine origin, namely the X1 axis, X2 axis, Z1 axis, Z2 axis, tool 1, and tool 2. The result is as follows Figure 18As shown, control points and coordinate systems corresponding to each node are automatically inserted into all nodes that make up the machine structure tree. Typically, during machining, coordinate systems and tools are assigned to the workpiece as control points. This allows for various scenarios, such as specifying control points to move the workpiece to a predetermined position or setting a coordinate system for a tool to grind another tool.
[0161] In addition, if Figure 19A As shown, each control point and coordinate system has an offset. Therefore, it is also possible to set a point far from the center of the node as a control point or the origin of the coordinate system. In addition, each control point and coordinate system has a posture matrix. In the case of the posture matrix of the control point, the posture matrix represents the posture (direction, tilt) of the control point, and in the case of the posture matrix of the coordinate system, the posture of the coordinate system. Figure 19B In the mechanical structure tree shown, offsets and posture matrices are associated with their corresponding nodes. Furthermore, each control point and coordinate system includes information about "movement" and "cross-offsets" that take into account or exclude nodes along the path to the root of the mechanical structure tree, allowing for configuration of these parameters.
[0162] exist Figure 20 A generalized flowchart of the automatic control point insertion method is shown in FIG. Specifically, the flowchart includes a flow A and a flow B. As described later, the flow B is executed during the flow A.
[0163] First, process A will be described.
[0164] In step S31 , the graph generating unit 111 sets a machine structure tree.
[0165] In step S32, process B is executed and process A is ended.
[0166] Next, process B will be described.
[0167] In step S41 of FIG. B , if the node has been inserted into the control point / coordinate system ( S41 : Yes), the process ends. If the node has not been inserted into the control point / coordinate system ( S41 : No), the process moves to step S42 .
[0168] In step S42, the control point coordinate system inserting unit 113 inserts the control point / coordinate system into the node and stacks the variable n by 1. In addition, it is assumed that n=1.
[0169] In step S43, if the node has an n-th child node (S43: Yes), the process proceeds to step S44. If the node does not have an n-th child node (S43: No), the process proceeds to step S46.
[0170] In step S44 , for the nth child node, process B itself is recursively executed.
[0171] In step S45, n is incremented by 1. That is, n=n+1 is set, and the process returns to step S43.
[0172] In step S46, one variable n is popped from the stack, and the process of process B ends.
[0173] By the above method, the control point coordinate system inserting unit 113 inserts the control point and the coordinate system as nodes for each node of the graph of the mechanical structure. In addition, in the above, the embodiment of the case where the control point and the coordinate system are added as nodes is shown, but if Figure 21 As shown, the following embodiment can also be performed: the control point coordinate system insertion unit 113 allows each node of the mechanical structure graph to have a control point and a coordinate system as information. In addition, as described in "2. Generation of mechanical structure tree", the graph generation unit can also generate Figure 22 The machine structure tree shown (a machine structure tree having information required for each node to function as a control point or coordinate system) is shown. In this case, the machine structure tree already has information as a control point or coordinate system, so the control point coordinate system insertion unit is not necessarily required.
[0174] 〔5. Calculation Method of Control Point Position and Control Point Posture〕
[0175] like Figure 23 As shown, let the homogeneous matrix representing the position and posture of a control point in the mechanical structure tree relative to the root of the mechanical structure tree be M C In the case of , the homogeneous matrix is obtained as follows.
[0176] First, a path is defined as a path that arranges nodes from one node to another in the mechanical structure tree. For example, Figure 17 , the path p1 from node Z1 to control point [Tool1] is expressed as follows.
[0177] [Formula 3]
[0178] p1 = {Z1, X1, tool1, control point [tool1]}
[0179] Assume that the path p2 from the root in the mechanical structure tree to a certain control point is as follows.
[0180] [Formula 4]
[0181] p2={x1,x2,…,x N , control point}
[0182] The starting point x1 in the above path is the root. The homogeneous matrix M of the position and posture of the control points represented by the path relative to the root is C Calculated by the following formula
[0183] [Formula 5]
[0184] in,
[0185] The meanings of the symbols are as follows.
[0186] S: homogeneous transformation matrix of each node;
[0187] N: the number of nodes connected from the root of the mechanical structure tree to the control point;
[0188] M [ctrl] : The relative offset of the control point relative to the parent node and the homogeneous matrix of the posture are defined according to the offset vector and posture matrix defined by the control point according to the formula [Formula 2];
[0189] a xi : Consider the cross offset of node xi (1), not consider it (0);
[0190] b xi : Consider the movement of node xi (1), not consider (0);
[0191] Here, a xi 、b xi This information can also be specified when specifying a control point. Details will be explained later in [8. Customizing the Coordinate System Derived from the Mechanical Structure Tree].
[0192] In addition, the homogeneous transformation matrix S changes depending on the type of node (linear axis / rotation axis / element / control point / coordinate system, etc.), and is expressed as follows.
[0193] In the case of a linear axis, it is calculated using the following formula.
[0194] [Formula 6]
[0195]
[0196] The meanings of the symbols are as follows.
[0197] x i : The coordinate value of node xi;
[0198] ofs xi: The relative offset vector of node xi relative to the parent node;
[0199] v xi : Moving direction vector of node xi;
[0200] The case of a rotating axis is calculated using the following formula.
[0201] [Formula 7]
[0202]
[0203]
[0204] The meanings of the symbols are as follows.
[0205] v1: the first component of the rotation axis direction vector of node xi;
[0206] v2: the second component of the rotation axis direction vector of node xi;
[0207] v3: the third component of the rotation axis direction vector of node xi;
[0208] The unit is calculated by the following formula.
[0209] [Formula 8]
[0210]
[0211] The meanings of the symbols are as follows.
[0212] T(0): identity matrix (no transformation matrix);
[0213] T(1): homogeneous transformation matrix from connection point 120 defined in the unit node to connection point 110;
[0214] As described above, the transformation homogeneous matrix of the unit is a homogeneous transformation matrix defined for each unit, such as T in the equation of [Equation 1].
[0215] In addition, unless otherwise specified, the homogeneous transformation matrix S is set to the unit matrix.
[0216] 〔6. Calculation Method of Command Point Position and Command Point Posture〕
[0217] like Figure 24 As shown, when the instruction position vector pos is specified W , command posture matrix mat W In the case of a command value on a certain specified coordinate system, the homogeneous matrix M representing the position and posture of the command value relative to the root of the mechanical structure tree is M It is obtained by the following formula.
[0218] First, the homogeneous matrix M of the command value is defined as follows w .
[0219] [Formula 9]
[0220]
[0221] In addition, similarly to the case of the control point, it is assumed that the path p3 from the root in the mechanical structure tree to a certain coordinate system is as follows.
[0222] [Formula 10]
[0223] p3={x1,x2,…,x L , coordinate system}
[0224] Thus, the homogeneous matrix M M It is calculated by the following formula.
[0225] [Formula 11]
[0226] in,
[0227] The meanings of the symbols are as follows.
[0228] S: homogeneous transformation matrix of each node;
[0229] L: The number of nodes connected from the root of the mechanical structure tree to the coordinate system;
[0230] M [coord] : The relative offset of the coordinate system relative to the parent node and the homogeneous matrix of the posture are defined according to the offset vector and posture matrix defined by the coordinate system according to the formula [Formula 2];
[0231] a xi : Consider the cross offset of node xi (1), not consider it (0);
[0232] b xi : Consider the movement of node xi (1), not consider (0);
[0233] a xi 、b xi This is information that can be specified when specifying a coordinate system. Details are explained later in [8. Customizing the Coordinate System Derived from the Mechanical Structure Tree].
[0234] In addition, the homogeneous transformation matrix S is the same as the homogeneous transformation matrix described using the equations [Equation 6] to [Equation 8].
[0235] 〔7. How to specify control points and coordinate systems within the program〕
[0236] First, in the above "2. Generation of Mechanical Structure Tree", Figure 25 , when a machine structure tree is generated so that each node has information necessary for serving as a control point or a coordinate system, an example of a method of specifying each node as a control point or a coordinate system in a program is shown.
[0237] Figure 25 In the command shown, the first half is an example of specifying the coordinate system, and the second half is an example of specifying the control point. Figure 25 , but explains the instruction content of each line in the program.
[0238] By "G54.9 P<workpiece 1>;" in the first line, the node "workpiece 1" is specified as the coordinate system.
[0239] By "G54.8 P <work 1> <WORK1>;" in the second line, another identifier "WORK1" is set for the node "work 1".
[0240] By "G54.9 P<WORK1>;" in the third line, the node "workpiece 1" is designated as the coordinate system by other identifiers such as "WORK1".
[0241] Through the fourth line "G54.7 P<C1>X_Y_Z_;", set the coordinate system cross offset of node "C1".
[0242] In the fifth row, “G54.6 P<C1>I_J_K_;” sets the coordinate system posture matrix of the node “C1” by roll / pitch / yaw.
[0243] By "G54.9 P<C1>;" in the sixth line, the node "C1" is designated as the coordinate system, and the above-mentioned cross offset and posture matrix are taken into consideration.
[0244] By "G43.9 P <Tool 1>;" in the seventh line, the node "Tool 1" is designated as a control point.
[0245] By "G43.8 P <Tool 1> <TOOL1>;" in the eighth line, another identifier "TOOL1" is set for the node "Tool 1".
[0246] By "G43.9 P<TOOL1>;" in the ninth line, the node "TOOL1" is designated as a control point by another identifier such as "TOOL1".
[0247] Through "G43.7 P<B1>X_Y_Z_;" in the tenth line, set the control point cross offset of node "B1".
[0248] By "G43.6 P<B1>I_J_K_;" in the eleventh line, the control point posture matrix of the node "B1" is set by roll / pitch / yaw.
[0249] By "G43.9 P<B1>;" on the twelfth line, the node "B1" is designated as a control point, and the above-mentioned cross offset and posture matrix are taken into consideration.
[0250] Then, in Figure 26 The following shows an example of a method for specifying control points and coordinate systems to be inserted into the machine structure tree within a program through the above-mentioned "4. Automatic insertion of control points and coordinate systems".
[0251] Figure 26 In the command shown, the first half is an example of specifying the coordinate system, and the second half is an example of specifying the control point. Figure 26 , but explains the contents of the instructions on each line in the program.
[0252] The first line of "G54.9 P <Coordinate system [Workpiece 1]>;" specifies the coordinate system [Workpiece 1].
[0253] By "G54.8 P <Coordinate system [Workpiece 1]> <WORK1>;" on the second line, an identifier "WORK1" is set in the coordinate system [Workpiece 1].
[0254] By "G54.9 P<WORK1>;" in the third line, the coordinate system [workpiece 1] is specified by other identifiers such as "WORK1".
[0255] The cross offset of the coordinate system [C1] is set by "G54.7 P<Coordinate system [C1]>X_Y_Z_;" in the fourth line.
[0256] By "G54.6 P < Coordinate System [C1] > I_J_K_;" in the fifth row, the posture matrix of the coordinate system [C1] is set by Roll / Pitch / Yaw.
[0257] By "G54.9 P <Coordinate system [C1]>;" in the sixth line, the coordinate system [C1] is specified, and the above-mentioned cross offset and posture matrix are taken into consideration.
[0258] By "G54.9 P<Control point [Tool 1]>;" in the seventh line, the control point [Tool 1] is specified.
[0259] By "G54.8 P <Control point [Tool 1]> <TOOL1>;" in the eighth row, an identifier "TOOL1" is set for the control point [Tool 1].
[0260] By "G54.9 P<TOOL1>;" in the ninth line, the control point [Tool 1] is specified by another identifier such as "TOOL1".
[0261] The cross offset of control point [B1] is set by "G54.7 P<control point [B1]>X_Y_Z_;" in the tenth line.
[0262] In the eleventh row, “G54.6 P<control point [B1]>I_J_K_;” sets the posture matrix of the control point [B1] by roll / pitch / yaw.
[0263] By "G54.9 P <control point [B1]>;" on the twelfth line, the control point [B1] is specified, and the above-mentioned cross offset is taken into consideration.
[0264] In this way, no matter whether each node has the information required to be a control point or a coordinate system or not, it is possible to designate the appropriate part in the mechanical structure tree as a control point or a coordinate system. Figure 25 In the , the numbers of each G code that specifies the control point and coordinate system are distinguished, but in Figure 26 In this way, the coordinate system control point insertion unit and the identifier allocation unit are not indispensable for the implementation of the present invention, but can also be introduced.
[0265] 〔8. Customization of the coordinate system derived from the mechanical structure tree〕
[0266] As described above, the appropriate coordinate system in the machine structure tree can be selected by program instructions, and the command value on the selected coordinate system can be converted into the machine coordinate value as described using the equations [Equation 9] to [Equation 11]. In this conversion, a series of a corresponding to each node in the path p3 is xi 、b xi Basically, all values are calculated as 1 as follows.
[0267] [Formula 12]
[0268] p3={x1,x2,...,x L , coordinate system}
[0269]
[0270]
[0271] In this case, a series of cross-offsets and movements of nodes are all considered.
[0272] Here, a p3 and b p3 The elements corresponding to the elements of the path p3 can be viewed as accompanying paths. Therefore, they are called accompanying paths a of p3. p3 、b p3 .
[0273] However, as described in [Problems to be Solved by the Invention], there are cases where it is appropriate to use a method in which the coordinate system does not rotate with respect to a specific axis. For example, Figure 19A and Figure 19B In the case of performing turning processing with the C1 axis on the coordinate system defined by the following path p4, the method of not rotating with the C1 axis is easy to use.
[0274] [Formula 13]
[0275] p4 = {mechanical origin, C, C1, workpiece 1, coordinate system}
[0276] In this case, if the accompanying path a is specified as follows p4 、b p4 , you can customize the coordinate system in a way that is not only linked to the C1 axis.
[0277] [Formula 14]
[0278]
[0279]
[0280] In this way, by appropriately specifying the accompanying path for the specified coordinate system, the coordinate system can be appropriately customized according to the usage method. Figure 27 As shown, the accompanying path can be specified by program commands. If the program content is explained, the G254.9P<workpiece 1>Q<C1>0 command can specify ac1 inserted into the coordinate system of workpiece 1 as 0.
[0281] Furthermore, by using the G154.9P<workpiece 1>Q<C1>0 command, bc1 inserted into the coordinate system of workpiece 1 can be designated as 0.
[0282] Then, the G54.9 P <workpiece 1> command can specify the customized coordinate system [workpiece 1] with ac1=0 and bc1=0.
[0283] Furthermore, not only the coordinate system but also the control points have accompanying paths. Therefore, by appropriately specifying the accompanying paths through the program, it is possible to use custom control points.
[0284] As described above, in this embodiment, the coordinate system and the control points can be arbitrarily customized by changing the information for defining the coordinate system and the control points.
[0285] In particular, the coordinate system and the control points can eliminate the influence of specific nodes, specifically, can eliminate the influence caused by the movement and offset of specific nodes.
[0286] [9. Mobile Pulse Generation Method]
[0287] Next, the control device 100 of the embodiment of the present invention interprets the instruction value in the program indicated by the method [3. Abstraction of instruction address] as a coordinate value on the coordinate system specified by the methods [7. Method of specifying control points and coordinate systems in the program] and [8. Customization of coordinate systems derived from the machine structure tree], so as to generate a movement pulse required to move the control point in such a way that the coordinate value of the specified control point becomes the instruction value.
[0288] Specifically, first, based on the specified coordinate system and the machine structure tree, the first coordinate transformation formula of the command value is obtained by the method of [6. Calculation method of command point position and command point posture]. Then, based on the specified control point and the machine structure tree, the second coordinate transformation formula of the control point is obtained by the method of [5. Calculation method of control point position and control point posture]. Then, a multivariate simultaneous equation defining the equality of the first coordinate transformation formula and the second coordinate transformation formula is obtained. Finally, using, for example, Based on the calculated solutions of the multivariate multi-order simultaneous equations, movement pulses for movement instructions are generated.
[0289] For example, Figure 28 As shown in the figure, axis x2 is set on axis x1, axis x3 is set on axis x2, and similarly, N nodes are connected, with the end being axis xN. Furthermore, a control point is set on axis xN. Similarly, axis y2 is set on axis y1, axis y3 is set on axis y2, and similarly, L nodes are connected, with the end being axis yL. Furthermore, a workpiece is set on axis yL. Here, xi and yj are node names, but they also represent the coordinate values of each node.
[0290] In addition, if Figure 29 As shown in the figure, the addresses X, Y, Z indicating the orthogonal coordinate position and the addresses I, J, K indicating the tool posture are specified by the program, and the position posw=(X W , Y W , ZW ) and tool direction vector vecw=(I W , J W , K W ). In addition, Figure 30 As shown, it is assumed that the control point [xN] and coordinate system [yM] are specified by the program.
[0291] At this point, the path p from the root of the mechanical structure tree at the control point specified here ctrl and the path p of the coordinate system from the root of the mechanical structure coord As shown in the following [Formula 15].
[0292] [Formula 15]
[0293] p ctrl ={x0, x1, x2..., x N , control point}
[0294] p coord ={y0, y1, y2, ..., y L , coordinate system}
[0295] In addition, the accompanying paths of the control points and coordinate systems are not specifically specified by the program, so the accompanying paths a of each path are pctr1 、b pctrl 、a pcoord 、b pcoord The elements of are all set to 1 as in the following formula [Formula 16].
[0296] [Formula 16]
[0297]
[0298]
[0299]
[0300]
[0301] Furthermore, assuming that each node is assigned Figure 28 The offset, node type (linear / rotation / unit / control point / coordinate system), axis direction, pose matrix, and coordinate values are shown.
[0302] At this time, if Figure 31 As shown in FIG, the homogeneous matrix Mc representing the current position and orientation of the control point relative to the root (mechanical origin) is obtained by the following formula.
[0303] [Formula 17]
[0304] in,
[0305] The meanings of the symbols are as described in [5. Calculation method of control point positions and control point postures] and are therefore omitted.
[0306] Furthermore, the homogeneous matrix Mcw representing the current position and orientation of the control point on the designated coordinate system is obtained by the following equation using Mc.
[0307] [Formula 18]
[0308] in,
[0309] Here, the current position vector pos of the control point on the specified coordinate system is obtained as follows cw .
[0310] [Formula 19]
[0311] POS cw =M cw (0 0 0 1) T
[0312] Then, if Figure 32 As shown, use pos cw , calculate the next interpolation position vector pos in the specified coordinate system using the following formula w '.
[0313] [Formula 20]
[0314]
[0315] Here, F is the designated moving speed per interpolation cycle. Thus, the position per interpolation cycle on the straight line connecting the current position in the designated coordinate system and the command point position can be determined.
[0316] On the other hand, the current tool direction vector vec of the control point in the specified coordinate system cw When the tool reference direction vector is (0, 0, 1, 0), it is calculated as follows.
[0317] [Formula 21]
[0318] vec cw =M cw (0 0 1 0) T
[0319] In addition, the tool reference direction vector is not limited to the above, and can also be changed according to instructions, parameter settings, etc.
[0320] therefore, Figure 33The next interpolation tool direction vector vec' of the control point in the designated coordinate system as shown is obtained by the following equation.
[0321] [Formula 22]
[0322] θ=cos -1 (vec cw ·vec w )
[0323]
[0324]
[0325] vec′ w =Rot(θ′,axis)
[0326] The symbols are explained as follows.
[0327] Rot(θ', axis): Rotation matrix for rotating θ' around the vector axis. This is the same as the matrix R described in [Equation 7].
[0328] When the next interpolation position vector posw′ and the next interpolation tool direction vector vecw′ are obtained as described above, the following simultaneous equations are established for the position and orientation of the control point.
[0329] [Formula 23]
[0330]
[0331] By about each x i ,y i Solve this simultaneous equation to find the next interpolation position of each axis.
[0332] In addition, when solving simultaneous equations, it is possible to use, for example, Specifically, if the lexicographic order x1>x2>…>x N >y1>y2>…y M , for example, using the Buchburger algorithm, etc., to find the above simultaneous equations Basis, then find the lowest order y M If you solve this equation, you can find y M The solution of The basis also solves the equations in order, which can be used for each x i 、y i Solve the above simultaneous equations.
[0333] By using the solutions x obtained in this way i'、y i 'The output of each axis becomes Δx i '=x i '-x i , Δy i '=y i '-y i The movement amount can achieve movement at a specified speed in a specified coordinate system.
[0334] Furthermore, in the case of redundant degrees of freedom in a mechanical structure, this can be addressed by appropriately adding constraints to the equation in [Equation 23], such as immobilizing some axes or directly assigning command values to some axes. Alternatively, some axes can be addressed by assigning attributes to auxiliary axes that normally do not move and only move near singular points to avoid singularities. Alternatively, this can be addressed by adding auxiliary control points and providing instructions for these auxiliary control points.
[0335] Furthermore, even when the mechanical structure's degrees of freedom are not redundant, the simultaneous equations can be omitted by directly assigning command values to several axes. For example, to distinguish between rotation axes that change the tool orientation of a control point relative to a specified coordinate system due to coordinate value changes and rotation axes that do not contribute to tool orientation changes, these axes are called tool-changing rotation axes. Each node in the mechanical structure tree contains information on whether it is a tool-changing rotation axis. Furthermore, each path from the root to the control point and coordinate system is represented by [Equation 15], and a list of tool-changing rotation axis nodes included in each path is [Equation 24].
[0336] [Formula 24]
[0337] {x n ,y m}
[0338] In addition, by marking the first and second order from the tool change rotation axis farthest from the root among the tool change rotation axes on the control point side, and then marking the third and fourth order from the tool change rotation axis farthest from the root among the tool change rotation axes on the coordinate system side, the order of the tool change rotation axes can be strictly defined for any mechanical structure tree. Therefore, xn is called the first tool change rotation axis, and ym is called the second tool change rotation axis. Here, the identifier R1 representing the first tool change rotation axis and the identifier R2 representing the second tool change rotation axis are used, as shown in FIG. Figure 34 By using the addresses A and B specified in this way, it is possible to directly instruct the angle value of the tool rotation axis instead of directly instructing the tool direction vector.
[0339] In this case, the next interpolation positions xn′ and yn′ of the first tool change rotation axis and the second tool change rotation axis can be obtained by the following equations.
[0340] [Formula 25]
[0341] If targeted x n 、 y m The command values are set to x nw 、 y mw ,but
[0342]
[0343]
[0344] This determines the nodal coordinates of the first and second tool change rotation axes, and thus the tool direction vector. This eliminates the need to solve simultaneous equations for the tool direction vector, and only the simultaneous equations related to the following command positions need to be solved.
[0345] [Formula 26]
[0346]
[0347] In the above formula, the coordinate values of the nodes xn and yn are substituted into the values obtained above and solved as constants.
[0348] As described above, the coordinate values of specific nodes can be directly specified as command values in the program, thereby reducing the number of simultaneous equations.
[0349] [10. Example]
[0350] [10.1 Example 1]
[0351] Below, refer to Figures 35 to 41 The first embodiment is described below. The first embodiment is an embodiment in which an error node related to a three-dimensional rotation error is inserted next to the machine origin in the machine structure tree.
[0352] Figure 35 65 is a diagram illustrating an actual method of measuring errors in a machine tool. Figure 35 As shown, a reflecting mirror 67 is provided at the front end of a tool 66 of a machine tool 65 , and a laser interferometer (not shown) is used to irradiate the reflecting mirror 67 with laser light, thereby actually measuring the position error of the reflecting mirror 67 .
[0353] The error in the position of the reflector 67 is composed of a translation error and a rotation error. Figure 36 As shown in FIG. 1 , the translation error is an error related to the deviation of the center position of the reflector 67 and is actually measured as the deviation of the center position. Figure 37 As shown, the rotation error is an error related to the posture of the mirror 67 and is actually measured as the rotation angle around the X axis, the rotation angle around the Y axis, and the rotation angle around the Z axis. The translation error and the rotation error are differential values in the machine coordinate system.
[0354] The translation error vector representing the translation error of the mirror 67 is obtained by using the actual measured value of the offset of the mirror 67 (x, y, z) = (T x , T y , T z ), can be obtained by the following formula.
[0355] [Formula 27]
[0356]
[0357] On the other hand, the rotation error matrix representing the rotation error of the reflector 67 can be approximately calculated by the following formula by using the rotation angle a of the reflector 67 around the X axis, the rotation angle b around the Y axis, and the rotation angle c around the Z axis when the rotation angles a, b, and c are small.
[0358] [Formula 28]
[0359]
[0360] These translation error vectors and rotation error matrices are stored as error information in the error information storage unit 142. In addition, the machine coordinate system is stored in the error information storage unit 142 as the coordinate system in which the error is observed.
[0361] Next, the error node generator 115 converts the error at the mirror position stored in the error information storage 142 into an error at the error node insertion position. Here, as an example, the error is converted into an error at the machine origin 68 of the machine tool 65 .
[0362] like Figure 38 As shown, the vector from the mechanical origin 68 to the position of the reflector 67 is referred to as the "error offset vector". The error offset vector can be calculated by the mechanical structure tree. Figure 39 In the mechanical structure tree shown, it is assumed that a node that is separated from the node 352 corresponding to the reflector by the error offset vector is added as an error node 354 next to the node 353 corresponding to the mechanical origin.
[0363] like Figure 40 As shown, if the translation error at the reflector position is:
[0364] [Formula 29]
[0365]
[0366] The rotation error at the mirror position is:
[0367] [Formula 30]
[0368]
[0369] The translation error at the mechanical origin is:
[0370] [Formula 31]
[0371]
[0372] The rotation error at the mechanical origin is:
[0373] [Formula 32]
[0374]
[0375] The error offset vector is:
[0376] [Formula 33]
[0377]
[0378] Then, the error node generator 115 converts the error at the mirror position into the error at the mechanical origin by using the following equation, and generates an error node corresponding to the error at the mechanical origin.
[0379] [Formula 34]
[0380]
[0381]
[0382] The above equation is for the case where the position and posture of the nodes stored in the mechanical structure tree are calculated first in the forward kinematic transformation. It can be converted to the equation for calculating the rotation of the posture first as follows.
[0383] [Formula 35]
[0384]
[0385]
[0386] Next, the error node adding unit 112 adds the error node 354 generated by the error node generating unit 115 to the machine structure tree next to the node 353 corresponding to the machine origin. Figure 41 The mechanical structure tree after the error node 354 is added is shown.
[0387] Finally, the control device 100 calculates the motor command value using the machine structure tree to which the error node 354 is added.
[0388] In the first embodiment, even when the cause of the measured error cannot be separated for each axis, the error can be corrected.
[0389] [10.2 Example 2]
[0390] Below, by reference Figure 42 as well as Figure 43 , Example 2 will be described. Example 2 is an example in which an error node related to a three-dimensional rotation error is inserted into the mirror position in the mechanical structure tree.
[0391] First, in Example 2, as in Example 1, the translation error vector and the rotation error matrix are stored as error information in the error information storage unit 142, and the error at the mirror position stored in the error information storage unit 142 is transformed into the error at the error node insertion position through the error node generation unit 115.
[0392] In the second embodiment, at the same time, the error node generator 115 generates the following two nodes corresponding to the mirror offset.
[0393] [Formula 36]
[0394]
[0395] as well as
[0396] [Formula 37]
[0397]
[0398] Here, "mirror offset" means Figure 42 The vector shown is from the center position of the reflector 67 to the base position of the tool 66. That is, it is a vector from the position where the error is measured to the error node, which corresponds to the error offset vector of the above-mentioned "Example 1".
[0399] Next, the error node adding unit 112 adds the error node 354 and two mirror offset nodes 355A and 355B generated by the error node generating unit 115 to the mechanical structure tree. Figure 43 As shown, two mirror offset nodes 355A and 355B are added next to the node 356 corresponding to the tool, and an error node 354 is added between the two mirror offset nodes 355A and 355B.
[0400] These nodes coupled 355A, 354, and 355B correspond to the errors at the error node insertion location 357Z.
[0401] Finally, the control device 100 calculates the motor command value using the machine structure tree to which the error node 354 and the two mirror offset nodes 355A and 355B are added.
[0402] In Example 2, since there is no need to convert the measured error into a relative value relative to the error node insertion position, labor and time are reduced. This is because by adding 355A and 355B to the machine structure tree, a calculation equivalent to Equation 33 in Example 1 is performed in the movement command unit.
[0403] [10.3 Example 3]
[0404] Below, by reference Figure 44 as well as Figure 45 Next, Example 3 is described. Example 3 is an example in which an error node corresponding to the perpendicularity error of each axis is inserted on the machine origin side of one of the error nodes corresponding to each axis in the machine structure tree.
[0405] As a general method, a ball bar can be used to measure the perpendicularity error Wzx around the ZX axis, the perpendicularity error Wyz around the YZ axis, and the perpendicularity error Wxy around the XY axis. The measured information is stored as error information in the error information storage unit 142.
[0406] A ballbar is a measuring instrument that measures the relative displacement between two balls attached to both ends of a retractable rod having a built-in displacement meter. Figure 44 Indicates the squareness error around each axis.
[0407] Next, the error node generator 115 converts each squareness error stored in the error information storage 142 into a squareness error matrix for each axis using the following equation.
[0408] [Formula 38]
[0409]
[0410]
[0411]
[0412] Next, the error node adding unit 112 adds the error nodes 354A to 354C as the perpendicularity error matrix generated by the error node generating unit 115 to the machine structure tree.
[0413] [Formula 39]
[0414]
[0415] In more detail, Figure 45 As shown, the error node adding unit 112 adds the error node 354A corresponding to the above-mentioned equation 39 before the node 357Z corresponding to the Z axis, as viewed from the machine origin, in the machine structure tree.
[0416] [Formula 40]
[0417]
[0418] Similarly, the error node adding unit 112 adds the error node 354B corresponding to the above-mentioned equation 40 before the node 357Y corresponding to the Y axis, as viewed from the machine origin, in the machine structure tree.
[0419] [Formula 41]
[0420]
[0421] Similarly, the error node adding unit 112 adds the error node 354C corresponding to the above-mentioned equation 41 before the node 357X corresponding to the X-axis, as viewed from the machine origin, in the machine structure tree.
[0422] Finally, the control device 100 calculates the motor command value using the machine structure tree to which the error nodes 354A to 354C are added.
[0423] In the third embodiment, since the error node 354 is inserted just before the axis causing the error, it is possible to generate a machine structure tree that most faithfully reproduces the actual machine tool.
[0424] [10.4 Example 4]
[0425] Below, by reference Figures 46 to 48 Next, a fourth embodiment will be described. The fourth embodiment is an embodiment in which error nodes related to errors measured on a machine tool are inserted into a machine structure tree.
[0426] First, prepare Figure 46 Artifact 75 is shown. Here, "artifact" refers to an artificial object with a reference shape for measurement. Figure 46 In the example shown, artifact 75 has a shape in which four spheres, spheres 76 to 79, are vertices of a triangular pyramid. The true value of the vector from sphere 76 to sphere 77 in the coordinate system at the C-axis node is given by Equation 42.
[0427] [Formula 42]
[0428]
[0429] The true value of the vector from sphere 76 to sphere 78 in the coordinate system at the C-axis node is expressed by Equation 43.
[0430] [Formula 43]
[0431]
[0432] The true value of the vector from sphere 76 to sphere 79 in the coordinate system at the C-axis node is expressed by Equation 44.
[0433] [Formula 44]
[0434]
[0435] Then, if Figure 47 As shown, an artifact 75 is placed on a worktable 80 of a machine tool, and the coordinates of spheres 76 to 79 are measured using a probe 90 attached to the tool tip of the machine tool. Here, "probe" refers to a measuring device that measures the origin, position, and posture of the workpiece placed on the worktable 80. The central axis of the worktable 80 is defined as the C-axis.
[0436] The measured value of the vector from sphere 76 to sphere 77 obtained from the measured values of the coordinates of spheres 76 to 79 is expressed by Expression 45.
[0437] [Formula 45]
[0438]
[0439] The measured value of the vector from sphere 76 to sphere 78 in the coordinate system at the C-axis node is expressed by Equation 46.
[0440] [Formula 46]
[0441]
[0442] The measured value of the vector from sphere 76 to sphere 79 in the coordinate system at the C-axis node is expressed by Equation 47.
[0443] [Formula 47]
[0444]
[0445] The error information storage unit 142 stores these true values and measured values as error information.
[0446] Next, the error node generator 115 calculates a matrix for converting each measured value stored in the error information storage unit 142 into a true value by using the following equation:
[0447] [Formula 48]
[0448]
[0449] The error node 354 corresponding to the matrix is found.
[0450] [Formula 49]
[0451]
[0452] Next, the error node adding unit 112 adds the error node 354 generated by the error node generating unit 115 to the mechanical structure tree. Figure 48 As shown, the error node adding unit 112 adds an error node 354 corresponding to the following equation between a node 359 corresponding to the workpiece and a node 360 corresponding to the C-axis.
[0453] [Formula 50]
[0454]
[0455] Finally, the control device 100 calculates the motor command value using the machine structure tree to which the error node 354 is added.
[0456] Example 4 illustrates measuring errors in the worktable coordinate system. By installing a contact probe instead of a tool, error measurement is possible. Therefore, expensive sensors like laser interferometers are unnecessary. Furthermore, as long as the true value is known, the shape of the artifact is not limited. Therefore, the 3D coordinate measuring machine can be used to measure the workpiece after machining by the user and use this as the true value for correction. This allows for feedback of inspection results to the machining process, as well as for measuring and correcting errors in the workpiece's installation position.
[0457] [11. Effects of this embodiment]
[0458] The control device of the present embodiment is a control device (e.g., the aforementioned "control device 100") that represents and holds a mechanical structure of a control object in the form of a graph in which constituent elements are nodes, and includes: a control point coordinate system insertion unit (e.g., the aforementioned "control point coordinate system insertion unit 113") that inserts control points and coordinate systems as nodes into each node of the graph of the mechanical structure; an identifier assignment unit (e.g., the aforementioned "identifier assignment unit 114") that assigns identifiers to the inserted control points and coordinate systems; an error information storage unit (e.g., the aforementioned "error information storage unit 142") that stores information related to mechanical errors in the control object and identifiers assigned to coordinate systems in which the mechanical errors are observed; an error node generation unit (e.g., the aforementioned "error node generation unit 115"); ”), which converts the above-mentioned mechanical errors into equivalent error nodes; an error node adding unit (for example, the above-mentioned “error node adding unit 112”), which adds the above-mentioned error nodes in the diagram of the above-mentioned mechanical structure; a control point coordinate system specifying unit (for example, the above-mentioned “control point coordinate system specifying unit 116”), which specifies one or more control points and coordinate systems with the above-mentioned identifiers for the diagram of the above-mentioned mechanical structure; an instruction value judging unit, which judges, based on the above-mentioned control points and the above-mentioned coordinate systems specified by the above-mentioned control point coordinate system specifying unit, which one or more instruction values indicated in the program correspond to coordinate values on which coordinate systems for which control points; and a movement instruction unit (for example, the above-mentioned “movement instruction unit 118”), which instructs the movement of the above-mentioned control points so that the above-mentioned coordinate values of the above-mentioned control points become the above-mentioned instruction values.
[0459] Alternatively, the control device 100 of the present embodiment is a control device (e.g., the aforementioned “control device 100”) that represents and maintains a mechanical structure of a control target in the form of a graph in which constituent elements are nodes, and includes: a control point coordinate system insertion unit (e.g., the aforementioned “control point coordinate system insertion unit 113”) that causes each node of the graph of the mechanical structure to have a control point and a coordinate system as information; an identifier assignment unit (e.g., the aforementioned “identifier assignment unit 114”) that assigns identifiers to the inserted control points and coordinate systems; an error information storage unit (e.g., the aforementioned “error information storage unit 142”) that stores information related to a mechanical error in the control target and an identifier assigned to a coordinate system in which the mechanical error is observed; an error node generation unit (e.g., the aforementioned “error node generation unit”) that generates an error message. a control point coordinate system specifying unit (e.g., the "control point coordinate system specifying unit 116"), which specifies one or more control points and coordinate systems for the diagram of the mechanical structure through the identifier; an instruction value judging unit, which judges, based on the control points and the coordinate systems specified by the control point coordinate system specifying unit, that one or more instruction values indicated in the program correspond to coordinate values on which coordinate system for which control points; and a movement instruction unit (e.g., the "movement instruction unit 118"), which instructs the movement of the control points so that the coordinate values of the control points become the instruction values.
[0460] Thus, by using a graph having components as nodes, it is possible to correct errors in a machine tool having an arbitrary mechanical structure.
[0461] While the embodiments of the present invention have been described above, the present invention is not limited to the above embodiments. Furthermore, the effects described in the embodiments are merely examples of the most preferred effects produced by the present invention, and the effects of the present invention are not limited to the effects described in the embodiments.
[0462] The control method of the control device 100 is implemented using software. When implemented using software, the program constituting the software is installed in the computer (control device 100). These programs can be recorded on removable media and distributed to users, or they can be distributed by downloading them to the user's computer via a network. Furthermore, these programs can be provided to the user's computer (control device 100) as a web service via a network, rather than downloaded.
[0463] Explanation of symbols
[0464] 11CPU,
[0465] 100 numerical control devices,
[0466] 111 Chart Generation Department,
[0467] 112 Error node addition part,
[0468] 113 Control point coordinate system insertion part,
[0469] 114 Identifier Assignment Department,
[0470] 115 Error node generation unit,
[0471] 116 Control point coordinate system specification unit,
[0472] 117 Command value judgment unit,
[0473] 118 Mobile Command Department,
[0474] 141 Mechanical structure diagram storage unit,
[0475] 142 error information storage unit,
[0476] 181 Simultaneous equation generation unit,
[0477] 182 Simultaneous equation solving unit,
[0478] 183 Mobile pulse generation unit.
Claims
1. A control device for a machine tool having an arbitrary mechanical structure, which represents the mechanical structure to be controlled in a graph format having constituent elements as nodes and holds the mechanical structure to be controlled, characterized in that: The control device comprises: a control point coordinate system inserting unit for inserting a control point and a coordinate system as a node into each node of the graph of the mechanical structure; an identifier assigning unit that assigns identifiers to the inserted control points and coordinate systems; an error information storage unit that stores information related to a mechanical error in the controlled object and an identifier assigned to a coordinate system in which the mechanical error is observed; an error node generating unit for converting the mechanical error into an equivalent error node; an error node adding unit configured to add the error node to a graph of the mechanical structure; a control point coordinate system designating unit for designating one or more control points and a coordinate system using the identifier for the diagram of the mechanical structure; a command value determination unit for determining, based on the control point and the coordinate system specified by the control point coordinate system specification unit, which one or more command values indicated in the program correspond to coordinate values in which coordinate system for which control point; as well as A movement instruction unit instructs movement of the control point so that the coordinate value of the control point becomes the instruction value.
2. The control device according to claim 1, characterized in that The mechanical structure diagram may include, as a component, a unit in which a plurality of axes are grouped together into one.
3. The control device according to claim 2, characterized in that The units are defined by analyzing a script written by a user, and the defined units can be included as constituent elements of the diagram of the mechanical structure.
4. The control device according to claim 1, characterized in that The error node generating unit transforms the mechanical error into an equivalent error node by transforming the translation error and the rotation error between different coordinate systems.
5. The control device according to claim 1, characterized in that The error node generating unit converts the value into a relative value with respect to the error node insertion position and generates an error node.
6. The control device according to claim 1, characterized in that The error node generating unit converts the error into an error at the error node insertion position to generate an error node.
7. The control device according to claim 1, characterized in that The error node adding unit adds an error node next to a node corresponding to a mechanical origin.
8. A control device that represents a mechanical structure of a controlled object in a graph format with constituent elements as nodes and maintains the mechanical structure of the controlled object, characterized in that: The control device comprises: a control point coordinate system insertion unit configured to provide each node of the graph of the mechanical structure with a control point and a coordinate system as information; an identifier assigning unit that assigns identifiers to the inserted control points and coordinate systems; an error information storage unit that stores information related to a mechanical error in the controlled object and an identifier assigned to a coordinate system in which the mechanical error is observed; an error node generating unit for converting the mechanical error into an equivalent error node; an error node adding unit configured to add the error node to a graph of the mechanical structure; a control point coordinate system designating unit for designating one or more control points and a coordinate system using the identifier for the diagram of the mechanical structure; a command value determination unit for determining, based on the control point and the coordinate system specified by the control point coordinate system specification unit, which one or more command values indicated in the program correspond to coordinate values in which coordinate system for which control point; as well as A movement instruction unit instructs movement of the control point so that the coordinate value of the control point becomes the instruction value.
9. The control device according to claim 8, characterized in that: The mechanical structure diagram may include, as a component, a unit in which a plurality of axes are grouped together into one.
10. The control device according to claim 9, characterized in that: The units are defined by analyzing a script written by a user, and the defined units can be included as constituent elements of the diagram of the mechanical structure.
11. The control device according to claim 8, characterized in that The error node generating unit transforms the mechanical error into an equivalent error node by transforming the translation error and the rotation error between different coordinate systems.
12. The control device according to claim 8, characterized in that The error node generating unit converts the value into a relative value with respect to the error node insertion position and generates an error node.
13. The control device according to claim 8, characterized in that The error node generating unit converts the error into an error at the error node insertion position to generate an error node.
14. The control device according to claim 8, characterized in that The error node adding unit adds an error node next to a node corresponding to a mechanical origin.
Citation Information
Patent Citations
Johozono tenshasochi
JP1976005024A
Numerical controller and data structure
CN108227631A
Method and device for identifying problematic component in storage system
US20190129785A1