Program editing device
Patent Information
- Application Number
- PCT/JP2023/030738
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-25
- Publication Date
- 2025-03-06
Smart Images

Figure JP2023030738_06032025_PF_FP_ABST
Abstract
Description
Program editing device
[0001] The present disclosure relates to a program editing device.
[0002] In order to intuitively teach a robot control program, a method is known for configuring the control program using icons representing functions that configure the robot control program (for example, Patent Documents 1 and 2).
[0003] JP 2021-91025 A International Publication No. 2020 / 0123558
[0004] In the above-described programming device, as the content of a program becomes more complex, it becomes necessary to arrange more icons, making program creation more difficult. Therefore, there is a need for technology that can improve user convenience in icon-based programming.
[0005] One aspect of the present disclosure is a program editing device for creating programs using processing blocks that represent functions that constitute a control program for industrial machinery, the program editing device including: a screen generation unit that generates a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit that generates a composite processing block having a function that integrates processing blocks corresponding to a single function in response to an operation of overlapping the processing blocks on the program creation screen.
[0006] These and other objects, features and advantages of the present invention will become more apparent from the detailed description of exemplary embodiments of the invention illustrated in the accompanying drawings.
[0007] 6 is a diagram illustrating an example of the device configuration of a robot system including a program editing device according to a first embodiment. FIG. 6 is a functional block diagram of a program editing device and a robot control device. FIG. 6 is a diagram illustrating an example of the configuration of a program creation screen. FIG. 6 is a diagram illustrating a first operation example related to the generation of a composite icon. FIG. 6 is a diagram illustrating an example of a setting screen for a composite icon. FIG. 6 is a diagram illustrating an example of the shape of a composite icon. FIG. 6 is a diagram illustrating a state in which the composite icon of FIG. 6 is expanded. FIG. 6 is a diagram illustrating a second operation example related to the generation of a composite icon. FIG. 6 is a diagram illustrating a second operation example related to the generation of a composite icon. FIG. 6 is a diagram illustrating an example of a setting screen for a register icon. FIG. 6 is a diagram illustrating an operation example when a composite icon is registered as a custom icon. FIG. 6 is a diagram illustrating a precision fitting operation as an example of an operation by force control. FIG. 6 is a diagram illustrating a search operation. FIG. 6 is a diagram illustrating an operation example of a phase search. FIG. 6 is a diagram illustrating an operation example of integrating functions of single-function icons related to force control. FIG. 6 is a diagram illustrating an operation example of integrating functions of single-function icons related to force control. FIG. 6 is a diagram illustrating an example of a setting screen for a composite icon related to force control. FIG. 6 is a diagram illustrating an example of a display mode indicating that a register icon is a local element on a timeline.
[0008] Next, embodiments of the present disclosure will be described with reference to the drawings. In the drawings, like components or functional parts are designated by like reference numerals. The scales of these drawings have been changed appropriately to facilitate understanding. Furthermore, the embodiment shown in the drawings is one example for implementing the present invention, and the present invention is not limited to the illustrated embodiment.
[0009] The terms used in this specification are defined as follows: A processing block represents a group of functions that constitute a control program for industrial machinery. For ease of explanation, a group of functions may also be referred to as a single function. A processing block may be represented by an icon, or may include a group of text instructions to which images such as characters, figures, or symbols are assigned. A composite processing block represents an integration of the functions of multiple processing blocks. A composite processing block may also include an icon that integrates icons of single functions, or a group of instructions (or icons) in the form of a subprogram that integrates multiple processing blocks. An icon that integrates icons of single functions is sometimes called a composite icon. A composite icon corresponds to a composite processing block that is used in a form incorporated as a command element in a main program, and a subprogram corresponds to a composite processing block that is used in a form called from a main program.
[0010] First Embodiment A program editing device 30 according to the first embodiment will now be described. Fig. 1 is a diagram showing an example of the device configuration of a robot system 100 including a program editing device 30 according to the first embodiment. Here, the program editing device 30 is configured by a teaching device that configures the robot system 100 as shown in Fig. 1, but the program editing device 30 may also be configured by an information processing device such as a PC (personal computer) that is network-connected to the robot system 100 or is offline.
[0011] As will be described in detail below, the program editing device 30 provides a function for creating a program using processing blocks (icons, etc.) that represent functions that constitute a control program for an industrial machine.
[0012] First, we will explain the equipment configuration of the robot system 100. As shown in Figure 1, the robot system 100 includes a robot 10, a robot control device 20 that controls the robot 10, and a program editing device 30 that is connected to the robot control device 20 and functions as a teaching device.
[0013] In Figure 1, the robot 10 is illustrated as a six-axis vertical articulated robot as an example, but various types of robots may be used as the robot 10 depending on the work target, such as a horizontal articulated robot, a parallel link robot, or a dual-arm robot.
[0014] Various types of end effectors can be attached to the robot 10 depending on the task. End effectors that can be attached to the robot 10 include a welding gun, a polishing tool, a hand, and various other devices. FIG. 1 shows a configuration example in which a hand 60 is attached to the end of the arm of the robot 10 as an end effector. In the configuration example shown in FIG. 1 , a force sensor (force detector) 70 is attached between the end of the arm of the robot 10 and the hand 60, and the robot 10 can perform a task using force control based on the detection value detected by the force sensor 70. The force-controlled operation includes a precision fitting task in which a workpiece W held by the hand 60 is fitted into a fitting hole 90a of an object 90 placed on a work table 1, as illustrated in FIG. 1 . The force sensor 70 is, for example, a six-axis force sensor.
[0015] The robot control device 20 controls the operation of the robot 10 in accordance with the robot control program or commands from the program editing device 30. The robot control device 20 may have a hardware configuration as a general computer having a processor 21, memory (ROM, RAM, non-volatile memory, etc.), a storage unit 22, an operation unit, an input / output interface, a network interface, etc. (see FIG. 2).
[0016] The program editing device 30 has functions for teaching the robot 10 and performing various settings, as well as functions for creating various programs related to the work of the robot 10. Various information processing devices such as a tablet terminal or a PC (personal computer) can be used as the program editing device 30. The program editing device 30 may have a hardware configuration as a general computer including a processor 31, memory (ROM, RAM, non-volatile memory, etc.), a storage unit 32, a display unit 33, an operation unit 34, an input / output interface, a network interface, etc. (see FIG. 2 ). The display unit 33 is, for example, a liquid crystal display. The operation unit 34 may be a touch panel input device integrated with the display unit 33.
[0017] Fig. 2 is a functional block diagram of the program editing device 30 and the robot control device 20. Note that the functional block diagram of the program editing device 30 in Fig. 2 focuses on the function for creating a program among the various functions of the program editing device 30.
[0018] As shown in Fig. 2, the program editing device 30 includes a program creation unit 130 that provides various functions for creating a control program. Fig. 2 also illustrates a storage unit 32 as a hardware component of the program editing device 30. The storage unit 32 is a storage device formed of a non-volatile memory or a hard disk drive. Various pieces of information related to programming are stored in the storage unit 32. The storage unit 32 functions as an icon data storage unit that stores various pieces of information related to icons (icon image data, setting information, etc.).
[0019] The program creation unit 130 can provide a function for programming using icons representing functions that constitute the robot control program. The program creation unit 130 has a screen generation unit 131, an icon operation unit 132, a parameter setting unit 134, and a program execution unit 135. The icon operation unit 132 has a composite function generation unit 133. These functional blocks that constitute the program creation unit 130 may be realized by the processor 31 executing software.
[0020] The screen generation unit 131 has a function of generating various operation screens (user interfaces) for creating programs and displaying them on the display unit 33 .
[0021] The icon operation unit 132 accepts various user operations on the icons displayed on the program creation screen.
[0022] The parameter setting unit 134 provides a function for setting the function of an icon, and accepts parameter settings for the icon via, for example, a setting screen.
[0023] The program execution unit 135 provides a function for executing the created program.
[0024] The robot control device 20 includes a motion control unit 121 and a force control unit 122. These components may be realized by the processor 21 executing software. The motion control unit 121 controls the motion of the robot 10 in accordance with a control program or commands from the program editing device 30. The force control unit 122 controls the motion by force control in accordance with the detection value from the force sensor 70 and predetermined force control parameters. The robot control device 20 also includes a servo control unit (not shown) that executes servo control for the servo motors of each axis in accordance with commands for each axis generated by the motion control unit 121. The memory unit 22 is a storage device formed from a non-volatile memory, a hard disk drive, or the like. The memory unit 22 stores various setting information including the control program and force control parameters.
[0025] 3 shows an example of a program creation screen 400 generated by the screen generation unit 131 and displayed on the display unit 33 of the program editing device 30. As shown in FIG. 3, the program creation screen 400 includes an icon display area 200 that displays a list of various icons that can be used for programming, and a program creation area 300 for creating a control program by arranging the icons in order. The program creation area 300 is also commonly referred to as a timeline because it is an area where a program is created by arranging the icons in chronological order. The program creation screen 400 may further include a status display area 350 that shows the status of the robot 10 by simulating the operation of a robot model in accordance with the position and posture of the robot 10.
[0026] In the example of Figure 3, the icon display area 200 includes a hand close icon 201 representing a command to close the hand, a hand open icon 202 representing a command to open the hand, a linear movement icon 203, an arc movement icon 204, an add via point icon 205, and a rotate icon 206 for rotating the hand.
[0027] The user can select an icon by, for example, placing a cursor on the icon. The user performs programming by selecting a desired icon from the icon display area 200, copying it to the program creation area 300, and arranging it there, for example, by a drag-and-drop operation. In the example of FIG. 3 , the program creation area 300 is arranged, in this order, with a closed hand icon 201, an arc movement icon 204, two linear movement icons 203, and an open hand icon 202. When there are a large number of icons to be arranged in the program creation area 300, the user can arrange the icons by scrolling the screen in a predetermined direction (such as horizontally or vertically). Such user operations on the icons are performed under the control of the icon operation unit 132.
[0028] On the program creation screen 400, the user selects the programming tab 261 when programming. On the other hand, for example, by selecting an icon in the program creation area 300 and then selecting the details tab 262, the user can open a details setting screen for making detailed settings (parameter settings) for that icon. Parameter settings include, for example, the following items: "Linear movement icon" - Operation speed - Positioning settings - Position register specification "Hand close icon" - Macro name specification - Load number - Wait time specification The parameter setting unit 134 has a function to accept detailed settings for the functions of icons such as those in the above examples.
[0029] A user can execute a control program by performing a predetermined operation with an icon placed in the program creation area 300. The program execution unit 135 is responsible for executing the program placed in the program creation area 300. The program execution unit 135 generates commands for the robot by interpreting the program of the icon placed in the program creation area 300, and executes the program by sending the commands to the robot control device 20. The program execution function of the program execution unit 135 may include a function for supporting program development, such as step-by-step program execution.
[0030] The icon operation unit 132 (composite function generation unit 133) according to this embodiment provides a function of integrating icons of single functions (such as the closed hand icon 201, the open hand icon 202, the linear movement icon 203, the arc movement icon 204, the via point addition icon 205, and the rotation icon 206) as exemplified above, through an intuitive and easy operation by the user. For example, the composite function generation unit 133 can provide a function of generating a composite processing block having a function obtained by integrating icons corresponding to a single function in response to an operation of overlapping the icons on the program creation screen 400.
[0031] The function of integrating single-function icons by the composite function generation unit 133 includes a function of generating a composite icon (composite icon) by integrating the functions of the single-function icons, and a function of registering the function that integrates the single-function icons as a program (subprogram) (storing it in the memory unit 32).
[0032] An example of the operation of the composite function generating unit 133 to integrate icons of single functions will be described below.
[0033] 4A and 4B are diagrams showing a first example of an operation related to the generation of a composite icon. As an example, FIGS. 4A and 4B show a situation in which a linear movement icon 203, an axis movement icon 207, a closed hand icon 201, an open hand icon 202, and a register icon 208 are arranged in the icon display area 200. In the program creation screen 400 of FIG. 4A, two linear movement icons 203a and 203b are arranged in the program creation area 300. When a user intending to create a composite icon selects a desired icon from the icon display area 200 and drags and drops it onto an icon in the program creation area 300, a composite icon is generated by integrating those icons.
[0034] As a more specific example of operation, the icon operation unit 132 (composite function generation unit 133) may operate to assist the user in the operation of generating a composite icon in the following procedure. (Step 1) When the user drags the linear movement icon 203c to bring it closer to the linear movement icon 203b, if the distance between the icons becomes equal to or less than a predetermined value, the linear movement icon 203c is attached to the linear movement icon 203b. (Step 2) In this state, if the user releases the dragging of the linear movement icon 203c (releases the hand), the composite icon 230 is generated. (Step 3) On the other hand, if the distance between the icons exceeds a predetermined value while the user continues to drag the linear movement icon 203c, the icons are returned to their separated state. Through the above process, the user's intention to generate a composite icon can be quickly recognized, and accurate icon operation in line with the user's intention can be realized.
[0035] 4A shows a situation in which the user drags and drops a linear movement icon 203c from within the icon display area 200 onto a linear movement icon 203b arranged in the program creation area 300 (see arrow A). The composite function generation unit 133 detects the user's action of overlapping icons on the basis of the arrangement positions of each icon on the program creation screen 400, the icon selection information, the movement information of the selected icon, etc. As a result, the action of dragging and dropping the selected linear movement icon 203c onto the linear movement icon 203b is detected, as shown in FIG. 4A.
[0036] In response to detecting an action of overlapping icons, the composite function generation unit 133 generates a composite icon that includes the functions of the overlapping icons. The composite function generation unit 133 displays the composite icon in a manner that allows the user to visually recognize that icons of single functions are integrated. The composite function generation unit 133 makes the composite icon visually recognizable by, for example, making the size of the composite icon larger than that of the single-function icon or by elongating the icon vertically or horizontally.
[0037] FIG. 4B shows a situation in which a composite icon 230 is generated by integrating two linear movement icons 203b and 203c. The composite icon 230 has a symbol indicating that it is a linear movement icon, and its horizontal size is larger than that of a single-function linear movement icon. This allows the user to instantly understand that the composite icon 230 is an integration of the functions of a single linear movement icon. As shown in FIG. 4B , the composite icon 230 may also include the number of icons included in the composite icon 230 (the number "2" in this example). This allows the user to instantly understand that the composite icon is an integration of two linear movement icons.
[0038] By dragging and dropping another icon onto one composite icon 230 generated in this way, it is possible to add a function to the composite icon 230. In other words, the user can generate a composite icon having a function that integrates multiple icons with single functions by an intuitive operation of overlapping icons on top of each other.
[0039] Next, an operation for setting parameters of a composite icon will be described. In response to a user performing a predetermined operation on the composite icon, the parameter setting unit 134 presents a setting screen for setting parameters for the composite icon. The predetermined operation by the user is, for example, an operation of tapping the composite icon, or an operation of selecting the composite icon and pressing the details tab 262. As illustrated in FIG. 5 , in response to an operation of tapping the composite icon 230, the parameter setting unit 134 presents an icon setting screen 360 for setting the composite icon 230 at the bottom of the program creation area 300.
[0040] Three tabs are presented at the top of the icon setting screen 360: an “All” tab 361, a “Straight Line (1)” tab 362, and a “Straight Line (2)” tab 363. When the “Straight Line (1)” tab 362 is selected, a setting screen for the first linear movement icon 203b included in the composite icon 230 is presented on the icon setting screen 360. The user can configure settings for the first linear movement icon 203b, such as the movement speed, positioning settings, and position register. When the “Straight Line (2)” tab 363 is selected, a setting screen for the second linear movement icon 203c included in the composite icon 230 is presented on the icon setting screen 360. The user can configure settings for the second linear movement icon 203c, such as the movement speed, positioning settings, and position register. Note that FIG. 5 shows a situation in which the “Straight Line (1)” tab 362 is selected and the setting screen for the first linear movement icon 203b is presented on the icon setting screen 360.
[0041] The "All" tab 361 is used to set functions related to the composite icon as a whole. For example, setting items related to the composite icon as a whole include definitions of arguments to be passed to the composite icon.
[0042] FIG. 6 shows another example of the shape of a composite icon. The composite icon 231 shown in FIG. 6 has a shape in which the individual integrated single icons partially overlap each other. Therefore, a user can instantly recognize that the composite icon 231 is a composite icon by looking at the composite icon 231. Furthermore, the composite icon 231 has a shape that allows the user to instantly recognize the number of single-function icons contained in the composite icon 231. The composite icon 231 is generated, for example, by a user sequentially stacking four linear movement icons on one linear movement icon placed in the program creation area 300. Note that the number of icons (five) contained in the composite icon 231 shown in FIG. 6 is merely an example, and it is also possible to generate a composite icon consisting of a greater or lesser number of icons.
[0043] When the composite icon 231 is tapped to set parameters for the composite icon 231, the spacing between the icons is increased and the icon appears expanded, as shown in FIG. 7 . When the user wants to check the types of icons that make up the composite icon 231 or to set parameters for each icon, the user can tap the composite icon to expand it. The example of FIG. 7 shows five linear movement icons 203a, 203b, 203c, 203d, and 203e included in the composite icon 231 expanded and selectable. With the composite icon thus opened, the user can set parameters for each icon by tapping each individual single-function icon.
[0044] 8A and 8B are diagrams illustrating a second operation example related to the generation of a composite icon. As shown in FIG. 8A , assume that a user drags and drops a linear movement icon 203c in the icon display area 200 onto a linear movement icon 203b arranged in the program creation area 300 (see arrows). As shown in FIG. 8B , in response to this user operation, the composite function generation unit 133 displays a U-shaped icon 232 in the program creation area 300. The linear movement icons 203b and 203c overlapped by the user are positioned within the U-shaped icon 232. This allows the user to instantly recognize that the U-shaped icon 232 is a composite icon including the linear movement icons 203b and 203c. That is, even with a display mode in which the icons to be integrated are positioned within the U-shaped icon, the user can instantly recognize that the icons are a composite icon and can also instantly grasp the icons included in the composite icon.
[0045] The composite function generation unit 133 can provide the following functions to further improve user convenience in programming: (F1) A function to give a composite icon the ability to receive external values as arguments. (F2) A function to give a composite icon a variable element that can be referenced only within the composite icon. (F3) A function to register a function that combines icons with single functions as a custom icon. (F4) A function to register a function that combines icons with single functions as a new program (subprogram).
[0046] The above function (F1) will be explained. The composite function generation unit 133 has a function of setting arguments that enable the composite icon to receive values from the outside. For example, the composite function generation unit 133 accepts settings that define arguments to be passed to the composite icon from the outside on a setting screen for making overall settings for the composite icon (a setting screen presented by selecting the "Overall" tab 361). This enables the composite icon to exchange data with the outside.
[0047] Such a function (F1) allows for more flexible and efficient programming.
[0048] The above function (F2) will be described. For example, the composite function generation unit 133 may accept settings that define variable elements that can be used locally within a composite icon on a setting screen for making overall settings for the composite icon (a setting screen presented by selecting the "Overall" tab 361). This allows each icon within the composite icon to use local variable elements that are common within the composite icon.
[0049] As an example of function (F2), when a register icon 208 is incorporated into a composite icon, the composite function generation unit 133 sets the register icon 208 to function as a local register icon whose value is valid only within the composite icon. The register icon 208 is an icon that provides a function for setting a register value. FIG. 9 shows an example of a setting screen 365 for the register icon 208. The setting screen 365 is displayed, for example, by selecting the register icon 208 arranged in the program creation area 300 and pressing the details tab 262.
[0050] As shown in FIG. 9 , the register icon setting screen 365 includes a specification field 365 a for specifying a register number, a setting field 365 b for setting a value to be input to the register specified in the specification field 365 a, and a switch 366 for changing the local / global setting of the register. When a register icon 208 is placed in the program creation area 300 and set, the setting can be referenced as a value valid throughout the entire program. On the other hand, when the register icon 208 is included in a composite icon and set via the setting screen 365, if the register is set to local via the switch 366 within the setting screen 365, the composite function generation unit 133 and the parameter setting unit 134 set the value of each register set via the setting screen 365 so that it is valid only within the composite icon. For example, the composite function generation unit 133 defines the register so that the value of each register set via the setting screen 365 becomes a local variable value (register value) within the composite icon. Therefore, the register value set within the composite icon is discarded outside the composite icon. When a register is set globally using switch 366 in the setting screen 365, the setting can be referenced as a value that is valid throughout the program, just as if the register icon 208 had been placed in the program creation area 300 and the setting had been made.
[0051] In the above example, local and global are switched on the setting screen of the register icon, but when the register icon is incorporated into the composite icon, local and global can be selected by a pop-up or the like.
[0052] Furthermore, an icon set as local may be indicated as a local element on the timeline by, for example, displaying a circled L in the upper right corner of the icon. As an example, FIG. 16 shows a display mode in which a register icon 208 is further included in the U-shaped icon 232 as a composite icon on the program creation screen 400 shown in FIG. 8B and the register icon 208 is set as a local element. In the example of the display mode in FIG. 16 , a circled L (symbol 208 a) indicating that the register icon 208 is a local element is displayed in the upper right corner of the register icon 208 on the timeline (program creation area 300). Note that other display modes may be used to distinguish whether an icon is a local element or a global element on the timeline.
[0053] In this way, function (F2) provides variable elements that can be used locally within a composite icon, allowing the user to efficiently program the composite icon.
[0054] The above function (F3) will now be described. The above-described operational examples shown in Figures 4A, 4B, 8A, and 8B are operational examples in which a composite icon is generated by overlapping icons on the program creation area 300. However, this is merely an example, and it is also possible to generate a composite icon at another location on the program creation screen. For example, as shown in Figures 10A and 10B, a composite icon may be generated and registered as a new icon (custom icon) by a user performing an operation to overlap another icon on an icon arranged in the icon display area 200.
[0055] In the example shown in FIGS. 10A and 10B , by dragging and dropping the linear movement icon 203b onto the linear movement icon 203 arranged in the icon display area 200 ( FIG. 10A ), a composite icon 233 is newly generated and registered in the icon display area 200 ( FIG. 10B ). The composite icon 233 is larger than the other single-function icons, making it visually recognizable as a composite icon. This allows the user to use the composite icon 233 as a new icon when creating a program. In this way, the composite function generation unit 133 provides a function for the user to register a composite icon created by the user as a custom icon in the icon display area 200. This function (F3) enables more flexible and efficient programming.
[0056] The above function (F4) will now be described. After the composite icon 230 is created as shown in FIG. 4B , in response to a predetermined user operation performed by selecting the composite icon 230, the composite function generation unit 133 provides a function for registering the function (command group) of the composite icon 230 as a new program (subprogram). By providing a function for registering the function (command content) created as a composite icon as a subprogram in this way, the user can also use the function (command group) created as the composite icon by calling it as a subprogram within the program. Note that when the function (command content) created as a composite icon is registered as a subprogram, the values of variable elements (e.g., the values of each register) set within the subprogram are applied globally within the program.
[0057] In this way, the user can use a function that integrates the functions of a single-function icon as a composite icon or a subprogram, depending on the nature of the program to be created.
[0058] According to this embodiment, a user can instantly create a composite icon by combining single-function icons through an intuitive and simple operation of overlapping the icons. This allows the user to program efficiently. In particular, when creating a complex program, the icon integration function can make the entire program more compact and improve the program's readability.
[0059] As described above, according to this embodiment, the user can easily generate a function that integrates icons of single functions through an intuitive and simple operation, thereby improving user convenience in programming.
[0060] Second Embodiment A program editing device according to a second embodiment will now be described. The equipment configuration and functional block diagram of a robot system including a program editing device according to the second embodiment are similar to those of the first embodiment shown in Figures 1 and 2, and therefore the second embodiment will be described with reference to Figures 1 and 2. A program editing device 30 according to the second embodiment provides a function for integrating the functions of icons with single functions related to force control.
[0061] 11 shows a precision fitting operation as an example of an operation based on force control. The precision fitting operation is an operation in which a fitting workpiece W held by the robot 10 is fitted into a fitting hole 90a of an object 90. As shown in FIG. 11 , the precision fitting operation can be categorized into a search operation in which the fitting workpiece W is moved on the upper surface of the object 90 to search for the position of the fitting hole 90a, and a fitting operation in which the workpiece W is inserted into the fitting hole 90a after the fitting hole 90a has been found.
[0062] The search operation will be described in detail with reference to Fig. 12. As shown in Fig. 12, in the search operation, a movement path L (or search range) along which the fitting workpiece W is moved on the target object 92 is set in advance, and the fitting hole 92a is searched for by moving the fitting workpiece W along the movement path L while pressing it against the upper surface of the target object 92 with a constant pressing force. Therefore, the search operation can be regarded as a unified force control function having the pressing force, the speed of the search operation, the movement path (search range), etc. as force control parameters.
[0063] When the fitting hole 92 a is found by the search operation, a fitting operation is executed to insert the fitting workpiece W vertically downward into the fitting hole 92 a. This fitting operation can be regarded as a collective force control function including, as force control parameters, the pressing force when inserting the fitting workpiece W, the fitting speed, the force control gain (pressing direction), and the like.
[0064] Furthermore, some search operations in precision fitting operations involve phase search. An example of the phase search operation is shown in FIG. 13 . As shown in FIG. 13 , in phase search, the fitting workpiece W7 is rotated to align the phase so that the rotational position (phase) of the pin 7 a of the fitting workpiece W7 matches the rotational position (phase) of the key groove 93 b formed in the hole 93 a of the target object 93. Therefore, phase search can be considered a collective force control function having, as force control parameters, the pressing force, the speed of the search operation (the speed in the direction of rotating the fitting workpiece), and the like.
[0065] When the phase is found by the phase search, a fitting operation is performed to insert the workpiece W7 vertically downward into the hole 93a. The fitting operation in this case also becomes a unified force control function including, as force control parameters, the pressing force when inserting the workpiece W, the fitting speed, the force control gain (pressing direction), etc.
[0066] Therefore, providing icons corresponding to the functions of the search operation, phase search, and fitting operation and allowing them to be used in combination improves programming flexibility and enables efficient programming. The program editing device 30 according to this embodiment provides an icon for each group of functions related to force control. Fig. 14A shows, as an example, a state in which a search operation icon 211 corresponding to the search operation function, a phase search icon 212 corresponding to the phase search function, and a fitting operation icon 213 corresponding to the fitting operation are registered in the icon display area 200.
[0067] The composite function generation unit 133 according to this embodiment provides a function of integrating the functions of single-function icons related to force control through an intuitive operation by a user. As in the first embodiment, the function of integrating single-function icons by the composite function generation unit 133 includes a function of generating a composite icon (hereinafter also referred to as a composite icon) by integrating the functions of the single-function icons, and a function of registering the function obtained by integrating the single-function icons as a program (subprogram).
[0068] An example of an operation of the composite function generation unit 133 to integrate functions of single-function icons related to force control will be described with reference to Figures 14A and 14B. A user intending to create a composite icon for a precision fitting operation using a search operation first places a search operation icon 211 in the program creation area 300, as shown in Figure 14A, and then drags and drops a fitting operation icon 213 onto the search operation icon 211 (see arrows). When the composite function generation unit 133 detects the operation of dragging and dropping the fitting operation icon 213 onto the search operation icon 211, it generates a composite icon 235 that integrates the search operation icon 211 and the fitting operation icon 213 and places the composite icon 235 in the program creation area 300 (Figure 14B).
[0069] 14B, the composite icon 235 is larger than the single-function icon, so that the user can immediately recognize it as a composite icon. Note that the shape of the composite icon 235 shown here is an example, and the composite icon can be displayed in various forms, such as the composite icon 231 (FIG. 6) described in the first embodiment.
[0070] Next, an operation for setting parameters of the composite icon 235 will be described. In response to a user performing a predetermined operation on the composite icon 235, the parameter setting unit 134 presents a setting screen for setting parameters for the composite icon 235. The predetermined operation by the user is, for example, an operation of tapping the composite icon 235, or an operation of selecting the composite icon 235 and pressing the details tab 262. As illustrated in FIG. 15 , in response to an operation of tapping the composite icon 235, the parameter setting unit 134 presents an icon setting screen 370 for setting the composite icon 235 at the bottom of the program creation area 300.
[0071] An "All" tab 371, a "Search" tab 372 for making settings for the search operation icon 211, and a "Fit" tab 373 for making settings for the fitting operation icon 213 are presented at the top of the icon setting screen 370. When the "Search" tab 372 is selected, a setting screen for the search operation icon 211 included in the composite icon 235 is presented on the icon setting screen 370. The user can set parameters for the search operation icon 211. When the "Fit" tab 373 is selected, a setting screen for the fitting operation icon 213 included in the composite icon 235 is presented on the icon setting screen 370. The user can set parameters for the fitting operation icon 213. Note that FIG. 15 shows a situation in which the "Search" tab 372 is selected and a setting screen for the search operation icon 211 is presented on the icon setting screen 370. This setting screen includes setting items such as pressing force, search operation speed, and search range.
[0072] The user can configure settings related to the overall function of the composite icon 235 by selecting the "Overall" tab 371. For example, the setting items configured for the overall composite icon include the setting of arguments to be passed to the composite icon.
[0073] The composite function generation unit 133 according to this embodiment has the following function (F5) related to force control in addition to the functions (F1) to (F4) described in the first embodiment regarding the overall function setting of the composite icon: (F5) A function of performing force control by subtracting the force generated at the time of the end of the previous force control function from the current target force.
[0074] The above function (F5) will now be described. As described above, the precision fitting operation is configured as a function that integrates the search operation and the fitting operation, each of which is a group of functional units. The program editing device 30 according to this embodiment focuses on this nature of force control operations and, as described above, provides an icon for each group of functions related to force control (search operation, phase search, fitting operation, etc.), thereby enabling the user to flexibly program force control operations. However, in actual operations in which these icons are linked, a surface contact force is generated from the target object (target object 90) against the fitting workpiece (fitting workpiece W) at the end of the search operation. If a target pressing force for the next fitting operation is set as a force control parameter and force control is applied, the robot 10 behaves as if it is applying the target pressing force to the target object (target object 90) in addition to the surface contact force generated by the previous operation.
[0075] In consideration of this situation, the composite function generator 133 according to this embodiment sets the function of the composite icon so that force control is performed by subtracting the surface contact force generated at the end of the search operation from the force generated in the mating operation. This operation corresponds to the above-described function (F5). For example, suppose the target pressing force for the mating operation is 50 N, and a surface contact force of 10 N is generated at the end of the search operation. In this case, the composite function generator 133 subtracts the surface contact force of 10 N already generated from the target pressing force of 50 N, and sets the function of the composite icon so that the mating operation is performed with a pressing force of 40 N as a parameter. As a result, the mating operation is achieved with the pressing force of 50 N intended by the user.
[0076] Therefore, function (F5) may be realized by the composite function generation unit 133 performing a process to introduce a control command as a function of the second or subsequent icon to subtract the generated force generated by the function of the previous icon from the target force.
[0077] Note that, here, search operation, phase search, and fitting operation have been given as examples of icons classified by functional unit of force control, but there are various other examples of icons classified by functional unit of force control, such as constant force pressing, which presses a workpiece against an object with a constant force, and surface matching, which matches the surfaces of two workpieces together.
[0078] In the above embodiment, an example of operation was described in which two icons related to force control are integrated to generate a composite icon or subprogram, but the composite function generation unit 133 can also integrate three or more icons related to force control to generate a composite icon or subprogram.
[0079] When three or more icons with force control functions are integrated, the composite function generation unit 133 sets the above function (F5) so that, except for the first icon in the composite icon, force control is performed by subtracting the force generated at the time the force control function of the previous icon ended from the current target force.
[0080] Therefore, according to this embodiment, flexible programming is provided in response to user needs for creating force control operations by combining multiple types of force control functions, and control of the target force can be performed accurately when multiple types of force control functions are combined. When programming force control operations by combining multiple types of force control functions, the user does not need to perform settings for adjusting the target force.
[0081] As described above, according to this embodiment, the user can easily generate a function that integrates icons of single functions through an intuitive and simple operation, thereby improving user convenience in programming.
[0082] (Modification of Second Embodiment) The configuration of the second embodiment described above can be positioned as a solution to the user's need to create force control operations by combining multiple types of force control functions. Possible solutions to such user needs are (1) enabling flexible programming by providing a single-function icon for each group of functions related to force control, and (2) setting the icons other than the first one in a composite function (composite processing block) so that force control is performed by subtracting the force generated at the time the force control function of the previous icon ended from the current target force.
[0083] Therefore, from the viewpoint of solving the above-mentioned user needs, the operation for generating a composite function (composite processing block) may be performed by an operation other than the operation of overlapping icons of single functions. For example, the operation for generating a composite function (composite processing block) may include selecting icons to be integrated and performing a predetermined operation (pressing a button that provides a function for integrating the selected icons). In this modification, the icon operation unit 132 (composite function generation unit 133) also provides a function for generating a composite function (composite icon or subprogram) by integrating icons of single functions in response to such an operation.
[0084] From this perspective, the configuration of a program editing device as a modification of the second embodiment can be expressed, for example, as follows.
[0085] A program editing device for editing a robot's operation program, comprising: a processor; and a memory for storing information about processing blocks, wherein the processor forms a composite processing block that combines the operations of a plurality of processing blocks related to force control in response to user operation, and sets each processing block included in the composite processing block, except for the first processing block, so that force control is performed by subtracting the generated force generated at the end of the previous processing block from the target force.
[0086] In this case, a processing block may include a single-function icon or a group of instructions for a single function, and a composite processing block may include a composite icon or a subprogram.
[0087] Therefore, according to this modification, flexible programming is provided in response to user needs for creating force control operations by combining multiple types of force control functions, and control of the target force can be performed accurately when multiple types of force control functions are combined. When programming force control operations by combining multiple types of force control functions, the user does not need to perform settings for adjusting the target force.
[0088] The configurations of the above-described embodiments can be applied to program creation for various industrial machines including machine tools.
[0089] The configurations shown in the above-described embodiments can be applied to programming using processing blocks in various forms other than icons.
[0090] The functions (F1), (F2), (F3), and (F4) in the first and second embodiments described above can also be applied when a composite function block (a composite processing block having a function obtained by integrating processing blocks corresponding to a single function, which is used in a form incorporated as a command element in a main program) is generated by an operation other than the operation of overlapping processing blocks. For example, functions (F1), (F2), (F3), or (F4) may be applied to a composite processing block generated by selecting processing blocks to be integrated and performing a predetermined operation (an operation of pressing a button that provides a function for integrating the selected processing blocks).
[0091] The functional layout in the functional block diagram of the program editing device and robot control device shown in Figure 2 is one example, and various modifications of the functional layout are possible. For example, a configuration example is possible in which some of the functional elements in the program editing device 30 shown in Figure 2 are arranged in the robot control device 20. In that case, the functions of the program editing device 30 and the robot control device 20 are integrated to function as a program editing device.
[0092] The functional blocks of the program editing device and robot control device shown in Figure 2 may be realized by one or more processors of these devices executing various software stored in a storage device, or may be realized by a configuration mainly based on hardware such as an ASIC (Application Specific Integrated Circuit).
[0093] The programs that execute the various procedures related to program editing in the above-described embodiments can be recorded on various computer-readable recording media (e.g., semiconductor memories such as ROM, EEPROM, and flash memory, magnetic recording media, and optical discs such as CD-ROM and DVD-ROM).
[0094] Although the present disclosure has been described in detail, 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 present disclosure or the spirit of the present disclosure derived from the content of the claims and their equivalents. These embodiments can also be implemented in combination. 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.
[0095] As described above, according to at least one embodiment, a user can easily generate a function (composite processing block) that integrates processing blocks of single functions through intuitive and simple operations, thereby improving user convenience in programming.
[0096] The following supplementary notes are further provided with respect to the above embodiment and modified examples. (Supplementary Note 1) A program editing device (30) for creating a program using processing blocks representing functions constituting a control program for industrial machinery, comprising: a screen generation unit (131) for generating a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit (133) for generating a composite processing block having a function obtained by integrating processing blocks corresponding to a single function in response to an operation of overlapping the processing blocks on the program creation screen. (Supplementary Note 2) The program editing device (30) according to Supplementary Note 1, wherein the composite function generation unit (133) generates a composite processing block relating to force control operation by integrating the functions of processing blocks in response to an operation of overlapping processing blocks of a single function related to force control. (Supplementary Note 3) The program editing device (30) according to Supplementary Note 2, wherein the composite function generation unit (133) sets, for processing blocks other than the first processing block included in the composite processing block, force control is performed by subtracting the generated force generated at the end of the function of the previous processing block from the target force. (Supplementary Note 4) The program editing device (30) according to any one of Supplements 1 to 3, wherein the processing blocks are represented as icons, and the composite function generation unit (133) generates a composite icon having a function obtained by integrating icons in response to an operation of overlapping the icons. (Supplementary Note 5) The program editing device (30) according to Supplementary Note 4, wherein a shape of the composite icon is set so as to be distinguishable from icons of single functions. (Supplementary Note 6) The program editing device (30) according to Supplementary Note 4 or 5, wherein the composite icon is configured so as to be expandable in response to a predetermined operation so that each of the icons of single functions constituting the composite icon is recognizable. (Supplementary Note 7) The program editing device (30) according to any one of Supplements 4 to 6, wherein the composite function generation unit (133) sets a variable element for the composite icon that can be locally referenced within the composite icon.(Supplementary Note 8) The program editing device (30) according to any one of Supplementary Notes 4 to 7, wherein the composite function generation unit (133) provides the composite icon with a function that enables the composite icon to receive a value from outside. (Supplementary Note 9) The program editing device (30) according to any one of Supplementary Notes 1 to 3, wherein the composite function generation unit (133) has a function of registering the composite processing block as a new program. (Supplementary Note 10) A program editing device (30) for creating a program using processing blocks that represent functions that constitute a control program for industrial machinery, comprising: a screen generation unit (131) that generates a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit (133) that sets a variable element that is locally referenced in the composite processing block, for the composite processing block having a function obtained by integrating processing blocks corresponding to a single function, and which is used in a format that is incorporated as a command element in the main program. (Supplementary Note 11) A program editing device (30) for creating a program using processing blocks representing functions that constitute a control program for industrial machinery, the program editing device (30) comprising: a screen generation unit (131) that generates a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit (133) that gives a function that enables a composite processing block, which has a function obtained by integrating processing blocks corresponding to a single function and is used in a format that is incorporated as a command element in a main program, to receive a value from outside.(Supplementary Note 12) A program editing device (30) for creating a program using processing blocks representing functions that constitute a control program for industrial machinery, the program editing device (30) comprising: a screen generation unit (131) that generates a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit (133) that saves, as one program, composite processing blocks having a function obtained by integrating processing blocks corresponding to a single function, the composite processing blocks being used in a format in which they are incorporated as command elements in a main program.
[0097] REFERENCE SIGNS LIST 10 Robot 20 Robot control device 21 Processor 22 Memory unit 30 Program editing device 31 Processor 32 Memory unit 33 Display unit 34 Operation unit 60 Hand 70 Force sensor 121 Motion control unit 122 Force control unit 130 Program creation unit 131 Screen creation unit 132 Icon operation unit 133 Composite function creation unit 134 Parameter setting unit 135 Program execution unit 200 Icon display area 230, 231, 233, 235 Composite icon 300 Program creation area 400 Program creation screen
Claims
1. A program editing device for creating programs using processing blocks that represent functions that constitute an industrial machine control program, comprising: a screen generation unit that generates a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit that generates a composite processing block having a function obtained by integrating processing blocks corresponding to a single function in response to an operation of overlapping the processing blocks on the program creation screen.
2. The program editing device according to claim 1, wherein the composite function generation unit generates a composite processing block for force control operation that integrates the functions of processing blocks in response to an operation of overlapping processing blocks of single functions related to force control.
3. A program editing device as described in claim 2, wherein the composite function generation unit is set so that force control is performed by subtracting the generated force generated at the end of the function of the previous processing block from the target force, except for the first processing block included in the composite processing block.
4. A program editing device as described in any one of claims 1 to 3, wherein the processing blocks are represented as icons, and the composite function generation unit generates a composite icon having a function that combines the icons in response to an operation of overlapping the icons.
5. The program editing device according to claim 4, wherein the shape of the composite icon is set so as to be distinguishable from an icon having a single function.
6. A program editing device as claimed in claim 4 or 5, wherein the composite icon is configured to be expandable in response to a prescribed operation so that each of the single-function icons constituting the composite icon can be recognised.
7. A program editing device according to any one of claims 4 to 6, wherein the composite function generating section sets, for the composite icon, a variable element that can be locally referenced within the composite icon.
8. A program editing device according to any one of claims 4 to 7, wherein the composite function generating section provides the composite icon with a function that enables the composite icon to receive a value from an external source.
9. A program editing device according to any one of claims 1 to 3, wherein the composite function generating section has a function of registering the composite processing block as a new program.
10. A program editing device for creating programs using processing blocks representing functions that constitute a control program for industrial machinery, comprising: a screen generation unit that generates a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit that sets variable elements that are locally referenced within a composite processing block having a function obtained by integrating processing blocks corresponding to a single function, the composite processing block being used in a form that is incorporated as a command element within a main program.
11. A program editing device for creating programs using processing blocks representing functions that constitute an industrial machine control program, comprising: a screen generation unit which generates a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit which gives a function to a composite processing block having a function obtained by integrating processing blocks corresponding to a single function, the composite processing block being used in a form incorporated as a command element within a main program, the composite processing block being able to receive values from an external source.
12. A program editing device for creating programs using processing blocks representing functions that constitute an industrial machine control program, comprising: a screen generation unit that generates a program creation screen for arranging the processing blocks to create a program; and a composite function generation unit that saves, as one program, a composite processing block having a function obtained by integrating processing blocks corresponding to a single function, which is used in a form that is incorporated as a command element in a main program.
Citation Information
Patent Citations
Command selection system
JP1995210360A
Information terminal and recording medium with continuous performance program recorded thereon
JP2002149296A
Program generation device for generating operation program containing operation symbol of robot device
JP2021091025A
Display system, display device, display method, and program
JP6084021B2