Control device and computer-readable recording medium
The control device employs multiple correction spaces with varying intervals to address memory limitations in industrial machinery, achieving precise error correction efficiently.
Patent Information
- Application Number
- PCT/JP2023/035104
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-27
- Publication Date
- 2026-01-15
AI Technical Summary
Existing control devices for industrial machinery face challenges in performing accurate error correction with limited memory resources, as refining error correction tables to improve machining accuracy requires substantial storage space.
Implementing a control device that utilizes multiple correction spaces with varying intervals between correction points, including dense spaces for high-precision areas and coarse spaces elsewhere, to optimize memory usage while maintaining accuracy.
This approach allows for high-precision error correction where needed while minimizing memory requirements, thus reducing costs and enhancing the practicality of error correction in industrial machinery.
Smart Images

Figure JP2023035104_15012026_PF_FP_ABST
Abstract
Description
Control device and computer-readable recording medium
[0001] The present disclosure relates to a control device and a computer-readable recording medium.
[0002] Feed axes of industrial machines, such as machine tools, installed at production sites, have errors between their target positions and their actual movement positions. Because the amount of this error varies depending on the movement position, a method has been known in the past of preparing an error correction table that stores the correspondence between positions and errors, and correcting the error according to the position. For example, see Patent Documents 1 and 2.
[0003] JP-A No. 63-140308 JP-A No. 04-169907
[0004] If the intervals between correction points in the error correction table are made finer to improve machining accuracy, a huge amount of storage space is required. However, there is a problem in that it is not very practical to prepare an error correction table with fine intervals between correction points in a control device with limited memory resources. In production sites, there is a demand for technology that can perform more accurate error correction within an appropriate memory capacity range.
[0005] The control device for industrial machinery according to the present disclosure solves the above problem by providing multiple correction spaces with different intervals between correction points. In the range where high-precision error correction is required, a correction space with narrow intervals between correction points is provided, and in other ranges, a correction space with widely spaced correction points is provided.
[0006] One aspect of the present disclosure is a control device comprising: a movement command calculation unit that calculates movement commands for each axis of an industrial machine to be controlled; a correction space determination unit that determines, from among the correction spaces to which a machine coordinate value determined by the movement command belongs, a correction space with the smallest interval between lattice points by referring to a plurality of correction amount tables that define correction spaces in a predetermined region within a movable range of each axis in a machine coordinate system of the industrial machine, where a correction amount is set in association with each of a plurality of lattice points arranged in a lattice pattern within the region; a correction amount calculation unit that selects and reads the correction amount table that defines the correction space with the smallest interval between lattice points based on a result of the determination, and calculates a correction amount for the machine coordinate value; and a movement command correction unit that corrects the movement command based on the correction amount calculated by the correction amount calculation unit, wherein the plurality of correction amount tables include a correction amount table that defines at least two correction spaces with different intervals between lattice points.
[0007] FIG. 1 is a schematic hardware configuration diagram of a control device according to a first embodiment. FIG. 2 is a block diagram showing the schematic functions of the control device according to the first embodiment. FIG. 3 is a schematic diagram showing an example of a correction space. FIG. 4 is a schematic diagram showing another example of the correction space. FIG. 5 is a table diagram showing an example of a correction amount table. FIG. 6 is a schematic diagram showing a basic area of a lattice surrounded by adjacent lattice points in the correction space. FIG. 7 is a block diagram showing the schematic functions of a control device according to a second embodiment. FIG. 8 is a schematic diagram illustrating a boundary area between a first correction space and a second correction space. FIG. 9 is a schematic diagram illustrating a basic area of a lattice in the first correction space including a machine coordinate position of a movement destination and a basic area of a lattice in the second correction space closest to the machine coordinate position. FIG. 10 is a block diagram showing the schematic functions of a control device according to a third embodiment. FIG. 11 is a block diagram showing the schematic functions of a control device according to a fourth embodiment. FIG. 12 is a schematic diagram explaining the operation of a machining space determination unit. FIG. 13 is a block diagram showing the schematic functions of a control device according to a fifth embodiment. FIG. 14 is a schematic diagram explaining a machining path correction space.
[0008] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In the following description, components having the same or similar functions will be denoted by the same reference numerals. Duplicate descriptions of those components may be omitted.
[0009] In this application, "based on XX" means "based on at least XX," and includes cases where it is based on other elements in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where it is based on XX that has been calculated or processed. "XX" is any element (for example, any information).
[0010] The term "drive axis" used herein refers to a virtual axis set in a processing machine, and includes, for example, the X-axis, Y-axis, Z-axis, A-axis, B-axis, and C-axis.
[0011] 1 is a schematic hardware configuration diagram showing the main parts of a control device according to an embodiment of the present disclosure. The control device 1 of the present disclosure can be implemented as a control device that controls industrial machinery such as a machine tool or robot that has a moving object that moves when driven by a motor. The following describes, as an example, the control device 1 that controls a machine tool that processes a workpiece by controlling the relative position between a tool and a workpiece.
[0012] The CPU 11 included in the control device 1 of the present disclosure is a processor that performs overall control of the control device 1. The CPU 11 reads a system program stored in the ROM 12 via the bus 22 and controls the entire control device 1 in accordance with the system program. The RAM 13 temporarily stores temporary calculation data, display data, various data input from outside, and the like.
[0013] The nonvolatile memory 14 is composed of, for example, a memory backed up by a battery (not shown) or an SSD (Solid State Drive), and retains its stored state even when the power to the control device 1 is turned off. The nonvolatile memory 14 stores control programs and data read from the external device 72 via the interface 15, data and control programs input via the input device 71, and various data acquired from the industrial machine 3. The control programs and data stored in the nonvolatile memory 14 may be expanded into the RAM 13 when executed / used. In addition, various system programs such as known analysis programs are written in the ROM 12 in advance.
[0014] The interface 15 is an interface for connecting the CPU 11 of the control device 1 to an external device 72 such as a USB memory, CompactFlash (registered trademark), or SD card. For example, control programs and various data used to control the industrial machine 3 can be read from the external device 72. Furthermore, control programs and various data edited within the control device 1 can be stored in the external device 72. A PLC (programmable logic controller) 16 outputs signals to the industrial machine 3 and its peripheral devices (e.g., tool changers, actuators such as robots, sensors attached to the industrial machine 3, etc.) via an I / O unit 17 to control the industrial machine 3 and its peripheral devices (e.g., tool changers, actuators such as robots, sensors attached to the industrial machine 3, etc.) using a sequence program built into the control device 1. The PLC 16 also receives signals from various switches on an operation panel installed on the main body of the industrial machine 3 and from peripheral devices, performs the necessary signal processing, and then passes the signals to the CPU 11.
[0015] The display device 70 displays various data loaded into the memory, data obtained as a result of executing control programs, system programs, etc., output via the interface 18. Furthermore, the input device 71, which is comprised of a keyboard, pointing device, etc., passes instructions, data, etc. based on operations by an operator to the CPU 11 via the interface 19.
[0016] The interface 20 is an interface for connecting the CPU 11 of the control device 1 to a wired or wireless network 5. The network 5 may communicate using technologies such as serial communication such as RS-485, Ethernet (registered trademark), optical communication, wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), etc. Other control devices 4, fog computers 6, cloud servers 7, etc. are connected to the network 5, and data is exchanged between the network 5 and the control device 1.
[0017] An axis control circuit 30 for controlling a control axis provided in the industrial machine 3 receives a position command related to the control axis from the CPU 11 and outputs a command for the control axis to the servo amplifier 40. The servo amplifier 40 receives this command and drives a servo motor 50 related to the control axis, moving each part provided in the industrial machine 3 along the respective control axis. Each servo motor 50 has a built-in position detector, and feeds back a position feedback signal from this position detector to the axis control circuit 30. The axis control circuit 30 performs feedback control of the servo motor 50 based on this position feedback signal. Note that although the hardware configuration diagram in FIG. 1 shows only one axis control circuit 30, servo amplifier 40, and servo motor 50, in reality, there are provided as many as the number of control axes provided in the industrial machine 3 to be controlled. For example, when controlling a general machine tool equipped with three linear axes and two rotational axes, five sets of axis control circuits 30, servo amplifiers 40, and servo motors 50 are provided to move the spindle to which the tool is attached and the workpiece relatively in the directions of the three linear axes and two rotational axes (X-axis, Y-axis, Z-axis, A-axis, and C-axis).
[0018] The spindle control circuit 60 receives a spindle rotation command and outputs a spindle speed signal to a spindle amplifier 61. The spindle amplifier 61 receives this spindle speed signal and rotates a spindle motor 62 of the industrial machine 3 at the commanded rotation speed to drive the spindle. A position coder 63 is connected to the spindle motor 62. The position coder 63 outputs a feedback pulse in synchronization with the rotation of the spindle, and the feedback pulse is read by the CPU 11.
[0019] 2 is a schematic block diagram illustrating functions of the control device 1 according to the first embodiment of the present disclosure. Each function of the control device 1 according to this embodiment is realized by the CPU 11 of the control device 1 shown in FIG. 1 executing a system program and controlling the operation of each part of the control device 1.
[0020] The control device 1 of this embodiment includes a program analysis unit 100, a movement command calculation unit 110, a correction space determination unit 120, a correction amount calculation unit 130, a movement command correction unit 140, and a control unit 150. A control program 200 for controlling the industrial machine 3 is stored in the RAM 13 to the nonvolatile memory 14 of the control device 1. Furthermore, a correction amount table storage unit 210 is provided in advance in the RAM 13 to the nonvolatile memory 14 of the control device 1, which is an area in which a plurality of correction amount tables that define the correction space are stored.
[0021] The program analysis unit 100 sequentially reads and analyzes command blocks included in the control program 200. If the analyzed command block is a command block that commands movement of a predetermined control axis, the program analysis unit 100 instructs the movement command calculation unit 110 to create movement commands for controlling the movement of each control axis based on the analysis results. Furthermore, if the analyzed command block is a command block that commands rotation of the spindle motor 62 or a command block that includes other known commands, the program analysis unit 100 analyzes the command and instructs the control unit 150 to control each part of the industrial machine 3.
[0022] The move command calculation unit 110 calculates move commands for controlling the movement of each control axis of the industrial machine 3 based on the analysis results of the command blocks related to movement by the program analysis unit 100. The move commands calculated here may be, for example, coordinate values in the machine coordinate system of the destination industrial machine 3 to move to within a predetermined time. Alternatively, they may command the amount of movement of each control axis. The move command calculation unit 110 outputs the created move commands to the move command correction unit 140. Furthermore, the move command calculation unit 110 outputs coordinate values in the machine coordinate system of the destination of movement according to the calculated move commands to the correction space determination unit 120.
[0023] The correction space determination unit 120 determines the correction space having the smallest spacing between lattice points among the correction spaces to which the coordinate values in the machine coordinate system determined by the movement command belong, based on the coordinate values in the machine coordinate system of the movement destination according to the movement command input from the movement command calculation unit 110 and multiple correction amount tables stored in the correction amount table storage unit 210.
[0024] [Correction Based on Rule 91 07.11.2025] The following describes the correction space and correction amount table according to this embodiment, using Figures 3 to 5. Figure 3 is a schematic diagram showing a coordinate space in the machine coordinate system of the industrial machine 3. In Figure 3, reference numeral 310 denotes the correction space. The correction space is a virtual area assumed within the movable range of each control axis in the machine coordinate system of the industrial machine 3. For example, as illustrated in Figure 3, a plurality of lattice points are assumed to be arranged in a grid pattern within the movable range of each control axis in the machine coordinate system of the industrial machine 3. The correction space can be defined as the area surrounded by this group of lattice points. Each lattice point is associated with a correction amount for each control axis of the industrial machine 3 at the coordinate position of that lattice point. For example, if the industrial machine 3 has three linear axes, a correction amount corresponding to the translation error of each control axis at the coordinate position of the lattice point is associated with that lattice point. Furthermore, if the industrial machine 3 has two rotational axes, a correction amount corresponding to the rotational error of each control axis at the coordinate position of the lattice point is also associated with that lattice point. 3 shows a plurality of lattice points arranged in a simple cubic lattice pattern, with the lattice points arranged parallel to the X-axis, Y-axis, and Z-axis at equal intervals. However, this is not limited to this, and the lattice points may be arranged at different intervals in the X-axis, Y-axis, and Z-axis directions. Furthermore, lattice points arranged in other types of lattices, such as an orthorhombic lattice or a hexagonal lattice, may also be considered.
[0025] FIG. 4 is a schematic diagram illustrating a correction space with a small lattice spacing. The control device 1 according to this embodiment performs correction using multiple correction spaces. It is desirable that the spacing between lattice points in each correction space be different. It is particularly desirable to define a correction space with a relatively large spacing between lattice points and a correction space with a smaller spacing between lattice points. Among the multiple correction spaces, a region of one correction space may partially or completely overlap with a region of another correction space. For example, the correction space 312 illustrated in FIG. 4 is contained within the correction space 310 illustrated in FIG. 3. It is desirable that the lattice points in the multiple correction spaces be arranged in the same type of grid pattern so that the spacing between each lattice point can be compared.
[0026] [Correction based on Rule 91 07.11.2025] Figure 5 is a table diagram showing an example of a correction amount table. The correction amount table illustrated in Figure 5 defines a correction space for an industrial machine 3 with three linear axes and two rotational axes. As illustrated in Figure 5, the correction amount table defines a correction space using multiple lattice points and the correction amounts for each control axis associated with the lattice points. These correction amounts are used to correct errors in each control axis at the machine coordinate values of each lattice point when the control axis is positioned at that position, and are measured in advance through experiments, etc. The correction amount table may simply list the lattice points, but it may also store auxiliary information to indicate the adjacent relationship between each lattice point in the same correction space. For example, the correction amount table illustrated in Figure 5 defines a correction space using the symbol P of the lattice point. A By adding the order of the X-axis, Y-axis, and Z-axis directions as auxiliary information after the parameter, it is possible to grasp the lattice points adjacent to a certain lattice point. Other auxiliary information, such as the range of the correction space (the range in the X-axis direction, the range in the Y-axis direction, and the range in the Z-axis direction) and the spacing between lattice points in each lattice direction (in the case of a simple rhombic lattice along an axis, the spacing between lattice points in the X-axis direction, the Y-axis direction, and the Z-axis direction), may also be stored. Such auxiliary information can be used to speed up calculations using the correction amount table.
[0027] The correction space determination unit 120 compares the machine coordinate position of the destination based on the move command input from the move command calculation unit 110 with the range of the correction space defined in each correction amount table stored in the correction amount table storage unit 210. Then, it determines the correction space that includes the machine coordinate position of the destination as the correction space to be used for calculating the correction amount. The range of the correction space can be determined by calculating the lattice point with the smallest coordinate value and the lattice point with the largest coordinate value for each control axis, and defining the range surrounded by these lattice points as the range of the correction space. When multiple correction spaces include the machine coordinate position of the destination, the correction space determination unit 120 further determines the correction space with the smallest spacing between lattice points as the correction space to be used for calculating the correction amount. The spacing between lattice points can be calculated as the distance between adjacent lattice points. The correction space determination unit 120 instructs the correction amount calculation unit 130 to calculate the correction amount using the determined correction space.
[0028] The correction amount calculation unit 130 reads out from the correction amount table storage unit 210 a correction amount table that defines the correction space determined by the correction space determination unit 120 to be used for calculating the correction amount. Then, based on the read correction amount table, it calculates the correction amount at the machine coordinate position of the destination of the movement by the movement command. The correction amount at the machine coordinate position of the destination of the movement by the movement command can be calculated based on the correction amounts respectively associated with the lattice points that surround the machine coordinate position in the correction space. The correction amount calculation unit 130 outputs the calculated correction amount to the movement command correction unit 140.
[0029] [Correction based on Rule 91 07.11.2025] Figure 6 is a schematic diagram showing a basic region of a lattice surrounded by adjacent lattice points in the correction space. The region shown in Figure 6 is a region of a lattice surrounded by adjacent lattice points in the correction space. A(i,j,k) = (x A(i,j,k) , y A(i,j,k) , z A(i,j,k) ) ~ point P A(i+1,j+1,k+1) = (xA(i+1,j+1,k+1), yA(i+1,j+1,k+1), zA(i+1,j+1,k+1)). Each lattice point P A(i,j,k) ~Point P A(i+1,j+1,k+1)The correction vector C A(i,j,k) = (c XA(i,j,k) , c YA(i ,j,k) , c ZA(i,j,k) , c AA(i,j,k) , c CA(i,j,k) ) ~ C A(i+1,j+1,k+1) = (cXA(i+1,j+1,k+1), cYA(i+1,j+1,k+1), cZA(i+1,j+1,k+1), cAA(i+1,j+1,k+1), cCA(i+1,j+1,k+1)) are associated. Also, the spacing between lattice points in the X-axis direction is L x , the spacing between lattice points in the Y-axis direction is L y , the spacing between lattice points in the Z-axis direction is L z At this time, the destination P according to the movement command is P=(x P , y P , z P The correction vector C in the above equation can be calculated by the following equation 1. x , r y , r z are the internal division ratios within the basic grid of the destination P of the movement command, and are the grid point P that is the grid point closest to the origin. A(i,j,k) When using this as a reference, it can be calculated using the following formulas 2, 3, and 4, respectively.
[0030]
[0031]
[0032]
[0033]
[0034] The movement command correction unit 140 corrects the machine coordinate values of each control axis of the movement destination according to the movement command calculated by the movement command calculation unit 110 based on the correction amount calculated by the correction amount calculation unit 130 .
[0035] The control unit 150 controls each unit of the industrial machine 3 based on the analysis result of the command block by the program analysis unit 100. The control unit 150 includes a servo control unit 152. The servo control unit 152 drives the servo motors 50 associated with each control axis of the industrial machine 3 based on the corrected machine coordinate values of each axis input from the movement command correction unit 140.
[0036] The control device 1 according to this embodiment, which has the above configuration, assumes a correction space, which is a virtual region assumed within the movable range of each control axis in the machine coordinate system of the industrial machine 3, and performs correction based on correction amounts associated with lattice points for movement within the correction space. The control device 1 according to this embodiment defines a coarse correction space with large lattice point spacing and a dense correction space with small lattice point spacing. The control axis is corrected with higher accuracy within the dense correction space, while correction is performed without considering high accuracy within the coarse correction space outside the dense correction space. Because the dense correction space has a large number of lattice points, defining it requires a relatively large amount of memory. Therefore, if the movable range of each control axis in the machine coordinate system were to be entirely defined as a dense correction space in order to achieve high correction accuracy, a large amount of memory would be required, increasing the cost of the control device 1. However, for example, by defining a coarse correction space for the entire movable range of each control axis in the machine coordinate system and defining a dense correction space only for a minimum region including the workpiece to be machined, it is possible to perform high-precision correction where necessary while saving the memory required for the correction amount table.
[0037] [Second Embodiment] A control device according to a second embodiment of the present disclosure will be described below. Fig. 7 is a schematic block diagram showing functions of the control device 1 according to the second embodiment of the present disclosure. As with the control device 1 according to the first embodiment, the functions of the control device 1 according to this embodiment are realized by the CPU 11 included in the control device 1 shown in Fig. 1 executing a system program and controlling the operation of each part of the control device 1.
[0038] The control device 1 of this embodiment differs from the control device 1 of the first embodiment in that it calculates a correction amount in a boundary region between a plurality of correction spaces. The control device 1 of this embodiment further includes a boundary correction amount calculation unit 160 in addition to a program analysis unit 100, a movement command calculation unit 110, a correction space determination unit 120, a correction amount calculation unit 130, a movement command correction unit 140, and a control unit 150. A control program 200 for controlling the industrial machine 3 is stored in the RAM 13 to the nonvolatile memory 14 of the control device 1. Furthermore, a correction amount table storage unit 210 is provided in advance in the RAM 13 to the nonvolatile memory 14 of the control device 1, which is an area in which a plurality of correction amount tables defining each correction space are stored.
[0039] The program analysis unit 100, the move command calculation unit 110, the correction amount calculation unit 130, and the control unit 150 according to this embodiment have the same functions as those according to the first embodiment. Like the correction space determination unit 120 according to the first embodiment, the correction space determination unit 120 according to this embodiment determines, among the correction spaces to which the machine coordinate position of the destination of the move command input from the move command calculation unit 110 belongs, the correction space having the smallest lattice point spacing as the first correction space to be used for calculating the correction amount, based on the machine coordinate position of the destination of the move command input from the move command calculation unit 110 and multiple correction amount tables stored in the correction amount table storage unit 210. The correction space determination unit 120 also determines whether the machine coordinate position of the destination of the move command is in a boundary area between the first correction space and a second correction space having a smaller lattice point spacing than the first correction space. If the machine coordinate position of the destination of the move command is in the boundary area between the first correction space and the second correction space, the correction space determination unit 120 instructs the boundary correction amount calculation unit 160 to calculate the correction amount for the boundary area between the first correction space and the second correction space. In other cases, the correction space determination unit 120 notifies the correction amount calculation unit 130 to calculate the correction amount using the first correction space.
[0040] [Correction Based on Rule 91 07.11.2025] Figure 8 is a schematic diagram illustrating the boundary region between the first and second correction spaces. Figure 8 shows a basic domain 311 of the first correction space, including the outer edge of the second correction space, and a portion of the second correction space 312, where the grid points are spaced closer together. Note that some of the grid points of the second correction space 312 are omitted from Figure 8 for clarity. In this specification, the boundary region is defined as a region within a basic domain that includes the outer edge of another correction space in a given correction space, but is also within the given correction space and outside the other correction space. In the example of Figure 8, the machine coordinate position P is located within the basic domain 311 in the first correction space, including the outer edge of the second correction space, but is also within the first correction space and outside the second correction space. In other words, the machine coordinate position P is located in the boundary region between the first correction space and the second correction space. Whether a predetermined machine coordinate position is in the boundary area can be determined by determining whether the outer edge of the second correction space is included in the basic area of the first correction space to which the machine coordinate position belongs. The correction space determination unit 120 determines whether the destination machine coordinate position is in such a boundary area by referring to the correction amount table that defines the first correction space and the correction amount table that defines the second correction space.
[0041] When the machine coordinate position of the movement destination is in the boundary area between the first correction space and the second correction space, the boundary correction amount calculation unit 160 calculates a correction amount by interpolating the correction amount table of the first correction space with the correction amount table of the second correction space. The boundary correction amount calculation unit 160 outputs the calculated correction amount to the movement command correction unit 140.
[0042] [Correction based on Rule 91 07.11.2025] Figure 9 is a schematic diagram illustrating the basic domain of the lattice of the first correction space including the destination machine coordinate position and the basic domain of the lattice of the second correction space closest to the destination machine coordinate position. As illustrated in Figure 9, the basic domain 311 of the lattice of the first correction space includes the destination machine coordinate position P. Furthermore, the basic domain 313 of the lattice of the second correction space is located closest to the destination machine coordinate position P among the multiple basic domains of the lattice of the second correction space. In Figure 9, the basic domain 311 of the lattice of the first correction space includes the point P. A(i,j,k) = (x A(i,j,k), y A(i,j,k) , z A(i,j,k) ) ~ point P A(i+1,j+1,k+1) = (xA(i+1,j+1,k+1), yA(i+1,j+1,k+1), zA(i+1,j+1,k+1)). The fundamental domain 313 of the lattice in the second correction space is surrounded by eight adjacent lattice points P B(s,t,u) = (x B(s,t,u) , y B (s,t,u) , z B (s,t,u) ) ~ point P B (s+1,t+1,u+1) = (x B (s+1,t+1,u+1), y B (s+1,t+1,u+1), z B (s+1,t+1,u+1)) are surrounded by eight adjacent lattice points. Each lattice point P A(i,j,k) ~Point P A(i+1,j+1,k+1) The correction vector C A(i,j,k) = (c XA(i,j,k) , c YA(i ,j,k) , c ZA(i,j,k) , c AA(i,j,k) , c CA(i,j,k) ) ~ C A(i+1,j+1,k+1) = (cXA(i+1,j+1,k+1), cYA(i+1,j+1,k+1), cZA(i+1,j+1,k+1), cAA(i+1,j+1,k+1), cCA(i+1,j+1,k+1)) are associated with each other. B(s,t,u) ~Point P B(s+1,t+1,u+1) The correction vector C B(s,t,u) = (c XB(s,t,u) , c YB(s,t,u) , c ZB(s,t,u) , c AB(s,t,u) , c CB(s,t,u) ) to CB(s+1,t+1,u+1) = (cXB(s+1,t+1,u+1), cYB(s+1,t+1,u+1), cZB(s+1,t+1,u+1), cAB(s+1,t+1,u+1), cCB(s+1,t+1,u+1)). In this case, the boundary correction amount calculation unit 160 calculates an interpolation point of the lattice point of the first correction space. This interpolation point P I(i,j,k) , P I(i,j+1,k) , P I(i,j,k+1) , P I(i,j+1,k+1)9, can be calculated by extending the side of the basic area 313 of the lattice in the second correction space in the direction of the machine coordinate position P and finding the intersection with the lattice plane in the first correction space. By finding such an interpolation point, the lattice point P B(s,t,u) , P B(s,t+1,u) , P B(s,t,u+1) , P B(s,t+1,u+1) , interpolation point P I(i,j,k) , P I(i,j+1,k) , P I(i,j,k+1) , P I(i,j+1,k+1) The machine coordinate position P of the destination is included in the area surrounded by this interpolation point P. I(i,j,k) , P I(i,j+1,k) , P I(i,j,k+1) , P I(i,j+1,k+1) The correction amount at can be calculated using an internal division ratio from the correction amount associated with each lattice point. This method is already known, for example, in Japanese Patent Laid-Open No. 08-152909, and therefore will not be described in detail in this specification. Then, based on the correction amount associated with the lattice point and the correction amount at the calculated interpolation point, the correction amount for each control axis at the destination machine coordinate position is calculated using equations 1 to 4.
[0043] When there are three or more correction spaces, the outer edges of two or more correction spaces may be included in one basic region. In such a case, among the correction spaces surrounding the machine coordinate position, a correction space having a smaller lattice point interval is used preferentially to perform the same calculation, and the correction amount at the machine coordinate position is calculated.
[0044] Then, the movement command correction unit 140 according to this embodiment corrects the mechanical coordinate values of each control axis of the movement destination according to the movement command calculated by the movement command calculation unit 110, based on the correction amount calculated by the correction amount calculation unit 130 or the correction amount calculated by the boundary correction amount calculation unit 160.
[0045] The control device 1 according to this embodiment, which is configured as described above, is capable of performing correction with higher accuracy, even in the boundary area between the coarse correction space and the fine correction space, compared to when only the coarse correction space is used.
[0046] [Third Embodiment] A control device according to a third embodiment of the present disclosure will be described below. Fig. 10 is a schematic block diagram showing functions of the control device 1 according to the third embodiment of the present disclosure. As with the control device 1 according to the first embodiment, the functions of the control device 1 according to this embodiment are realized by the CPU 11 included in the control device 1 shown in Fig. 1 executing a system program and controlling the operation of each part of the control device 1.
[0047] The control device 1 according to this embodiment includes a program analysis unit 100, a movement command calculation unit 110, a correction space determination unit 120, a correction amount calculation unit 130, a movement command correction unit 140, and a control unit 150, as well as a correction amount table creation unit 170. A control program 200 for controlling the industrial machine 3 is stored in the RAM 13 to the nonvolatile memory 14 of the control device 1. Furthermore, a correction amount table storage unit 210 is provided in advance in the RAM 13 to the nonvolatile memory 14 of the control device 1, which is an area in which a plurality of correction amount tables that define the correction space are stored.
[0048] The program analysis unit 100, the movement command calculation unit 110, the correction space determination unit 120, the correction amount calculation unit 130, the movement command correction unit 140, and the control unit 150 according to this embodiment have the same functions as those according to the first embodiment. The correction amount table creation unit 170 according to this embodiment creates a correction amount table that defines a correction space according to predetermined area information based on an overall correction amount storage table that defines an overall correction space, in which a correction amount is set in association with each of a plurality of lattice points arranged in a lattice pattern over the entire movable range of each axis in the machine coordinate system of the industrial machine 3. The overall correction amount storage table assumes a plurality of lattice points arranged at predetermined intervals over the entire movable range of each axis in the machine coordinate system of the industrial machine 3, and associates the correction amount of each control axis at each machine coordinate position with the lattice points. It is desirable that the interval between the lattice points in the overall correction amount storage table be smaller than the interval between the lattice points assumed in the correction amount table used in the control device 1. The correction amount table creation unit 170 receives, for example, correction space designation information from a user, including the position and range of the correction space and settings related to the lattice points (such as the spacing and number of lattice points in each control axis direction, and the number of lattice points on each control axis side). Then, a correction amount table is created based on the received correction space designation information. The correction amount for each control axis at the position of each lattice point may be calculated using an internal division ratio based on the correction amount set in association with each lattice point in the overall correction amount storage table. The correction amount table creation unit 170 stores the created correction amount table in the correction amount table storage unit 210.
[0049] Note that the setting information related to the lattice points, such as the spacing between lattice points, in the correction space created by the correction amount table creation unit 170 may be set to an appropriate value in advance. In this case, it is desirable that the setting information related to the lattice points in the machining range and the setting information related to the lattice points in the non-machining range are set separately. The setting information related to the lattice points in the machining range may be set to a finer spacing between lattice points. Furthermore, the information related to the lattice points in the non-machining range may be set to a coarser spacing between lattice points. Furthermore, the correction amount table creation unit 170 may automatically set a correction space with a coarse spacing between lattice points for the entire movable range of each axis in the machine coordinate system of the industrial machine 3, regardless of whether or not there is input from a user or the like.
[0050] The control device 1 according to this embodiment having the above configuration can appropriately create a desired correction amount table based on the overall correction amount storage table. The overall correction amount storage table is stored in the external device 72 or a computer equipped with a large-scale storage device. It is possible to create an appropriate correction amount table depending on the application, and it becomes possible to flexibly respond to each machining operation.
[0051] [Fourth embodiment] A control device according to a fourth embodiment of the present disclosure will be described below. Fig. 11 is a schematic block diagram showing functions of the control device 1 according to the fourth embodiment of the present disclosure. As with the control device 1 according to the first embodiment, the functions of the control device 1 according to this embodiment are realized by the CPU 11 included in the control device 1 shown in Fig. 1 executing a system program and controlling the operation of each part of the control device 1.
[0052] [Correction based on Rule 91 07.11.2025] The control device 1 according to this embodiment includes a program analysis unit 100, a movement command calculation unit 110, a correction space determination unit 120, a correction amount calculation unit 130, a movement command correction unit 140, and a control unit 150, as well as a correction amount table creation unit 170 and a machining space determination unit 180. A control program 200 for controlling the industrial machine 3 is stored in the RAM 13 to the nonvolatile memory 14 of the control device 1. Furthermore, a correction amount table storage unit 210, which is an area in which a plurality of correction amount tables defining the respective correction spaces are stored, is provided in advance in the RAM 13 to the nonvolatile memory 14 of the control device 1.
[0053] The program analysis unit 100, the movement command calculation unit 110, the correction space determination unit 120, the correction amount calculation unit 130, the movement command correction unit 140, and the control unit 150 according to this embodiment have the same functions as those according to Embodiment 1. The machining space determination unit 180 according to this embodiment analyzes the control program 200 and determines the machining space, which is the area in which the workpiece is machined by the control program 200.
[0054] FIG. 12 is a schematic diagram illustrating the determination of the machining space by the machining space determination unit 180. In FIG. 12, the control program 200 is assumed to perform machining by controlling the X-axis, Y-axis, and Z-axis. The machining space determination unit 180 reads the control program and acquires the ranges in which each control axis moves while a cutting feed command is being executed. For example, in the control program 200 illustrated in FIG. 12, the X-axis moves in the range of machine coordinate values 0 to 200, the Y-axis moves in the range of machine coordinate values 0 to 50, and the Z-axis moves in the range of machine coordinate values 0 to 100 by cutting feed. Therefore, the machining space determination unit 180 determines that the ranges in which the X-axis moves in the range of machine coordinate values 0 to 200, the Y-axis moves in the range of machine coordinate values 0 to 50, and the Z-axis moves in the range of machine coordinate values 0 to 100 as the machining space.
[0055] [Correction based on Rule 91, 07.11.2025] The correction amount table creation unit 170 according to this embodiment creates a first correction space with a narrow lattice point spacing based on the overall correction amount storage table for the area determined as the machining space by the machining space determination unit 180. It also creates a second correction space with a wider lattice point spacing than the first correction space for the entire movable range of each axis in the machine coordinates of the industrial machine 3 other than the machining space. The setting information for the lattice points in the first correction space and the second correction space can be set and stored with appropriate values in advance. Other operations are similar to those of the correction amount table creation unit 170 provided in the control device 1 according to the third embodiment.
[0056] The control device 1 according to this embodiment, which is configured as described above, automatically determines the machining space based on the description of the control program 200 and creates multiple correction spaces with different grid point intervals, which is expected to reduce the user's workload.
[0057] Fifth Embodiment A control device according to a fifth embodiment of the present disclosure will be described below. Fig. 13 is a schematic block diagram showing functions of the control device 1 according to the fifth embodiment of the present disclosure. As with the control device 1 according to the first embodiment, the functions of the control device 1 according to this embodiment are realized by the CPU 11 included in the control device 1 shown in Fig. 1 executing a system program and controlling the operation of each part of the control device 1.
[0058] The control device 1 according to this embodiment includes a program analysis unit 100, a movement command calculation unit 110, a correction space determination unit 120, a correction amount calculation unit 130, a movement command correction unit 140, and a control unit 150, as well as a path correction amount table creation unit 175 and a machining path analysis unit 190. A control program 200 for controlling the industrial machine 3 is stored in the RAM 13 to the nonvolatile memory 14 of the control device 1. Furthermore, a correction amount table storage unit 210, which is an area in which a plurality of correction amount tables that define the correction space are stored, is prepared in advance in the RAM 13 to the nonvolatile memory 14 of the control device 1.
[0059] The program analysis unit 100, movement command calculation unit 110, correction space determination unit 120, movement command correction unit 140, and control unit 150 according to this embodiment have the same functions as those according to the first embodiment. The machining path analysis unit 190 according to this embodiment analyzes the control program 200, and analyzes the machining path when machining a workpiece according to the control program 200. The machining path analysis unit 190 outputs the analyzed machining path to the path correction amount table creation unit 175.
[0060] The path correction amount table creation unit 175 calculates a machining path correction space that takes into account a predetermined tolerance around the machining path based on the information about the machining path analyzed by the machining path analysis unit 190. FIG. 14 is a diagram showing an example of the machining path correction space. The machining path correction space is configured by arranging multiple lattice points so that a basic lattice area is arranged to surround the machining path. Note that FIG. 14 shows only a portion of the machining path correction space for ease of viewing, but in reality, the machining path correction space is calculated along the entire machining path. The machining path correction space includes positions at least a predetermined tolerance away from the machining path. This predetermined tolerance may be set in advance or may be input by the user. The path correction amount table creation unit 175 creates a path correction amount table in which a correction amount is set in association with each lattice point in the machining path correction space calculated in this manner. In creating the path correction amount table, the correction amount for each lattice point may be created based on an overall correction amount storage table, as in the correction amount table creation unit 170 according to the third embodiment. The path correction amount table creating unit 175 stores the created path correction amount table in the correction amount table storage unit 210 .
[0061] The correction amount calculation unit 130 according to this embodiment calculates the correction amount in the movement command on the machining path based on the path correction amount table created by the path correction amount table creation unit 175 instead of the correction amount table.
[0062] The control device 1 according to this embodiment, which has the above configuration, calculates a machining path compensation space around the machining path based on the description of the control program 200, and creates a path compensation amount table that defines the compensation amount in the machining path compensation space. Then, it performs compensation for each control axis using the path compensation amount table. This makes it possible to further reduce the memory capacity required to store the compensation amount table.
[0063] Although the embodiments of the present disclosure have been described in detail above, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the invention or the idea and intent of the present disclosure derived from the content described in the claims and their equivalents. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these. The same applies when numerical values or mathematical expressions are used in the description of the above-described embodiments.
[0064] The following are supplementary notes related to embodiments of the present disclosure. (Supplementary Note 1) A control device (1) according to one aspect of the present disclosure includes: a movement command calculation unit (110) that calculates a movement command for each axis of an industrial machine (3) to be controlled; a correction space determination unit (120) that determines, among the correction spaces to which a machine coordinate value determined by the movement command belongs, a correction space with the smallest interval between lattice points by referring to a plurality of correction amount tables that define correction spaces that are predetermined regions within a movable range of each axis in a machine coordinate system of the industrial machine (3), and in which correction amounts are set in association with each of a plurality of lattice points arranged in a lattice pattern within the region; a correction amount calculation unit (130) that selects and reads the correction amount table that defines the correction space with the smallest interval between lattice points based on a result of the determination, and calculates a correction amount for the machine coordinate value; and a movement command correction unit (140) that corrects the movement command based on the correction amount calculated by the correction amount calculation unit (130), wherein the plurality of correction amount tables include correction amount tables that define at least two correction spaces with different intervals between lattice points.
[0065] (Supplementary Note 2) The control device (1) according to another aspect of the present disclosure further includes a boundary correction amount calculation unit (160) that determines whether a machine coordinate position of a destination of movement in response to the movement command is located in a boundary area of the plurality of correction spaces, and calculates a correction amount obtained by interpolating the correction amounts of the corresponding plurality of correction amount tables when it is determined that the machine coordinate position of the destination of movement is located in the boundary area of the plurality of correction spaces. (Supplementary Note 3) The control device (1) according to another aspect of the present disclosure further includes a correction amount table creation unit (170) that creates a correction amount table that defines a correction space corresponding to predetermined area information, based on an overall correction amount storage table that is stored in an external device (72) or another computer and defines an overall correction space in which correction amounts are set in association with each of a plurality of lattice points arranged in a lattice pattern over the entire movable range of each axis in the machine coordinate system of the industrial machine (3). The control device according to claim 1.
[0066] (Supplementary Note 4) A control device (1) according to another aspect of the present disclosure further includes a machining space determination unit (180) that analyzes a control program (200) and determines a machining space, which is an area where the workpiece is machined by the control program (200), and the compensation amount table creation unit (170) creates a first compensation amount table that defines a first correction space in which a compensation amount is associated with each of a plurality of lattice points arranged in a grid pattern at a first lattice interval within the machining space, and a second compensation amount table that defines a second correction space in which a compensation amount is associated with each of a plurality of lattice points arranged in an area other than the machining space at a second lattice interval that is larger than the first lattice interval. (Supplementary Note 5) A control device (1) according to another aspect of the present disclosure further includes a machining path analysis unit (190) that analyzes a control program (200) and acquires a machining path of a workpiece, and a path correction amount table creation unit (175) that calculates a machining path correction space including the machining path taking a predetermined tolerance into consideration based on information about the machining path and creates a machining path correction amount table that defines a correction amount related to the calculated machining path correction space, wherein the correction amount calculation unit (130) calculates a correction amount for a move command on the machining path based on the machining path correction amount table instead of the correction amount table, and the move command correction unit (140) corrects the move command based on the correction amount calculated by the correction amount calculation unit (130).
[0067] (Supplementary Note 6) A computer-readable recording medium according to one aspect of the present disclosure has recorded thereon a program for causing a computer to operate as: a movement command calculation unit (110) that calculates a movement command for each axis of an industrial machine (3) to be controlled; a correction space determination unit (120) that determines, among the correction spaces to which a machine coordinate value determined by the movement command belongs, a correction space with the smallest interval between lattice points, by referring to a plurality of correction amount tables that define correction spaces that are predetermined regions within a movable range of each axis in a machine coordinate of the industrial machine (3), and in which correction amounts are set in association with each of a plurality of lattice points arranged in a lattice pattern within the region; a correction amount calculation unit (130) that selects and reads the correction amount table that defines the correction space with the smallest interval between lattice points based on a result of the determination, and calculates a correction amount for the machine coordinate value; and a movement command correction unit (140) that corrects the movement command based on the correction amount calculated by the correction amount calculation unit (130), and the plurality of correction amount tables include correction amount tables that define at least two correction spaces with different intervals between lattice points.
[0068] REFERENCE SIGNS LIST 1 Control device 3 Industrial machine 4 Control device 5 Network 6 Fog computer 7 Cloud server 11 CPU 12 ROM 13 RAM 14 Non-volatile memory 15, 18, 19, 20 Interface 16 PLC 17 I / O unit 22 Bus 30 Axis control circuit 40 Servo amplifier 50 Servo motor 60 Spindle control circuit 61 Spindle amplifier 62 Spindle motor 63 Position coder 70 Display device 71 Input device 72 External device 100 Program analysis unit 110 Movement command calculation unit 120 Correction space determination unit 130 Correction amount calculation unit 140 Movement command correction unit 150 Control unit 152 Servo control unit 160 Boundary correction amount calculation unit 170 Correction amount table creation unit 175 Path correction amount table creation unit 180 Machining space determination unit 190 Machining path analysis unit 200 Control program 210 Correction amount table storage unit
Claims
1. A control device comprising: a movement command calculation unit that calculates movement commands for each axis of an industrial machine to be controlled; a correction space determination unit that references a plurality of correction amount tables that define correction spaces in a predetermined area within the movable range of each axis in the machine coordinates of the industrial machine, and in which correction amounts are set in association with each of a plurality of lattice points arranged in a lattice pattern within the area, and determines, among the correction spaces to which the machine coordinate value determined by the movement command belongs, a correction space with the smallest interval between lattice points; a correction amount calculation unit that selects and reads the correction amount table that defines the correction space with the smallest interval between lattice points based on the result of the determination, and calculates a correction amount for the machine coordinate value; and a movement command correction unit that corrects the movement command based on the correction amount calculated by the correction amount calculation unit, wherein the plurality of correction amount tables include a correction amount table that defines at least two correction spaces with different intervals between lattice points.
2. The control device according to claim 1, further comprising a boundary correction amount calculation unit that determines whether the machine coordinate position of the destination of the movement command is located in a boundary area of the plurality of correction spaces, and that calculates a correction amount obtained by interpolating the correction amounts of the corresponding plurality of correction amount tables when it is determined that the machine coordinate position of the destination of the movement command is located in a boundary area of the plurality of correction spaces.
3. The control device according to claim 1, further comprising a correction amount table creation unit that creates a correction amount table that defines a correction space corresponding to predetermined area information, based on an overall correction amount storage table that defines an overall correction space in which correction amounts are set in association with each of a plurality of lattice points arranged in a lattice pattern over the entire movable range of each axis in the machine coordinate system of the industrial machine, the overall correction amount storage table being stored in an external device or another computer.
4. A control device as described in claim 3, further comprising a machining space determination unit that analyzes the control program and determines the machining space, which is the area where the workpiece is machined by the control program, and wherein the correction amount table creation unit creates a first correction amount table that defines a first correction space in which a correction amount is associated with each of a plurality of lattice points arranged in a grid pattern in the machining space at a first lattice interval, and a second correction amount table that defines a second correction space in which a correction amount is associated with each of a plurality of lattice points arranged in an area other than the machining space at a second lattice interval that is larger than the first lattice interval.
5. A control device as described in claim 3, further comprising: a machining path analysis unit that analyzes a control program and acquires the machining path of a workpiece; and a path correction amount table creation unit that calculates a machining path correction space including the machining path taking into account a predetermined tolerance based on information about the machining path and creates a machining path correction amount table that defines the correction amount related to the calculated machining path correction space, wherein the correction amount calculation unit calculates a correction amount for a movement command on the machining path based on the machining path correction amount table instead of the correction amount table, and the movement command correction unit corrects the movement command based on the correction amount calculated by the correction amount calculation unit.
6. A computer-readable recording medium having recorded thereon a program for causing a computer to function as: a movement command calculation unit that calculates movement commands for each axis of an industrial machine to be controlled; a correction space determination unit that determines, from among the correction spaces to which a machine coordinate value determined by the movement command belongs, a correction space with the smallest interval between lattice points, by referring to a plurality of correction amount tables that define correction spaces in a predetermined area within the movable range of each axis in the machine coordinates of the industrial machine, where correction amounts are set in association with each of a plurality of lattice points arranged in a lattice pattern within the area; a correction amount calculation unit that selects and reads, based on the result of the determination, a correction amount table that defines the correction space with the smallest interval between lattice points, and calculates a correction amount for the machine coordinate value; and a movement command correction unit that corrects the movement command based on the correction amount calculated by the correction amount calculation unit, wherein the plurality of correction amount tables include correction amount tables that define at least two correction spaces with different intervals between lattice points.