User assistance apparatus and control device

WO2026190992A1PCT designated stage Publication Date: 2026-09-17FANUC LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/009307
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-03-12
Publication Date
2026-09-17

Smart Images

  • Figure JP2025009307_17092026_PF_FP_ABST
    Figure JP2025009307_17092026_PF_FP_ABST
Patent Text Reader

Abstract

A user assistance apparatus according to the present disclosure comprises: an acquisition unit that acquires, from a control program including a command for controlling an industrial machine which is controlled by a control device, curve definition data for causing the control device to generate a movement in a curve including a straight line; an analysis unit that analyzes the curve definition data acquired by the acquisition unit; a calculation unit that uses the result of the analysis to calculate at least one waypoint position or an end point of the movement in a curve; and an output unit that outputs the result of the calculation.
Need to check novelty before this filing date? Find Prior Art

Description

User assistance device and control device

[0001] This disclosure relates to user assistance devices and control devices.

[0002] A control program executed by a control device to control industrial machinery such as machine tools and robots contains commands in each block for the absolute or relative coordinate values ​​of the destination of each axis of the industrial machine. The control device analyzes these commands to calculate the amount of movement for each control cycle of each axis, and controls each drive unit of the industrial machine by outputting the calculated amount of movement to the motor via an amplifier (for example, Patent Document 1).

[0003] Japanese Patent Publication No. 2013-097736

[0004] When considering how to operate industrial machinery as quickly as possible while adhering to the maximum speed, acceleration, and jerk limits for each axis, it is sometimes more convenient to use the time derivatives of the position of each axis (velocity, acceleration, jerk, etc.) as commands. By using such commands, it becomes possible to obtain a curved path from the time derivatives of the position of each axis and the time of change of each derivative. Compared to the conventional method of approximating curves with minute line segments, the advantages include simpler programs and more stable speeds when operating while sequentially analyzing the program. On the other hand, users want to understand the traversal points of the curved motion, and thus the general shape of the curve, before executing the control program. However, when the time derivatives of the position of each axis are used as commands, there is no easy way to verify them. In manufacturing, there is a need for a technology that allows for easy verification of the desired operation even when commands are given using the derivatives of the position of each axis.

[0005] The user assistance device disclosed herein analyzes curve definition data, which is data for generating curved movement described in a control program, and calculates intermediate and endpoint positions in the curved path generated by the curve definition data. It then solves the above problem by outputting the calculated intermediate and endpoint positions.

[0006] Furthermore, one aspect of the present disclosure is a user assistance device comprising: an acquisition unit that acquires curve definition data for generating a curved movement including a straight line from a control program including commands for controlling an industrial machine controlled by the control device; an analysis unit that analyzes the curve definition data acquired by the acquisition unit; a calculation unit that calculates at least one intermediate position or endpoint position of the curved movement using the results of the analysis; and an output unit that outputs the results of the calculation.

[0007] This is a schematic hardware configuration diagram of a user assistance device according to the first embodiment of this disclosure. This is a schematic functional block diagram of a user assistance device according to the first embodiment of this disclosure. This is a schematic diagram showing an example of a control program acquired by the acquisition unit. This is a graph showing the change in acceleration of a control axis related to an industrial machine controlled by a control program. This is a graph showing the change in velocity of a control axis related to an industrial machine controlled by a control program. This is a graph showing the change in position of a control axis related to an industrial machine controlled by a control program. This is a graph showing an example of calculating the Z-axis position. This is a schematic diagram showing an example of output by the output unit. This is a schematic diagram showing another example of output by the output unit. This is a schematic diagram showing another example of output by the output unit. This is a schematic diagram showing another example of a control program acquired by the acquisition unit. This is a schematic diagram showing another example of output by the output unit. This is a schematic hardware configuration diagram of a control device according to the second embodiment of this disclosure. This is a schematic functional block diagram of a control device according to the second embodiment of this disclosure.

[0008] Embodiments of this disclosure will be described below with reference to the drawings. In the following description, components having the same or similar functions will be denoted by the same reference numerals. Duplication of these 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 another element 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 something that has been calculated or processed. "XX" is any element (for example, any information).

[0010] [First Embodiment] Figure 1 is a schematic hardware configuration diagram showing the main parts of a user assistance device according to the first embodiment of the present disclosure. The user assistance device 1 according to this embodiment can be mounted on a control device 2 that controls an industrial machine 9 based on a processing program, for example. The user assistance device 1 according to this embodiment can also be mounted on a computer, server, fog computer, cloud server, or other higher-level computer, such as a personal computer attached to the industrial machine or a personal computer connected to the control device via a wired / wireless network. In this embodiment, an example is shown in which the user assistance device 1 is mounted on a computer connected to a control device that controls an industrial machine via a network.

[0011] The CPU 11 in the user assistance device 1 according to this embodiment is a processor that controls the user assistance device 1 as a whole. The CPU 11 reads the system program stored in the ROM 12 via the bus 22 and controls the entire user assistance device 1 according to the system program. The RAM 13 temporarily stores temporary calculation data, display data, and various data acquired from external sources.

[0012] The non-volatile memory 14 is composed of, for example, a memory or SSD (Solid State Drive) backed up by a battery (not shown), and retains its stored state even when the power to the user assistance device 1 is turned off. The non-volatile memory 14 stores programs and data read from external devices 27 via the interface 15, programs and data input via the input device 26, and programs and data acquired from computers such as the control device 2 that controls the industrial machine 9, the computer 4, the server 5, the fog computer 6, and the cloud server 7 via the networks 3 and 8. The programs and data stored in the non-volatile memory 14 may be expanded into the RAM 13 when executed or used. In addition, various system programs, such as known analysis programs, are pre-written in the ROM 12.

[0013] Interface 15 is an interface for connecting the CPU 11 of the user assistance device 1 to an external device 27 such as a USB device. System programs, configuration data, etc., can be read from the external device 27. Furthermore, programs and configuration data created and edited within the user assistance device 1 can be stored in external storage means via the external device 27.

[0014] Interface 19 is an interface for connecting the CPU 11 of the user assistance device 1 to a wired or wireless network 3. The network 3 may communicate using technologies such as a high-speed serial bus, serial communication such as RS-485, Ethernet® communication, optical communication, wireless LAN, Wi-Fi®, or Bluetooth®. A control device 2 that controls at least one industrial machine 9 is connected to the network 3, and it exchanges data with the user assistance device 1.

[0015] Interface 20 is an interface for connecting the CPU 11 of the user assistance device 1 to a wired or wireless network 8. The network 8 may communicate using technologies such as Ethernet® communication, optical communication, wireless LAN, Wi-Fi®, Bluetooth®, etc. Computers such as computer 4, server 5, fog computer 6, and cloud server 7 are connected to the network 8 and exchange data with the user assistance device 1.

[0016] In this embodiment, the user assistance device 1 is shown as being connected to two networks, network 3 and network 8. However, network 3 and network 8 may be the same network. In such a configuration, the control device 2, computer 4, server 5, fog computer 6, and cloud server 7 that control the industrial machine 9 are connected to the same network and exchange data with the user assistance device 1.

[0017] The display device 25 displays data obtained as a result of the execution of various data, programs, etc., loaded into memory, which are output via the interface 17. In addition, the input device 26, which consists of a keyboard and a pointing device, transmits commands, data, etc., based on the operator's operations to the CPU 11 via the interface 18.

[0018] Figure 2 is a schematic block diagram showing the functions of the user assistance device 1 according to the first embodiment of this disclosure. Each function of the user assistance device 1 according to this embodiment is realized by the CPU 11 of the user assistance device 1 shown in Figure 1 executing a system program and controlling the operation of each part of the user assistance device 1.

[0019] The user assistance device 1 of this embodiment includes an acquisition unit 100, an analysis unit 110, a calculation unit 120, and an output unit 130.

[0020] The acquisition unit 100 acquires a control program that includes commands for controlling the industrial machine 9 controlled by the control device 2. The control program acquired by the acquisition unit 100 includes curve definition data, which is data for generating curved movement. The curve definition data may partially include linear movement. The curve definition data may also include, for example, the derivative value obtained by differentiating the position of each control axis related to the industrial machine 9 with respect to a predetermined parameter, and the change in that parameter. The derivative value of position referred to here is not limited to the first derivative value, but may also be the second derivative value, the third derivative value, etc. Generally, a time value can be used as the parameter, but the positions of other axes of the same industrial machine 9, or predetermined axis positions of other industrial machines 9 operating synchronously may also be used as parameters. The following explanation will focus on the case where a time value is used as the parameter. When a time value is used as the parameter, the first derivative value of position is velocity, the second derivative value is acceleration, and the third derivative value is jerk. The curve definition data may also define a predetermined curve model such as a spline curve or a NURBS curve. The curve definition data that defines the curve model may include parameters necessary to define the curve model, such as the number of floors and the coordinate positions of control points. The acquisition unit 100 may acquire a control program from a control device 2 that controls the industrial machine 9 via the network 3. Alternatively, it may display an input screen for the control program on the display device 25 and acquire a control program that the user inputs by operating the input device 26. Furthermore, it may acquire a control program from a computer 4, server 5, fog computer 6, cloud server 7, etc. via the network 8, or acquire a control program by reading it from an external device 27. The acquisition unit 100 outputs the acquired control program to the analysis unit 110.

[0021] The analysis unit 110 analyzes the curve definition data included in the control program acquired by the acquisition unit 100. In this analysis, the analysis unit 110 finds a function that can calculate the position of each point in time along the curve path based on the curve definition data included in the control program. For example, if the curve definition data included in the control program is data that includes the time derivative of the position of each control axis related to the industrial machine 9 and the time of change of that derivative, the analysis unit 110 may find a function for calculating the position of each control axis by integrating (first-order integral, second-order integral, third-order integral, etc.) the derivative of the position of each control axis commanded by the curve definition data from the start of operation. Alternatively, if the curve definition data included in the control program commands the shape of the curve path by defining a curve model, the analysis unit 110 may find a function related to the curve model that indicates the position of each control axis related to the industrial machine 9 based on the parameters shown in the curve definition data. The analysis unit 110 outputs the function obtained as a result of the analysis to the calculation unit 120.

[0022] The calculation unit 120 calculates a position on the curved path based on the curve definition data by using a function obtained by the analysis unit 110 analyzing the curve definition data. The calculation unit 120 may be configured to calculate the end point position of the curved path. Further, the calculation unit 120 may be configured to calculate at least one passing position on the curved path. When calculating passing positions, for example, the number of passing positions may be set in advance, and each position obtained by equally dividing the curved path by the number of passing positions may be calculated as a passing position. At this time, the total number of passing positions and end point positions may be set. Further, for example, the distance between passing positions may be set in advance, and the passing position may be calculated every time a predetermined distance from the start point of the curved path. At this time, in addition to the passing positions, the end point position may also be calculated. Furthermore, characteristic positions such as turn-back positions on each axis may also be calculated. Settings related to the passing positions to be calculated may be set by a user, or may use parameters preset in the RAM 13 or non-volatile memory 14 of the user assistance device 1. In addition, settings stored in the control device 2 or another computer may be used. The calculation unit 120 outputs information related to the calculated positions on each curved path to the output unit 130.

[0023] The output unit 130 outputs information related to the position on the curved path calculated by the calculation unit 120. The output unit 130 may, for example, display and output information related to the position on the curved path to the display device 25. Further, the output unit 130 may output information related to the position on the curved path to another external device. In this case, for example, the information may be transmitted and output to the control device 2, the computer 4, the server 5, the fog computer 6, the cloud server 7, etc. via the network 3 or the network 8.

[0024] The output unit 130 may output information related to positions on the curved path in the form of comments or movement commands in a format compatible with the control program containing the original curve definition data. Further, additional information such as attribute information related to each position, such as whether each position is a passing position, an end point position, or a turning position, may be output together with the information related to positions on the curved path. The output unit 130 may embed the information related to positions on the curved path into the control program including the curve definition data, and then output the control program.

[0025] Note that the output unit 130 may draw and output the curved path on a display device 25 based on information related to positions on the curved path calculated by the calculation unit 120. At this time, the output unit 130 may draw the curved path by interpolating straight lines between coordinate positions indicated by the position-related information. Alternatively, the output unit 130 may draw a curved path interpolated with a curve.

[0026] Hereinafter, processing executed by an analysis unit 110, a calculation unit 120, and an output unit 130 will be described with reference to FIGS. 3 to 10. FIG. 3 is a schematic diagram showing an example of a control program acquired by an acquisition unit 100. The control program in FIG. 3 includes curve definition data for commanding the acceleration and change time of each control axis of an industrial machine 9 having three linear axes. "POS_INIT[X]" in the first line of the control program in FIG. 3 commands the initial speed of the X-axis. In the first line, the initial speed of the X-axis is set to p x init [m / sec]. The second and third lines similarly command the initial speed of the Y-axis and the initial speed of the Z-axis, respectively.

[0027] "ACC[X]" in the fourth line commands the acceleration of the X-axis for each predetermined time interval. In the fourth line, 0 [m / sec is set in the first interval 2 , and +2500 [m / sec is set in the next interval 2The command is to set it to ]. The fifth line, "TIME[X]", commands the time at which the time derivative of the position on the X axis, as commanded in the control program, changes. The fifth line commands to change the time derivative of the position on the X axis (in this control program, the acceleration of the X axis commanded in the fourth line) at time 0.380 [sec] and time 0.560 [sec] from the start of the control axis's movement. That is, in the interval from time 0 [sec] to time 0.380 [sec], the acceleration of the X axis is 0 [m / sec] 2 ], in the interval from time 0.380 [sec] to time 0.560 [sec], the acceleration in the X-axis is +2500 [m / sec] 2 ], the interval after time 0.560 [sec] is undefined, so the acceleration in the X-axis is 0 [m / sec] 2 The fourth and fifth lines instruct this to be done.

[0028] Similarly, in lines 6 and 7, the acceleration for each time interval of the Y axis is commanded, and in lines 8 and 9, the acceleration for each time interval of the Z axis is commanded. The "TIME_END" in line 10 commands the total movement time from the start to the end of the control axis's operation. Thus, the control program handled by the user assistance device 1 according to this embodiment describes curve definition data that includes the derivative value of the position of each control axis and the time of change thereof. Figure 3 shows an example of curve definition data that commands the acceleration and time of change of each control axis, but is not limited to this. The curve definition data may be in any format as long as it can directly command the velocity, acceleration, and jerk at a predetermined time from the start of the control axis's operation.

[0029] Figure 4 is a graph showing the change in acceleration of the control axes of the industrial machine 9 controlled by the control program exemplified in Figure 3. In this way, when commands are given using the acceleration of each control axis, it is possible to create a control program that takes into account the upper limit of the acceleration of each control axis.

[0030] FIGS. 5 and 6 are graphs each showing changes in the speed and position of a control axis of an industrial machine 9 controlled by the control program illustrated in FIG. 3. When the curve definition data specifies the time differential value of the position of each control axis of the industrial machine 9 and a change time, a function indicating the position of each control axis at each time can be obtained by performing time integration only one or more times from the start of the operation of the control axis. For example, as shown in FIG. 3, when a command is given in terms of acceleration in the control program, the analysis unit 110 obtains a function A representing the acceleration of the X-axis using the following Equation 1 x (t), and calculates a function V representing the speed of the X-axis x (t), and further obtains a function V representing the speed of the X-axis using the following Equation 2 x (t), then calculates a function P representing the position of the X-axis x (t). In Equation 1, v x init is the initial value of speed at time 0, and in Equation 2, p x init is the initial value of position at time 0. The same applies to the Y-axis and the Z-axis.

[0031]

[0032]

[0033] Then, using the function representing the position of each control axis obtained by the analysis unit 110 in this manner, the calculation unit 120 calculates the position of each control axis at a predetermined time. FIG. 7 is a graph showing an example of calculating the Z-axis position. In the example of FIG. 7, the time range defined by the curve definition data is divided into six equal parts, and the Z-axis position p at each time z 1 to p z 6 are calculated. The time range defined by the curve definition data is 0 to t e . In the example of FIG. 7, by using the function P representing the Z-axis position obtained as a result of analysis by the analysis unit 110 z (t), the Z-axis position p z 1 = P Z (t e / 6), p z 2 = P Z (2t e / 6), pz 3 = P Z (3t e / 6), p z 4 = P Z (4t e / 6), p z 5 = P Z (5t e / 6), p z 6 = P Z (t e ) can be calculated as follows. Furthermore, the X-axis position and Y-axis position at each time point can also be calculated using the function P that represents the X-axis position. x Function P indicating (t) and Y-axis position y It is possible to calculate this by using (t) in each case.

[0034] Figure 8 is a schematic diagram showing an example of output by the output unit 130. In the example in Figure 8, the positions of each control axis of the industrial machine 9 calculated by the calculation unit 120 are embedded and output within the control program which includes curve definition data. In the control program shown in Figure 8, lines 1 to 10 show the curve definition data. Lines 11 to 16 show the positions of each control axis based on the curve definition data. In this example, the calculation unit 120 divides the movement time based on the curve definition data into six equal parts and calculates the positions of the X-axis to Z-axis at each time point. As illustrated in Figure 8, when the output unit 130 embeds the calculation results from the calculation unit 120 into the control program and outputs them, it is desirable to embed the calculation results in a format that matches the control program. For example, in a control program handled by a numerical control device, comments can be written by writing two slashes ( / ) at the beginning of a line. When embedding the calculation results from the calculation unit 120 into such a control program, as illustrated in Figure 8, the output unit 130 writes two slashes at the beginning of each line of position information at each time point to prevent the execution of the control program after the calculation results have been embedded. In the example in Figure 8, the calculation results from the calculation unit 120 are embedded after the curve definition data, but they may also be embedded before the curve definition data.

[0035] Figure 9 is a schematic diagram showing another example of output by the output unit 130. In the example in Figure 9, similar to Figure 8, the information related to the position of each control axis of the industrial machine 9 calculated by the calculation unit 120 is embedded and output within the control program which includes curve definition data. The difference from Figure 8 is that the transit position at the end of the calculation result (line 16 in Figure 9), i.e., the endpoint of the curve movement, is output in the form of a movement command. When a control program with such output is executed, the movement command to the endpoint of the curve movement is executed after the movement commanded by the curve definition data is executed. Therefore, it becomes possible to maintain an accurate end position after movement without significantly affecting the execution of the control program.

[0036] Figure 10 is a schematic diagram showing another example of output by the output unit 130. In the example in Figure 10, similar to Figure 9, the information relating to the position of each control axis of the industrial machine 9 calculated by the calculation unit 120 is embedded in the control program which includes curve definition data and output. The difference from Figure 9 is that the output is varied according to the attribute information attached to the information relating to the position of the control axes. In the example in Figure 10, the information relating to the intermediate positions on the curve path is displayed in green, and the information relating to the endpoint position is displayed in blue. By varying the display manner of the position information according to the attached attributes in this way, the meaning of each piece of information can be grasped at a glance.

[0037] The following describes other processes performed by the analysis unit 110, the calculation unit 120, and the output unit 130, using Figures 11-12. Figure 11 is a schematic diagram showing an example of a control program acquired by the acquisition unit 100. The control program in Figure 11 includes curve definition data that commands the movement path of each control axis by defining a NURBS curve for an industrial machine 9 equipped with three linear axes. In the control program in Figure 11, the commands between the first line "NURBS_ON" and the tenth line "NURBS_OFF" define the parameters of the NURBS curve. The second line "ORDER" defines the order of the NURBS curve, and the "CONTROL" commands in lines 3-8 define the coordinates and weights of the control points. The ninth line "KNOT" defines the knot vector.

[0038] When the curve definition data defines the parameters of the NURBS curve in this way, the analysis unit 110 uses each parameter defined in the curve definition data to perform a function P that indicates the position of the X axis, for example, using equations 3 and 4 below. x Create a function that represents (t). Function P represents the position of the Y axis. y (t), function P indicating the position of the Z axis z The same applies to (t). In equations 3 and 4, t is the spline parameter, n is the total number of starting points + control points, k is the number of floors, x m (m = 1, ..., n + k) is a knot on the X axis, w i (i=1, ..., n) are the weights of each control point, p i,x (i = 1, ..., n) are the coordinate values ​​of the control points on the X axis.

[0039]

[0040]

[0041] Then, using the function indicating the position of each control axis obtained by the analysis unit 110 in this manner, the calculation unit 120 can calculate the position of each control axis at a predetermined time.

[0042] The user assistance device 1 according to this embodiment, having the above configuration, converts curve definition data into a form that the user can understand, so that the user can easily grasp the intermediate positions of the curve movement and, consequently, the general shape of the curve. The output from the output unit 130 is preferably directed to the control device 2 or, for example, another computer equipped with a drawing function. By outputting to the control device 2, the operator operating the control device 2 can grasp at a glance what kind of general shape the curve definition data included in the control program has. Furthermore, a computer equipped with a drawing function can draw the trajectory of the curve path based on the outputted position information and present it to the user, thereby assisting the user in tasks such as executing and modifying the control program.

[0043] As one modification of the user assistance device 1 according to this embodiment, the output unit 130 may output the positions of each control axis calculated by the calculation unit 120 after thinning them out according to the size of the display area of ​​the display device 25. For example, suppose the calculation unit 120 calculates a total of six position information points: five intermediate points and the endpoint position on the curved path. In this case, consider a situation where the number of lines that can be displayed at once on the display device 25 is small and all six points cannot be displayed on one screen. In such a case, the output unit 130 thins out some of the position information and embeds it into the control program, as illustrated in Figure 12. The amount of thinning may be set, for example, so that all the position information can be displayed on the screen. By configuring it in this way, it becomes easier for the user to grasp the entire curved path at a glance.

[0044] As another modification of the user assistance device 1 according to this embodiment, the analysis operation may be changed according to the command mode of the coordinate system commanded by the control program. For example, suppose the analysis unit 110 analyzes that the command mode of the coordinate system in the control program is set to absolute coordinates (ABS_MODE). In this case, the analysis unit 110 instructs the calculation unit 120 to calculate each position information using absolute coordinate values. On the other hand, suppose the analysis unit 110 analyzes that the command mode of the coordinate system in the control program is set to incremental coordinates (INC_MODE). In this case, the analysis unit 110 instructs the calculation unit 120 to calculate each position information using the difference from the previous position information. Furthermore, suppose the analysis unit 110 analyzes that the command mode of the control program specifies a position in a specific coordinate system (CORDINATE). In this case, the analysis unit 110 instructs the calculation unit 120 to convert the coordinate values ​​in the position information to the commanded coordinate system. By configuring in this way, it becomes possible to produce output that matches the mode set in the control program.

[0045] [Second Embodiment] The control device according to the second embodiment will be described below. The control device according to this embodiment includes the user assistance device according to the first embodiment as part thereof.

[0046] Figure 13 is a schematic hardware configuration diagram showing the main parts of the control device 2 according to this embodiment, which includes a user assistance device as part of it. The CPU 31 of the control device 2 is a processor that controls the control device 2 as a whole. The CPU 31 reads the system program stored in the ROM 32 via the bus 42 and controls the entire control device 2 according to the system program. The RAM 33 temporarily stores temporary calculation data, display data, and various data input from external sources.

[0047] The non-volatile memory 34 is composed of, for example, a memory backed up by a battery (not shown) or an SSD (Solid State Drive), and its stored state is maintained even when the power to the control device 2 is turned off. The non-volatile memory 34 stores control programs and data read from external devices 47 via the interface 35, data and control programs input via the input device 46, and various data acquired from industrial machines 9. The control programs and data stored in the non-volatile memory 34 may be expanded into the RAM 33 when executed or used. In addition, various system programs, such as known analysis programs, are pre-written in the ROM 32.

[0048] Interface 35 is an interface for connecting the CPU 31 of the control device 2 to external devices 47 such as USB memory, CompactFlash®, and SD cards. External devices 47 can read control programs and various data used to control the industrial machine 9, for example. Control programs and various data edited within the control device 2 can also be stored in the external devices 47. The PLC (Programmable Logic Controller) 36 controls the industrial machine 9 and its peripheral devices (for example, tool changers, actuators such as robots, sensors attached to the industrial machine 9, etc.) by outputting signals via the I / O unit 37 according to the sequence program built into the control device 2. The PLC 36 also receives signals from various switches on the control panel and peripheral devices located on the main body of the industrial machine 9, performs the necessary signal processing, and then passes the signals to the CPU 31.

[0049] The display device 45 displays data loaded into memory, data obtained as a result of the execution of control programs and system programs, etc., which are output via the interface 38. In addition, the input device 46, which consists of a keyboard and a pointing device, transmits commands and data based on the operator's operations to the CPU 31 via the interface 39.

[0050] The axis control circuit 50, which controls the drive shafts of the industrial machine 9, receives a position command for the drive shaft from the CPU 31 and outputs a command for the drive shaft to the servo amplifier 52. The servo amplifier 52 receives this command and drives the servo motor 54, which is the drive shaft, to move each part of the industrial machine 9 along its respective axis. Each servo motor 54 has a built-in position sensor and feeds back the position feedback signal from this position sensor to the axis control circuit 50. The axis control circuit 50 performs feedback control of the servo motor 54 based on this position feedback signal. In the hardware configuration diagram of Figure 13, only one axis control circuit 50, servo amplifier 52, and servo motor 54 are shown, but in reality, as many as the number of axes on the industrial machine 9 to be controlled are provided. For example, when controlling a machine tool with a typical linear three-axis system, three sets of axis control circuits 50, servo amplifiers 52, and servo motors 54 are provided to move the spindle to which the tool is attached and the workpiece relative to each other in the linear three-axis direction (X axis, Y axis, Z axis).

[0051] The spindle control circuit 60 receives a spindle rotation command and outputs a spindle speed signal to the spindle amplifier 62. The spindle amplifier 62 receives this spindle speed signal and rotates the spindle motor 64 of the industrial machine 9 at the commanded rotational speed, thereby driving the spindle. A position coder 66 is coupled to the spindle motor 64. The position coder 66 outputs a feedback pulse synchronized with the rotation of the spindle, and this feedback pulse is read by the CPU 31.

[0052] Figure 14 is a schematic block diagram showing the functions of the control device 2 according to the second embodiment of this disclosure. Each function of the control device 2 according to this embodiment is realized by the CPU 31 of the control device 2 shown in Figure 13 executing a system program and controlling the operation of each part of the control device 2.

[0053] The control device 2 according to this embodiment includes the user assistance device 1 according to the first embodiment. The user assistance device 1, like the user assistance device 1 according to the first embodiment, includes an acquisition unit 100, an analysis unit 110, a calculation unit 120, and an output unit 130. The control device 2 according to this embodiment also includes a control unit 200. Furthermore, the RAM 33 to non-volatile memory 34 of the control device 2 pre-stores a control program 210 that includes curve definition data for controlling the industrial machine 9.

[0054] The control unit 200 of the control device 2 according to this embodiment reads and analyzes the control program 210 and controls the industrial machine 9 based on the analysis results. The control program 210 includes curve definition data, which is data for generating curved movements related to the industrial machine 9. The control unit 200 analyzes this curve definition data and calculates the amount of movement for each control axis for each control cycle. Then, based on the calculated amount of movement for each control cycle, it controls each axis of the industrial machine 9.

[0055] In this embodiment, prior to reading the control program 210 and executing processing such as analysis, the control unit 200 requests the user assistance device 1 to analyze the control program 210 in response to user operation.

[0056] The user assistance device 1 has the same functions as the acquisition unit 100, analysis unit 110, calculation unit 120, and output unit 130 according to the first embodiment. The output unit 130 embeds the position information obtained as an analysis result into the control program 210 and outputs it to the control unit 200.

[0057] Upon receiving the analysis results of the position information related to the control program 210 by the user assistance device 1, the control unit 200 determines whether or not to execute the control program 210 based on the analysis results. The control unit 200 determines whether or not the user assistance device 1 has embedded information related to the endpoint position in the control program 210. If it determines that the information is not embedded, it generates an alarm to notify the user. On the other hand, if it determines that information related to the endpoint position is embedded, it determines that the control program 210 can be executed and outputs the analyzed position information to the display device 45.

[0058] The control device 2 according to this embodiment, having the above configuration, displays the position information analyzed by the user assistance device 1 so that the user can view it, thereby allowing the curved path being moved by the control program 210 to be grasped at a glance. Therefore, it can assist the user in making decisions regarding the execution of the control program 210.

[0059] While embodiments of this disclosure have been described in detail above, this disclosure is not limited to the individual embodiments described above. These embodiments can be added, replaced, modified, partially deleted, etc., in any way that does not depart from the spirit of the invention or from the idea and intent of this disclosure derived from the claims and their equivalents. For example, the order of operations and processes in the embodiments described above are shown as examples only and are not limited thereto. The same applies when numerical values ​​or mathematical formulas are used in the description of the embodiments described above.

[0060] The following are annotations relating to embodiments of the present disclosure. (Annotation 1) A user assistance device (1) according to one aspect of the present disclosure includes: an acquisition unit (100) that acquires curve definition data for generating a curved movement that may include a straight line from a control program including commands for controlling an industrial machine (9) controlled by a control device (2); an analysis unit (110) that analyzes the curve definition data acquired by the acquisition unit (100); a calculation unit (120) that uses the results of the analysis to calculate at least one intermediate position or endpoint position of the curved movement; and an output unit (130) that outputs the results of the calculation. (Annotation 2) The calculation unit (120) of a user assistance device (1) according to another aspect of the present disclosure calculates the intermediate positions or endpoint positions so that they are equally spaced with respect to the parameter of the curve in the curve definition data, based on the analysis results by the analysis unit (110). (Annotation 3) The parameter handled by the user assistance device (1) according to another aspect of the present disclosure is a time-related variable. (Note 4) The output unit (130) of the user assistance device (1) according to another aspect of the present disclosure also outputs additional information indicating that the output result is information about a transit point or endpoint. (Note 5) The output unit (130) of the user assistance device (1) according to another aspect of the present disclosure converts the result of the calculation into a comment or movement command format that conforms to the format of the control program, and outputs the result of the conversion immediately before or after the curve definition data. (Note 6) The analysis unit (110) of the user assistance device (1) according to another aspect of the present disclosure further reads a command for commanding a coordinate-related mode from the control program, and the calculation unit (120) calculates the transit point or endpoint according to the mode. (Note 7) The command acquired by the user assistance device (1) according to another aspect of the present disclosure is one of an absolute command, an incremental command, or a command specifying a coordinate system. (Note 8) The output unit (130) of the user assistance device (1) according to another aspect of the present disclosure adjusts the amount of output of the calculation result by the calculation unit according to the display area for displaying the calculation result.(Note 9) The curve definition data acquired by the user assistance device (1) according to another aspect of the present disclosure is described in the control program by the derivative value of the position of each control axis of the control device (2), the value of the parameter of the curve whose value changes, and the range of the value of the parameter. (Note 10) The control device (2) according to one aspect of the present disclosure comprises the user assistance device (1) and a control unit (200) that determines whether or not the output result of the output unit (130) is reflected in the control program (210), and the control unit (200) generates an alarm if the output result of the output unit (130) is not reflected in the control program (210).

[0061] 1 User assistance device 3 Network 4 Computer 5 Server 6 Fog computer 7 Cloud server 8 Network 9 Industrial machine 11 CPU 12 ROM 13 RAM 14 Non-volatile memory 15, 17, 18, 19, 20 Interface 22 Bus 25 Display device 26 Input device 27 External device 2 Control device 31 CPU 32 ROM 33 RAM 34 Non-volatile memory 35, 38, 39 Interface 36 PLC 37 I / O unit 42 Bus 45 Display device 46 Input device 47 External device 50 Axis control circuit 52 Servo amplifier 54 Servo motor 60 Spindle control circuit 62 Spindle amplifier 64 Spindle motor 66 Position coder 100 Acquisition unit 110 Analysis unit 120 Calculation unit 130 Output unit 200 Control unit 210 Control program

Claims

1. A user assistance device comprising: an acquisition unit that acquires curve definition data for generating a curved movement that may include a straight line from a control program that includes commands for controlling an industrial machine controlled by the control device; an analysis unit that analyzes the curve definition data acquired by the acquisition unit; a calculation unit that calculates at least one intermediate position or endpoint position of the curved movement using the results of the analysis; and an output unit that outputs the results of the calculation.

2. The user assistance device according to claim 1, wherein the calculation unit calculates the intermediate positions or endpoint positions so that they are equally spaced with respect to the parameters of the curve in the curve definition data, based on the analysis results by the analysis unit.

3. The user assistance device according to claim 2, wherein the parameter is a time-related variable.

4. The user assistance device according to claim 1, wherein the output unit also outputs additional information indicating that the output result is information about a transit point or an endpoint.

5. The user assistance device according to claim 1, wherein the output unit converts the result of the calculation into a comment or movement command format that conforms to the format of the control program, and outputs the result of the conversion immediately before or after the curve definition data.

6. The user assistance device according to claim 1, wherein the analysis unit further reads a command for commanding a mode related to coordinates from the control program, and the calculation unit calculates the transit position or endpoint position according to the mode.

7. The user assistance device according to claim 6, wherein the command is one of an absolute command, an incremental command, or a command specifying a coordinate system.

8. The user assistance device according to claim 1, wherein the output unit adjusts the amount of output of the calculation result by the calculation unit according to the display area for displaying the calculation result.

9. The user assistance device according to claim 1, wherein the curve definition data is described in the control program by the derivative value of the position of each control axis of the control device, the value of the parameter of the curve in which the value changes, and the range of the value of the parameter.

10. A control device comprising: a user assistance device according to claim 5; and a control unit that determines whether or not the output result of the output unit is reflected in the control program, wherein the control unit generates an alarm if the output result of the output unit is not reflected in the control program.